On 7 November 2013 06:20, Bob Copeland <m...@bobcopeland.com> wrote:
> On Wed, Nov 06, 2013 at 09:17:46AM -0800, Adrian Chadd wrote:
>> The TL;DR version - you need to keep the the final descriptor around
>> for each hardware queue. The legacy madwifi/freebsd way of doing it
>> was to keep the last descriptor that was handled. This wasn't enough.
>> It needs to be per TX queue. You also must never program TxDP after
>> you've programmed it once - you can only program it again after you've
>> completely torn down TX DMA for the particular queue.
>
> This is a goldmine -- thank you for taking the time to write it up!
> I believe we can clean up ath5k's transmit loop a lot now...

You're very welcome. I spent quite a lot of time waist deep in this
crap. It turns out I had to go to the hardware guys and wade through
the verilog to figure out what the hell was actually going on.

>> * read-and-clear bugs
>> * PHY register read problems, and why ANI may occasionally look whacked
>
> One thing at a time for me... but do we even want to know? :)

If you want to avoid crazy crashes and hangs, yes? :)

Also, ask me about "key cache corruption" too.



-adrian
_______________________________________________
ath5k-devel mailing list
ath5k-devel@lists.ath5k.org
https://lists.ath5k.org/mailman/listinfo/ath5k-devel

Reply via email to