iwx: clean up TX AMPDU session establishment and checking
- Send a TX A-MPDU exchange successfully; we were allocating the A-MPDU TX queue but returning 0 to net80211 was telling it to not establish the TX A-MPDU session and none of the BA session tracking stuff would work.
- Clean up the TX A-MPDU queue lookup in the transmit path - only QoS data frames are allowed, not qos null-data, cf/ack/etc frames; only send them if the A-MPDU session is established.
- Tell net80211 that we've established the TX A-MPDU session once the firmware queue has been created.
- Check to make sure we're not double (or more) creating TX AMDPU sessions - only allocate a qid if we're not doing A-MPDU yet.
- Delete IWX_FLAG_A-MPDUTX - it's now being properly tracked!
Locally tested:
- AX210, STA mode - gets 50/50mbit on 2GHz HT20, and 100/100mbit on 5GHz VHT/40.
Differential Revision: https://reviews.freebsd.org/D53725
Reviewed by: thj