mbox series

[V7,0/9] wifi: ath12k: add MU-MIMO and 160 MHz bandwidth support

Message ID 20240612234209.2324181-1-quic_pradeepc@quicinc.com
Headers show
Series wifi: ath12k: add MU-MIMO and 160 MHz bandwidth support | expand

Message

Pradeep Kumar Chitrapu June 12, 2024, 11:42 p.m. UTC
Add support for
1. enabling MU-MIMO in HE and EHT modes from hardware
2. setting fixed HE rate/GI/LTF
3. 160 MHz bandwidth in HE mode
4. extended NSS bandwidth support

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3

changes in v7:
 - rebase and remove patch 01/10 which was merged already.

changes in v6:
 - Change comment in patch 01/10 to represent only AP mode
   implementation.

changes in v5:
 - Fix column length to 80 in patch 01/10
 - Fix advertises spelling in patch 09/10
 - Fix choosing spelling in patch 10/10

changes in v4:
 - Fix ath12k-check warnings in patch 2/10 and 7/10
 - remove "hostapd" reference in patches 2/10 and 3/10
 - remove redundant prerequisite-patch-id's in cover letter

changes in v3:
 - address review comments for fixing ath12k-check issues.

changes in v2:
 - Amend mac80211 patch description as the patch is not specific
   to AP mode.
 - Amend EHT MU-MIMO patch description to specify future support
   for STA mode.

Pradeep Kumar Chitrapu (9):
  wifi: ath12k: push HE MU-MIMO params to hardware
  wifi: ath12k: push EHT MU-MIMO params to hardware
  wifi: ath12k: move HE MCS mapper to a separate function
  wifi: ath12k: generate rx and tx mcs maps for supported HE mcs
  wifi: ath12k: fix TX and RX MCS rate configurations in HE mode
  wifi: ath12k: add support for setting fixed HE rate/GI/LTF
  wifi: ath12k: clean up 80P80 support
  wifi: ath12k: add support for 160 MHz bandwidth
  wifi: ath12k: add extended NSS bandwidth support for 160 MHz

 drivers/net/wireless/ath/ath12k/core.h |    2 +
 drivers/net/wireless/ath/ath12k/mac.c  | 1052 ++++++++++++++++++++----
 drivers/net/wireless/ath/ath12k/mac.h  |   17 +
 drivers/net/wireless/ath/ath12k/wmi.c  |   24 +-
 drivers/net/wireless/ath/ath12k/wmi.h  |   98 ++-
 5 files changed, 985 insertions(+), 208 deletions(-)


base-commit: e72048809ec7355a947415ae6836d2eb7fdcda39

Comments

Jeff Johnson June 17, 2024, 6:46 p.m. UTC | #1
On 6/12/2024 4:42 PM, Pradeep Kumar Chitrapu wrote:
> Add support for
> 1. enabling MU-MIMO in HE and EHT modes from hardware
> 2. setting fixed HE rate/GI/LTF
> 3. 160 MHz bandwidth in HE mode
> 4. extended NSS bandwidth support
> 
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
> 
> changes in v7:
>  - rebase and remove patch 01/10 which was merged already.
> 
> changes in v6:
>  - Change comment in patch 01/10 to represent only AP mode
>    implementation.
> 
> changes in v5:
>  - Fix column length to 80 in patch 01/10
>  - Fix advertises spelling in patch 09/10
>  - Fix choosing spelling in patch 10/10
> 
> changes in v4:
>  - Fix ath12k-check warnings in patch 2/10 and 7/10
>  - remove "hostapd" reference in patches 2/10 and 3/10
>  - remove redundant prerequisite-patch-id's in cover letter
> 
> changes in v3:
>  - address review comments for fixing ath12k-check issues.
> 
> changes in v2:
>  - Amend mac80211 patch description as the patch is not specific
>    to AP mode.
>  - Amend EHT MU-MIMO patch description to specify future support
>    for STA mode.
> 
> Pradeep Kumar Chitrapu (9):
>   wifi: ath12k: push HE MU-MIMO params to hardware
>   wifi: ath12k: push EHT MU-MIMO params to hardware
>   wifi: ath12k: move HE MCS mapper to a separate function
>   wifi: ath12k: generate rx and tx mcs maps for supported HE mcs
>   wifi: ath12k: fix TX and RX MCS rate configurations in HE mode
>   wifi: ath12k: add support for setting fixed HE rate/GI/LTF
>   wifi: ath12k: clean up 80P80 support
>   wifi: ath12k: add support for 160 MHz bandwidth
>   wifi: ath12k: add extended NSS bandwidth support for 160 MHz
> 
>  drivers/net/wireless/ath/ath12k/core.h |    2 +
>  drivers/net/wireless/ath/ath12k/mac.c  | 1052 ++++++++++++++++++++----
>  drivers/net/wireless/ath/ath12k/mac.h  |   17 +
>  drivers/net/wireless/ath/ath12k/wmi.c  |   24 +-
>  drivers/net/wireless/ath/ath12k/wmi.h  |   98 ++-
>  5 files changed, 985 insertions(+), 208 deletions(-)
> 
> 
> base-commit: e72048809ec7355a947415ae6836d2eb7fdcda39

This series produces the following warnings when applied to ath-202406171110

In function 'ath12k_peer_assoc_h_he',
    inlined from 'ath12k_peer_assoc_prepare' at drivers/net/wireless/ath/ath12k/mac.c:2951:2:
drivers/net/wireless/ath/ath12k/mac.c:2357:21: warning: 'ath12k_peer_assoc_h_he_limit' reading 16 bytes from a region of size 0 [-Wstringop-overread]
 2357 |                 v = ath12k_peer_assoc_h_he_limit(v, he_mcs_mask);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/ath/ath12k/mac.c:2357:21: note: referencing argument 2 of type 'const u16[8]' {aka 'const short unsigned int[8]'}
drivers/net/wireless/ath/ath12k/mac.c: In function 'ath12k_peer_assoc_prepare':
drivers/net/wireless/ath/ath12k/mac.c:2139:12: note: in a call to function 'ath12k_peer_assoc_h_he_limit'
 2139 | static u16 ath12k_peer_assoc_h_he_limit(u16 tx_mcs_set,
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function 'ath12k_peer_assoc_h_he',
    inlined from 'ath12k_peer_assoc_prepare' at drivers/net/wireless/ath/ath12k/mac.c:2951:2:
drivers/net/wireless/ath/ath12k/mac.c:2370:21: warning: 'ath12k_peer_assoc_h_he_limit' reading 16 bytes from a region of size 0 [-Wstringop-overread]
 2370 |                 v = ath12k_peer_assoc_h_he_limit(v, he_mcs_mask);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/ath/ath12k/mac.c:2370:21: note: referencing argument 2 of type 'const u16[8]' {aka 'const short unsigned int[8]'}
drivers/net/wireless/ath/ath12k/mac.c: In function 'ath12k_peer_assoc_prepare':
drivers/net/wireless/ath/ath12k/mac.c:2139:12: note: in a call to function 'ath12k_peer_assoc_h_he_limit'
 2139 | static u16 ath12k_peer_assoc_h_he_limit(u16 tx_mcs_set,
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function 'ath12k_peer_assoc_h_he',
    inlined from 'ath12k_peer_assoc_prepare' at drivers/net/wireless/ath/ath12k/mac.c:2951:2:
drivers/net/wireless/ath/ath12k/mac.c:2370:21: warning: 'ath12k_peer_assoc_h_he_limit' reading 16 bytes from a region of size 0 [-Wstringop-overread]
 2370 |                 v = ath12k_peer_assoc_h_he_limit(v, he_mcs_mask);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/ath/ath12k/mac.c:2370:21: note: referencing argument 2 of type 'const u16[8]' {aka 'const short unsigned int[8]'}
drivers/net/wireless/ath/ath12k/mac.c: In function 'ath12k_peer_assoc_prepare':
drivers/net/wireless/ath/ath12k/mac.c:2139:12: note: in a call to function 'ath12k_peer_assoc_h_he_limit'
 2139 | static u16 ath12k_peer_assoc_h_he_limit(u16 tx_mcs_set,
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pradeep Kumar Chitrapu June 17, 2024, 7:55 p.m. UTC | #2
On 6/17/2024 11:46 AM, Jeff Johnson wrote:
> On 6/12/2024 4:42 PM, Pradeep Kumar Chitrapu wrote:
>> Add support for
>> 1. enabling MU-MIMO in HE and EHT modes from hardware
>> 2. setting fixed HE rate/GI/LTF
>> 3. 160 MHz bandwidth in HE mode
>> 4. extended NSS bandwidth support
>>
>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
>> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
>>
>> changes in v7:
>>   - rebase and remove patch 01/10 which was merged already.
>>
>> changes in v6:
>>   - Change comment in patch 01/10 to represent only AP mode
>>     implementation.
>>
>> changes in v5:
>>   - Fix column length to 80 in patch 01/10
>>   - Fix advertises spelling in patch 09/10
>>   - Fix choosing spelling in patch 10/10
>>
>> changes in v4:
>>   - Fix ath12k-check warnings in patch 2/10 and 7/10
>>   - remove "hostapd" reference in patches 2/10 and 3/10
>>   - remove redundant prerequisite-patch-id's in cover letter
>>
>> changes in v3:
>>   - address review comments for fixing ath12k-check issues.
>>
>> changes in v2:
>>   - Amend mac80211 patch description as the patch is not specific
>>     to AP mode.
>>   - Amend EHT MU-MIMO patch description to specify future support
>>     for STA mode.
>>
>> Pradeep Kumar Chitrapu (9):
>>    wifi: ath12k: push HE MU-MIMO params to hardware
>>    wifi: ath12k: push EHT MU-MIMO params to hardware
>>    wifi: ath12k: move HE MCS mapper to a separate function
>>    wifi: ath12k: generate rx and tx mcs maps for supported HE mcs
>>    wifi: ath12k: fix TX and RX MCS rate configurations in HE mode
>>    wifi: ath12k: add support for setting fixed HE rate/GI/LTF
>>    wifi: ath12k: clean up 80P80 support
>>    wifi: ath12k: add support for 160 MHz bandwidth
>>    wifi: ath12k: add extended NSS bandwidth support for 160 MHz
>>
>>   drivers/net/wireless/ath/ath12k/core.h |    2 +
>>   drivers/net/wireless/ath/ath12k/mac.c  | 1052 ++++++++++++++++++++----
>>   drivers/net/wireless/ath/ath12k/mac.h  |   17 +
>>   drivers/net/wireless/ath/ath12k/wmi.c  |   24 +-
>>   drivers/net/wireless/ath/ath12k/wmi.h  |   98 ++-
>>   5 files changed, 985 insertions(+), 208 deletions(-)
>>
>>
>> base-commit: e72048809ec7355a947415ae6836d2eb7fdcda39
> 
> This series produces the following warnings when applied to ath-202406171110
> 
> In function 'ath12k_peer_assoc_h_he',
>      inlined from 'ath12k_peer_assoc_prepare' at drivers/net/wireless/ath/ath12k/mac.c:2951:2:
> drivers/net/wireless/ath/ath12k/mac.c:2357:21: warning: 'ath12k_peer_assoc_h_he_limit' reading 16 bytes from a region of size 0 [-Wstringop-overread]
>   2357 |                 v = ath12k_peer_assoc_h_he_limit(v, he_mcs_mask);
>        |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/net/wireless/ath/ath12k/mac.c:2357:21: note: referencing argument 2 of type 'const u16[8]' {aka 'const short unsigned int[8]'}
> drivers/net/wireless/ath/ath12k/mac.c: In function 'ath12k_peer_assoc_prepare':
> drivers/net/wireless/ath/ath12k/mac.c:2139:12: note: in a call to function 'ath12k_peer_assoc_h_he_limit'
>   2139 | static u16 ath12k_peer_assoc_h_he_limit(u16 tx_mcs_set,
>        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In function 'ath12k_peer_assoc_h_he',
>      inlined from 'ath12k_peer_assoc_prepare' at drivers/net/wireless/ath/ath12k/mac.c:2951:2:
> drivers/net/wireless/ath/ath12k/mac.c:2370:21: warning: 'ath12k_peer_assoc_h_he_limit' reading 16 bytes from a region of size 0 [-Wstringop-overread]
>   2370 |                 v = ath12k_peer_assoc_h_he_limit(v, he_mcs_mask);
>        |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/net/wireless/ath/ath12k/mac.c:2370:21: note: referencing argument 2 of type 'const u16[8]' {aka 'const short unsigned int[8]'}
> drivers/net/wireless/ath/ath12k/mac.c: In function 'ath12k_peer_assoc_prepare':
> drivers/net/wireless/ath/ath12k/mac.c:2139:12: note: in a call to function 'ath12k_peer_assoc_h_he_limit'
>   2139 | static u16 ath12k_peer_assoc_h_he_limit(u16 tx_mcs_set,
>        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In function 'ath12k_peer_assoc_h_he',
>      inlined from 'ath12k_peer_assoc_prepare' at drivers/net/wireless/ath/ath12k/mac.c:2951:2:
> drivers/net/wireless/ath/ath12k/mac.c:2370:21: warning: 'ath12k_peer_assoc_h_he_limit' reading 16 bytes from a region of size 0 [-Wstringop-overread]
>   2370 |                 v = ath12k_peer_assoc_h_he_limit(v, he_mcs_mask);
>        |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/net/wireless/ath/ath12k/mac.c:2370:21: note: referencing argument 2 of type 'const u16[8]' {aka 'const short unsigned int[8]'}
> drivers/net/wireless/ath/ath12k/mac.c: In function 'ath12k_peer_assoc_prepare':
> drivers/net/wireless/ath/ath12k/mac.c:2139:12: note: in a call to function 'ath12k_peer_assoc_h_he_limit'
>   2139 | static u16 ath12k_peer_assoc_h_he_limit(u16 tx_mcs_set,
>        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   
Thanks Jeff, ath12k-check issues must be resolved on V3..
Let me check and confirm and fix any issues and resubmit V8