#
82182587 |
| 16-Dec-2024 |
Adrian Chadd <adrian@FreeBSD.org> |
rtwn: add VHT20/VHT40/VHT80 bandwidth configuration for transmit.
Add a separate function and path for VHT 20/40/80MHz bandwidth transmission.
Differential Revision: https://reviews.freebsd.org/D48
rtwn: add VHT20/VHT40/VHT80 bandwidth configuration for transmit.
Add a separate function and path for VHT 20/40/80MHz bandwidth transmission.
Differential Revision: https://reviews.freebsd.org/D48102
show more ...
|
#
d82bfe73 |
| 16-Dec-2024 |
Adrian Chadd <adrian@FreeBSD.org> |
rtwn: don't set the RTS/CTS primary channel field for RTL8812AU/RTL8821AU
According to the rtl8812au reference driver, this seems to control the bandwidth used by lower-bandwidth frames when transmi
rtwn: don't set the RTS/CTS primary channel field for RTL8812AU/RTL8821AU
According to the rtl8812au reference driver, this seems to control the bandwidth used by lower-bandwidth frames when transmitted in a higher bandwidth channel. For example, transmitting a 20MHz frame on an 80MHz channel (eg in hostap mode) is doable, but you may want to at least duplicate the RTS/CTS exchange across all four 20MHz subchannels, AND perhaps duplicate the 20MHz frame.
I haven't fired this up with a spectrum analyser to see what the result is.
The vendor driver doesn't bother with this and it doesn't change performance. My guess is that for modes like AP mode we MAY wantto be able to control the RTS/CTS bandwidth choices rather than letting the firmare do it, but we're not there yet.
The rtl8812au code in hal/rtl8812a_xmit.c:SCMapping_8812() has the gory details, but then the one place it's used just has it commented out and 0 (ie "do not care") is always programmed in.
Differential Revision: https://reviews.freebsd.org/D48113 Obtained from: https://github.com/lwfinger/rtl8812au Reviewed by: bz
show more ...
|
#
93411b39 |
| 16-Dec-2024 |
Adrian Chadd <adrian@FreeBSD.org> |
rtwn: calculate control rate for VHT rate frames
If the passed in rate is a VHT rate, use rtwn_ctl_vhtrate() to find a suitable rate for RTS/CTS.
Differential Revision: https://reviews.freebsd.org
rtwn: calculate control rate for VHT rate frames
If the passed in rate is a VHT rate, use rtwn_ctl_vhtrate() to find a suitable rate for RTS/CTS.
Differential Revision: https://reviews.freebsd.org/D48295 Reviewed by: bz, cy, emaste
show more ...
|
#
64ecfc27 |
| 16-Dec-2024 |
Adrian Chadd <adrian@FreeBSD.org> |
rtwn: add forcerate flag to TX descriptor setup
When doing firmware rate control there will be situations where the rate being passed in needs to actually override the rate control selection. So ad
rtwn: add forcerate flag to TX descriptor setup
When doing firmware rate control there will be situations where the rate being passed in needs to actually override the rate control selection. So add a flag to the descriptor setup path to indicate that indeed this particular rate should be forced, rather than rely on the firmware rate control.
This is currently a no-op as firmware rate control isn't working in-tree, but it is working for me locally with other changes. Without this, there's no way to force low rates for management, DHCP traffic, and to allow fixed rate via "ifconfig wlanX ucastrate Y" to function.
Locally tested:
* RTL8192CU, STA mode (firmware and driver/net80211 rate control)
Differential Revision: https://reviews.freebsd.org/D48100 Reviewed by: bz, gavin
show more ...
|
#
3d699261 |
| 04-Dec-2024 |
Adrian Chadd <adrian@FreeBSD.org> |
rtwn: expand the ridx numbers to include VHT; add accessor macros
* expand the ridx field all the way through 4x4 11n (MCS0..MCS31) * and then expand it through VHT 4x4 (MCS0..9 for each stream) * a
rtwn: expand the ridx numbers to include VHT; add accessor macros
* expand the ridx field all the way through 4x4 11n (MCS0..MCS31) * and then expand it through VHT 4x4 (MCS0..9 for each stream) * add accessor macros to check if the rate is HT, VHT * use accessor macros to check if the rate is HT rather than comparing it against OFDM54 or RIDX_HT_MCS(0); the values aobve HT MCS will be VHT, and we don't want to trigger on those! * add a couple of appropriate TODO VHT bits in the TX path
Locally tested:
* RTL8192CU, STA mode * RTL8188EU, STA mode * RTL8821AU, STA mode * RTL8192EU, STA mode
Differential Revision: https://reviews.freebsd.org/D47896
show more ...
|
#
35135609 |
| 02-Dec-2024 |
Adrian Chadd <adrian@FreeBSD.org> |
rtwn: use ieee80211_ht_check_tx_ht40() to transmit HT40 frames
Using ieee80211_ht_check_tx_ht40() means that not only the bss and node channel are checked, but the ni_chw value is also now correctly
rtwn: use ieee80211_ht_check_tx_ht40() to transmit HT40 frames
Using ieee80211_ht_check_tx_ht40() means that not only the bss and node channel are checked, but the ni_chw value is also now correctly checked.
Differential Revision: https://reviews.freebsd.org/D47862
show more ...
|
Revision tags: release/14.2.0 |
|
#
4fa68495 |
| 27-Nov-2024 |
Adrian Chadd <adrian@FreeBSD.org> |
rtwn: fix rtl8812/rtl8821 vht definitions, add VHT calibration/rate control
* Add support for 80MHz channels during IQ calibration * Correct the RAID flags for 1 and 2 stream VHT - the later ones
rtwn: fix rtl8812/rtl8821 vht definitions, add VHT calibration/rate control
* Add support for 80MHz channels during IQ calibration * Correct the RAID flags for 1 and 2 stream VHT - the later ones are for 2GHz VHT and then 3/4 stream VHT * Add VHT to the RAID calculation for when we eventually transmit VHT rates.
Obtained from: Linux rtw88 (https://github.com/lwfinger/rtw88)
Differential Revision: https://reviews.freebsd.org/D47774
show more ...
|
#
77e64f45 |
| 26-Nov-2024 |
Adrian Chadd <adrian@FreeBSD.org> |
rtwn: use ieee80211_ht_get_node_ampdu_density(), fix programming MAX_AGG
* use ieee80211_ht_get_node_ampdu_density() now instead of the vap->iv_ampdu_density, so the correct density is used in AP/
rtwn: use ieee80211_ht_get_node_ampdu_density(), fix programming MAX_AGG
* use ieee80211_ht_get_node_ampdu_density() now instead of the vap->iv_ampdu_density, so the correct density is used in AP/IBSS/mesh modes.
* MAX_AGG controls how many frames are to be sent in an A-MPDU. It maps to ((MAX_AGG * 2) + 1) == npackets. 0x1f (31) means 64 packets. So, instead of hard-coding 0x1f, use the negotiated block-ack window size.
Differential Revision: https://reviews.freebsd.org/D47766
show more ...
|
#
6749f059 |
| 26-Nov-2024 |
Adrian Chadd <adrian@FreeBSD.org> |
rtwn: use ieee80211_ht_check_tx_shortgi_20() and ieee80211_ht_check_tx_shortgi_40()
Use the new net80211 routines rather than rolling our own.
(The first version of this diff landed a previous vers
rtwn: use ieee80211_ht_check_tx_shortgi_20() and ieee80211_ht_check_tx_shortgi_40()
Use the new net80211 routines rather than rolling our own.
(The first version of this diff landed a previous version of what was reviewed, so this brings it up to what was finally accepted in the review.)
Differential Revision: https://reviews.freebsd.org/D47751
Reviewed by: bz
show more ...
|
#
e1eff81e |
| 26-Nov-2024 |
Adrian Chadd <adrian@FreeBSD.org> |
rtwn: use ieee80211_ht_check_tx_shortgi_20() and ieee80211_ht_check_tx_shortgi_40()
Use the new net80211 routines rather than rolling our own.
Differential Revision: https://reviews.freebsd.org/D47
rtwn: use ieee80211_ht_check_tx_shortgi_20() and ieee80211_ht_check_tx_shortgi_40()
Use the new net80211 routines rather than rolling our own.
Differential Revision: https://reviews.freebsd.org/D47751
Reviewed by: bz
show more ...
|
Revision tags: release/13.4.0, release/14.1.0, release/13.3.0, release/14.0.0 |
|
#
685dc743 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0, release/12.3.0, release/13.0.0, release/12.2.0 |
|
#
b3512b30 |
| 01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
rtwn: clean up empty lines in .c and .h files
|
Revision tags: release/11.4.0, release/12.1.0, release/11.3.0 |
|
#
87339626 |
| 16-Jan-2019 |
Andriy Voskoboinyk <avos@FreeBSD.org> |
rtwn(4): clear 'basic' rate bit before calculating RTS/CTS rate.
Rate tables have this bit set to indicate minimal set of basic rates; however, it overlappes with MCS bit, so rate2ridx() will treat
rtwn(4): clear 'basic' rate bit before calculating RTS/CTS rate.
Rate tables have this bit set to indicate minimal set of basic rates; however, it overlappes with MCS bit, so rate2ridx() will treat them as an 11n rate.
Due to the current rates setup the issue can be reproduced only in 5GHz band with 11n / protection enabled.
Tested with RTL8821AU, HOSTAP mode.
MFC after: 5 days
show more ...
|
Revision tags: release/12.0.0, release/11.2.0, release/10.4.0 |
|
#
b754c279 |
| 13-Sep-2017 |
Navdeep Parhar <np@FreeBSD.org> |
MFH @ r323558.
|
#
5be4ad9e |
| 09-Sep-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r323343
|
#
0cc18edf |
| 29-Aug-2017 |
Andriy Voskoboinyk <avos@FreeBSD.org> |
rtwn(4): some initial preparations for (basic) VHT support.
Rename RTWN_RIDX_MCS to RTWN_RIDX_HT_MCS before adding 802.11ac MCS rate indexes (they have different offset).
No functional change inten
rtwn(4): some initial preparations for (basic) VHT support.
Rename RTWN_RIDX_MCS to RTWN_RIDX_HT_MCS before adding 802.11ac MCS rate indexes (they have different offset).
No functional change intended.
show more ...
|
Revision tags: release/11.1.0 |
|
#
4224465e |
| 02-Jun-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r319251 through r319479.
|
#
5acae76a |
| 01-Jun-2017 |
Andriy Voskoboinyk <avos@FreeBSD.org> |
rtwn: drop obsolete (since r319460) code.
Tested with RTL8188EU, STA mode.
|
#
9b3ece1c |
| 04-Feb-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r313243
|
#
a4aa656a |
| 22-Jan-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r312309 through r312623.
|
#
3111723c |
| 21-Jan-2017 |
Andriy Voskoboinyk <avos@FreeBSD.org> |
rtwn: enable LDPC support where possible
Tested with RTL8821AU, STA mode.
|
#
5763f796 |
| 21-Oct-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r307383 through r307735.
|
#
7453645f |
| 17-Oct-2016 |
Andriy Voskoboinyk <avos@FreeBSD.org> |
rtwn(4), urtwn(4): merge common code, add support for 11ac devices.
All devices: - add support for rate adaptation via ieee80211_amrr(9); - use short preamble for transmitted frames when needed; - m
rtwn(4), urtwn(4): merge common code, add support for 11ac devices.
All devices: - add support for rate adaptation via ieee80211_amrr(9); - use short preamble for transmitted frames when needed; - multi-bss support: * for RTL8821AU: 2 VAPs at the same time; * other: 1 any VAP + 1 sta VAP. RTL8188CE: - fix IQ calibration bug (reason of significant speed degradation); - add h/w crypto acceleration support. USB: - A-MPDU Tx support; - short GI support; Other: - add support for RTL8812AU / RTL8821AU chipsets (a/b/g/n only; no ac yet); - split merged code into subparts: * bus glue (usb/*, pci/*, rtl*/usb/*, rtl*/pci/*) * common (if_rtwn*) * chip-specific (rtl*/*) - various other bugfixes.
Due to code reorganization, module names / requirements were changed too: urtwn urtwnfw -> rtwn rtwn_usb rtwnfw rtwn rtwnfw -> rtwn rtwn_pci rtwnfw
Tested with RTL8188CE, RTL8188CUS, RTL8188EU and RTL8821AU.
Tested by: kevlo, garga, Peter Garshtja <peter.garshtja@ambient-md.com>, Kevin McAleavey <kevin.mcaleavey@knosproject.com>, Ilias-Dimitrios Vrachnis <id@vrachnis.com>, <otacilio.neto@bsd.com.br> Relnotes: yes
show more ...
|