Permalink
Browse files

Merge tag 'wireless-drivers-next-for-davem-2018-12-20' of git://git.k…

…ernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next

Kalle Valo says:

====================
wireless-drivers-next patches for 4.21

Last set of patches for 4.21. mt76 is still in very active development
and having some refactoring as well as new features. But also other
drivers got few new features and fixes.

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

iwlwifi

* support for FW version 43 for 9000 and 22000 series

brcmfmac

* add support for CYW43012 SDIO chipset

* add the raw 4354 PCIe device ID for unprogrammed Cypress boards

mwifiex

* add NL80211_STA_INFO_RX_BITRATE support

mt76

* use the same firmware for mt76x2e and mt76x2u

* mt76x0e survey support

* more unification between mt76x2 and mt76x0

* mt76x0e AP mode support

* mt76x0e DFS support

* rework and fix tx status handling for mt76x0 and mt76x2
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information...
davem330 committed Dec 21, 2018
2 parents aa9d6e0 + fbbae71 commit e69fbf31ca2cf6d6a2afedd0f8b30dcd10e76049
Showing with 5,028 additions and 4,325 deletions.
  1. +49 −25 Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
  2. +1 −2 drivers/net/wireless/ath/ath10k/Kconfig
  3. +1 −0 drivers/net/wireless/ath/ath10k/core.h
  4. +1 −1 drivers/net/wireless/ath/ath10k/debugfs_sta.c
  5. +287 −13 drivers/net/wireless/ath/ath10k/htt_rx.c
  6. +7 −0 drivers/net/wireless/ath/ath10k/hw.c
  7. +10 −0 drivers/net/wireless/ath/ath10k/hw.h
  8. +76 −40 drivers/net/wireless/ath/ath10k/mac.c
  9. +2 −2 drivers/net/wireless/ath/ath10k/qmi.c
  10. +7 −0 drivers/net/wireless/ath/ath10k/rx_desc.h
  11. +0 −1 drivers/net/wireless/ath/ath10k/snoc.c
  12. +20 −0 drivers/net/wireless/ath/ath10k/wmi-ops.h
  13. +1 −1 drivers/net/wireless/ath/ath10k/wmi-tlv.c
  14. +28 −1 drivers/net/wireless/ath/ath10k/wmi.c
  15. +46 −0 drivers/net/wireless/ath/ath10k/wmi.h
  16. +3 −3 drivers/net/wireless/ath/ath6kl/cfg80211.c
  17. +42 −198 drivers/net/wireless/ath/wil6210/debugfs.c
  18. +0 −2 drivers/net/wireless/ath/wil6210/main.c
  19. +0 −4 drivers/net/wireless/broadcom/b43/phy_n.c
  20. +1 −0 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
  21. +25 −2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
  22. +1 −1 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h
  23. +26 −7 drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
  24. +1 −1 drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
  25. +1 −1 drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
  26. +1 −0 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h
  27. +86 −58 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
  28. +1 −0 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
  29. +105 −14 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
  30. +8 −1 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h
  31. +2 −0 drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h
  32. +19 −0 drivers/net/wireless/broadcom/brcm80211/include/chipcommon.h
  33. +2 −6 drivers/net/wireless/intel/ipw2x00/ipw2100.c
  34. +2 −5 drivers/net/wireless/intel/ipw2x00/ipw2200.c
  35. +3 −1 drivers/net/wireless/intel/iwlwifi/Kconfig
  36. +1 −1 drivers/net/wireless/intel/iwlwifi/cfg/1000.c
  37. +2 −2 drivers/net/wireless/intel/iwlwifi/cfg/2000.c
  38. +4 −8 drivers/net/wireless/intel/iwlwifi/cfg/22000.c
  39. +3 −3 drivers/net/wireless/intel/iwlwifi/cfg/6000.c
  40. +2 −25 drivers/net/wireless/intel/iwlwifi/cfg/7000.c
  41. +2 −9 drivers/net/wireless/intel/iwlwifi/cfg/8000.c
  42. +8 −79 drivers/net/wireless/intel/iwlwifi/cfg/9000.c
  43. +17 −0 drivers/net/wireless/intel/iwlwifi/dvm/main.c
  44. +2 −11 drivers/net/wireless/intel/iwlwifi/fw/api/config.h
  45. +5 −0 drivers/net/wireless/intel/iwlwifi/fw/api/datapath.h
  46. +1 −1 drivers/net/wireless/intel/iwlwifi/fw/api/mac.h
  47. +167 −72 drivers/net/wireless/intel/iwlwifi/fw/api/rx.h
  48. +317 −9 drivers/net/wireless/intel/iwlwifi/fw/dbg.c
  49. +38 −4 drivers/net/wireless/intel/iwlwifi/fw/dbg.h
  50. +20 −0 drivers/net/wireless/intel/iwlwifi/fw/error-dump.h
  51. +2 −1 drivers/net/wireless/intel/iwlwifi/fw/runtime.h
  52. +3 −5 drivers/net/wireless/intel/iwlwifi/iwl-config.h
  53. +1 −0 drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c
  54. +1 −0 drivers/net/wireless/intel/iwlwifi/iwl-drv.c
  55. +0 −19 drivers/net/wireless/intel/iwlwifi/iwl-eeprom-parse.c
  56. +2 −3 drivers/net/wireless/intel/iwlwifi/iwl-eeprom-parse.h
  57. +189 −101 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
  58. +6 −0 drivers/net/wireless/intel/iwlwifi/iwl-prph.h
  59. +2 −4 drivers/net/wireless/intel/iwlwifi/mvm/d3.c
  60. +1 −1 drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
  61. +14 −6 drivers/net/wireless/intel/iwlwifi/mvm/fw.c
  62. +2 −0 drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
  63. +10 −2 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
  64. +2 −0 drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
  65. +2 −0 drivers/net/wireless/intel/iwlwifi/mvm/ops.c
  66. +17 −20 drivers/net/wireless/intel/iwlwifi/mvm/rx.c
  67. +330 −190 drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
  68. +2 −0 drivers/net/wireless/intel/iwlwifi/mvm/scan.c
  69. +4 −6 drivers/net/wireless/intel/iwlwifi/mvm/sta.c
  70. +19 −37 drivers/net/wireless/intel/iwlwifi/mvm/tx.c
  71. +17 −0 drivers/net/wireless/intel/iwlwifi/mvm/utils.c
  72. +8 −5 drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
  73. +1 −1 drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c
  74. +5 −0 drivers/net/wireless/intel/iwlwifi/pcie/internal.h
  75. +49 −22 drivers/net/wireless/intel/iwlwifi/pcie/trans.c
  76. +13 −13 drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c
  77. +7 −6 drivers/net/wireless/intel/iwlwifi/pcie/tx.c
  78. +45 −17 drivers/net/wireless/marvell/mwifiex/cfg80211.c
  79. +6 −8 drivers/net/wireless/marvell/mwifiex/debugfs.c
  80. +10 −8 drivers/net/wireless/marvell/mwifiex/scan.c
  81. +8 −5 drivers/net/wireless/marvell/mwifiex/sta_rx.c
  82. +2 −1 drivers/net/wireless/mediatek/mt76/Makefile
  83. +9 −5 drivers/net/wireless/mediatek/mt76/dma.c
  84. +80 −0 drivers/net/wireless/mediatek/mt76/mac80211.c
  85. +54 −6 drivers/net/wireless/mediatek/mt76/mt76.h
  86. +2 −4 drivers/net/wireless/mediatek/mt76/mt76x0/Makefile
  87. +0 −87 drivers/net/wireless/mediatek/mt76/mt76x0/debugfs.c
  88. +16 −6 drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
  89. +24 −113 drivers/net/wireless/mediatek/mt76/mt76x0/init.c
  90. +9 −6 drivers/net/wireless/mediatek/mt76/mt76x0/initvals.h
  91. +591 −722 drivers/net/wireless/mediatek/mt76/mt76x0/initvals_phy.h
  92. +0 −197 drivers/net/wireless/mediatek/mt76/mt76x0/mac.c
  93. +14 −86 drivers/net/wireless/mediatek/mt76/mt76x0/main.c
  94. +13 −23 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h
  95. +31 −4 drivers/net/wireless/mediatek/mt76/mt76x0/pci.c
  96. +0 −4 drivers/net/wireless/mediatek/mt76/mt76x0/pci_mcu.c
  97. +593 −305 drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
  98. +17 −0 drivers/net/wireless/mediatek/mt76/mt76x0/phy.h
  99. +0 −21 drivers/net/wireless/mediatek/mt76/mt76x0/trace.c
  100. +0 −312 drivers/net/wireless/mediatek/mt76/mt76x0/trace.h
  101. +11 −7 drivers/net/wireless/mediatek/mt76/mt76x0/usb.c
  102. +19 −4 drivers/net/wireless/mediatek/mt76/mt76x0/usb_mcu.c
  103. +28 −15 drivers/net/wireless/mediatek/mt76/mt76x02.h
  104. +11 −11 drivers/net/wireless/mediatek/mt76/{mt76x2/debugfs.c → mt76x02_debugfs.c}
  105. +87 −66 drivers/net/wireless/mediatek/mt76/{mt76x2/pci_dfs.c → mt76x02_dfs.c}
  106. +5 −0 drivers/net/wireless/mediatek/mt76/mt76x02_dfs.h
  107. +12 −0 drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.c
  108. +10 −5 drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.h
  109. +255 −69 drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
  110. +11 −27 drivers/net/wireless/mediatek/mt76/mt76x02_mac.h
  111. +21 −23 drivers/net/wireless/mediatek/mt76/mt76x02_mcu.c
  112. +6 −10 drivers/net/wireless/mediatek/mt76/mt76x02_mcu.h
  113. +127 −1 drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c
  114. +1 −0 drivers/net/wireless/mediatek/mt76/mt76x02_phy.c
  115. +10 −21 drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c
  116. +19 −23 drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c
  117. +11 −7 drivers/net/wireless/mediatek/mt76/mt76x02_usb_mcu.c
  118. +298 −36 drivers/net/wireless/mediatek/mt76/mt76x02_util.c
  119. +3 −3 drivers/net/wireless/mediatek/mt76/mt76x2/Makefile
  120. +0 −26 drivers/net/wireless/mediatek/mt76/mt76x2/dfs.h
  121. +2 −13 drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
  122. +0 −32 drivers/net/wireless/mediatek/mt76/mt76x2/init.c
  123. +0 −7 drivers/net/wireless/mediatek/mt76/mt76x2/mac.h
  124. +8 −14 drivers/net/wireless/mediatek/mt76/mt76x2/mcu.c
  125. +2 −18 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2.h
  126. +0 −3 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2u.h
  127. +15 −119 drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c
  128. +0 −203 drivers/net/wireless/mediatek/mt76/mt76x2/pci_mac.c
  129. +8 −115 drivers/net/wireless/mediatek/mt76/mt76x2/pci_main.c
  130. +1 −2 drivers/net/wireless/mediatek/mt76/mt76x2/pci_mcu.c
  131. +12 −102 drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
  132. +0 −142 drivers/net/wireless/mediatek/mt76/mt76x2/pci_tx.c
  133. +93 −2 drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
  134. +2 −2 drivers/net/wireless/mediatek/mt76/mt76x2/usb.c
  135. +13 −31 drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c
  136. +9 −46 drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
  137. +4 −28 drivers/net/wireless/mediatek/mt76/mt76x2/usb_mcu.c
  138. +27 −51 drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
  139. +152 −1 drivers/net/wireless/mediatek/mt76/tx.c
  140. +8 −4 drivers/net/wireless/mediatek/mt76/usb.c
  141. +27 −2 drivers/net/wireless/mediatek/mt76/usb_trace.h
  142. +2 −1 drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
  143. +0 −2 drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.c
  144. +4 −28 drivers/net/wireless/st/cw1200/debug.c
  145. +6 −7 drivers/net/wireless/st/cw1200/scan.c
  146. +1 −0 include/linux/mmc/sdio_ids.h
@@ -21,10 +21,22 @@ can be provided per device.

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

Optional properties:
- reg: Address and length of the register set for the device.
- reg-names: Must include the list of following reg names,
"membase"
- interrupts: reference to the list of 17 interrupt numbers for "qcom,ipq4019-wifi"
compatible target.
reference to the list of 12 interrupt numbers for "qcom,wcn3990-wifi"
compatible target.
Must contain interrupt-names property per entry for
"qcom,ath10k", "qcom,ipq4019-wifi" compatible targets.

- interrupt-names: Must include the entries for MSI interrupt
names ("msi0" to "msi15") and legacy interrupt
name ("legacy") for "qcom,ath10k", "qcom,ipq4019-wifi"
compatible targets.

Optional properties:
- resets: Must contain an entry for each entry in reset-names.
See ../reset/reseti.txt for details.
- reset-names: Must include the list of following reset names,
@@ -37,12 +49,9 @@ Optional properties:
- clocks: List of clock specifiers, must contain an entry for each required
entry in clock-names.
- clock-names: Should contain the clock names "wifi_wcss_cmd", "wifi_wcss_ref",
"wifi_wcss_rtc".
- interrupts: List of interrupt lines. Must contain an entry
for each entry in the interrupt-names property.
- interrupt-names: Must include the entries for MSI interrupt
names ("msi0" to "msi15") and legacy interrupt
name ("legacy"),
"wifi_wcss_rtc" for "qcom,ipq4019-wifi" compatible target and
"cxo_ref_clk_pin" for "qcom,wcn3990-wifi"
compatible target.
- qcom,msi_addr: MSI interrupt address.
- qcom,msi_base: Base value to add before writing MSI data into
MSI address register.
@@ -55,14 +64,25 @@ Optional properties:
- qcom,ath10k-pre-calibration-data : pre calibration data as an array,
the length can vary between hw versions.
- <supply-name>-supply: handle to the regulator device tree node
optional "supply-name" is "vdd-0.8-cx-mx".
optional "supply-name" are "vdd-0.8-cx-mx",
"vdd-1.8-xo", "vdd-1.3-rfa" and "vdd-3.3-ch0".
- memory-region:
Usage: optional
Value type: <phandle>
Definition: reference to the reserved-memory for the msa region
used by the wifi firmware running in Q6.
- iommus:
Usage: optional
Value type: <prop-encoded-array>
Definition: A list of phandle and IOMMU specifier pairs.
- ext-fem-name:
Usage: Optional
Value type: string
Definition: Name of external front end module used. Some valid FEM names
for example: "microsemi-lx5586", "sky85703-11"
and "sky85803" etc.

Example (to supply the calibration data alone):
Example (to supply PCI based wifi block details):

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

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

ath10k@0,0 {
wifi@0,0 {
reg = <0 0 0 0 0>;
device_type = "pci";
qcom,ath10k-calibration-data = [ 01 02 03 ... ];
ext-fem-name = "microsemi-lx5586";
};
};
};
@@ -138,21 +158,25 @@ wifi@18000000 {
compatible = "qcom,wcn3990-wifi";
reg = <0x18800000 0x800000>;
reg-names = "membase";
clocks = <&clock_gcc clk_aggre2_noc_clk>;
clock-names = "smmu_aggre2_noc_clk"
clocks = <&clock_gcc clk_rf_clk2_pin>;
clock-names = "cxo_ref_clk_pin";
interrupts =
<0 130 0 /* CE0 */ >,
<0 131 0 /* CE1 */ >,
<0 132 0 /* CE2 */ >,
<0 133 0 /* CE3 */ >,
<0 134 0 /* CE4 */ >,
<0 135 0 /* CE5 */ >,
<0 136 0 /* CE6 */ >,
<0 137 0 /* CE7 */ >,
<0 138 0 /* CE8 */ >,
<0 139 0 /* CE9 */ >,
<0 140 0 /* CE10 */ >,
<0 141 0 /* CE11 */ >;
<GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
vdd-0.8-cx-mx-supply = <&pm8998_l5>;
vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
memory-region = <&wifi_msa_mem>;
iommus = <&apps_smmu 0x0040 0x1>;
};
@@ -47,8 +47,7 @@ config ATH10K_SNOC
select QCOM_QMI_HELPERS
---help---
This module adds support for integrated WCN3990 chip connected
to system NOC(SNOC). Currently work in progress and will not
fully work.
to system NOC(SNOC).

config ATH10K_DEBUG
bool "Atheros ath10k debugging"
@@ -494,6 +494,7 @@ struct ath10k_sta {
u32 smps;
u16 peer_id;
struct rate_info txrate;
struct ieee80211_tx_info tx_info;

struct work_struct update_wk;
u64 rx_duration;
@@ -71,7 +71,7 @@ void ath10k_sta_update_rx_tid_stats_ampdu(struct ath10k *ar, u16 peer_id, u8 tid
spin_lock_bh(&ar->data_lock);

peer = ath10k_peer_find_by_id(ar, peer_id);
if (!peer)
if (!peer || !peer->sta)
goto out;

arsta = (struct ath10k_sta *)peer->sta->drv_priv;
Oops, something went wrong.

0 comments on commit e69fbf3

Please sign in to comment.