K 10 svn:author V 6 adrian K 8 svn:date V 27 2011-08-18T09:18:39.412150Z K 7 svn:log V 2134 Flip on TX aggregate formation. No, it doesn't quite work. * Push ath_tx_setds() and ath_tx_chaindesc() back to where I had it - ie, setup just before the buffer was queued to the hardware. * Use the 11n aggregate form methods from Sam's HAL, rather than the added methods from linux/reference code. I'm still unsure which to use for now, but those methods do seem to work. the chaindesc method knows about sub-frames _and_ segments of a sub-frame; the Linux/reference code seem to assume that a TX'ed aggregate sub-frame will only take up one skb. (Or there's something else subtle going on that I haven't quite understood.) * Modify ath_tx_form_aggr() to only form the aggregate buffer list; it doesn't link the descriptors together or do any descriptor setup. * Write ath_tx_setds_11n() which sets up an aggregate descriptor set. This sets up the first/last descriptors as appropriate as well as chaining the subframes together. * Teach the aggregate scheduler function to use ath_tx_form_aggr(), then based on the result of that process, either send a single-packet (which is known to be inside the BAW), or fire off an aggregate frame list to the hardware. * Add some debugging to try and figure out what's going on. As it stands, the TX path halts very quickly. It looks like some completion handling is incorrect, as the TX stops because the BAW tracking becomes out of whack. If I disable this (ie, treat all packets as ACKed and not retry anything), TX is slow (on the order of a few megabits/sec) but the hardware doesn't lock up; so it's likely the descriptor fiddling is functioning mostly correctly. Unfortunately, I don't yet have a clear picture how I'm supposed to setup multi-segment frames inside an aggregate. As mentioned above, Linux/reference code both seem to assume an aggregate subframe fits in a whole skb. (Yes, the receive-side does indeed indicate the frames received were A-MPDU frames. No, I haven't even begun to dig deeply into the aggregate setup to see if I've done everything completely correctly. No, don't expect to use this in STA/Hostap mode just yet.) END