Skip to content

Commit 8010469

Browse files
committed
Merge: Wireless core and drivers rebase to v6.15
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/6948 JIRA: https://issues.redhat.com/browse/RHEL-89168 ARK MR: cki-project/kernel-ark!3897 Tested: basic testing with several supported WiFi cards (Intel, Qualcomm, Mediatek and Realtek). Wireless core and drivers update to v6.15. MHI will be updated in a separate way. Upstream status: linux.git Not necessary because SKB_DROP_REASON_SUBSYS_OPENVSWITCH is still the same: Omitted-fix: 1cc3462 selftests: openvswitch: don't hardcode the drop reason subsys Commented fix was already included: Omitted-fix: 175e69e wifi: iwlwifi: restore missing initialization of async_handlers_list Not important fixes (postponed): Omitted-fix: 9a353a4 wifi: ath12k: avoid burning CPU while waiting for firmware stats Omitted-fix: ac7b8ff wifi: ath12k: don't use static variables in ath12k_wmi_fw_stats_process() Omitted-fix: ad5e917 wifi: ath12k: don't wait when there is no vdev started Omitted-fix: 54c3500 wifi: ath12k: Fix double budget decrement while reaping monitor ring Fixes for AP capabilities (postponed): Omitted-fix: 64cbf0d wifi: mt76: mt7996: Fix possible OOB access in mt7996_tx() Omitted-fix: a0c5eac wifi: mt76: Assume __mt76_connac_mcu_alloc_sta_req runs in atomic context Omitted-fix: c772cd7 wifi: mt76: Move RCU section in mt7996_mcu_set_fixed_field() Omitted-fix: 28d519d wifi: mt76: Move RCU section in mt7996_mcu_add_rate_ctrl_fixed() Omitted-fix: 3dd6f67 wifi: mt76: Move RCU section in mt7996_mcu_add_rate_ctrl() Omitted-fix: 7153257 wifi: mt76: Remove RCU section in mt7996_mac_sta_rc_work() Omitted-fix: e8d7eef wifi: mt76: mt7996: Fix secondary link lookup in mt7996_mcu_sta_mld_setup_tlv() Omitted-fix: a59650a wifi: mt76: mt7996: Fix valid_links bitmask in mt7996_mac_sta_{add,remove} Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com> Approved-by: Jan Stancek <jstancek@redhat.com> Approved-by: Davide Caratti <dcaratti@redhat.com> Approved-by: mheib <mheib@redhat.com> Approved-by: Michal Schmidt <mschmidt@redhat.com> Approved-by: CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> Merged-by: Augusto Caringi <acaringi@redhat.com>
2 parents 6f28e8a + 544c87f commit 8010469

File tree

364 files changed

+74540
-7103
lines changed

Some content is hidden

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

364 files changed

+74540
-7103
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/net/rfkill-gpio.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: GPIO controlled rfkill switch
8+
9+
maintainers:
10+
- Johannes Berg <johannes@sipsolutions.net>
11+
- Philipp Zabel <p.zabel@pengutronix.de>
12+
13+
properties:
14+
compatible:
15+
const: rfkill-gpio
16+
17+
label:
18+
description: rfkill switch name, defaults to node name
19+
20+
radio-type:
21+
description: rfkill radio type
22+
enum:
23+
- bluetooth
24+
- fm
25+
- gps
26+
- nfc
27+
- ultrawideband
28+
- wimax
29+
- wlan
30+
- wwan
31+
32+
shutdown-gpios:
33+
maxItems: 1
34+
35+
default-blocked:
36+
$ref: /schemas/types.yaml#/definitions/flag
37+
description: configure rfkill state as blocked at boot
38+
39+
required:
40+
- compatible
41+
- radio-type
42+
- shutdown-gpios
43+
44+
additionalProperties: false
45+
46+
examples:
47+
- |
48+
#include <dt-bindings/gpio/gpio.h>
49+
50+
rfkill {
51+
compatible = "rfkill-gpio";
52+
label = "rfkill-pcie-wlan";
53+
radio-type = "wlan";
54+
shutdown-gpios = <&gpio2 25 GPIO_ACTIVE_HIGH>;
55+
default-blocked;
56+
};

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,20 +93,41 @@ properties:
9393

9494
ieee80211-freq-limit: true
9595

96+
qcom,calibration-data:
97+
$ref: /schemas/types.yaml#/definitions/uint8-array
98+
description:
99+
Calibration data + board-specific data as a byte array. The length
100+
can vary between hardware versions.
101+
96102
qcom,ath10k-calibration-data:
97103
$ref: /schemas/types.yaml#/definitions/uint8-array
104+
deprecated: true
98105
description:
99106
Calibration data + board-specific data as a byte array. The length
100107
can vary between hardware versions.
101108

109+
qcom,calibration-variant:
110+
$ref: /schemas/types.yaml#/definitions/string
111+
description:
112+
Unique variant identifier of the calibration data in board-2.bin
113+
for designs with colliding bus and device specific ids
114+
102115
qcom,ath10k-calibration-variant:
103116
$ref: /schemas/types.yaml#/definitions/string
117+
deprecated: true
104118
description:
105119
Unique variant identifier of the calibration data in board-2.bin
106120
for designs with colliding bus and device specific ids
107121

122+
qcom,pre-calibration-data:
123+
$ref: /schemas/types.yaml#/definitions/uint8-array
124+
description:
125+
Pre-calibration data as a byte array. The length can vary between
126+
hardware versions.
127+
108128
qcom,ath10k-pre-calibration-data:
109129
$ref: /schemas/types.yaml#/definitions/uint8-array
130+
deprecated: true
110131
description:
111132
Pre-calibration data as a byte array. The length can vary between
112133
hardware versions.

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

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,15 @@ properties:
2323
reg:
2424
maxItems: 1
2525

26+
qcom,calibration-variant:
27+
$ref: /schemas/types.yaml#/definitions/string
28+
description: |
29+
string to uniquely identify variant of the calibration data for designs
30+
with colliding bus and device ids
31+
2632
qcom,ath11k-calibration-variant:
2733
$ref: /schemas/types.yaml#/definitions/string
34+
deprecated: true
2835
description: |
2936
string to uniquely identify variant of the calibration data for designs
3037
with colliding bus and device ids
@@ -50,6 +57,9 @@ properties:
5057
vddrfa1p7-supply:
5158
description: VDD_RFA_1P7 supply regulator handle
5259

60+
vddrfa1p8-supply:
61+
description: VDD_RFA_1P8 supply regulator handle
62+
5363
vddpcie0p9-supply:
5464
description: VDD_PCIE_0P9 supply regulator handle
5565

@@ -77,6 +87,22 @@ allOf:
7787
- vddrfa1p7-supply
7888
- vddpcie0p9-supply
7989
- vddpcie1p8-supply
90+
- if:
91+
properties:
92+
compatible:
93+
contains:
94+
const: pci17cb,1103
95+
then:
96+
required:
97+
- vddrfacmn-supply
98+
- vddaon-supply
99+
- vddwlcx-supply
100+
- vddwlmx-supply
101+
- vddrfa0p8-supply
102+
- vddrfa1p2-supply
103+
- vddrfa1p8-supply
104+
- vddpcie0p9-supply
105+
- vddpcie1p8-supply
80106

81107
additionalProperties: false
82108

@@ -99,7 +125,17 @@ examples:
99125
compatible = "pci17cb,1103";
100126
reg = <0x10000 0x0 0x0 0x0 0x0>;
101127
102-
qcom,ath11k-calibration-variant = "LE_X13S";
128+
vddrfacmn-supply = <&vreg_pmu_rfa_cmn_0p8>;
129+
vddaon-supply = <&vreg_pmu_aon_0p8>;
130+
vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
131+
vddwlmx-supply = <&vreg_pmu_wlmx_0p8>;
132+
vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
133+
vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
134+
vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
135+
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
136+
vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
137+
138+
qcom,calibration-variant = "LE_X13S";
103139
};
104140
};
105141
};

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,15 @@ properties:
4242
* reg
4343
* reg-names
4444

45+
qcom,calibration-variant:
46+
$ref: /schemas/types.yaml#/definitions/string
47+
description:
48+
string to uniquely identify variant of the calibration data in the
49+
board-2.bin for designs with colliding bus and device specific ids
50+
4551
qcom,ath11k-calibration-variant:
4652
$ref: /schemas/types.yaml#/definitions/string
53+
deprecated: true
4754
description:
4855
string to uniquely identify variant of the calibration data in the
4956
board-2.bin for designs with colliding bus and device specific ids

Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,15 @@ properties:
5353
reg:
5454
maxItems: 1
5555

56+
qcom,calibration-variant:
57+
$ref: /schemas/types.yaml#/definitions/string
58+
description:
59+
String to uniquely identify variant of the calibration data for designs
60+
with colliding bus and device ids
61+
5662
qcom,ath12k-calibration-variant:
5763
$ref: /schemas/types.yaml#/definitions/string
64+
deprecated: true
5865
description:
5966
String to uniquely identify variant of the calibration data for designs
6067
with colliding bus and device ids
@@ -104,7 +111,7 @@ examples:
104111
compatible = "pci17cb,1109";
105112
reg = <0x0 0x0 0x0 0x0 0x0>;
106113
107-
qcom,ath12k-calibration-variant = "RDP433_1";
114+
qcom,calibration-variant = "RDP433_1";
108115
109116
ports {
110117
#address-cells = <1>;
@@ -140,7 +147,7 @@ examples:
140147
compatible = "pci17cb,1109";
141148
reg = <0x0 0x0 0x0 0x0 0x0>;
142149
143-
qcom,ath12k-calibration-variant = "RDP433_2";
150+
qcom,calibration-variant = "RDP433_2";
144151
qcom,wsi-controller;
145152
146153
ports {
@@ -177,7 +184,7 @@ examples:
177184
compatible = "pci17cb,1109";
178185
reg = <0x0 0x0 0x0 0x0 0x0>;
179186
180-
qcom,ath12k-calibration-variant = "RDP433_3";
187+
qcom,calibration-variant = "RDP433_3";
181188
182189
ports {
183190
#address-cells = <1>;

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

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1163,8 +1163,11 @@ int ath10k_core_check_dt(struct ath10k *ar)
11631163
if (!node)
11641164
return -ENOENT;
11651165

1166-
of_property_read_string(node, "qcom,ath10k-calibration-variant",
1166+
of_property_read_string(node, "qcom,calibration-variant",
11671167
&variant);
1168+
if (!variant)
1169+
of_property_read_string(node, "qcom,ath10k-calibration-variant",
1170+
&variant);
11681171
if (!variant)
11691172
return -ENODATA;
11701173

@@ -2259,7 +2262,9 @@ static int ath10k_core_pre_cal_download(struct ath10k *ar)
22592262
"boot did not find a pre calibration file, try DT next: %d\n",
22602263
ret);
22612264

2262-
ret = ath10k_download_cal_dt(ar, "qcom,ath10k-pre-calibration-data");
2265+
ret = ath10k_download_cal_dt(ar, "qcom,pre-calibration-data");
2266+
if (ret == -ENOENT)
2267+
ret = ath10k_download_cal_dt(ar, "qcom,ath10k-pre-calibration-data");
22632268
if (ret) {
22642269
ath10k_dbg(ar, ATH10K_DBG_BOOT,
22652270
"unable to load pre cal data from DT: %d\n", ret);
@@ -2337,7 +2342,9 @@ static int ath10k_download_cal_data(struct ath10k *ar)
23372342
"boot did not find a calibration file, try DT next: %d\n",
23382343
ret);
23392344

2340-
ret = ath10k_download_cal_dt(ar, "qcom,ath10k-calibration-data");
2345+
ret = ath10k_download_cal_dt(ar, "qcom,calibration-data");
2346+
if (ret == -ENOENT)
2347+
ret = ath10k_download_cal_dt(ar, "qcom,ath10k-calibration-data");
23412348
if (ret == 0) {
23422349
ar->cal_mode = ATH10K_CAL_MODE_DT;
23432350
goto done;

drivers/net/wireless/ath/ath11k/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ ath11k-$(CONFIG_ATH11K_TRACING) += trace.o
2727
ath11k-$(CONFIG_THERMAL) += thermal.o
2828
ath11k-$(CONFIG_ATH11K_SPECTRAL) += spectral.o
2929
ath11k-$(CONFIG_PM) += wow.o
30+
ath11k-$(CONFIG_DEV_COREDUMP) += coredump.o
3031

3132
obj-$(CONFIG_ATH11K_AHB) += ath11k_ahb.o
3233
ath11k_ahb-y += ahb.o

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// SPDX-License-Identifier: BSD-3-Clause-Clear
22
/*
33
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
4-
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
4+
* Copyright (c) 2022-2025 Qualcomm Innovation Center, Inc. All rights reserved.
55
*/
66

77
#include <linux/module.h>
@@ -1290,6 +1290,7 @@ static void ath11k_ahb_remove(struct platform_device *pdev)
12901290
ath11k_core_deinit(ab);
12911291

12921292
qmi_fail:
1293+
ath11k_fw_destroy(ab);
12931294
ath11k_ahb_free_resources(ab);
12941295
}
12951296

@@ -1309,6 +1310,7 @@ static void ath11k_ahb_shutdown(struct platform_device *pdev)
13091310
ath11k_core_deinit(ab);
13101311

13111312
free_resources:
1313+
ath11k_fw_destroy(ab);
13121314
ath11k_ahb_free_resources(ab);
13131315
}
13141316

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// SPDX-License-Identifier: BSD-3-Clause-Clear
22
/*
33
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
4-
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
4+
* Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
55
*/
66

77
#include <linux/module.h>
@@ -1175,8 +1175,11 @@ int ath11k_core_check_dt(struct ath11k_base *ab)
11751175
if (!node)
11761176
return -ENOENT;
11771177

1178-
of_property_read_string(node, "qcom,ath11k-calibration-variant",
1178+
of_property_read_string(node, "qcom,calibration-variant",
11791179
&variant);
1180+
if (!variant)
1181+
of_property_read_string(node, "qcom,ath11k-calibration-variant",
1182+
&variant);
11801183
if (!variant)
11811184
return -ENODATA;
11821185

@@ -2056,6 +2059,7 @@ void ath11k_core_halt(struct ath11k *ar)
20562059
ath11k_mac_scan_finish(ar);
20572060
ath11k_mac_peer_cleanup_all(ar);
20582061
cancel_delayed_work_sync(&ar->scan.timeout);
2062+
cancel_work_sync(&ar->channel_update_work);
20592063
cancel_work_sync(&ar->regd_update_work);
20602064
cancel_work_sync(&ab->update_11d_work);
20612065

@@ -2257,6 +2261,7 @@ static void ath11k_core_reset(struct work_struct *work)
22572261
reinit_completion(&ab->recovery_start);
22582262
atomic_set(&ab->recovery_start_count, 0);
22592263

2264+
ath11k_coredump_collect(ab);
22602265
ath11k_core_pre_reconfigure_recovery(ab);
22612266

22622267
reinit_completion(&ab->reconfigure_complete);
@@ -2346,7 +2351,6 @@ void ath11k_core_deinit(struct ath11k_base *ab)
23462351
ath11k_hif_power_down(ab);
23472352
ath11k_mac_destroy(ab);
23482353
ath11k_core_soc_destroy(ab);
2349-
ath11k_fw_destroy(ab);
23502354
}
23512355
EXPORT_SYMBOL(ath11k_core_deinit);
23522356

@@ -2393,6 +2397,7 @@ struct ath11k_base *ath11k_core_alloc(struct device *dev, size_t priv_size,
23932397
INIT_WORK(&ab->restart_work, ath11k_core_restart);
23942398
INIT_WORK(&ab->update_11d_work, ath11k_update_11d);
23952399
INIT_WORK(&ab->reset_work, ath11k_core_reset);
2400+
INIT_WORK(&ab->dump_work, ath11k_coredump_upload);
23962401
timer_setup(&ab->rx_replenish_retry, ath11k_ce_rx_replenish_retry, 0);
23972402
init_completion(&ab->htc_suspend);
23982403
init_completion(&ab->wow.wakeup_completed);

0 commit comments

Comments
 (0)