On 26 March 2013 09:29, Robert Shade <robert.shade@xxxxxxxxx> wrote: >> Even after a cold reset? > > Yes, which is why I'm curious about the start/stop queues calls. It > looks to my (untrained) eye that it's simply not processing the data > queue. Well if there's anything in the data queue once you've reset the chip (ie, the whole "no loss" reset path for doing resets when you're doing a scan or recovering from a hung chip) you need to re-program the queue. For the pre-AR9380 chips its easy - for each TXQ: * update axq_link to the be the link field in the last descriptor in the last frame; * push the first descriptor in the first frame into the QCU TxDP address; * set TxE for that queue. For the AR9380 and later chips its a little more complicated because of how the FIFO management works. Felix knows more about this in ath9k; I'm doing something different in FreeBSD. But the basics are the same - you need to walk the FIFO frame list and push the head of each FIFO entry back into the FIFO, then start TX. adrian -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html