~vicamo/+git/ubuntu-kernel:bug-1939528/support-WCN6856/jammy

Last commit made on 2022-07-25
Get this branch:
git clone -b bug-1939528/support-WCN6856/jammy https://git.launchpad.net/~vicamo/+git/ubuntu-kernel
Only You-Sheng Yang can upload to this branch. If you are You-Sheng Yang please log in for upload directions.

Branch merges

Branch information

Name:
bug-1939528/support-WCN6856/jammy
Repository:
lp:~vicamo/+git/ubuntu-kernel

Recent commits

2349314... by You-Sheng Yang

Bug 1939528: support Qualcomm WCN6856

8a6ddf5... by Wen Gong <email address hidden>

UBUNTU: SAUCE: cfg80211: save power spectral density(psd) of regulatory rule

BugLink: https://bugs.launchpad.net/bugs/1939528

6 GHz regulatory domains introduces power spectral density(psd).
The power spectral density(psd) of regulatory rule should be take
effect to the channels. Save the values to the channel which has
psd value and add nl80211 attributes for it.

Signed-off-by: Wen Gong <email address hidden>
(cherry picked from
https://<email address hidden>/raw)
Signed-off-by: You-Sheng Yang <email address hidden>

b106396... by Wen Gong <email address hidden>

UBUNTU: SAUCE: cfg80211: add definition for 6 GHz power spectral density(psd)

BugLink: https://bugs.launchpad.net/bugs/1939528

6 GHz regulatory domains introduces power spectral density(psd). This
patch is define the flags for psd.

Signed-off-by: Wen Gong <email address hidden>
(backported from
https://<email address hidden>/raw)
Signed-off-by: You-Sheng Yang <email address hidden>

d4623f6... by Wen Gong <email address hidden>

ath11k: set correct NL80211_FEATURE_DYNAMIC_SMPS for WCN6855

BugLink: https://bugs.launchpad.net/bugs/1939528

Commit 6f4d70308e5e ("ath11k: support SMPS configuration for 6 GHz") changed
"if (ht_cap & WMI_HT_CAP_DYNAMIC_SMPS)" to "if (ht_cap &
WMI_HT_CAP_DYNAMIC_SMPS || ar->supports_6ghz)" which means
NL80211_FEATURE_DYNAMIC_SMPS is enabled for all chips which support 6 GHz.
However, WCN6855 supports 6 GHz but it does not support feature
NL80211_FEATURE_DYNAMIC_SMPS, and this can lead to MU-MIMO test failures for
WCN6855.

Disable NL80211_FEATURE_DYNAMIC_SMPS for WCN6855 since its ht_cap does not
support WMI_HT_CAP_DYNAMIC_SMPS. Enable the feature only on QCN9074 as that's
the only other device supporting 6 GHz band.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1

Signed-off-by: Wen Gong <email address hidden>
Signed-off-by: Jouni Malinen <email address hidden>
Signed-off-by: Kalle Valo <email address hidden>
Link: https://<email address hidden>
(backported from commit 82c434c103408842a87404e873992b7698b6df2b)
[fix member field addition in struct ath11k_hw_params]
Signed-off-by: You-Sheng Yang (vicamo) <email address hidden>

ff623a3... by Wen Gong <email address hidden>

mac80211: save transmit power envelope element and power constraint

BugLink: https://bugs.launchpad.net/bugs/1939528

This is to save the transmit power envelope element and power
constraint in struct ieee80211_bss_conf for 6 GHz. Lower driver
will use this info to calculate the power limit.

Signed-off-by: Wen Gong <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Johannes Berg <email address hidden>
(cherry picked from commit 63214f02cff9ebd57be00e143de12107c66f5394)
Signed-off-by: You-Sheng Yang <email address hidden>

cab2798... by Wen Gong <email address hidden>

mac80211: add parse regulatory info in 6 GHz operation information

BugLink: https://bugs.launchpad.net/bugs/1939528

This patch is to convert the regulatory info subfield in HE operation
element to power type and save in struct cfg80211_chan_def.

Signed-off-by: Wen Gong <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Johannes Berg <email address hidden>
(cherry picked from commit cb751b7a57e50d356ec8fc7712c245a05515e787)
Signed-off-by: You-Sheng Yang <email address hidden>

2d602d9... by Wen Gong <email address hidden>

ieee80211: add power type definition for 6 GHz

BugLink: https://bugs.launchpad.net/bugs/1939528

6 GHz regulatory domains introduces different modes for 6 GHz AP
operations: Low Power Indoor (LPI), Standard Power (SP) and Very
Low Power (VLP). 6 GHz STAs could be operated as either Regular or
Subordinate clients. Define the flags for power type
of AP and STATION mode.

Signed-off-by: Wen Gong <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Johannes Berg <email address hidden>
(cherry picked from commit 405fca8a946168e71c04b82cc80727c3ea686e08)
Signed-off-by: You-Sheng Yang <email address hidden>

657c6db... by Wen Gong <email address hidden>

mac80211: use ieee802_11_parse_elems() in ieee80211_prep_channel()

BugLink: https://bugs.launchpad.net/bugs/1939528

In function ieee80211_prep_channel(), it has some ieee80211_bss_get_ie()
and cfg80211_find_ext_ie() to get the IE, this is to use another
function ieee802_11_parse_elems() to get all the IEs in one time.

Signed-off-by: Wen Gong <email address hidden>
Link: https://<email address hidden>
[remove now unnecessary size validation, use -ENOMEM, free elems earlier
 for less error handling code]
Signed-off-by: Johannes Berg <email address hidden>
(cherry picked from commit 37123c3baaee4d6a189ad4abad804770d4a607e8)
Signed-off-by: You-Sheng Yang <email address hidden>

e06846d... by Johannes Berg

mac80211: always allocate struct ieee802_11_elems

BugLink: https://bugs.launchpad.net/bugs/1939528

As the 802.11 spec evolves, we need to parse more and more
elements. This is causing the struct to grow, and we can no
longer get away with putting it on the stack.

Change the API to always dynamically allocate and return an
allocated pointer that must be kfree()d later.

As an alternative, I contemplated a scheme whereby we'd say
in the code which elements we needed, e.g.

    DECLARE_ELEMENT_PARSER(elems,
                           SUPPORTED_CHANNELS,
                           CHANNEL_SWITCH,
                           EXT(KEY_DELIVERY));

    ieee802_11_parse_elems(..., &elems, ...);

and while I think this is possible and will save us a lot
since most individual places only care about a small subset
of the elements, it ended up being a bit more work since a
lot of places do the parsing and then pass the struct to
other functions, sometimes with multiple levels.

Link: https://lore.kernel.org/r/20210920154009.26caff6b5998.I05ae58768e990e611aee8eca8abefd9d7bc15e05@changeid
Signed-off-by: Johannes Berg <email address hidden>
(cherry picked from commit 5d24828d05f37ad770599de00b53d5386e35aa61)
Signed-off-by: You-Sheng Yang <email address hidden>

5b3284a... by Johannes Berg

mac80211: mlme: find auth challenge directly

BugLink: https://bugs.launchpad.net/bugs/1939528

There's no need to parse all elements etc. just to find the
authentication challenge - use cfg80211_find_elem() instead.
This also allows us to remove WLAN_EID_CHALLENGE handling
from the element parsing entirely.

Link: https://lore.kernel.org/r/20210920154009.45f9b3a15722.Ice3159ffad03a007d6154cbf1fb3a8c48489e86f@changeid
Signed-off-by: Johannes Berg <email address hidden>
(cherry picked from commit 49a765d6785e99157ff5091cc37485732496864e)
Signed-off-by: You-Sheng Yang <email address hidden>