Skip to content

Commit fbbae71

Browse files
author
Kalle Valo
committed
Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
ath.git patches for 4.21. Major changes: ath10k * add amsdu support for QCA6174 monitor mode * report tx rate using the new ieee80211_tx_rate_update() API * wcn3990 support is not experimental anymore
2 parents 19de2fa + 84758d4 commit fbbae71

File tree

18 files changed

+581
-289
lines changed

18 files changed

+581
-289
lines changed

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

Lines changed: 49 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,22 @@ can be provided per device.
2121

2222
SNOC based devices (i.e. wcn3990) uses compatible string "qcom,wcn3990-wifi".
2323

24-
Optional properties:
2524
- reg: Address and length of the register set for the device.
2625
- reg-names: Must include the list of following reg names,
2726
"membase"
27+
- interrupts: reference to the list of 17 interrupt numbers for "qcom,ipq4019-wifi"
28+
compatible target.
29+
reference to the list of 12 interrupt numbers for "qcom,wcn3990-wifi"
30+
compatible target.
31+
Must contain interrupt-names property per entry for
32+
"qcom,ath10k", "qcom,ipq4019-wifi" compatible targets.
33+
34+
- interrupt-names: Must include the entries for MSI interrupt
35+
names ("msi0" to "msi15") and legacy interrupt
36+
name ("legacy") for "qcom,ath10k", "qcom,ipq4019-wifi"
37+
compatible targets.
38+
39+
Optional properties:
2840
- resets: Must contain an entry for each entry in reset-names.
2941
See ../reset/reseti.txt for details.
3042
- reset-names: Must include the list of following reset names,
@@ -37,12 +49,9 @@ Optional properties:
3749
- clocks: List of clock specifiers, must contain an entry for each required
3850
entry in clock-names.
3951
- clock-names: Should contain the clock names "wifi_wcss_cmd", "wifi_wcss_ref",
40-
"wifi_wcss_rtc".
41-
- interrupts: List of interrupt lines. Must contain an entry
42-
for each entry in the interrupt-names property.
43-
- interrupt-names: Must include the entries for MSI interrupt
44-
names ("msi0" to "msi15") and legacy interrupt
45-
name ("legacy"),
52+
"wifi_wcss_rtc" for "qcom,ipq4019-wifi" compatible target and
53+
"cxo_ref_clk_pin" for "qcom,wcn3990-wifi"
54+
compatible target.
4655
- qcom,msi_addr: MSI interrupt address.
4756
- qcom,msi_base: Base value to add before writing MSI data into
4857
MSI address register.
@@ -55,14 +64,25 @@ Optional properties:
5564
- qcom,ath10k-pre-calibration-data : pre calibration data as an array,
5665
the length can vary between hw versions.
5766
- <supply-name>-supply: handle to the regulator device tree node
58-
optional "supply-name" is "vdd-0.8-cx-mx".
67+
optional "supply-name" are "vdd-0.8-cx-mx",
68+
"vdd-1.8-xo", "vdd-1.3-rfa" and "vdd-3.3-ch0".
5969
- memory-region:
6070
Usage: optional
6171
Value type: <phandle>
6272
Definition: reference to the reserved-memory for the msa region
6373
used by the wifi firmware running in Q6.
74+
- iommus:
75+
Usage: optional
76+
Value type: <prop-encoded-array>
77+
Definition: A list of phandle and IOMMU specifier pairs.
78+
- ext-fem-name:
79+
Usage: Optional
80+
Value type: string
81+
Definition: Name of external front end module used. Some valid FEM names
82+
for example: "microsemi-lx5586", "sky85703-11"
83+
and "sky85803" etc.
6484

65-
Example (to supply the calibration data alone):
85+
Example (to supply PCI based wifi block details):
6686

6787
In this example, the node is defined as child node of the PCI controller.
6888

@@ -74,10 +94,10 @@ pci {
7494
#address-cells = <3>;
7595
device_type = "pci";
7696

77-
ath10k@0,0 {
97+
wifi@0,0 {
7898
reg = <0 0 0 0 0>;
79-
device_type = "pci";
8099
qcom,ath10k-calibration-data = [ 01 02 03 ... ];
100+
ext-fem-name = "microsemi-lx5586";
81101
};
82102
};
83103
};
@@ -138,21 +158,25 @@ wifi@18000000 {
138158
compatible = "qcom,wcn3990-wifi";
139159
reg = <0x18800000 0x800000>;
140160
reg-names = "membase";
141-
clocks = <&clock_gcc clk_aggre2_noc_clk>;
142-
clock-names = "smmu_aggre2_noc_clk"
161+
clocks = <&clock_gcc clk_rf_clk2_pin>;
162+
clock-names = "cxo_ref_clk_pin";
143163
interrupts =
144-
<0 130 0 /* CE0 */ >,
145-
<0 131 0 /* CE1 */ >,
146-
<0 132 0 /* CE2 */ >,
147-
<0 133 0 /* CE3 */ >,
148-
<0 134 0 /* CE4 */ >,
149-
<0 135 0 /* CE5 */ >,
150-
<0 136 0 /* CE6 */ >,
151-
<0 137 0 /* CE7 */ >,
152-
<0 138 0 /* CE8 */ >,
153-
<0 139 0 /* CE9 */ >,
154-
<0 140 0 /* CE10 */ >,
155-
<0 141 0 /* CE11 */ >;
164+
<GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>,
165+
<GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
166+
<GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
167+
<GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
168+
<GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
169+
<GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
170+
<GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
171+
<GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
172+
<GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
173+
<GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
174+
<GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
175+
<GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
156176
vdd-0.8-cx-mx-supply = <&pm8998_l5>;
177+
vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
178+
vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
179+
vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
157180
memory-region = <&wifi_msa_mem>;
181+
iommus = <&apps_smmu 0x0040 0x1>;
158182
};

drivers/net/wireless/ath/ath10k/Kconfig

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,7 @@ config ATH10K_SNOC
4747
select QCOM_QMI_HELPERS
4848
---help---
4949
This module adds support for integrated WCN3990 chip connected
50-
to system NOC(SNOC). Currently work in progress and will not
51-
fully work.
50+
to system NOC(SNOC).
5251

5352
config ATH10K_DEBUG
5453
bool "Atheros ath10k debugging"

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,7 @@ struct ath10k_sta {
494494
u32 smps;
495495
u16 peer_id;
496496
struct rate_info txrate;
497+
struct ieee80211_tx_info tx_info;
497498

498499
struct work_struct update_wk;
499500
u64 rx_duration;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ void ath10k_sta_update_rx_tid_stats_ampdu(struct ath10k *ar, u16 peer_id, u8 tid
7171
spin_lock_bh(&ar->data_lock);
7272

7373
peer = ath10k_peer_find_by_id(ar, peer_id);
74-
if (!peer)
74+
if (!peer || !peer->sta)
7575
goto out;
7676

7777
arsta = (struct ath10k_sta *)peer->sta->drv_priv;

0 commit comments

Comments
 (0)