History log of /freebsd-9.3-release/sys/dev/ath/if_ath_tx_ht.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 267654 19-Jun-2014 gjb

Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 225736 22-Sep-2011 kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by: re (implicit)


# 222498 30-May-2011 adrian

Enable setting the short-GI bit when TX'ing HT rates but only if the
hardware supports it.

Since ni->ni_htcap in hostap mode is what the remote end has advertised,
not what has been negotiated/decided, we need to check ourselves what
the current channel width is and what the hardware supports before
enabling short-GI.

It's important that short-GI isn't enabled when it isn't negotiated
and when the hardware doesn't support it (ie, short-gi for 20mhz channels
on any chip < AR9287.)

I've quickly verified this on the AR9285 in 11n mode.


# 219985 25-Mar-2011 adrian

After discussing with Bernhard, the "right" way in net80211 to check
the channel width is ni->ni_chw, which is set to the negotiated channel
width. ni->ni_htflags is the capability, rather than the negotiated
value.

Teach both the TX path and the sample rate module about this.


# 219981 25-Mar-2011 adrian

Re-disable the setting of 2040/shortgi bits for now.

This seems to work fine for STA but not HT/20 AP mode.

Further discussion with net80211 people will need to take place
to ensure that the right flags are set based on the negotiated
capabilities of the remote peer, rather than whatever the local
parameters are.

Sending short-gi frames in 20mhz may work on some chips but
it certainly isn't supported on anything currently supported
by the HAL; and sending HT40 frames in HT20 mode just plain
won't work.


# 219962 24-Mar-2011 adrian

Flip back HT/40 and Short-GI (for 40mhz operation). These are now verified to work.


# 219870 22-Mar-2011 adrian

Clean up setting the short preamble bit in the rate - this way it
is very obvious (and cleanly so) that it occurs for non-11n rates.


# 219588 13-Mar-2011 adrian

The number of streams is not based on the interface stream count, but the
number of streams needed for that MCS rate.


# 219214 03-Mar-2011 adrian

Disable trying to do HT/40 and short-GI TX.

These flags are just plain wrong - they're the node flags from negotiation,
not the configured flags. I'll jump in later on and figure out exactly
what should be done to properly set these two flags when in both STA mode
(ie, what the AP says is possible and what's configured) and AP mode
(ie, where the AP has a configuration, but then negotiates what's possible
with each node, so per-node configuration can and will differ.)

This allows the 11n 2.4ghz/ht20 mode to associate (but perform poorly still)
and exchange MCS rates with atheros reference APs and a Cisco/Linksys
E3000 AP.


# 218935 22-Feb-2011 adrian

Don't set the RTS/CTS enable bit per-scenario if the global RTS/CTS
flags aren't set.


# 218931 21-Feb-2011 adrian

* Don't setup the scenario if the try count is 0
* Comment what else is going on during rate scenario setup


# 218907 21-Feb-2011 adrian

Implement setting the short preamble bit if it's needed for the current node.

Short preamble rates are only for legacy rates; MCS rate codes don't have a short
preamble code like this.


# 218779 17-Feb-2011 adrian

Just be double-sure short-gi isn't being enabled in 20mhz mode.


# 218642 13-Feb-2011 adrian

This should be TX stream, not RX stream.


# 218593 12-Feb-2011 adrian

The current code used the fields in ath_set11nratescenario() . Use them
correctly:

* pass in whether to allow the hardware to override the duration field
in the main data frame (durupdate_en) - PS_POLL frames in particular
don't have the duration bit overriden;
* there's no rts/cts duration here; that's done elsehwere


# 218566 11-Feb-2011 adrian

.. how'd this compile before I commit it and then not now?

Fixed.


# 218556 11-Feb-2011 adrian

The last parameter to ath_computedur_ht() is short-GI, not short-preamble.


# 218159 01-Feb-2011 adrian

Include some preliminary TX HT rate scenario setup code.

The AR5416 and later TX descriptors have new fields for supporting
11n bits (eg 20/40mhz mode, short/long GI) and enabling/disabling
RTS/CTS protection per rate.

These functions will be responsible for initialising the TX descriptors
for the AR5416 and later chips for both HT and legacy frames.

Beacon frames will remain using the non-11n TX descriptor setup for now;
Linux ath9k does much the same.

Note that these functions aren't yet used anywhere; a few more framework
changes are needed before all of the right rate information is available
for TX.