linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/36] wcn36xx: Add support for WCN3680 802.11ac
@ 2020-08-03  3:10 Bryan O'Donoghue
  2020-08-03  3:10 ` [PATCH 01/36] wcn36xx: Add ability to identify WCN3680 Bryan O'Donoghue
                   ` (36 more replies)
  0 siblings, 37 replies; 41+ messages in thread
From: Bryan O'Donoghue @ 2020-08-03  3:10 UTC (permalink / raw)
  To: kvalo; +Cc: wcn36xx, linux-wireless, bryan.odonoghue, shawn.guo

This series adds support for the 802.11ac data-rates available on the WCN3680.

WCN3680:
- Has one spatial stream
- MCS9 80Mhz 400ns guard interval
- 433.3 Mbps
- RX STBC
- LDPC (host dependant)
- MU-MIMO (host dependant)
- Tx beamformee (host dependant)

Declared data-rates are around 200 Mbps
https://preview.tinyurl.com/y2w3jb2b

iw wlan0 link
Connected to 04:d4:c4:3a:fd:f4 (on wlan0)
        SSID: linaro-test_5G
        freq: 5300
        RX: 761467 bytes (4302 packets)
        TX: 2492 bytes (28 packets)
        signal: -29 dBm
        rx bitrate: 433.3 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 1
        tx bitrate: 6.0 MBit/s

        bss flags:      short-slot-time
        dtim period:    3
        beacon int:     100

Test Hardware:
20MHz channels
[ ID] Interval            Bitrate
[  5]   0.00-60.00  sec   51.6 Mbits/sec 
[  5]   0.00-60.16  sec   51.4 Mbits/sec 

40MHz channels
[  5]   0.00-60.00  sec   109 Mbits/sec
[  5]   0.00-60.15  sec   109 Mbits/sec

80MHz channels
[  5]   0.00-60.00  sec   141 Mbits/sec
[  5]   0.00-60.01  sec   141 Mbits/sec

db410c:
[ ID] Interval            Bitrate
[  5]   0.00-60.00  sec   47.9 Mbits/sec
[  5]   0.00-60.02  sec   47.7 Mbits/sec

Sony M4 Aqua - believed to contain a 3680 with 3.10 downstream prima:
20MHz channels
[ ID] Interval            Bitrate
[  5]   0.00-60.00  sec   25.5 Mbits/sec 
[  5]   0.00-60.16  sec   25.5 Mbits/sec 

40MHz channels
[  5]   0.00-60.00  sec   50 Mbits/sec
[  5]   0.00-60.15  sec   50 Mbits/sec

80MHz channels
[  5]   0.00-60.00  sec   67.8 Mbits/sec
[  5]   0.00-60.01  sec   67.8 Mbits/sec


The wcn3680 uses the same parameter passing mechanism as earlier versions
3620 and 3660 however it also supports extended VHT parameters for STA and
BSS setup.

I've taken the downstream firmware config almost as-is in terms of
parameters send over the SMD bus to the target with the caveat of switching
off power-save offload.

I do have some housekeeping patches in the middle of this series where I
functionally decompose some of the existing code, which in my opinion
needed some attention before adding any more code to it.

Lastly, I've tested on wcn3680 and wcn3620, since the extended VHT
parameters only apply to wcn3680 the code-paths for wcn3620 should be the
same for wcn3660.

Bryan O'Donoghue (36):
  wcn36xx: Add ability to identify WCN3680
  wcn36xx: Add ieee802.11 VHT flags
  wcn36xx: Add 802.11ac MCS rates
  wcn36xx: Specify ieee80211_rx_status.nss
  wcn36xx: Add 802.11ac HAL param bitfields
  wcn36xx: Add Supported rates V1 structure
  wcn36xx: Use existing pointers in wcn36xx_smd_config_bss_v1
  wcn36xx: Set feature DOT11AC for wcn3680
  wcn36xx: Add VHT fields to parameter data structures
  wcn36xx: Use V1 data structure to store supported rates
  wcn36xx: Add wcn36xx_set_default_rates_v1
  wcn36xx: Add VHT rates to wcn36xx_update_allowed_rates()
  wcn36xx: Add wcn36xx_smd_set_sta_default_vht_params()
  wcn36xx: Add wcn36xx_smd_set_sta_default_ht_ldpc_params()
  wcn36xx: Add wcn36xx_smd_set_sta_vht_params()
  wcn36xx: Add wcn36xx_smd_set_sta_ht_ldpc_params()
  wcn36xx: Add wcn36xx_smd_set_bss_vht_params()
  wcn36xx: Add wrapper function wcn36xx_smd_set_sta_params_v1()
  wcn36xx: Define INIT_HAL_MSG_V1()
  wcn36xx: Convert to VHT parameter structure on wcn3680
  wcn36xx: Functionally decompose wcn36xx_smd_config_sta()
  wcn36xx: Move wcn36xx_smd_set_sta_params() inside
    wcn36xx_smd_config_bss()
  wcn36xx: Move BSS parameter setup to wcn36xx_smd_set_bss_params()
  wcn36xx: Add wcn36xx_smd_config_bss_v0
  wcn36xx: Update wcn36xx_smd_config_bss_v1() to operate internally
  wcn36xx: Convert to using wcn36xx_smd_config_bss_v0()
  wcn36xx: Remove dead code in wcn36xx_smd_config_bss()
  wcn36xx: Latch VHT specific BSS parameters to firmware
  wcn36xx: Add accessor macro HW_VALUE_CHANNEL for hardware channels
  wcn36xx: Use HW_VALUE_CHANNEL macro to get channel number
  wcn36xx: Add accessor macro HW_VALUE_PHY for PHY settings
  wcn36xx: Encode PHY mode for 80MHz channel in hw_value
  wcn36xx: Set PHY into correct mode for 80MHz channel width
  wcn36xx: Extend HAL param config list
  wcn36xx: Define wcn3680 specific firmware parameters
  wcn36xx: Add ability to download wcn3680 specific firmware parameters

 drivers/net/wireless/ath/wcn36xx/hal.h     | 214 ++++++-
 drivers/net/wireless/ath/wcn36xx/main.c    |  99 ++-
 drivers/net/wireless/ath/wcn36xx/smd.c     | 678 ++++++++++++++-------
 drivers/net/wireless/ath/wcn36xx/txrx.c    | 110 +++-
 drivers/net/wireless/ath/wcn36xx/wcn36xx.h |  10 +-
 5 files changed, 861 insertions(+), 250 deletions(-)

-- 
2.27.0


^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2020-08-27  8:06 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-03  3:10 [PATCH 00/36] wcn36xx: Add support for WCN3680 802.11ac Bryan O'Donoghue
2020-08-03  3:10 ` [PATCH 01/36] wcn36xx: Add ability to identify WCN3680 Bryan O'Donoghue
2020-08-26 15:28   ` Kalle Valo
2020-08-03  3:10 ` [PATCH 02/36] wcn36xx: Add ieee802.11 VHT flags Bryan O'Donoghue
2020-08-03  3:10 ` [PATCH 03/36] wcn36xx: Add 802.11ac MCS rates Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 04/36] wcn36xx: Specify ieee80211_rx_status.nss Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 05/36] wcn36xx: Add 802.11ac HAL param bitfields Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 06/36] wcn36xx: Add Supported rates V1 structure Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 07/36] wcn36xx: Use existing pointers in wcn36xx_smd_config_bss_v1 Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 08/36] wcn36xx: Set feature DOT11AC for wcn3680 Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 09/36] wcn36xx: Add VHT fields to parameter data structures Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 10/36] wcn36xx: Use V1 data structure to store supported rates Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 11/36] wcn36xx: Add wcn36xx_set_default_rates_v1 Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 12/36] wcn36xx: Add VHT rates to wcn36xx_update_allowed_rates() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 13/36] wcn36xx: Add wcn36xx_smd_set_sta_default_vht_params() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 14/36] wcn36xx: Add wcn36xx_smd_set_sta_default_ht_ldpc_params() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 15/36] wcn36xx: Add wcn36xx_smd_set_sta_vht_params() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 16/36] wcn36xx: Add wcn36xx_smd_set_sta_ht_ldpc_params() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 17/36] wcn36xx: Add wcn36xx_smd_set_bss_vht_params() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 18/36] wcn36xx: Add wrapper function wcn36xx_smd_set_sta_params_v1() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 19/36] wcn36xx: Define INIT_HAL_MSG_V1() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 20/36] wcn36xx: Convert to VHT parameter structure on wcn3680 Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 21/36] wcn36xx: Functionally decompose wcn36xx_smd_config_sta() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 22/36] wcn36xx: Move wcn36xx_smd_set_sta_params() inside wcn36xx_smd_config_bss() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 23/36] wcn36xx: Move BSS parameter setup to wcn36xx_smd_set_bss_params() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 24/36] wcn36xx: Add wcn36xx_smd_config_bss_v0 Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 25/36] wcn36xx: Update wcn36xx_smd_config_bss_v1() to operate internally Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 26/36] wcn36xx: Convert to using wcn36xx_smd_config_bss_v0() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 27/36] wcn36xx: Remove dead code in wcn36xx_smd_config_bss() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 28/36] wcn36xx: Latch VHT specific BSS parameters to firmware Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 29/36] wcn36xx: Add accessor macro HW_VALUE_CHANNEL for hardware channels Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 30/36] wcn36xx: Use HW_VALUE_CHANNEL macro to get channel number Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 31/36] wcn36xx: Add accessor macro HW_VALUE_PHY for PHY settings Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 32/36] wcn36xx: Encode PHY mode for 80MHz channel in hw_value Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 33/36] wcn36xx: Set PHY into correct mode for 80MHz channel width Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 34/36] wcn36xx: Extend HAL param config list Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 35/36] wcn36xx: Define wcn3680 specific firmware parameters Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 36/36] wcn36xx: Add ability to download " Bryan O'Donoghue
2020-08-26 15:27 ` [PATCH 00/36] wcn36xx: Add support for WCN3680 802.11ac Kalle Valo
2020-08-26 16:17   ` Bryan O'Donoghue
2020-08-27  8:06     ` Kalle Valo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).