wireless fixes for v6.14-rc3
We have only one fix for ath12k and one fix for brcmfmac. Also this will be my last pull request as I'm stepping down as wireless driver maintainer. -----BEGIN PGP SIGNATURE----- iQFFBAABCgAvFiEEiBjanGPFTz4PRfLobhckVSbrbZsFAmemULoRHGt2YWxvQGtl cm5lbC5vcmcACgkQbhckVSbrbZvFigf/fvP7ri+6cyE50Qvau9lQjmrvojQx6Wg4 Jp5kOfXNzyLrEp+SA49UdIEGKak/Speo99ntWvrGrXWSHvW76DzNq5c+XJqffhm6 s+uOcdHlqBRXzD9PuZ0NT75nlb0gBkqGyV6VUW90dwI/lyGNEAwUrbdUO7B8Kmty KW2hPQP4Zp5Sjm1ZGMKRmwt0qxZBrGKqCq7RqKYldO7PKOhKGfwhpViZxtceo5/2 NdyCVh6LeGP8Kjwo7cMfprNAcLQ2F5+Q9xtjid69TTrW77E9PVK73IGBb+pPwgAd AzdkNPMX3TwAm/NyAuMhMWXF9VzVzFIfboNgLiAlT2JSYNU7vMtqng== =54RU -----END PGP SIGNATURE----- Merge tag 'wireless-2025-02-07' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless Kalle Valo says: ==================== wireless fixes for v6.14-rc3 We have only one fix for ath12k and one fix for brcmfmac. Also this will be my last pull request as I'm stepping down as wireless driver maintainer. * tag 'wireless-2025-02-07' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless: MAINTAINERS: wifi: remove Kalle MAINTAINERS: wifi: ath: remove Kalle wifi: brcmfmac: use random seed flag for BCM4355 and BCM4364 firmware wifi: ath12k: fix handling of 6 GHz rules ==================== Link: https://patch.msgid.link/20250207182957.23315C4CED1@smtp.kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
17847ea6ce
10 changed files with 49 additions and 29 deletions
1
.mailmap
1
.mailmap
|
@ -376,6 +376,7 @@ Juha Yrjola <juha.yrjola@solidboot.com>
|
|||
Julien Thierry <julien.thierry.kdev@gmail.com> <julien.thierry@arm.com>
|
||||
Iskren Chernev <me@iskren.info> <iskren.chernev@gmail.com>
|
||||
Kalle Valo <kvalo@kernel.org> <kvalo@codeaurora.org>
|
||||
Kalle Valo <kvalo@kernel.org> <quic_kvalo@quicinc.com>
|
||||
Kalyan Thota <quic_kalyant@quicinc.com> <kalyan_t@codeaurora.org>
|
||||
Karthikeyan Periyasamy <quic_periyasa@quicinc.com> <periyasa@codeaurora.org>
|
||||
Kathiravan T <quic_kathirav@quicinc.com> <kathirav@codeaurora.org>
|
||||
|
|
|
@ -7,7 +7,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
title: Qualcomm Technologies ath10k wireless devices
|
||||
|
||||
maintainers:
|
||||
- Kalle Valo <kvalo@kernel.org>
|
||||
- Jeff Johnson <jjohnson@kernel.org>
|
||||
|
||||
description:
|
||||
|
|
|
@ -8,7 +8,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
title: Qualcomm Technologies ath11k wireless devices (PCIe)
|
||||
|
||||
maintainers:
|
||||
- Kalle Valo <kvalo@kernel.org>
|
||||
- Jeff Johnson <jjohnson@kernel.org>
|
||||
|
||||
description: |
|
||||
|
|
|
@ -8,7 +8,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
title: Qualcomm Technologies ath11k wireless devices
|
||||
|
||||
maintainers:
|
||||
- Kalle Valo <kvalo@kernel.org>
|
||||
- Jeff Johnson <jjohnson@kernel.org>
|
||||
|
||||
description: |
|
||||
|
|
|
@ -9,7 +9,6 @@ title: Qualcomm Technologies ath12k wireless devices (PCIe) with WSI interface
|
|||
|
||||
maintainers:
|
||||
- Jeff Johnson <jjohnson@kernel.org>
|
||||
- Kalle Valo <kvalo@kernel.org>
|
||||
|
||||
description: |
|
||||
Qualcomm Technologies IEEE 802.11be PCIe devices with WSI interface.
|
||||
|
|
|
@ -9,7 +9,6 @@ title: Qualcomm Technologies ath12k wireless devices (PCIe)
|
|||
|
||||
maintainers:
|
||||
- Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
- Kalle Valo <kvalo@kernel.org>
|
||||
|
||||
description:
|
||||
Qualcomm Technologies IEEE 802.11be PCIe devices.
|
||||
|
|
|
@ -3655,7 +3655,6 @@ F: Documentation/devicetree/bindings/phy/phy-ath79-usb.txt
|
|||
F: drivers/phy/qualcomm/phy-ath79-usb.c
|
||||
|
||||
ATHEROS ATH GENERIC UTILITIES
|
||||
M: Kalle Valo <kvalo@kernel.org>
|
||||
M: Jeff Johnson <jjohnson@kernel.org>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Supported
|
||||
|
@ -16438,7 +16437,7 @@ X: drivers/net/can/
|
|||
X: drivers/net/wireless/
|
||||
|
||||
NETWORKING DRIVERS (WIRELESS)
|
||||
M: Kalle Valo <kvalo@kernel.org>
|
||||
M: Johannes Berg <johannes@sipsolutions.net>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
|
@ -19355,7 +19354,6 @@ Q: http://patchwork.linuxtv.org/project/linux-media/list/
|
|||
F: drivers/media/tuners/qt1010*
|
||||
|
||||
QUALCOMM ATH12K WIRELESS DRIVER
|
||||
M: Kalle Valo <kvalo@kernel.org>
|
||||
M: Jeff Johnson <jjohnson@kernel.org>
|
||||
L: ath12k@lists.infradead.org
|
||||
S: Supported
|
||||
|
@ -19365,7 +19363,6 @@ F: drivers/net/wireless/ath/ath12k/
|
|||
N: ath12k
|
||||
|
||||
QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
|
||||
M: Kalle Valo <kvalo@kernel.org>
|
||||
M: Jeff Johnson <jjohnson@kernel.org>
|
||||
L: ath10k@lists.infradead.org
|
||||
S: Supported
|
||||
|
@ -19375,7 +19372,6 @@ F: drivers/net/wireless/ath/ath10k/
|
|||
N: ath10k
|
||||
|
||||
QUALCOMM ATHEROS ATH11K WIRELESS DRIVER
|
||||
M: Kalle Valo <kvalo@kernel.org>
|
||||
M: Jeff Johnson <jjohnson@kernel.org>
|
||||
L: ath11k@lists.infradead.org
|
||||
S: Supported
|
||||
|
|
|
@ -4851,6 +4851,22 @@ static struct ath12k_reg_rule
|
|||
return reg_rule_ptr;
|
||||
}
|
||||
|
||||
static u8 ath12k_wmi_ignore_num_extra_rules(struct ath12k_wmi_reg_rule_ext_params *rule,
|
||||
u32 num_reg_rules)
|
||||
{
|
||||
u8 num_invalid_5ghz_rules = 0;
|
||||
u32 count, start_freq;
|
||||
|
||||
for (count = 0; count < num_reg_rules; count++) {
|
||||
start_freq = le32_get_bits(rule[count].freq_info, REG_RULE_START_FREQ);
|
||||
|
||||
if (start_freq >= ATH12K_MIN_6G_FREQ)
|
||||
num_invalid_5ghz_rules++;
|
||||
}
|
||||
|
||||
return num_invalid_5ghz_rules;
|
||||
}
|
||||
|
||||
static int ath12k_pull_reg_chan_list_ext_update_ev(struct ath12k_base *ab,
|
||||
struct sk_buff *skb,
|
||||
struct ath12k_reg_info *reg_info)
|
||||
|
@ -4861,6 +4877,7 @@ static int ath12k_pull_reg_chan_list_ext_update_ev(struct ath12k_base *ab,
|
|||
u32 num_2g_reg_rules, num_5g_reg_rules;
|
||||
u32 num_6g_reg_rules_ap[WMI_REG_CURRENT_MAX_AP_TYPE];
|
||||
u32 num_6g_reg_rules_cl[WMI_REG_CURRENT_MAX_AP_TYPE][WMI_REG_MAX_CLIENT_TYPE];
|
||||
u8 num_invalid_5ghz_ext_rules;
|
||||
u32 total_reg_rules = 0;
|
||||
int ret, i, j;
|
||||
|
||||
|
@ -4954,20 +4971,6 @@ static int ath12k_pull_reg_chan_list_ext_update_ev(struct ath12k_base *ab,
|
|||
|
||||
memcpy(reg_info->alpha2, &ev->alpha2, REG_ALPHA2_LEN);
|
||||
|
||||
/* FIXME: Currently FW includes 6G reg rule also in 5G rule
|
||||
* list for country US.
|
||||
* Having same 6G reg rule in 5G and 6G rules list causes
|
||||
* intersect check to be true, and same rules will be shown
|
||||
* multiple times in iw cmd. So added hack below to avoid
|
||||
* parsing 6G rule from 5G reg rule list, and this can be
|
||||
* removed later, after FW updates to remove 6G reg rule
|
||||
* from 5G rules list.
|
||||
*/
|
||||
if (memcmp(reg_info->alpha2, "US", 2) == 0) {
|
||||
reg_info->num_5g_reg_rules = REG_US_5G_NUM_REG_RULES;
|
||||
num_5g_reg_rules = reg_info->num_5g_reg_rules;
|
||||
}
|
||||
|
||||
reg_info->dfs_region = le32_to_cpu(ev->dfs_region);
|
||||
reg_info->phybitmap = le32_to_cpu(ev->phybitmap);
|
||||
reg_info->num_phy = le32_to_cpu(ev->num_phy);
|
||||
|
@ -5070,8 +5073,29 @@ static int ath12k_pull_reg_chan_list_ext_update_ev(struct ath12k_base *ab,
|
|||
}
|
||||
}
|
||||
|
||||
ext_wmi_reg_rule += num_2g_reg_rules;
|
||||
|
||||
/* Firmware might include 6 GHz reg rule in 5 GHz rule list
|
||||
* for few countries along with separate 6 GHz rule.
|
||||
* Having same 6 GHz reg rule in 5 GHz and 6 GHz rules list
|
||||
* causes intersect check to be true, and same rules will be
|
||||
* shown multiple times in iw cmd.
|
||||
* Hence, avoid parsing 6 GHz rule from 5 GHz reg rule list
|
||||
*/
|
||||
num_invalid_5ghz_ext_rules = ath12k_wmi_ignore_num_extra_rules(ext_wmi_reg_rule,
|
||||
num_5g_reg_rules);
|
||||
|
||||
if (num_invalid_5ghz_ext_rules) {
|
||||
ath12k_dbg(ab, ATH12K_DBG_WMI,
|
||||
"CC: %s 5 GHz reg rules number %d from fw, %d number of invalid 5 GHz rules",
|
||||
reg_info->alpha2, reg_info->num_5g_reg_rules,
|
||||
num_invalid_5ghz_ext_rules);
|
||||
|
||||
num_5g_reg_rules = num_5g_reg_rules - num_invalid_5ghz_ext_rules;
|
||||
reg_info->num_5g_reg_rules = num_5g_reg_rules;
|
||||
}
|
||||
|
||||
if (num_5g_reg_rules) {
|
||||
ext_wmi_reg_rule += num_2g_reg_rules;
|
||||
reg_info->reg_rules_5g_ptr =
|
||||
create_ext_reg_rules_from_wmi(num_5g_reg_rules,
|
||||
ext_wmi_reg_rule);
|
||||
|
@ -5083,7 +5107,12 @@ static int ath12k_pull_reg_chan_list_ext_update_ev(struct ath12k_base *ab,
|
|||
}
|
||||
}
|
||||
|
||||
ext_wmi_reg_rule += num_5g_reg_rules;
|
||||
/* We have adjusted the number of 5 GHz reg rules above. But still those
|
||||
* many rules needs to be adjusted in ext_wmi_reg_rule.
|
||||
*
|
||||
* NOTE: num_invalid_5ghz_ext_rules will be 0 for rest other cases.
|
||||
*/
|
||||
ext_wmi_reg_rule += (num_5g_reg_rules + num_invalid_5ghz_ext_rules);
|
||||
|
||||
for (i = 0; i < WMI_REG_CURRENT_MAX_AP_TYPE; i++) {
|
||||
reg_info->reg_rules_6g_ap_ptr[i] =
|
||||
|
|
|
@ -4073,7 +4073,6 @@ struct ath12k_wmi_eht_rate_set_params {
|
|||
#define MAX_REG_RULES 10
|
||||
#define REG_ALPHA2_LEN 2
|
||||
#define MAX_6G_REG_RULES 5
|
||||
#define REG_US_5G_NUM_REG_RULES 4
|
||||
|
||||
enum wmi_start_event_param {
|
||||
WMI_VDEV_START_RESP_EVENT = 0,
|
||||
|
|
|
@ -2712,7 +2712,7 @@ static const struct pci_device_id brcmf_pcie_devid_table[] = {
|
|||
BRCMF_PCIE_DEVICE(BRCM_PCIE_4350_DEVICE_ID, WCC),
|
||||
BRCMF_PCIE_DEVICE_SUB(0x4355, BRCM_PCIE_VENDOR_ID_BROADCOM, 0x4355, WCC),
|
||||
BRCMF_PCIE_DEVICE(BRCM_PCIE_4354_RAW_DEVICE_ID, WCC),
|
||||
BRCMF_PCIE_DEVICE(BRCM_PCIE_4355_DEVICE_ID, WCC),
|
||||
BRCMF_PCIE_DEVICE(BRCM_PCIE_4355_DEVICE_ID, WCC_SEED),
|
||||
BRCMF_PCIE_DEVICE(BRCM_PCIE_4356_DEVICE_ID, WCC),
|
||||
BRCMF_PCIE_DEVICE(BRCM_PCIE_43567_DEVICE_ID, WCC),
|
||||
BRCMF_PCIE_DEVICE(BRCM_PCIE_43570_DEVICE_ID, WCC),
|
||||
|
@ -2723,7 +2723,7 @@ static const struct pci_device_id brcmf_pcie_devid_table[] = {
|
|||
BRCMF_PCIE_DEVICE(BRCM_PCIE_43602_2G_DEVICE_ID, WCC),
|
||||
BRCMF_PCIE_DEVICE(BRCM_PCIE_43602_5G_DEVICE_ID, WCC),
|
||||
BRCMF_PCIE_DEVICE(BRCM_PCIE_43602_RAW_DEVICE_ID, WCC),
|
||||
BRCMF_PCIE_DEVICE(BRCM_PCIE_4364_DEVICE_ID, WCC),
|
||||
BRCMF_PCIE_DEVICE(BRCM_PCIE_4364_DEVICE_ID, WCC_SEED),
|
||||
BRCMF_PCIE_DEVICE(BRCM_PCIE_4365_DEVICE_ID, BCA),
|
||||
BRCMF_PCIE_DEVICE(BRCM_PCIE_4365_2G_DEVICE_ID, BCA),
|
||||
BRCMF_PCIE_DEVICE(BRCM_PCIE_4365_5G_DEVICE_ID, BCA),
|
||||
|
|
Loading…
Add table
Reference in a new issue