Skip to content

Commit f43f0cd

Browse files
committed
Merge tag 'wireless-next-2022-05-03' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
Kalle Valo says: ==================== wireless-next patches for v5.19 First set of patches for v5.19 and this is a big one. We have two new drivers, a change in mac80211 STA API affecting most drivers and ath11k getting support for WCN6750. And as usual lots of fixes and cleanups all over. Major changes: new drivers - wfx: silicon labs devices - plfxlc: pureLiFi X, XL, XC devices mac80211 - host based BSS color collision detection - prepare sta handling for IEEE 802.11be Multi-Link Operation (MLO) support rtw88 - support TP-Link T2E devices rtw89 - support firmware crash simulation - preparation for 8852ce hardware support ath11k - Wake-on-WLAN support for QCA6390 and WCN6855 - device recovery (firmware restart) support for QCA6390 and WCN6855 - support setting Specific Absorption Rate (SAR) for WCN6855 - read country code from SMBIOS for WCN6855/QCA6390 - support for WCN6750 wcn36xx - support for transmit rate reporting to user space * tag 'wireless-next-2022-05-03' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next: (228 commits) rtw89: 8852c: rfk: add DPK rtw89: 8852c: rfk: add IQK rtw89: 8852c: rfk: add RX DCK rtw89: 8852c: rfk: add RCK rtw89: 8852c: rfk: add TSSI rtw89: 8852c: rfk: add LCK rtw89: 8852c: rfk: add DACK rtw89: 8852c: rfk: add RFK tables plfxlc: fix le16_to_cpu warning for beacon_interval rtw88: remove a copy of the NAPI_POLL_WEIGHT define carl9170: tx: fix an incorrect use of list iterator wil6210: use NAPI_POLL_WEIGHT for napi budget ath10k: remove a copy of the NAPI_POLL_WEIGHT define ath11k: Add support for WCN6750 device ath11k: Datapath changes to support WCN6750 ath11k: HAL changes to support WCN6750 ath11k: Add QMI changes for WCN6750 ath11k: Fetch device information via QMI for WCN6750 ath11k: Add register access logic for WCN6750 ath11k: Add HW params for WCN6750 ... ==================== Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents 58caed3 + f39af96 commit f43f0cd

File tree

298 files changed

+43484
-4104
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

298 files changed

+43484
-4104
lines changed

Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml

Lines changed: 252 additions & 109 deletions
Large diffs are not rendered by default.

Documentation/devicetree/bindings/staging/net/wireless/silabs,wfx.yaml renamed to Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
%YAML 1.2
44
---
55

6-
$id: http://devicetree.org/schemas/staging/net/wireless/silabs,wfx.yaml#
6+
$id: http://devicetree.org/schemas/net/wireless/silabs,wfx.yaml#
77
$schema: http://devicetree.org/meta-schemas/core.yaml#
88

99
title: Silicon Labs WFxxx devicetree bindings

MAINTAINERS

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15989,6 +15989,12 @@ T: git git://linuxtv.org/media_tree.git
1598915989
F: Documentation/admin-guide/media/pulse8-cec.rst
1599015990
F: drivers/media/cec/usb/pulse8/
1599115991

15992+
PURELIFI PLFXLC DRIVER
15993+
M: Srinivasan Raju <[email protected]>
15994+
15995+
S: Supported
15996+
F: drivers/net/wireless/purelifi/plfxlc/
15997+
1599215998
PVRUSB2 VIDEO4LINUX DRIVER
1599315999
M: Mike Isely <[email protected]>
1599416000
L: [email protected] (subscribers-only)
@@ -17997,8 +18003,8 @@ F: drivers/platform/x86/touchscreen_dmi.c
1799718003
SILICON LABS WIRELESS DRIVERS (for WFxxx series)
1799818004
M: Jérôme Pouiller <[email protected]>
1799918005
S: Supported
18000-
F: Documentation/devicetree/bindings/staging/net/wireless/silabs,wfx.yaml
18001-
F: drivers/staging/wfx/
18006+
F: Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml
18007+
F: drivers/net/wireless/silabs/wfx/
1800218008

1800318009
SILICON MOTION SM712 FRAME BUFFER DRIVER
1800418010
M: Sudip Mukherjee <[email protected]>

drivers/net/wireless/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,11 @@ source "drivers/net/wireless/intersil/Kconfig"
2828
source "drivers/net/wireless/marvell/Kconfig"
2929
source "drivers/net/wireless/mediatek/Kconfig"
3030
source "drivers/net/wireless/microchip/Kconfig"
31+
source "drivers/net/wireless/purelifi/Kconfig"
3132
source "drivers/net/wireless/ralink/Kconfig"
3233
source "drivers/net/wireless/realtek/Kconfig"
3334
source "drivers/net/wireless/rsi/Kconfig"
35+
source "drivers/net/wireless/silabs/Kconfig"
3436
source "drivers/net/wireless/st/Kconfig"
3537
source "drivers/net/wireless/ti/Kconfig"
3638
source "drivers/net/wireless/zydas/Kconfig"

drivers/net/wireless/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@ obj-$(CONFIG_WLAN_VENDOR_INTERSIL) += intersil/
1313
obj-$(CONFIG_WLAN_VENDOR_MARVELL) += marvell/
1414
obj-$(CONFIG_WLAN_VENDOR_MEDIATEK) += mediatek/
1515
obj-$(CONFIG_WLAN_VENDOR_MICROCHIP) += microchip/
16+
obj-$(CONFIG_WLAN_VENDOR_PURELIFI) += purelifi/
1617
obj-$(CONFIG_WLAN_VENDOR_RALINK) += ralink/
1718
obj-$(CONFIG_WLAN_VENDOR_REALTEK) += realtek/
1819
obj-$(CONFIG_WLAN_VENDOR_RSI) += rsi/
20+
obj-$(CONFIG_WLAN_VENDOR_SILABS) += silabs/
1921
obj-$(CONFIG_WLAN_VENDOR_ST) += st/
2022
obj-$(CONFIG_WLAN_VENDOR_TI) += ti/
2123
obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/

drivers/net/wireless/ath/ar5523/ar5523.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1160,7 +1160,7 @@ static int ar5523_get_wlan_mode(struct ar5523 *ar,
11601160
ar5523_info(ar, "STA not found!\n");
11611161
return WLAN_MODE_11b;
11621162
}
1163-
sta_rate_set = sta->supp_rates[ar->hw->conf.chandef.chan->band];
1163+
sta_rate_set = sta->deflink.supp_rates[ar->hw->conf.chandef.chan->band];
11641164

11651165
for (bit = 0; bit < band->n_bitrates; bit++) {
11661166
if (sta_rate_set & 1) {
@@ -1198,7 +1198,7 @@ static void ar5523_create_rateset(struct ar5523 *ar,
11981198
ar5523_info(ar, "STA not found. Cannot set rates\n");
11991199
sta_rate_set = bss_conf->basic_rates;
12001200
} else
1201-
sta_rate_set = sta->supp_rates[ar->hw->conf.chandef.chan->band];
1201+
sta_rate_set = sta->deflink.supp_rates[ar->hw->conf.chandef.chan->band];
12021202

12031203
ar5523_dbg(ar, "sta rate_set = %08x\n", sta_rate_set);
12041204

drivers/net/wireless/ath/ath10k/ahb.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -728,20 +728,17 @@ static int ath10k_ahb_probe(struct platform_device *pdev)
728728
struct ath10k *ar;
729729
struct ath10k_ahb *ar_ahb;
730730
struct ath10k_pci *ar_pci;
731-
const struct of_device_id *of_id;
732731
enum ath10k_hw_rev hw_rev;
733732
size_t size;
734733
int ret;
735734
struct ath10k_bus_params bus_params = {};
736735

737-
of_id = of_match_device(ath10k_ahb_of_match, &pdev->dev);
738-
if (!of_id) {
739-
dev_err(&pdev->dev, "failed to find matching device tree id\n");
736+
hw_rev = (enum ath10k_hw_rev)of_device_get_match_data(&pdev->dev);
737+
if (!hw_rev) {
738+
dev_err(&pdev->dev, "OF data missing\n");
740739
return -EINVAL;
741740
}
742741

743-
hw_rev = (enum ath10k_hw_rev)of_id->data;
744-
745742
size = sizeof(*ar_pci) + sizeof(*ar_ahb);
746743
ar = ath10k_core_create(size, &pdev->dev, ATH10K_BUS_AHB,
747744
hw_rev, &ath10k_ahb_hif_ops);

drivers/net/wireless/ath/ath10k/core.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
9494
.credit_size_workaround = false,
9595
.tx_stats_over_pktlog = true,
9696
.dynamic_sar_support = false,
97+
.hw_restart_disconnect = false,
9798
},
9899
{
99100
.id = QCA988X_HW_2_0_VERSION,
@@ -131,6 +132,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
131132
.credit_size_workaround = false,
132133
.tx_stats_over_pktlog = true,
133134
.dynamic_sar_support = false,
135+
.hw_restart_disconnect = false,
134136
},
135137
{
136138
.id = QCA9887_HW_1_0_VERSION,
@@ -169,6 +171,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
169171
.credit_size_workaround = false,
170172
.tx_stats_over_pktlog = false,
171173
.dynamic_sar_support = false,
174+
.hw_restart_disconnect = false,
172175
},
173176
{
174177
.id = QCA6174_HW_3_2_VERSION,
@@ -202,6 +205,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
202205
.bmi_large_size_download = true,
203206
.supports_peer_stats_info = true,
204207
.dynamic_sar_support = true,
208+
.hw_restart_disconnect = false,
205209
},
206210
{
207211
.id = QCA6174_HW_2_1_VERSION,
@@ -239,6 +243,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
239243
.credit_size_workaround = false,
240244
.tx_stats_over_pktlog = false,
241245
.dynamic_sar_support = false,
246+
.hw_restart_disconnect = false,
242247
},
243248
{
244249
.id = QCA6174_HW_2_1_VERSION,
@@ -276,6 +281,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
276281
.credit_size_workaround = false,
277282
.tx_stats_over_pktlog = false,
278283
.dynamic_sar_support = false,
284+
.hw_restart_disconnect = false,
279285
},
280286
{
281287
.id = QCA6174_HW_3_0_VERSION,
@@ -313,6 +319,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
313319
.credit_size_workaround = false,
314320
.tx_stats_over_pktlog = false,
315321
.dynamic_sar_support = false,
322+
.hw_restart_disconnect = false,
316323
},
317324
{
318325
.id = QCA6174_HW_3_2_VERSION,
@@ -354,6 +361,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
354361
.tx_stats_over_pktlog = false,
355362
.supports_peer_stats_info = true,
356363
.dynamic_sar_support = true,
364+
.hw_restart_disconnect = false,
357365
},
358366
{
359367
.id = QCA99X0_HW_2_0_DEV_VERSION,
@@ -397,6 +405,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
397405
.credit_size_workaround = false,
398406
.tx_stats_over_pktlog = false,
399407
.dynamic_sar_support = false,
408+
.hw_restart_disconnect = false,
400409
},
401410
{
402411
.id = QCA9984_HW_1_0_DEV_VERSION,
@@ -447,6 +456,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
447456
.credit_size_workaround = false,
448457
.tx_stats_over_pktlog = false,
449458
.dynamic_sar_support = false,
459+
.hw_restart_disconnect = false,
450460
},
451461
{
452462
.id = QCA9888_HW_2_0_DEV_VERSION,
@@ -494,6 +504,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
494504
.credit_size_workaround = false,
495505
.tx_stats_over_pktlog = false,
496506
.dynamic_sar_support = false,
507+
.hw_restart_disconnect = false,
497508
},
498509
{
499510
.id = QCA9377_HW_1_0_DEV_VERSION,
@@ -531,6 +542,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
531542
.credit_size_workaround = false,
532543
.tx_stats_over_pktlog = false,
533544
.dynamic_sar_support = false,
545+
.hw_restart_disconnect = false,
534546
},
535547
{
536548
.id = QCA9377_HW_1_1_DEV_VERSION,
@@ -570,6 +582,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
570582
.credit_size_workaround = false,
571583
.tx_stats_over_pktlog = false,
572584
.dynamic_sar_support = false,
585+
.hw_restart_disconnect = false,
573586
},
574587
{
575588
.id = QCA9377_HW_1_1_DEV_VERSION,
@@ -600,6 +613,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
600613
.uart_pin_workaround = true,
601614
.credit_size_workaround = true,
602615
.dynamic_sar_support = false,
616+
.hw_restart_disconnect = false,
603617
},
604618
{
605619
.id = QCA4019_HW_1_0_DEV_VERSION,
@@ -644,6 +658,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
644658
.credit_size_workaround = false,
645659
.tx_stats_over_pktlog = false,
646660
.dynamic_sar_support = false,
661+
.hw_restart_disconnect = false,
647662
},
648663
{
649664
.id = WCN3990_HW_1_0_DEV_VERSION,
@@ -674,6 +689,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
674689
.credit_size_workaround = false,
675690
.tx_stats_over_pktlog = false,
676691
.dynamic_sar_support = true,
692+
.hw_restart_disconnect = true,
677693
},
678694
};
679695

@@ -2442,6 +2458,7 @@ EXPORT_SYMBOL(ath10k_core_napi_sync_disable);
24422458
static void ath10k_core_restart(struct work_struct *work)
24432459
{
24442460
struct ath10k *ar = container_of(work, struct ath10k, restart_work);
2461+
struct ath10k_vif *arvif;
24452462
int ret;
24462463

24472464
set_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags);
@@ -2480,6 +2497,14 @@ static void ath10k_core_restart(struct work_struct *work)
24802497
ar->state = ATH10K_STATE_RESTARTING;
24812498
ath10k_halt(ar);
24822499
ath10k_scan_finish(ar);
2500+
if (ar->hw_params.hw_restart_disconnect) {
2501+
list_for_each_entry(arvif, &ar->arvifs, list) {
2502+
if (arvif->is_up &&
2503+
arvif->vdev_type == WMI_VDEV_TYPE_STA)
2504+
ieee80211_hw_restart_disconnect(arvif->vif);
2505+
}
2506+
}
2507+
24832508
ieee80211_restart_hw(ar->hw);
24842509
break;
24852510
case ATH10K_STATE_OFF:

drivers/net/wireless/ath/ath10k/core.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,6 @@
5959
#define ATH10K_KEEPALIVE_MAX_IDLE 3895
6060
#define ATH10K_KEEPALIVE_MAX_UNRESPONSIVE 3900
6161

62-
/* NAPI poll budget */
63-
#define ATH10K_NAPI_BUDGET 64
64-
6562
/* SMBIOS type containing Board Data File Name Extension */
6663
#define ATH10K_SMBIOS_BDF_EXT_TYPE 0xF8
6764

drivers/net/wireless/ath/ath10k/hw.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -633,6 +633,8 @@ struct ath10k_hw_params {
633633
bool supports_peer_stats_info;
634634

635635
bool dynamic_sar_support;
636+
637+
bool hw_restart_disconnect;
636638
};
637639

638640
struct htt_resp;

0 commit comments

Comments
 (0)