* pull request: iwlwifi firmware updates 2019-05-03
From: Luca Coelho @ 2019-05-03 16:40 UTC (permalink / raw)
To: linux-firmware@kernel.org
Cc: linux-wireless@vger.kernel.org, linuxwifi, kyle@infradead.org,
jwboyer@kernel.org, ben@decadent.org.uk
In-Reply-To: <1546157106.3213.3.camel@intel.com>
[-- Attachment #1: Type: text/plain, Size: 1513 bytes --]
Hi,
This contains some new versions of firmwares for the 9000 series of
devices and the firmware for a new device, namely 22260.
Please pull or let me know if there are any issues.
--
Cheers,
Luca.
The following changes since commit 92e17d0dd2437140fab044ae62baf69b35d7d1fa:
amdgpu: update vega20 to the latest 19.10 firmware (2019-05-02 06:24:19 -0400)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/linux-firmware.git tags/iwlwifi-fw-2019-05-03
for you to fetch changes up to 95a93535b723085ff74845eb8733d01c8ff5c052:
iwlwifi: update -46 firmwares for 22260 and 9000 series (2019-05-03 19:33:53 +0300)
----------------------------------------------------------------
updates for -46.ucode for 9260, 9000 and 22260
----------------------------------------------------------------
Luca Coelho (3):
iwlwifi: add -46.ucode firmwares for 9000 series
iwlwifi: add firmware for 22260 and update 9000 series -46 firmwares
iwlwifi: update -46 firmwares for 22260 and 9000 series
WHENCE | 9 +++++++++
iwlwifi-9000-pu-b0-jf-b0-46.ucode | Bin 0 -> 1448644 bytes
iwlwifi-9260-th-b0-jf-b0-46.ucode | Bin 0 -> 1456088 bytes
iwlwifi-cc-a0-46.ucode | Bin 0 -> 1044072 bytes
4 files changed, 9 insertions(+)
create mode 100644 iwlwifi-9000-pu-b0-jf-b0-46.ucode
create mode 100644 iwlwifi-9260-th-b0-jf-b0-46.ucode
create mode 100644 iwlwifi-cc-a0-46.ucode
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply
* [PATCH v4 07/10] net: wireless: support of_get_mac_address new ERR_PTR error
From: Petr Štetiar @ 2019-05-03 14:27 UTC (permalink / raw)
To: netdev, devicetree, QCA ath9k Development, Kalle Valo,
David S. Miller, Felix Fietkau, Lorenzo Bianconi,
Matthias Brugger, Stanislaw Gruszka, Helmut Schaa
Cc: Andrew Lunn, Florian Fainelli, Heiner Kallweit, Frank Rowand,
Srinivas Kandagatla, Maxime Ripard, Petr Štetiar,
linux-wireless, linux-kernel, linux-arm-kernel, linux-mediatek
In-Reply-To: <1556893635-18549-1-git-send-email-ynezz@true.cz>
There was NVMEM support added to of_get_mac_address, so it could now return
ERR_PTR encoded error values, so we need to adjust all current users of
of_get_mac_address to this new fact.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
---
Changes since v3:
* IS_ERR_OR_NULL -> IS_ERR
drivers/net/wireless/ath/ath9k/init.c | 2 +-
drivers/net/wireless/mediatek/mt76/eeprom.c | 2 +-
drivers/net/wireless/ralink/rt2x00/rt2x00dev.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index 98141b6..a04d861 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -642,7 +642,7 @@ static int ath9k_of_init(struct ath_softc *sc)
}
mac = of_get_mac_address(np);
- if (mac)
+ if (!IS_ERR(mac))
ether_addr_copy(common->macaddr, mac);
return 0;
diff --git a/drivers/net/wireless/mediatek/mt76/eeprom.c b/drivers/net/wireless/mediatek/mt76/eeprom.c
index a1529920d..0496493 100644
--- a/drivers/net/wireless/mediatek/mt76/eeprom.c
+++ b/drivers/net/wireless/mediatek/mt76/eeprom.c
@@ -94,7 +94,7 @@
return;
mac = of_get_mac_address(np);
- if (mac)
+ if (!IS_ERR(mac))
memcpy(dev->macaddr, mac, ETH_ALEN);
#endif
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
index 357c094..19a794a 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
@@ -1007,7 +1007,7 @@ void rt2x00lib_set_mac_address(struct rt2x00_dev *rt2x00dev, u8 *eeprom_mac_addr
const char *mac_addr;
mac_addr = of_get_mac_address(rt2x00dev->dev->of_node);
- if (mac_addr)
+ if (!IS_ERR(mac_addr))
ether_addr_copy(eeprom_mac_addr, mac_addr);
if (!is_valid_ether_addr(eeprom_mac_addr)) {
--
1.9.1
^ permalink raw reply related
* [PATCH v4 02/10] dt-bindings: doc: reflect new NVMEM of_get_mac_address behaviour
From: Petr Štetiar @ 2019-05-03 14:27 UTC (permalink / raw)
To: netdev, devicetree, David S. Miller, Rob Herring, Mark Rutland,
Andrew Lunn, Vivien Didelot, Florian Fainelli, Yisen Zhuang,
Salil Mehta, Woojung Huh, Microchip Linux Driver Support,
Kunihiko Hayashi, Masahiro Yamada, Jassi Brar, Kalle Valo,
Matthias Brugger
Cc: Heiner Kallweit, Frank Rowand, Srinivas Kandagatla, Maxime Ripard,
Petr Štetiar, linux-kernel, linux-arm-kernel, linux-wireless,
linux-mediatek
In-Reply-To: <1556893635-18549-1-git-send-email-ynezz@true.cz>
As of_get_mac_address now supports NVMEM under the hood, we need to update
the bindings documentation with the new nvmem-cell* properties, which would
mean copy&pasting a lot of redundant information to every binding
documentation currently referencing some of the MAC address properties.
So I've just removed all the references to the optional MAC address
properties and replaced them with the small note referencing
net/ethernet.txt file.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
---
Changes since v2:
* replaced only MAC address related optional properties with a text
referencing ethernet.txt
Documentation/devicetree/bindings/net/altera_tse.txt | 5 ++---
Documentation/devicetree/bindings/net/amd-xgbe.txt | 5 +++--
Documentation/devicetree/bindings/net/brcm,amac.txt | 4 ++--
Documentation/devicetree/bindings/net/cpsw.txt | 4 +++-
Documentation/devicetree/bindings/net/davinci_emac.txt | 5 +++--
Documentation/devicetree/bindings/net/dsa/dsa.txt | 5 ++---
Documentation/devicetree/bindings/net/ethernet.txt | 6 ++++--
Documentation/devicetree/bindings/net/hisilicon-femac.txt | 4 +++-
.../devicetree/bindings/net/hisilicon-hix5hd2-gmac.txt | 4 +++-
Documentation/devicetree/bindings/net/keystone-netcp.txt | 10 +++++-----
Documentation/devicetree/bindings/net/macb.txt | 5 ++---
Documentation/devicetree/bindings/net/marvell-pxa168.txt | 4 +++-
Documentation/devicetree/bindings/net/microchip,enc28j60.txt | 3 ++-
Documentation/devicetree/bindings/net/microchip,lan78xx.txt | 5 ++---
Documentation/devicetree/bindings/net/qca,qca7000.txt | 4 +++-
Documentation/devicetree/bindings/net/samsung-sxgbe.txt | 4 +++-
.../devicetree/bindings/net/snps,dwc-qos-ethernet.txt | 5 +++--
.../devicetree/bindings/net/socionext,uniphier-ave4.txt | 4 ++--
Documentation/devicetree/bindings/net/socionext-netsec.txt | 5 +++--
.../devicetree/bindings/net/wireless/mediatek,mt76.txt | 5 +++--
Documentation/devicetree/bindings/net/wireless/qca,ath9k.txt | 4 ++--
21 files changed, 58 insertions(+), 42 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/altera_tse.txt b/Documentation/devicetree/bindings/net/altera_tse.txt
index 0e21df9..0b7d4d3 100644
--- a/Documentation/devicetree/bindings/net/altera_tse.txt
+++ b/Documentation/devicetree/bindings/net/altera_tse.txt
@@ -46,9 +46,8 @@ Required properties:
- reg: phy id used to communicate to phy.
- device_type: Must be "ethernet-phy".
-Optional properties:
-- local-mac-address: See ethernet.txt in the same directory.
-- max-frame-size: See ethernet.txt in the same directory.
+The MAC address will be determined using the optional properties defined in
+ethernet.txt.
Example:
diff --git a/Documentation/devicetree/bindings/net/amd-xgbe.txt b/Documentation/devicetree/bindings/net/amd-xgbe.txt
index 93dcb79..9c27dfc 100644
--- a/Documentation/devicetree/bindings/net/amd-xgbe.txt
+++ b/Documentation/devicetree/bindings/net/amd-xgbe.txt
@@ -24,8 +24,6 @@ Required properties:
- phy-mode: See ethernet.txt file in the same directory
Optional properties:
-- mac-address: mac address to be assigned to the device. Can be overridden
- by UEFI.
- dma-coherent: Present if dma operations are coherent
- amd,per-channel-interrupt: Indicates that Rx and Tx complete will generate
a unique interrupt for each DMA channel - this requires an additional
@@ -34,6 +32,9 @@ Optional properties:
0 - 1GbE and 10GbE (default)
1 - 2.5GbE and 10GbE
+The MAC address will be determined using the optional properties defined in
+ethernet.txt.
+
The following optional properties are represented by an array with each
value corresponding to a particular speed. The first array value represents
the setting for the 1GbE speed, the second value for the 2.5GbE speed and
diff --git a/Documentation/devicetree/bindings/net/brcm,amac.txt b/Documentation/devicetree/bindings/net/brcm,amac.txt
index 0bfad65..0120ebe 100644
--- a/Documentation/devicetree/bindings/net/brcm,amac.txt
+++ b/Documentation/devicetree/bindings/net/brcm,amac.txt
@@ -16,8 +16,8 @@ Required properties:
registers (required for Northstar2)
- interrupts: Interrupt number
-Optional properties:
-- mac-address: See ethernet.txt file in the same directory
+The MAC address will be determined using the optional properties
+defined in ethernet.txt.
Examples:
diff --git a/Documentation/devicetree/bindings/net/cpsw.txt b/Documentation/devicetree/bindings/net/cpsw.txt
index 3264e19..7c7ac5e 100644
--- a/Documentation/devicetree/bindings/net/cpsw.txt
+++ b/Documentation/devicetree/bindings/net/cpsw.txt
@@ -49,10 +49,12 @@ Required properties:
Optional properties:
- dual_emac_res_vlan : Specifies VID to be used to segregate the ports
-- mac-address : See ethernet.txt file in the same directory
- phy_id : Specifies slave phy id (deprecated, use phy-handle)
- phy-handle : See ethernet.txt file in the same directory
+The MAC address will be determined using the optional properties
+defined in ethernet.txt.
+
Slave sub-nodes:
- fixed-link : See fixed-link.txt file in the same directory
diff --git a/Documentation/devicetree/bindings/net/davinci_emac.txt b/Documentation/devicetree/bindings/net/davinci_emac.txt
index ca83dcc..5e3579e 100644
--- a/Documentation/devicetree/bindings/net/davinci_emac.txt
+++ b/Documentation/devicetree/bindings/net/davinci_emac.txt
@@ -20,11 +20,12 @@ Required properties:
Optional properties:
- phy-handle: See ethernet.txt file in the same directory.
If absent, davinci_emac driver defaults to 100/FULL.
-- nvmem-cells: phandle, reference to an nvmem node for the MAC address
-- nvmem-cell-names: string, should be "mac-address" if nvmem is to be used
- ti,davinci-rmii-en: 1 byte, 1 means use RMII
- ti,davinci-no-bd-ram: boolean, does EMAC have BD RAM?
+The MAC address will be determined using the optional properties
+defined in ethernet.txt.
+
Example (enbw_cmc board):
eth0: emac@1e20000 {
compatible = "ti,davinci-dm6467-emac";
diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.txt b/Documentation/devicetree/bindings/net/dsa/dsa.txt
index d66a529..a237567 100644
--- a/Documentation/devicetree/bindings/net/dsa/dsa.txt
+++ b/Documentation/devicetree/bindings/net/dsa/dsa.txt
@@ -71,9 +71,8 @@ properties, described in binding documents:
Documentation/devicetree/bindings/net/fixed-link.txt
for details.
-- local-mac-address : See
- Documentation/devicetree/bindings/net/ethernet.txt
- for details.
+The MAC address will be determined using the optional properties
+defined in ethernet.txt.
Example
diff --git a/Documentation/devicetree/bindings/net/ethernet.txt b/Documentation/devicetree/bindings/net/ethernet.txt
index a686215..6992444 100644
--- a/Documentation/devicetree/bindings/net/ethernet.txt
+++ b/Documentation/devicetree/bindings/net/ethernet.txt
@@ -4,12 +4,14 @@ NOTE: All 'phy*' properties documented below are Ethernet specific. For the
generic PHY 'phys' property, see
Documentation/devicetree/bindings/phy/phy-bindings.txt.
-- local-mac-address: array of 6 bytes, specifies the MAC address that was
- assigned to the network device;
- mac-address: array of 6 bytes, specifies the MAC address that was last used by
the boot program; should be used in cases where the MAC address assigned to
the device by the boot program is different from the "local-mac-address"
property;
+- local-mac-address: array of 6 bytes, specifies the MAC address that was
+ assigned to the network device;
+- nvmem-cells: phandle, reference to an nvmem node for the MAC address
+- nvmem-cell-names: string, should be "mac-address" if nvmem is to be used
- max-speed: number, specifies maximum speed in Mbit/s supported by the device;
- max-frame-size: number, maximum transfer unit (IEEE defined MTU), rather than
the maximum frame size (there's contradiction in the Devicetree
diff --git a/Documentation/devicetree/bindings/net/hisilicon-femac.txt b/Documentation/devicetree/bindings/net/hisilicon-femac.txt
index d11af5e..5f96976 100644
--- a/Documentation/devicetree/bindings/net/hisilicon-femac.txt
+++ b/Documentation/devicetree/bindings/net/hisilicon-femac.txt
@@ -14,7 +14,6 @@ Required properties:
the PHY reset signal(optional).
- reset-names: should contain the reset signal name "mac"(required)
and "phy"(optional).
-- mac-address: see ethernet.txt [1].
- phy-mode: see ethernet.txt [1].
- phy-handle: see ethernet.txt [1].
- hisilicon,phy-reset-delays-us: triplet of delays if PHY reset signal given.
@@ -22,6 +21,9 @@ Required properties:
The 2nd cell is reset pulse in micro seconds.
The 3rd cell is reset post-delay in micro seconds.
+The MAC address will be determined using the optional properties
+defined in ethernet.txt[1].
+
[1] Documentation/devicetree/bindings/net/ethernet.txt
Example:
diff --git a/Documentation/devicetree/bindings/net/hisilicon-hix5hd2-gmac.txt b/Documentation/devicetree/bindings/net/hisilicon-hix5hd2-gmac.txt
index eea73ad..cddf46b 100644
--- a/Documentation/devicetree/bindings/net/hisilicon-hix5hd2-gmac.txt
+++ b/Documentation/devicetree/bindings/net/hisilicon-hix5hd2-gmac.txt
@@ -18,7 +18,6 @@ Required properties:
- #size-cells: must be <0>.
- phy-mode: see ethernet.txt [1].
- phy-handle: see ethernet.txt [1].
-- mac-address: see ethernet.txt [1].
- clocks: clock phandle and specifier pair.
- clock-names: contain the clock name "mac_core"(required) and "mac_ifc"(optional).
- resets: should contain the phandle to the MAC core reset signal(optional),
@@ -31,6 +30,9 @@ Required properties:
The 2nd cell is reset pulse in micro seconds.
The 3rd cell is reset post-delay in micro seconds.
+The MAC address will be determined using the properties defined in
+ethernet.txt[1].
+
- PHY subnode: inherits from phy binding [2]
[1] Documentation/devicetree/bindings/net/ethernet.txt
diff --git a/Documentation/devicetree/bindings/net/keystone-netcp.txt b/Documentation/devicetree/bindings/net/keystone-netcp.txt
index 04ba1dc..3a65aab 100644
--- a/Documentation/devicetree/bindings/net/keystone-netcp.txt
+++ b/Documentation/devicetree/bindings/net/keystone-netcp.txt
@@ -135,14 +135,14 @@ Optional properties:
are swapped. The netcp driver will swap the two DWORDs
back to the proper order when this property is set to 2
when it obtains the mac address from efuse.
-- local-mac-address: the driver is designed to use the of_get_mac_address api
- only if efuse-mac is 0. When efuse-mac is 0, the MAC
- address is obtained from local-mac-address. If this
- attribute is not present, then the driver will use a
- random MAC address.
- "netcp-device label": phandle to the device specification for each of NetCP
sub-module attached to this interface.
+The MAC address will be determined using the optional properties defined in
+ethernet.txt, as provided by the of_get_mac_address API and only if efuse-mac
+is set to 0. If any of the optional MAC address properties are not present,
+then the driver will use random MAC address.
+
Example binding:
netcp: netcp@2000000 {
diff --git a/Documentation/devicetree/bindings/net/macb.txt b/Documentation/devicetree/bindings/net/macb.txt
index 8b80515..9c5e944 100644
--- a/Documentation/devicetree/bindings/net/macb.txt
+++ b/Documentation/devicetree/bindings/net/macb.txt
@@ -26,9 +26,8 @@ Required properties:
Optional elements: 'tsu_clk'
- clocks: Phandles to input clocks.
-Optional properties:
-- nvmem-cells: phandle, reference to an nvmem node for the MAC address
-- nvmem-cell-names: string, should be "mac-address" if nvmem is to be used
+The MAC address will be determined using the optional properties
+defined in ethernet.txt.
Optional properties for PHY child node:
- reset-gpios : Should specify the gpio for phy reset
diff --git a/Documentation/devicetree/bindings/net/marvell-pxa168.txt b/Documentation/devicetree/bindings/net/marvell-pxa168.txt
index 845a148..5574af3 100644
--- a/Documentation/devicetree/bindings/net/marvell-pxa168.txt
+++ b/Documentation/devicetree/bindings/net/marvell-pxa168.txt
@@ -11,7 +11,9 @@ Optional properties:
- #address-cells: must be 1 when using sub-nodes.
- #size-cells: must be 0 when using sub-nodes.
- phy-handle: see ethernet.txt file in the same directory.
-- local-mac-address: see ethernet.txt file in the same directory.
+
+The MAC address will be determined using the optional properties
+defined in ethernet.txt.
Sub-nodes:
Each PHY can be represented as a sub-node. This is not mandatory.
diff --git a/Documentation/devicetree/bindings/net/microchip,enc28j60.txt b/Documentation/devicetree/bindings/net/microchip,enc28j60.txt
index 24626e0..a827592 100644
--- a/Documentation/devicetree/bindings/net/microchip,enc28j60.txt
+++ b/Documentation/devicetree/bindings/net/microchip,enc28j60.txt
@@ -21,8 +21,9 @@ Optional properties:
- spi-max-frequency: Maximum frequency of the SPI bus when accessing the ENC28J60.
According to the ENC28J80 datasheet, the chip allows a maximum of 20 MHz, however,
board designs may need to limit this value.
-- local-mac-address: See ethernet.txt in the same directory.
+The MAC address will be determined using the optional properties
+defined in ethernet.txt.
Example (for NXP i.MX28 with pin control stuff for GPIO irq):
diff --git a/Documentation/devicetree/bindings/net/microchip,lan78xx.txt b/Documentation/devicetree/bindings/net/microchip,lan78xx.txt
index 76786a0..11a6795 100644
--- a/Documentation/devicetree/bindings/net/microchip,lan78xx.txt
+++ b/Documentation/devicetree/bindings/net/microchip,lan78xx.txt
@@ -7,9 +7,8 @@ The Device Tree properties, if present, override the OTP and EEPROM.
Required properties:
- compatible: Should be one of "usb424,7800", "usb424,7801" or "usb424,7850".
-Optional properties:
-- local-mac-address: see ethernet.txt
-- mac-address: see ethernet.txt
+The MAC address will be determined using the optional properties
+defined in ethernet.txt.
Optional properties of the embedded PHY:
- microchip,led-modes: a 0..4 element vector, with each element configuring
diff --git a/Documentation/devicetree/bindings/net/qca,qca7000.txt b/Documentation/devicetree/bindings/net/qca,qca7000.txt
index e4a8a51..21c36e5 100644
--- a/Documentation/devicetree/bindings/net/qca,qca7000.txt
+++ b/Documentation/devicetree/bindings/net/qca,qca7000.txt
@@ -23,7 +23,6 @@ Optional properties:
Numbers smaller than 1000000 or greater than 16000000
are invalid. Missing the property will set the SPI
frequency to 8000000 Hertz.
-- local-mac-address : see ./ethernet.txt
- qca,legacy-mode : Set the SPI data transfer of the QCA7000 to legacy mode.
In this mode the SPI master must toggle the chip select
between each data word. In burst mode these gaps aren't
@@ -31,6 +30,9 @@ Optional properties:
the QCA7000 is setup via GPIO pin strapping. If the
property is missing the driver defaults to burst mode.
+The MAC address will be determined using the optional properties
+defined in ethernet.txt.
+
SPI Example:
/* Freescale i.MX28 SPI master*/
diff --git a/Documentation/devicetree/bindings/net/samsung-sxgbe.txt b/Documentation/devicetree/bindings/net/samsung-sxgbe.txt
index 46e5911..2cff6d8 100644
--- a/Documentation/devicetree/bindings/net/samsung-sxgbe.txt
+++ b/Documentation/devicetree/bindings/net/samsung-sxgbe.txt
@@ -21,10 +21,12 @@ Required properties:
range.
Optional properties:
-- mac-address: 6 bytes, mac address
- max-frame-size: Maximum Transfer Unit (IEEE defined MTU), rather
than the maximum frame size.
+The MAC address will be determined using the optional properties
+defined in ethernet.txt.
+
Example:
aliases {
diff --git a/Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt b/Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
index 36f1aef..ad3c6e1 100644
--- a/Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
+++ b/Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
@@ -103,8 +103,6 @@ Required properties:
Optional properties:
- dma-coherent: Present if dma operations are coherent
-- mac-address: See ethernet.txt in the same directory
-- local-mac-address: See ethernet.txt in the same directory
- phy-reset-gpios: Phandle and specifier for any GPIO used to reset the PHY.
See ../gpio/gpio.txt.
- snps,en-lpi: If present it enables use of the AXI low-power interface
@@ -133,6 +131,9 @@ Optional properties:
- device_type: Must be "ethernet-phy".
- fixed-mode device tree subnode: see fixed-link.txt in the same directory
+The MAC address will be determined using the optional properties
+defined in ethernet.txt.
+
Examples:
ethernet2@40010000 {
clock-names = "phy_ref_clk", "apb_pclk";
diff --git a/Documentation/devicetree/bindings/net/socionext,uniphier-ave4.txt b/Documentation/devicetree/bindings/net/socionext,uniphier-ave4.txt
index fc8f017..4e85fc4 100644
--- a/Documentation/devicetree/bindings/net/socionext,uniphier-ave4.txt
+++ b/Documentation/devicetree/bindings/net/socionext,uniphier-ave4.txt
@@ -31,8 +31,8 @@ Required properties:
- socionext,syscon-phy-mode: A phandle to syscon with one argument
that configures phy mode. The argument is the ID of MAC instance.
-Optional properties:
- - local-mac-address: See ethernet.txt in the same directory.
+The MAC address will be determined using the optional properties
+defined in ethernet.txt.
Required subnode:
- mdio: A container for child nodes representing phy nodes.
diff --git a/Documentation/devicetree/bindings/net/socionext-netsec.txt b/Documentation/devicetree/bindings/net/socionext-netsec.txt
index 0cff94f..9d6c9feb 100644
--- a/Documentation/devicetree/bindings/net/socionext-netsec.txt
+++ b/Documentation/devicetree/bindings/net/socionext-netsec.txt
@@ -26,11 +26,12 @@ Required properties:
Optional properties: (See ethernet.txt file in the same directory)
- dma-coherent: Boolean property, must only be present if memory
accesses performed by the device are cache coherent.
-- local-mac-address: See ethernet.txt in the same directory.
-- mac-address: See ethernet.txt in the same directory.
- max-speed: See ethernet.txt in the same directory.
- max-frame-size: See ethernet.txt in the same directory.
+The MAC address will be determined using the optional properties
+defined in ethernet.txt.
+
Example:
eth0: ethernet@522d0000 {
compatible = "socionext,synquacer-netsec";
diff --git a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt
index 7b9a776..7466550 100644
--- a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt
+++ b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt
@@ -13,11 +13,12 @@ properties:
Optional properties:
-- mac-address: See ethernet.txt in the parent directory
-- local-mac-address: See ethernet.txt in the parent directory
- ieee80211-freq-limit: See ieee80211.txt
- mediatek,mtd-eeprom: Specify a MTD partition + offset containing EEPROM data
+The driver is using of_get_mac_address API, so the MAC address can be as well
+be set with corresponding optional properties defined in net/ethernet.txt.
+
Optional nodes:
- led: Properties for a connected LED
Optional properties:
diff --git a/Documentation/devicetree/bindings/net/wireless/qca,ath9k.txt b/Documentation/devicetree/bindings/net/wireless/qca,ath9k.txt
index b7396c8..aaaeeb5 100644
--- a/Documentation/devicetree/bindings/net/wireless/qca,ath9k.txt
+++ b/Documentation/devicetree/bindings/net/wireless/qca,ath9k.txt
@@ -34,9 +34,9 @@ Optional properties:
ath9k wireless chip (in this case the calibration /
EEPROM data will be loaded from userspace using the
kernel firmware loader).
-- mac-address: See ethernet.txt in the parent directory
-- local-mac-address: See ethernet.txt in the parent directory
+The MAC address will be determined using the optional properties defined in
+net/ethernet.txt.
In this example, the node is defined as child node of the PCI controller:
&pci0 {
--
1.9.1
^ permalink raw reply related
* [PATCH] mt76: mt7615: Use after free in mt7615_mcu_set_bcn()
From: Dan Carpenter @ 2019-05-03 13:09 UTC (permalink / raw)
To: Felix Fietkau, Ryder Lee
Cc: Lorenzo Bianconi, Roy Luo, Kalle Valo, Matthias Brugger,
linux-wireless, linux-mediatek, kernel-janitors
We dereference "skb" when we assign:
req.pkt_len = cpu_to_le16(MT_TXD_SIZE + skb->len);
^^^^^^^^
So this patch just moves the dev_kfree_skb() down a bit to avoid the
use after free.
Fixes: 04b8e65922f6 ("mt76: add mac80211 driver for MT7615 PCIe-based chipsets")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
index ea67c6022fe6..dc1301effa24 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
@@ -1270,7 +1270,6 @@ int mt7615_mcu_set_bcn(struct mt7615_dev *dev, struct ieee80211_vif *vif,
mt7615_mac_write_txwi(dev, (__le32 *)(req.pkt), skb, wcid, NULL,
0, NULL);
memcpy(req.pkt + MT_TXD_SIZE, skb->data, skb->len);
- dev_kfree_skb(skb);
req.omac_idx = mvif->omac_idx;
req.enable = en;
@@ -1281,6 +1280,7 @@ int mt7615_mcu_set_bcn(struct mt7615_dev *dev, struct ieee80211_vif *vif,
req.pkt_len = cpu_to_le16(MT_TXD_SIZE + skb->len);
req.tim_ie_pos = cpu_to_le16(MT_TXD_SIZE + tim_off);
+ dev_kfree_skb(skb);
skb = mt7615_mcu_msg_alloc(&req, sizeof(req));
return mt7615_mcu_msg_send(dev, skb, MCU_EXT_CMD_BCN_OFFLOAD,
--
2.18.0
^ permalink raw reply related
* [PATCH] mt76: Fix a signedness bug in mt7615_add_interface()
From: Dan Carpenter @ 2019-05-03 12:54 UTC (permalink / raw)
To: Felix Fietkau, Ryder Lee
Cc: Lorenzo Bianconi, Roy Luo, Kalle Valo, Matthias Brugger,
linux-wireless, linux-mediatek, kernel-janitors
The problem is that "mvif->omac_idx" is a u8 so it can't be negative
and the error handling won't work. The get_omac_idx() function returns
-1 on error.
Fixes: 04b8e65922f6 ("mt76: add mac80211 driver for MT7615 PCIe-based chipsets")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/main.c b/drivers/net/wireless/mediatek/mt76/mt7615/main.c
index 80e6b211f60b..8d7a47d1b205 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/main.c
@@ -77,11 +77,12 @@ static int mt7615_add_interface(struct ieee80211_hw *hw,
goto out;
}
- mvif->omac_idx = get_omac_idx(vif->type, dev->omac_mask);
- if (mvif->omac_idx < 0) {
+ idx = get_omac_idx(vif->type, dev->omac_mask);
+ if (idx < 0) {
ret = -ENOSPC;
goto out;
}
+ mvif->omac_idx = idx;
/* TODO: DBDC support. Use band 0 and wmm 0 for now */
mvif->band_idx = 0;
--
2.18.0
^ permalink raw reply related
* [PATCH] rtw88: avoid circular locking between local->iflist_mtx and rtwdev->mutex
From: Stanislaw Gruszka @ 2019-05-03 12:29 UTC (permalink / raw)
To: linux-wireless; +Cc: Yan-Hsuan Chuang, Stanislaw Gruszka
Remove circular lock dependency by using atomic version of interfaces
iterate in watch_dog_work(), hence avoid taking local->iflist_mtx
(rtw_vif_watch_dog_iter() only update some data, it can be called from
atomic context). Fixes below LOCKDEP warning:
[ 1157.219415] ======================================================
[ 1157.225772] [ INFO: possible circular locking dependency detected ]
[ 1157.232150] 3.10.0-1043.el7.sgruszka1.x86_64.debug #1 Not tainted
[ 1157.238346] -------------------------------------------------------
[ 1157.244635] kworker/u4:2/14490 is trying to acquire lock:
[ 1157.250194] (&rtwdev->mutex){+.+.+.}, at: [<ffffffffc098322b>] rtw_ops_config+0x2b/0x90 [rtw88]
[ 1157.259151]
but task is already holding lock:
[ 1157.265085] (&local->iflist_mtx){+.+...}, at: [<ffffffffc0b8ab7a>] ieee80211_mgd_probe_ap.part.28+0xca/0x160 [mac80211]
[ 1157.276169]
which lock already depends on the new lock.
[ 1157.284488]
the existing dependency chain (in reverse order) is:
[ 1157.292101]
-> #2 (&local->iflist_mtx){+.+...}:
[ 1157.296919] [<ffffffffbc741a29>] lock_acquire+0x99/0x1e0
[ 1157.302955] [<ffffffffbce72793>] mutex_lock_nested+0x93/0x410
[ 1157.309416] [<ffffffffc0b6038f>] ieee80211_iterate_interfaces+0x2f/0x60 [mac80211]
[ 1157.317730] [<ffffffffc09811ab>] rtw_watch_dog_work+0xcb/0x130 [rtw88]
[ 1157.325003] [<ffffffffbc6d77bc>] process_one_work+0x22c/0x720
[ 1157.331481] [<ffffffffbc6d7dd6>] worker_thread+0x126/0x3b0
[ 1157.337589] [<ffffffffbc6e107f>] kthread+0xef/0x100
[ 1157.343260] [<ffffffffbce848b7>] ret_from_fork_nospec_end+0x0/0x39
[ 1157.350091]
-> #1 ((&(&rtwdev->watch_dog_work)->work)){+.+...}:
[ 1157.356314] [<ffffffffbc741a29>] lock_acquire+0x99/0x1e0
[ 1157.362427] [<ffffffffbc6d570b>] flush_work+0x5b/0x310
[ 1157.368287] [<ffffffffbc6d740e>] __cancel_work_timer+0xae/0x170
[ 1157.374940] [<ffffffffbc6d7583>] cancel_delayed_work_sync+0x13/0x20
[ 1157.381930] [<ffffffffc0982b49>] rtw_core_stop+0x29/0x50 [rtw88]
[ 1157.388679] [<ffffffffc098bee6>] rtw_enter_ips+0x16/0x20 [rtw88]
[ 1157.395428] [<ffffffffc0983242>] rtw_ops_config+0x42/0x90 [rtw88]
[ 1157.402173] [<ffffffffc0b13343>] ieee80211_hw_config+0xc3/0x680 [mac80211]
[ 1157.409854] [<ffffffffc0b3925b>] ieee80211_do_open+0x69b/0x9c0 [mac80211]
[ 1157.417418] [<ffffffffc0b395e9>] ieee80211_open+0x69/0x70 [mac80211]
[ 1157.424496] [<ffffffffbcd03442>] __dev_open+0xe2/0x160
[ 1157.430356] [<ffffffffbcd03773>] __dev_change_flags+0xa3/0x180
[ 1157.436922] [<ffffffffbcd03879>] dev_change_flags+0x29/0x60
[ 1157.443224] [<ffffffffbcda14c4>] devinet_ioctl+0x794/0x890
[ 1157.449331] [<ffffffffbcda27b5>] inet_ioctl+0x75/0xa0
[ 1157.455087] [<ffffffffbccd54eb>] sock_do_ioctl+0x2b/0x60
[ 1157.461178] [<ffffffffbccd5753>] sock_ioctl+0x233/0x310
[ 1157.467109] [<ffffffffbc8bd820>] do_vfs_ioctl+0x410/0x6c0
[ 1157.473233] [<ffffffffbc8bdb71>] SyS_ioctl+0xa1/0xc0
[ 1157.478914] [<ffffffffbce84a5e>] system_call_fastpath+0x25/0x2a
[ 1157.485569]
-> #0 (&rtwdev->mutex){+.+.+.}:
[ 1157.490022] [<ffffffffbc7409d1>] __lock_acquire+0xec1/0x1630
[ 1157.496305] [<ffffffffbc741a29>] lock_acquire+0x99/0x1e0
[ 1157.502413] [<ffffffffbce72793>] mutex_lock_nested+0x93/0x410
[ 1157.508890] [<ffffffffc098322b>] rtw_ops_config+0x2b/0x90 [rtw88]
[ 1157.515724] [<ffffffffc0b13343>] ieee80211_hw_config+0xc3/0x680 [mac80211]
[ 1157.523370] [<ffffffffc0b8a4ca>] ieee80211_recalc_ps.part.27+0x9a/0x180 [mac80211]
[ 1157.531685] [<ffffffffc0b8abc5>] ieee80211_mgd_probe_ap.part.28+0x115/0x160 [mac80211]
[ 1157.540353] [<ffffffffc0b8b40d>] ieee80211_beacon_connection_loss_work+0x4d/0x80 [mac80211]
[ 1157.549513] [<ffffffffbc6d77bc>] process_one_work+0x22c/0x720
[ 1157.555886] [<ffffffffbc6d7dd6>] worker_thread+0x126/0x3b0
[ 1157.562170] [<ffffffffbc6e107f>] kthread+0xef/0x100
[ 1157.567765] [<ffffffffbce848b7>] ret_from_fork_nospec_end+0x0/0x39
[ 1157.574579]
other info that might help us debug this:
[ 1157.582788] Chain exists of:
&rtwdev->mutex --> (&(&rtwdev->watch_dog_work)->work) --> &local->iflist_mtx
[ 1157.593024] Possible unsafe locking scenario:
[ 1157.599046] CPU0 CPU1
[ 1157.603653] ---- ----
[ 1157.608258] lock(&local->iflist_mtx);
[ 1157.612180] lock((&(&rtwdev->watch_dog_work)->work));
[ 1157.620074] lock(&local->iflist_mtx);
[ 1157.626555] lock(&rtwdev->mutex);
[ 1157.630124]
*** DEADLOCK ***
[ 1157.636148] 4 locks held by kworker/u4:2/14490:
[ 1157.640755] #0: (%s#6){.+.+.+}, at: [<ffffffffbc6d774a>] process_one_work+0x1ba/0x720
[ 1157.648965] #1: ((&ifmgd->beacon_connection_loss_work)){+.+.+.}, at: [<ffffffffbc6d774a>] process_one_work+0x1ba/0x720
[ 1157.659950] #2: (&wdev->mtx){+.+.+.}, at: [<ffffffffc0b8aad5>] ieee80211_mgd_probe_ap.part.28+0x25/0x160 [mac80211]
[ 1157.670901] #3: (&local->iflist_mtx){+.+...}, at: [<ffffffffc0b8ab7a>] ieee80211_mgd_probe_ap.part.28+0xca/0x160 [mac80211]
[ 1157.682466]
Fixes: e3037485c68e ("rtw88: new Realtek 802.11ac driver")
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/realtek/rtw88/main.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c
index 9893e5e297e3..f63c34a2e356 100644
--- a/drivers/net/wireless/realtek/rtw88/main.c
+++ b/drivers/net/wireless/realtek/rtw88/main.c
@@ -162,7 +162,8 @@ static void rtw_watch_dog_work(struct work_struct *work)
rtwdev->stats.tx_cnt = 0;
rtwdev->stats.rx_cnt = 0;
- rtw_iterate_vifs(rtwdev, rtw_vif_watch_dog_iter, &data);
+ /* use atomic version to avoid taking local->iflist_mtx mutex */
+ rtw_iterate_vifs_atomic(rtwdev, rtw_vif_watch_dog_iter, &data);
/* fw supports only one station associated to enter lps, if there are
* more than two stations associated to the AP, then we can not enter
--
1.9.3
^ permalink raw reply related
* Re: [RFC] rtw88: fix subscript above array bounds compiler warning
From: Stanislaw Gruszka @ 2019-05-03 12:24 UTC (permalink / raw)
To: Tony Chuang; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <F7CD281DE3E379468C6D07993EA72F84D17E8846@RTITMBSVM04.realtek.com.tw>
On Fri, May 03, 2019 at 12:01:05PM +0000, Tony Chuang wrote:
> > Subject: [RFC] rtw88: fix subscript above array bounds compiler warning
> >
> > My compiler complain about:
> >
> > drivers/net/wireless/realtek/rtw88/phy.c: In function
> > ‘rtw_phy_rf_power_2_rssi’:
> > drivers/net/wireless/realtek/rtw88/phy.c:430:26: warning: array subscript is
> > above array bounds [-Warray-bounds]
> > linear = db_invert_table[i][j];
> >
> > According to comment power_db should be in range 1 ~ 96 .
> > Correct rtw_phy_power_2_db() to make max power 96 db
> > (still min is 0). This make the warning gone.
> >
> > However power >= 20 check still looks somewhat suspicious to me.
> >
> > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> > ---
> > drivers/net/wireless/realtek/rtw88/phy.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/net/wireless/realtek/rtw88/phy.c
> > b/drivers/net/wireless/realtek/rtw88/phy.c
> > index 35a35dbca85f..a716a44d78b0 100644
> > --- a/drivers/net/wireless/realtek/rtw88/phy.c
> > +++ b/drivers/net/wireless/realtek/rtw88/phy.c
> > @@ -410,12 +410,12 @@ void rtw_phy_dynamic_mechanism(struct rtw_dev
> > *rtwdev)
> >
> > static u8 rtw_phy_power_2_db(s8 power)
> > {
> > - if (power <= -100 || power >= 20)
> > + if (power <= -96 || power >= 20)
> > return 0;
> > else if (power >= 0)
> > - return 100;
> > + return 96;
> > else
> > - return 100 + power;
> > + return 96 + power;
> > }
> >
> > static u64 rtw_phy_db_2_linear(u8 power_db)
> > --
>
> I think I should check with the radio team, that if the power from the
> rx descriptor generated by hardware can possibly get >= 20
>
> And also check what the actual logic they expected to deal with the power.
> Thanks for reporting it.
Yeah, this could be just teoretical issue as we can not get power
values >= 0 from HW. However I think compiler correctly complains, as
for power_db=100 we get i = ((100 - 1) >> 3) = 12 , what exceed by one
max first index of db_invert_table[][], which should be in range
0 - 11.
Stanislaw
^ permalink raw reply
* pull-request: wireless-drivers-next 2019-05-03
From: Kalle Valo @ 2019-05-03 12:21 UTC (permalink / raw)
To: David Miller; +Cc: linux-wireless, netdev, linux-kernel
Hi Dave,
here's a pull request to net-next for 5.2, more information below. Also
there's a conflict in iwlwifi again and this time I added the conflict
resolution to the signed tag based on our discussion earlier this week.
Please let me know what you think or there are any problems.
Kalle
The following changes since commit 5c2e6e14a0ad24a35d9d2b318204c8c012d9d618:
Merge branch 'net-add-reset-controller-driven-PHY-reset' (2019-04-18 17:43:11 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git tags/wireless-drivers-next-for-davem-2019-05-03
for you to fetch changes up to f9b628d61faef9b6d411f13cf4be41470b7a7adb:
rtw88: add license for Makefile (2019-05-03 15:06:12 +0300)
----------------------------------------------------------------
wireless-drivers-next patches for 5.2
Most likely the last patchset of new feature for 5.2, and this time we
have quite a lot of new features. Most obvious being rtw88 from
Realtek which supports RTL8822BE and RTL8822CE 802.11ac devices. We
have also new hardware support for existing drivers and improvements.
There's one conflict in iwlwifi, my example conflict resolution below.
Major changes:
iwlwifi
* bump the 20000-series FW API version
* work on new hardware continues
* RTT confidence indication support for Fine Timing Measurement (FTM)
* an improvement in HE (802.11ax) rate-scaling
* add command version parsing from the fimware TLVs
* add support for a new WoWLAN patterns firmware API
rsi
* add support for rs9116
mwifiex
* add support for SD8987
brcmfmac
* add quirk for ACEPC T8 and T11 mini PCs
rt2x00
* add RT3883 support
qtnfmac
* fix debugfs interface to support multiple cards
rtw88
* new driver
mt76
* share more code across drivers
* add support for MT7615 chipset
* rework DMA API
* tx/rx performance optimizations
* use NAPI for tx cleanup on mt76x02
* AP mode support for USB devices
* USB stability fixes
* tx power handling fixes for 76x2
* endian fixes
Conflicts:
There's a trivial conflict in
drivers/net/wireless/intel/iwlwifi/fw/file.h, just leave
IWL_UCODE_TLV_FW_FSEQ_VERSION to the file. 'git diff' output should be
just empty:
diff --cc drivers/net/wireless/intel/iwlwifi/fw/file.h
index cd622af90077,b0671e16e1ce..000000000000
--- a/drivers/net/wireless/intel/iwlwifi/fw/file.h
+++ b/drivers/net/wireless/intel/iwlwifi/fw/file.h
----------------------------------------------------------------
Aditya Pakki (1):
rsi: Fix NULL pointer dereference in kmalloc
Ahmad Masri (4):
wil6210: prevent device memory access while in reset or suspend
wil6210: check mid is valid
wil6210: fix report of rx packet checksum in edma mode
wil6210: add support for ucode tracing
Alexei Avshalom Lazar (1):
wil6210: align to latest auto generated wmi.h
Alexey Khoroshilov (1):
mwl8k: fix error handling in mwl8k_post_cmd()
Andrei Otcheretianski (1):
iwlwifi: mvm: Don't sleep in RX path
Avraham Stern (2):
iwlwifi: mvm: support rtt confidence indication
iwlwifi: mvm: report FTM start time TSF when applicable
Colin Ian King (3):
iwlegacy: fix spelling mistake "acumulative" -> "accumulative"
mwifiex: fix spelling mistake "capabilties" -> "capabilities"
rtw88: fix shift of more than 32 bits of a integer
Dan Carpenter (2):
mwifiex: prevent an array overflow
brcm80211: potential NULL dereference in brcmf_cfg80211_vndr_cmds_dcmd_handler()
Dedy Lansky (2):
wil6210: use OEM MAC address from OTP
wil6210: free edma_rx_swtail upon reset
Felix Fietkau (11):
mt76: fix tx power issues
mt76: use readl/writel instead of ioread32/iowrite32
mt76: use mac80211 txq scheduling
mt76: reduce locking in mt76_dma_tx_cleanup
mt76: store wcid tx rate info in one u32 reduce locking
mt76: move tx tasklet to struct mt76_dev
mt76: only schedule txqs from the tx tasklet
mt76: mt76x02: use napi polling for tx cleanup
mt76: mt76x02: remove irqsave/restore in locking for tx status fifo
mt76: mt7603: fix initialization of max rx length
mt76: mt7615: use sizeof instead of sizeof_field
Gabor Juhos (1):
rt2x00: add RT3883 support
Gregory Greenman (1):
iwlwifi: rs: consider LDPC capability in case of HE
Gustavo A. R. Silva (5):
rndis_wlan: use struct_size() helper
mwifiex: use struct_size() in kzalloc()
zd1211rw: use struct_size() helper
rtlwifi: rtl8723ae: Fix missing break in switch statement
rtw88: phy: mark expected switch fall-throughs
Hans de Goede (1):
brcmfmac: Add DMI nvram filename quirk for ACEPC T8 and T11 mini PCs
Igor Mitsyanko (1):
qtnfmac: allow to control DFS slave radar detection
Jeff Xie (1):
mwl8k: move spin_lock_bh to spin_lock in tasklet
Johannes Berg (3):
iwlwifi: pcie: initialize debug_rfkill to -1
iwlwifi: pcie: don't crash on invalid RX interrupt
iwlwifi: parse command version TLV
Kalle Valo (5):
Merge ath-next from git://git.kernel.org/.../kvalo/ath.git
Merge tag 'iwlwifi-next-for-kalle-2019-04-18-2' of git://git.kernel.org/.../iwlwifi/iwlwifi-next
Revert "brcmfmac: send mailbox interrupt twice for specific hardware device"
Merge tag 'iwlwifi-next-for-kalle-2019-04-29' of git://git.kernel.org/.../iwlwifi/iwlwifi-next
Merge tag 'mt76-for-kvalo-2019-05-01' of https://github.com/nbd168/wireless
Kangjie Lu (1):
net: cw1200: fix a NULL pointer dereference
Larry Finger (1):
b43: Remove empty function lpphy_papd_cal()
Liad Kaufman (1):
iwlwifi: mvm: limit TLC according to our HE capabilities
Lior David (1):
wil6210: fix return code of wmi_mgmt_tx and wmi_mgmt_tx_ext
Lorenzo Bianconi (35):
mt76: mmio: move mt76x02_set_irq_mask in mt76 module
mt76: dma: move mt76x02_init_{tx,rx}_queue in mt76 module
mt76: remove mt76_queue dependency from tx_queue_skb function pointer
mt76: remove mt76_queue dependency from tx_prepare_skb function pointer
mt76: remove mt76_queue dependency from tx_complete_skb function pointer
mt76: introduce mt76_sw_queue data structure
mt76: introduce mt76_txq_id field in mt76_queue_entry
mt76: move mt76x02_insert_hdr_pad in mt76-core module
mt76: mmio: move mt76_insert_hdr_pad in mt76_dma_tx_queue_skb
mt76: move skb dma mapping before running tx_prepare_skb
mt76: introduce mt76_tx_info data structure
mt76: dma: add static qualifier to mt76_dma_tx_queue_skb
mt7603: remove mt7603_mcu_init routine
mt7603: core: do not use magic numbers in mt7603_reg_map
mt76: usb: reduce code indentation in mt76u_alloc_tx
mt76: introduce mt76_free_device routine
mt76: move mac_work in mt76_dev
mt76: usb: reduce locking in mt76u_tx_tasklet
mt76: set txwi_size according to the driver value
mt76: add skb pointer to mt76_tx_info
mt76: dma: introduce skb field in mt76_txwi_cache
mt76: dma: add skb check for dummy pointer
mt76: mt7603: remove query from mt7603_mcu_msg_send signature
mt76: mt7603: use standard signature for mt7603_mcu_msg_send
mt76: mt7603: initialize mt76_mcu_ops data structure
mt76: introduce mt76_mcu_restart macro
mt76: mt7603: init mcu_restart function pointer
mt76: mt7603: run __mt76_mcu_send_msg in mt7603_mcu_send_firmware
mt76: mt7603: report firmware version using ethtool
mt76: move beacon_int in mt76_dev
mt76: move beacon_mask in mt76_dev
mt76: move pre_tbtt_tasklet in mt76_dev
mt76: mt7603: enable/disable pre_tbtt_tasklet in mt7603_set_channel
mt76: do not enable/disable pre_tbtt_tasklet in scan_start/scan_complete
mt76: mt7603: dynamically alloc mcu req in mt7603_mcu_set_eeprom
Luca Coelho (5):
iwlwifi: bump FW API to 47 for 22000 series
iwlwifi: remove unused 0x40C0 PCI device IDs
iwlwifi: mvm: support v2 of the WoWLAN patterns command
iwlwifi: bump FW API to 48 for 22000 series
iwlwifi: pcie: remove stray character in iwl_pcie_rx_alloc_page()
Maya Erez (6):
wil6210: increase PCP stop command timeout
wil6210: do not set BIT_USER_SUPPORT_T_POWER_ON_0 in Talyn-MB
wil6210: update WIL_MCS_MAX to 15
wil6210: prevent access to RGF_CAF_ICR in Talyn
wil6210: reset buff id in status message after completion
wil6210: print error in FW and board files load failures
Nathan Chancellor (2):
iwlwifi: mvm: Change an 'else if' into an 'else' in iwl_mvm_send_add_bcast_sta
rtw88: Make RA_MASK macros ULL
Pan Bian (1):
p54: drop device reference count if fails to enable device
Paolo Bonzini (1):
wlcore: simplify/fix/optimize reg_ch_conf_pending operations
Petr Štetiar (1):
mwl8k: Fix rate_idx underflow
Rafał Miłecki (1):
brcmfmac: print firmware messages after a firmware crash
Ryder Lee (6):
mt76: add mac80211 driver for MT7615 PCIe-based chipsets
mt76: add unlikely() for dma_mapping_error() check
mt76: use macro for sn and seq_ctrl conversion
MAINTAINERS: update entry for mt76 wireless driver
mt76: fix endianness sparse warnings
mt76: add TX/RX antenna pattern capabilities
Sergey Matyukevich (2):
qtnfmac: handle channel switch events for connected stations only
qtnfmac: modify debugfs to support multiple cards
Shahar S Matityahu (12):
iwlwifi: dbg_ini: support notification and dhc regions type parsing
iwlwifi: add FW_INFO debug level
iwlwifi: dbg_ini: add debug prints to the ini flows
iwlwifi: dbg: add periphery memory dumping support to ax210 device family
iwlwifi: dbg: add lmac and umac PC registers to periphery dump
iwlwifi: dbg_ini: set dump bit only when trigger collection is certain
iwlwifi: support fseq tlv and print fseq version
iwlwifi: dbg_ini: add lmac and umac error tables dumping support
iwlwifi: dbg_ini: add periodic trigger support
iwlwifi: dbg: replace dump info device family with HW type
iwlwifi: avoid allocating memory for region with disabled domain
iwlwifi: dbg_ini: check for valid region type during regions parsing
Shaul Triebitz (2):
iwlwifi: mvm: set 512 TX queue slots for AX210 devices
iwlwifi: unite macros with same meaning
Siva Rebbagondla (8):
rsi: add new device model for 9116
rsi: move common part of firmware load to separate function
rsi: add firmware loading for 9116 device
rsi: change in device init frame sequence for 9116
rsi: new bootup parameters for 9116
rsi: send new tx command frame wlan9116 features
rsi: reset device changes for 9116
rsi: miscallaneous changes for 9116 and common
Stanislaw Gruszka (39):
rt2x00: use ratelimited variants dev_warn/dev_err
rt2x00: check number of EPROTO errors
rt2x00: do not print error when queue is full
rt2800: partially restore old mmio txstatus behaviour
rt2800: new flush implementation for SoC devices
rt2800: move txstatus pending routine
rt2800mmio: fetch tx status changes
rt2800mmio: use timer and work for handling tx statuses timeouts
rt2x00: remove last_nostatus_check
rt2x00: remove not used entry field
rt2x00mmio: remove legacy comment
mt76x02: introduce mt76x02_beacon.c
mt76x02: add hrtimer for pre TBTT for USB
mt76x02: introduce beacon_ops
mt76x02u: implement beacon_ops
mt76x02: generalize some mmio beaconing functions
mt76x02u: add sta_ps
mt76x02: disable HW encryption for group frames
mt76x02u: implement pre TBTT work for USB
mt76x02: make beacon slots bigger for USB
mt76x02u: add mt76_release_buffered_frames
mt76: unify set_tim
mt76x02: enable AP mode for USB
mt76usb: change mt76u_submit_buf
mt76: remove rx_page_lock
mt76usb: change mt76u_fill_rx_sg arguments
mt76usb: use usb_dev private data
mt76usb: remove mt76u_buf redundant fileds
mt76usb: move mt76u_buf->done to queue entry
mt76usb: remove mt76u_buf and use urb directly
mt76usb: remove MT_RXQ_MAIN queue from mt76u_urb_alloc
mt76usb: resue mt76u_urb_alloc for tx
mt76usb: remove unneded sg_init_table
mt76usb: allocate urb and sg as linear data
mt76usb: remove queue variable from rx_tasklet
mt76: mt76x02u: remove bogus stop on suspend
mt76usb: fix tx/rx stop
mt76: mt76x02: remove bogus mutex usage
mt76: usb: use EP max packet aligned buffer sizes for rx
Tamás Szűcs (1):
mwifiex: add support for SD8987 chipset
Tomislav Požega (1):
rt2x00: code-style fix in rt2800usb.c
Wright Feng (3):
brcmfmac: send mailbox interrupt twice for specific hardware device
brcmfmac: send mailbox interrupt twice for specific hardware device
brcmfmac: set txflow request id from 1 to pktids array size
Yan-Hsuan Chuang (2):
rtw88: new Realtek 802.11ac driver
rtw88: add license for Makefile
YueHaibing (6):
ray_cs: Check return value of pcmcia_register_driver
ray_cs: use remove_proc_subtree to simplify procfs code
ssb: Fix possible NULL pointer dereference in ssb_host_pcmcia_exit
at76c50x-usb: Don't register led_trigger if usb_register_driver failed
rtlwifi: rtl8192cu: remove set but not used variable 'turbo_scanoff'
iwlwifi: Use correct channel_profile iniwl_get_nvm
kbuild test robot (1):
mt76: mt76x02: mt76x02_poll_tx() can be static
MAINTAINERS | 8 +
drivers/net/wireless/ath/wil6210/cfg80211.c | 11 +-
drivers/net/wireless/ath/wil6210/debugfs.c | 38 +-
drivers/net/wireless/ath/wil6210/fw_inc.c | 6 +-
drivers/net/wireless/ath/wil6210/main.c | 78 +-
drivers/net/wireless/ath/wil6210/netdev.c | 10 +-
drivers/net/wireless/ath/wil6210/pcie_bus.c | 4 +-
drivers/net/wireless/ath/wil6210/pm.c | 35 +-
drivers/net/wireless/ath/wil6210/txrx_edma.c | 74 +-
drivers/net/wireless/ath/wil6210/txrx_edma.h | 47 +-
drivers/net/wireless/ath/wil6210/wil6210.h | 11 +-
drivers/net/wireless/ath/wil6210/wil_crash_dump.c | 18 +-
drivers/net/wireless/ath/wil6210/wmi.c | 24 +-
drivers/net/wireless/ath/wil6210/wmi.h | 91 +-
drivers/net/wireless/atmel/at76c50x-usb.c | 4 +-
drivers/net/wireless/broadcom/b43/phy_lp.c | 11 -
.../net/wireless/broadcom/brcm80211/brcmfmac/dmi.c | 26 +
.../wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 6 +-
.../wireless/broadcom/brcm80211/brcmfmac/pcie.c | 31 +-
.../wireless/broadcom/brcm80211/brcmfmac/vendor.c | 5 +-
drivers/net/wireless/intel/iwlegacy/3945-debug.c | 8 +-
drivers/net/wireless/intel/iwlwifi/cfg/22000.c | 19 +-
drivers/net/wireless/intel/iwlwifi/fw/api/d3.h | 136 +-
.../net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h | 4 +
.../net/wireless/intel/iwlwifi/fw/api/location.h | 77 +-
drivers/net/wireless/intel/iwlwifi/fw/api/txq.h | 3 +
drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 187 +-
drivers/net/wireless/intel/iwlwifi/fw/dbg.h | 3 +
drivers/net/wireless/intel/iwlwifi/fw/error-dump.h | 4 +-
drivers/net/wireless/intel/iwlwifi/fw/file.h | 33 +-
drivers/net/wireless/intel/iwlwifi/fw/img.h | 7 +-
drivers/net/wireless/intel/iwlwifi/fw/init.c | 2 +
drivers/net/wireless/intel/iwlwifi/fw/runtime.h | 1 +
drivers/net/wireless/intel/iwlwifi/iwl-config.h | 1 -
drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 1 +
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 2 +-
drivers/net/wireless/intel/iwlwifi/iwl-debug.h | 2 +
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 26 +-
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 58 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 33 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 1 +
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 50 +-
drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 11 +-
.../net/wireless/intel/iwlwifi/mvm/time-event.c | 2 +-
.../wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c | 3 +-
.../net/wireless/intel/iwlwifi/pcie/ctxt-info.c | 6 +-
drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 5 -
drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 8 +-
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 9 +-
.../net/wireless/intel/iwlwifi/pcie/trans-gen2.c | 7 +-
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 13 +-
drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 8 +-
drivers/net/wireless/intersil/p54/p54pci.c | 3 +-
drivers/net/wireless/marvell/mwifiex/Kconfig | 4 +-
drivers/net/wireless/marvell/mwifiex/cfp.c | 3 +
drivers/net/wireless/marvell/mwifiex/sdio.c | 5 +
drivers/net/wireless/marvell/mwifiex/sdio.h | 69 +
drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c | 7 +-
drivers/net/wireless/marvell/mwifiex/sta_event.c | 12 +-
drivers/net/wireless/marvell/mwifiex/uap_event.c | 8 +-
drivers/net/wireless/marvell/mwl8k.c | 24 +-
drivers/net/wireless/mediatek/mt76/Kconfig | 1 +
drivers/net/wireless/mediatek/mt76/Makefile | 3 +-
drivers/net/wireless/mediatek/mt76/agg-rx.c | 2 +-
drivers/net/wireless/mediatek/mt76/debugfs.c | 7 +-
drivers/net/wireless/mediatek/mt76/dma.c | 164 +-
drivers/net/wireless/mediatek/mt76/dma.h | 2 +
drivers/net/wireless/mediatek/mt76/mac80211.c | 41 +-
drivers/net/wireless/mediatek/mt76/mmio.c | 17 +-
drivers/net/wireless/mediatek/mt76/mt76.h | 119 +-
drivers/net/wireless/mediatek/mt76/mt7603/beacon.c | 35 +-
drivers/net/wireless/mediatek/mt76/mt7603/core.c | 19 +-
drivers/net/wireless/mediatek/mt76/mt7603/dma.c | 39 +-
drivers/net/wireless/mediatek/mt76/mt7603/init.c | 12 +-
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 54 +-
drivers/net/wireless/mediatek/mt76/mt7603/main.c | 34 +-
drivers/net/wireless/mediatek/mt76/mt7603/mcu.c | 116 +-
drivers/net/wireless/mediatek/mt76/mt7603/mt7603.h | 23 +-
drivers/net/wireless/mediatek/mt76/mt7603/regs.h | 4 +
drivers/net/wireless/mediatek/mt76/mt7615/Kconfig | 7 +
drivers/net/wireless/mediatek/mt76/mt7615/Makefile | 5 +
drivers/net/wireless/mediatek/mt76/mt7615/dma.c | 205 +
drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c | 98 +
drivers/net/wireless/mediatek/mt76/mt7615/eeprom.h | 18 +
drivers/net/wireless/mediatek/mt76/mt7615/init.c | 229 +
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 775 +
drivers/net/wireless/mediatek/mt76/mt7615/mac.h | 300 +
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 499 +
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c | 1655 ++
drivers/net/wireless/mediatek/mt76/mt7615/mcu.h | 520 +
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | 195 +
drivers/net/wireless/mediatek/mt76/mt7615/pci.c | 150 +
drivers/net/wireless/mediatek/mt76/mt7615/regs.h | 203 +
drivers/net/wireless/mediatek/mt76/mt76x0/init.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt76x0/main.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt76x0/pci.c | 26 +-
drivers/net/wireless/mediatek/mt76/mt76x0/usb.c | 49 +-
drivers/net/wireless/mediatek/mt76/mt76x02.h | 44 +-
.../net/wireless/mediatek/mt76/mt76x02_beacon.c | 286 +
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 185 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mac.h | 4 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c | 266 +-
drivers/net/wireless/mediatek/mt76/mt76x02_regs.h | 5 +-
drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c | 29 +-
drivers/net/wireless/mediatek/mt76/mt76x02_usb.h | 12 +-
.../net/wireless/mediatek/mt76/mt76x02_usb_core.c | 188 +-
drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 107 +-
drivers/net/wireless/mediatek/mt76/mt76x2/init.c | 12 +-
drivers/net/wireless/mediatek/mt76/mt76x2/pci.c | 3 +-
.../net/wireless/mediatek/mt76/mt76x2/pci_init.c | 6 +-
.../net/wireless/mediatek/mt76/mt76x2/pci_main.c | 27 +-
drivers/net/wireless/mediatek/mt76/mt76x2/phy.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt76x2/usb.c | 14 +-
.../net/wireless/mediatek/mt76/mt76x2/usb_init.c | 5 +-
.../net/wireless/mediatek/mt76/mt76x2/usb_main.c | 19 +-
drivers/net/wireless/mediatek/mt76/tx.c | 148 +-
drivers/net/wireless/mediatek/mt76/usb.c | 379 +-
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c | 2 +-
drivers/net/wireless/quantenna/qtnfmac/commands.c | 4 +-
drivers/net/wireless/quantenna/qtnfmac/commands.h | 3 +-
drivers/net/wireless/quantenna/qtnfmac/core.c | 35 +
drivers/net/wireless/quantenna/qtnfmac/core.h | 2 +
drivers/net/wireless/quantenna/qtnfmac/debug.c | 4 +-
drivers/net/wireless/quantenna/qtnfmac/event.c | 16 +-
drivers/net/wireless/quantenna/qtnfmac/qlink.h | 4 +-
drivers/net/wireless/ralink/rt2x00/rt2800.h | 19 +-
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 628 +-
drivers/net/wireless/ralink/rt2x00/rt2800lib.h | 3 +-
drivers/net/wireless/ralink/rt2x00/rt2800mmio.c | 124 +-
drivers/net/wireless/ralink/rt2x00/rt2800mmio.h | 1 +
drivers/net/wireless/ralink/rt2x00/rt2800pci.c | 2 +-
drivers/net/wireless/ralink/rt2x00/rt2800soc.c | 13 +-
drivers/net/wireless/ralink/rt2x00/rt2800usb.c | 28 +-
drivers/net/wireless/ralink/rt2x00/rt2x00.h | 7 +-
drivers/net/wireless/ralink/rt2x00/rt2x00dev.c | 4 +
drivers/net/wireless/ralink/rt2x00/rt2x00mmio.h | 2 -
drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 3 +-
drivers/net/wireless/ralink/rt2x00/rt2x00queue.h | 3 -
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c | 22 +-
drivers/net/wireless/ray_cs.c | 8 +-
drivers/net/wireless/realtek/Kconfig | 1 +
drivers/net/wireless/realtek/Makefile | 1 +
.../net/wireless/realtek/rtlwifi/rtl8192cu/rf.c | 3 -
.../net/wireless/realtek/rtlwifi/rtl8723ae/hw.c | 1 +
drivers/net/wireless/realtek/rtw88/Kconfig | 54 +
drivers/net/wireless/realtek/rtw88/Makefile | 22 +
drivers/net/wireless/realtek/rtw88/debug.c | 637 +
drivers/net/wireless/realtek/rtw88/debug.h | 52 +
drivers/net/wireless/realtek/rtw88/efuse.c | 160 +
drivers/net/wireless/realtek/rtw88/efuse.h | 26 +
drivers/net/wireless/realtek/rtw88/fw.c | 633 +
drivers/net/wireless/realtek/rtw88/fw.h | 222 +
drivers/net/wireless/realtek/rtw88/hci.h | 211 +
drivers/net/wireless/realtek/rtw88/mac.c | 965 +
drivers/net/wireless/realtek/rtw88/mac.h | 35 +
drivers/net/wireless/realtek/rtw88/mac80211.c | 481 +
drivers/net/wireless/realtek/rtw88/main.c | 1211 ++
drivers/net/wireless/realtek/rtw88/main.h | 1104 +
drivers/net/wireless/realtek/rtw88/pci.c | 1211 ++
drivers/net/wireless/realtek/rtw88/pci.h | 237 +
drivers/net/wireless/realtek/rtw88/phy.c | 1727 ++
drivers/net/wireless/realtek/rtw88/phy.h | 134 +
drivers/net/wireless/realtek/rtw88/ps.c | 166 +
drivers/net/wireless/realtek/rtw88/ps.h | 20 +
drivers/net/wireless/realtek/rtw88/reg.h | 421 +
drivers/net/wireless/realtek/rtw88/regd.c | 391 +
drivers/net/wireless/realtek/rtw88/regd.h | 67 +
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 1594 ++
drivers/net/wireless/realtek/rtw88/rtw8822b.h | 170 +
.../net/wireless/realtek/rtw88/rtw8822b_table.c | 20783 +++++++++++++++++++
.../net/wireless/realtek/rtw88/rtw8822b_table.h | 18 +
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 1890 ++
drivers/net/wireless/realtek/rtw88/rtw8822c.h | 186 +
.../net/wireless/realtek/rtw88/rtw8822c_table.c | 11753 +++++++++++
.../net/wireless/realtek/rtw88/rtw8822c_table.h | 17 +
drivers/net/wireless/realtek/rtw88/rx.c | 151 +
drivers/net/wireless/realtek/rtw88/rx.h | 41 +
drivers/net/wireless/realtek/rtw88/sec.c | 120 +
drivers/net/wireless/realtek/rtw88/sec.h | 39 +
drivers/net/wireless/realtek/rtw88/tx.c | 367 +
drivers/net/wireless/realtek/rtw88/tx.h | 89 +
drivers/net/wireless/realtek/rtw88/util.c | 72 +
drivers/net/wireless/realtek/rtw88/util.h | 34 +
drivers/net/wireless/rndis_wlan.c | 12 +-
drivers/net/wireless/rsi/rsi_91x_hal.c | 199 +-
drivers/net/wireless/rsi/rsi_91x_mac80211.c | 30 +-
drivers/net/wireless/rsi/rsi_91x_mgmt.c | 232 +-
drivers/net/wireless/rsi/rsi_91x_sdio.c | 129 +-
drivers/net/wireless/rsi/rsi_91x_usb.c | 96 +-
drivers/net/wireless/rsi/rsi_boot_params.h | 63 +
drivers/net/wireless/rsi/rsi_hal.h | 44 +-
drivers/net/wireless/rsi/rsi_main.h | 21 +-
drivers/net/wireless/rsi/rsi_mgmt.h | 26 +
drivers/net/wireless/rsi/rsi_sdio.h | 5 +-
drivers/net/wireless/rsi/rsi_usb.h | 3 +-
drivers/net/wireless/st/cw1200/main.c | 5 +
drivers/net/wireless/ti/wlcore/cmd.c | 15 +-
drivers/net/wireless/ti/wlcore/wlcore.h | 4 +-
drivers/net/wireless/zydas/zd1211rw/zd_usb.c | 3 +-
drivers/ssb/bridge_pcmcia_80211.c | 9 +-
202 files changed, 56497 insertions(+), 1641 deletions(-)
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/Kconfig
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/Makefile
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/dma.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/eeprom.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/init.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/mac.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/mac.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/main.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/mcu.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/pci.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/regs.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76x02_beacon.c
create mode 100644 drivers/net/wireless/realtek/rtw88/Kconfig
create mode 100644 drivers/net/wireless/realtek/rtw88/Makefile
create mode 100644 drivers/net/wireless/realtek/rtw88/debug.c
create mode 100644 drivers/net/wireless/realtek/rtw88/debug.h
create mode 100644 drivers/net/wireless/realtek/rtw88/efuse.c
create mode 100644 drivers/net/wireless/realtek/rtw88/efuse.h
create mode 100644 drivers/net/wireless/realtek/rtw88/fw.c
create mode 100644 drivers/net/wireless/realtek/rtw88/fw.h
create mode 100644 drivers/net/wireless/realtek/rtw88/hci.h
create mode 100644 drivers/net/wireless/realtek/rtw88/mac.c
create mode 100644 drivers/net/wireless/realtek/rtw88/mac.h
create mode 100644 drivers/net/wireless/realtek/rtw88/mac80211.c
create mode 100644 drivers/net/wireless/realtek/rtw88/main.c
create mode 100644 drivers/net/wireless/realtek/rtw88/main.h
create mode 100644 drivers/net/wireless/realtek/rtw88/pci.c
create mode 100644 drivers/net/wireless/realtek/rtw88/pci.h
create mode 100644 drivers/net/wireless/realtek/rtw88/phy.c
create mode 100644 drivers/net/wireless/realtek/rtw88/phy.h
create mode 100644 drivers/net/wireless/realtek/rtw88/ps.c
create mode 100644 drivers/net/wireless/realtek/rtw88/ps.h
create mode 100644 drivers/net/wireless/realtek/rtw88/reg.h
create mode 100644 drivers/net/wireless/realtek/rtw88/regd.c
create mode 100644 drivers/net/wireless/realtek/rtw88/regd.h
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822b.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822b.h
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822b_table.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822b_table.h
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822c.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822c.h
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822c_table.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822c_table.h
create mode 100644 drivers/net/wireless/realtek/rtw88/rx.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rx.h
create mode 100644 drivers/net/wireless/realtek/rtw88/sec.c
create mode 100644 drivers/net/wireless/realtek/rtw88/sec.h
create mode 100644 drivers/net/wireless/realtek/rtw88/tx.c
create mode 100644 drivers/net/wireless/realtek/rtw88/tx.h
create mode 100644 drivers/net/wireless/realtek/rtw88/util.c
create mode 100644 drivers/net/wireless/realtek/rtw88/util.h
^ permalink raw reply
* Re: [PATCH v2 1/5] rtw88: add license for Makefile
From: Kalle Valo @ 2019-05-03 12:11 UTC (permalink / raw)
To: yhchuang; +Cc: linux-wireless
In-Reply-To: <1556884415-23474-2-git-send-email-yhchuang@realtek.com>
<yhchuang@realtek.com> wrote:
> From: Yan-Hsuan Chuang <yhchuang@realtek.com>
>
> Add missing license for Makefile
>
> Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
Patch applied to wireless-drivers-next.git, thanks.
f9b628d61fae rtw88: add license for Makefile
--
https://patchwork.kernel.org/patch/10928421/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply
* Re: [PATCH v2 0/5] rtw88: minor fixes from suggestions during review
From: Kalle Valo @ 2019-05-03 12:04 UTC (permalink / raw)
To: yhchuang; +Cc: linux-wireless
In-Reply-To: <1556884415-23474-1-git-send-email-yhchuang@realtek.com>
<yhchuang@realtek.com> writes:
> From: Yan-Hsuan Chuang <yhchuang@realtek.com>
>
> The series fix some small problems for rtw88, most of the suggestions
> are from the review process.
>
>
> v1 -> v2
>
> - modify description for LPS, ", turn off" -> ", to turn off"
> - drop patch "rtw88: mac: remove dangerous while (1)",
> should re-write the power sequence parsing code to make sense of avoiding
> infinite loop
> - unify Makefile license to Dual GPL/BSD
>
>
> Yan-Hsuan Chuang (5):
> rtw88: add license for Makefile
> rtw88: pci: use ieee80211_ac_numbers instead of 0-3
> rtw88: pci: check if queue mapping exceeds size of ac_to_hwq
> rtw88: fix unassigned rssi_level in rtw_sta_info
> rtw88: more descriptions about LPS
I was just in the next few minutes about to tag the last -next pull for
5.2. I'll apply patch 1 now so that we have consistent licenses for 5.2
but the rest have to wait for 5.3.
--
Kalle Valo
^ permalink raw reply
* RE: [RFC] rtw88: fix subscript above array bounds compiler warning
From: Tony Chuang @ 2019-05-03 12:01 UTC (permalink / raw)
To: Stanislaw Gruszka; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <20190503115333.GA23109@redhat.com>
> Subject: [RFC] rtw88: fix subscript above array bounds compiler warning
>
> My compiler complain about:
>
> drivers/net/wireless/realtek/rtw88/phy.c: In function
> ‘rtw_phy_rf_power_2_rssi’:
> drivers/net/wireless/realtek/rtw88/phy.c:430:26: warning: array subscript is
> above array bounds [-Warray-bounds]
> linear = db_invert_table[i][j];
>
> According to comment power_db should be in range 1 ~ 96 .
> Correct rtw_phy_power_2_db() to make max power 96 db
> (still min is 0). This make the warning gone.
>
> However power >= 20 check still looks somewhat suspicious to me.
>
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> ---
> drivers/net/wireless/realtek/rtw88/phy.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/realtek/rtw88/phy.c
> b/drivers/net/wireless/realtek/rtw88/phy.c
> index 35a35dbca85f..a716a44d78b0 100644
> --- a/drivers/net/wireless/realtek/rtw88/phy.c
> +++ b/drivers/net/wireless/realtek/rtw88/phy.c
> @@ -410,12 +410,12 @@ void rtw_phy_dynamic_mechanism(struct rtw_dev
> *rtwdev)
>
> static u8 rtw_phy_power_2_db(s8 power)
> {
> - if (power <= -100 || power >= 20)
> + if (power <= -96 || power >= 20)
> return 0;
> else if (power >= 0)
> - return 100;
> + return 96;
> else
> - return 100 + power;
> + return 96 + power;
> }
>
> static u64 rtw_phy_db_2_linear(u8 power_db)
> --
I think I should check with the radio team, that if the power from the
rx descriptor generated by hardware can possibly get >= 20
And also check what the actual logic they expected to deal with the power.
Thanks for reporting it.
Yan-Hsuan
^ permalink raw reply
* [PATCH v2 2/5] rtw88: pci: use ieee80211_ac_numbers instead of 0-3
From: yhchuang @ 2019-05-03 11:53 UTC (permalink / raw)
To: kvalo; +Cc: linux-wireless
In-Reply-To: <1556884415-23474-1-git-send-email-yhchuang@realtek.com>
From: Yan-Hsuan Chuang <yhchuang@realtek.com>
AC numbers are defined as enum in mac80211, use them instead of bare
0-3 indexing.
Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
---
drivers/net/wireless/realtek/rtw88/pci.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
index cfe05ba..87bfcb3 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.c
+++ b/drivers/net/wireless/realtek/rtw88/pci.c
@@ -487,10 +487,10 @@ static void rtw_pci_stop(struct rtw_dev *rtwdev)
}
static u8 ac_to_hwq[] = {
- [0] = RTW_TX_QUEUE_VO,
- [1] = RTW_TX_QUEUE_VI,
- [2] = RTW_TX_QUEUE_BE,
- [3] = RTW_TX_QUEUE_BK,
+ [IEEE80211_AC_VO] = RTW_TX_QUEUE_VO,
+ [IEEE80211_AC_VI] = RTW_TX_QUEUE_VI,
+ [IEEE80211_AC_BE] = RTW_TX_QUEUE_BE,
+ [IEEE80211_AC_BK] = RTW_TX_QUEUE_BK,
};
static u8 rtw_hw_queue_mapping(struct sk_buff *skb)
--
2.7.4
^ permalink raw reply related
* [PATCH v2 1/5] rtw88: add license for Makefile
From: yhchuang @ 2019-05-03 11:53 UTC (permalink / raw)
To: kvalo; +Cc: linux-wireless
In-Reply-To: <1556884415-23474-1-git-send-email-yhchuang@realtek.com>
From: Yan-Hsuan Chuang <yhchuang@realtek.com>
Add missing license for Makefile
Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
---
drivers/net/wireless/realtek/rtw88/Makefile | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtw88/Makefile b/drivers/net/wireless/realtek/rtw88/Makefile
index da5e36e..e0bfefd 100644
--- a/drivers/net/wireless/realtek/rtw88/Makefile
+++ b/drivers/net/wireless/realtek/rtw88/Makefile
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+
obj-$(CONFIG_RTW88_CORE) += rtw88.o
rtw88-y += main.o \
mac80211.o \
--
2.7.4
^ permalink raw reply related
* [PATCH v2 4/5] rtw88: fix unassigned rssi_level in rtw_sta_info
From: yhchuang @ 2019-05-03 11:53 UTC (permalink / raw)
To: kvalo; +Cc: linux-wireless
In-Reply-To: <1556884415-23474-1-git-send-email-yhchuang@realtek.com>
From: Yan-Hsuan Chuang <yhchuang@realtek.com>
The new rssi_level should be stored in si, otherwise the rssi_level will
never be updated and get a wrong RA mask, which is calculated by the
rssi level
Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
---
drivers/net/wireless/realtek/rtw88/phy.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw88/phy.c b/drivers/net/wireless/realtek/rtw88/phy.c
index 4381b36..7f437e2 100644
--- a/drivers/net/wireless/realtek/rtw88/phy.c
+++ b/drivers/net/wireless/realtek/rtw88/phy.c
@@ -144,10 +144,10 @@ static void rtw_phy_stat_rssi_iter(void *data, struct ieee80211_sta *sta)
struct rtw_phy_stat_iter_data *iter_data = data;
struct rtw_dev *rtwdev = iter_data->rtwdev;
struct rtw_sta_info *si = (struct rtw_sta_info *)sta->drv_priv;
- u8 rssi, rssi_level;
+ u8 rssi;
rssi = ewma_rssi_read(&si->avg_rssi);
- rssi_level = rtw_phy_get_rssi_level(si->rssi_level, rssi);
+ si->rssi_level = rtw_phy_get_rssi_level(si->rssi_level, rssi);
rtw_fw_send_rssi_info(rtwdev, si);
--
2.7.4
^ permalink raw reply related
* [PATCH v2 5/5] rtw88: more descriptions about LPS
From: yhchuang @ 2019-05-03 11:53 UTC (permalink / raw)
To: kvalo; +Cc: linux-wireless
In-Reply-To: <1556884415-23474-1-git-send-email-yhchuang@realtek.com>
From: Yan-Hsuan Chuang <yhchuang@realtek.com>
The LPS represents Leisure Power Save. When enabled, firmware will be in
charge of turning radio off between beacons. Also firmware should turn
on the radio when beacon is coming, and the data queued should be
transmitted in TBTT period.
Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
---
drivers/net/wireless/realtek/rtw88/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c
index f447361..142e530 100644
--- a/drivers/net/wireless/realtek/rtw88/main.c
+++ b/drivers/net/wireless/realtek/rtw88/main.c
@@ -20,7 +20,7 @@ EXPORT_SYMBOL(rtw_debug_mask);
module_param_named(support_lps, rtw_fw_support_lps, bool, 0644);
module_param_named(debug_mask, rtw_debug_mask, uint, 0644);
-MODULE_PARM_DESC(support_lps, "Set Y to enable LPS support");
+MODULE_PARM_DESC(support_lps, "Set Y to enable Leisure Power Save support, to turn radio off between beacons");
MODULE_PARM_DESC(debug_mask, "Debugging mask");
static struct ieee80211_channel rtw_channeltable_2g[] = {
--
2.7.4
^ permalink raw reply related
* [PATCH v2 3/5] rtw88: pci: check if queue mapping exceeds size of ac_to_hwq
From: yhchuang @ 2019-05-03 11:53 UTC (permalink / raw)
To: kvalo; +Cc: linux-wireless
In-Reply-To: <1556884415-23474-1-git-send-email-yhchuang@realtek.com>
From: Yan-Hsuan Chuang <yhchuang@realtek.com>
Dump warning messages when we get a q_mapping larger than the AC
numbers. And pick BE queue as default.
Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
---
drivers/net/wireless/realtek/rtw88/pci.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
index 87bfcb3..353871c 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.c
+++ b/drivers/net/wireless/realtek/rtw88/pci.c
@@ -504,6 +504,8 @@ static u8 rtw_hw_queue_mapping(struct sk_buff *skb)
queue = RTW_TX_QUEUE_BCN;
else if (unlikely(ieee80211_is_mgmt(fc) || ieee80211_is_ctl(fc)))
queue = RTW_TX_QUEUE_MGMT;
+ else if (WARN_ON_ONCE(q_mapping >= ARRAY_SIZE(ac_to_hwq)))
+ queue = ac_to_hwq[IEEE80211_AC_BE];
else
queue = ac_to_hwq[q_mapping];
--
2.7.4
^ permalink raw reply related
* [PATCH v2 0/5] rtw88: minor fixes from suggestions during review
From: yhchuang @ 2019-05-03 11:53 UTC (permalink / raw)
To: kvalo; +Cc: linux-wireless
From: Yan-Hsuan Chuang <yhchuang@realtek.com>
The series fix some small problems for rtw88, most of the suggestions
are from the review process.
v1 -> v2
- modify description for LPS, ", turn off" -> ", to turn off"
- drop patch "rtw88: mac: remove dangerous while (1)",
should re-write the power sequence parsing code to make sense of avoiding
infinite loop
- unify Makefile license to Dual GPL/BSD
Yan-Hsuan Chuang (5):
rtw88: add license for Makefile
rtw88: pci: use ieee80211_ac_numbers instead of 0-3
rtw88: pci: check if queue mapping exceeds size of ac_to_hwq
rtw88: fix unassigned rssi_level in rtw_sta_info
rtw88: more descriptions about LPS
drivers/net/wireless/realtek/rtw88/Makefile | 2 ++
drivers/net/wireless/realtek/rtw88/main.c | 2 +-
drivers/net/wireless/realtek/rtw88/pci.c | 10 ++++++----
drivers/net/wireless/realtek/rtw88/phy.c | 4 ++--
4 files changed, 11 insertions(+), 7 deletions(-)
--
2.7.4
^ permalink raw reply
* [RFC] rtw88: fix subscript above array bounds compiler warning
From: Stanislaw Gruszka @ 2019-05-03 11:53 UTC (permalink / raw)
To: Tony Chuang; +Cc: linux-wireless
My compiler complain about:
drivers/net/wireless/realtek/rtw88/phy.c: In function ‘rtw_phy_rf_power_2_rssi’:
drivers/net/wireless/realtek/rtw88/phy.c:430:26: warning: array subscript is above array bounds [-Warray-bounds]
linear = db_invert_table[i][j];
According to comment power_db should be in range 1 ~ 96 .
Correct rtw_phy_power_2_db() to make max power 96 db
(still min is 0). This make the warning gone.
However power >= 20 check still looks somewhat suspicious to me.
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/realtek/rtw88/phy.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw88/phy.c b/drivers/net/wireless/realtek/rtw88/phy.c
index 35a35dbca85f..a716a44d78b0 100644
--- a/drivers/net/wireless/realtek/rtw88/phy.c
+++ b/drivers/net/wireless/realtek/rtw88/phy.c
@@ -410,12 +410,12 @@ void rtw_phy_dynamic_mechanism(struct rtw_dev *rtwdev)
static u8 rtw_phy_power_2_db(s8 power)
{
- if (power <= -100 || power >= 20)
+ if (power <= -96 || power >= 20)
return 0;
else if (power >= 0)
- return 100;
+ return 96;
else
- return 100 + power;
+ return 96 + power;
}
static u64 rtw_phy_db_2_linear(u8 power_db)
--
1.9.3
^ permalink raw reply related
* Re: [PATCH v2] {nl,mac}80211: allow 4addr AP operation on crypto controlled devices
From: Kalle Valo @ 2019-05-03 11:28 UTC (permalink / raw)
To: Manikanta Pubbisetty; +Cc: johannes, linux-wireless
In-Reply-To: <1556881402-28078-1-git-send-email-mpubbise@codeaurora.org>
Manikanta Pubbisetty <mpubbise@codeaurora.org> writes:
> As per the current design, in the case of sw crypto controlled devices,
> it is the device which advertises the support for AP/VLAN iftype based
> on it's ability to tranmsit packets encrypted in software
> (In VLAN functionality, group traffic generated for a specific
> VLAN group is always encrypted in software). Commit db3bdcb9c3ff
> ("mac80211: allow AP_VLAN operation on crypto controlled devices")
> has introduced this change.
>
> Since 4addr AP operation also uses AP/VLAN iftype, this conditional
> way of advertising AP/VLAN support has broken 4addr AP mode operation on
> crypto controlled devices which do not support VLAN functionality.
>
> In the case of ath10k driver, not all firmwares have support for VLAN
> functionality but all can support 4addr AP operation. Because AP/VLAN
> support is not advertised for these devices, 4addr AP operations are
> also blocked.
>
> Fix this by allowing 4addr operation on devices which do not support
> AP/VLAN iftype but can support 4addr AP operation (decision is based on
> the wiphy flag WIPHY_FLAG_4ADDR_AP).
>
> Fixes: Commit db3bdcb9c3ff ("mac80211: allow AP_VLAN operation on crypto controlled devices")
The correct format for the Fixes line is:
Fixes: db3bdcb9c3ff ("mac80211: allow AP_VLAN operation on crypto controlled devices")
--
Kalle Valo
^ permalink raw reply
* Re: [PATCH 5/6] rtw88: mac: remove dangerous while (1)
From: Kalle Valo @ 2019-05-03 11:26 UTC (permalink / raw)
To: Tony Chuang; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <F7CD281DE3E379468C6D07993EA72F84D17E871A@RTITMBSVM04.realtek.com.tw>
Tony Chuang <yhchuang@realtek.com> writes:
>> Subject: Re: [PATCH 5/6] rtw88: mac: remove dangerous while (1)
>>
>> <yhchuang@realtek.com> writes:
>>
>> > From: Yan-Hsuan Chuang <yhchuang@realtek.com>
>> >
>> > Not to use while (1) to parse power sequence commands in an array.
>> > Put the statement (when cmd is not NULL) instead to make the loop stop
>> > when the next fetched command is NULL.
>> >
>> > Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
>> > ---
>> > drivers/net/wireless/realtek/rtw88/mac.c | 9 +++------
>> > 1 file changed, 3 insertions(+), 6 deletions(-)
>> >
>> > diff --git a/drivers/net/wireless/realtek/rtw88/mac.c
>> b/drivers/net/wireless/realtek/rtw88/mac.c
>> > index 25a923b..7487b2e 100644
>> > --- a/drivers/net/wireless/realtek/rtw88/mac.c
>> > +++ b/drivers/net/wireless/realtek/rtw88/mac.c
>> > @@ -203,17 +203,14 @@ static int rtw_pwr_seq_parser(struct rtw_dev
>> *rtwdev,
>> > return -EINVAL;
>> > }
>> >
>> > - do {
>> > - cmd = cmd_seq[idx];
>> > - if (!cmd)
>> > - break;
>> > -
>> > + while ((cmd = cmd_seq[idx])) {
>> > ret = rtw_sub_pwr_seq_parser(rtwdev, intf_mask, cut_mask, cmd);
>> > if (ret)
>> > return -EBUSY;
>> >
>> > + /* fetch next command */
>> > idx++;
>> > - } while (1);
>> > + };
>>
>> I dount see how this is any better, with a suitable bug you can still
>> have a neverending loop, right? I was thinking more something like this:
>>
>> count = 100;
>> do {
>> ....
>> } while (count--);
>>
>> That way the won't be more than 100 loops no matter how many bugs there
>> are :) Of course I have no idea what would be a good value for count.
>>
>
> To make this totally safe, I think we need to re-write the power seq parsing code.
> I think I should drop this patch, and write a better code later.
>
> And also re-write the polling command, to remove the while (1).
Sounds good to me.
--
Kalle Valo
^ permalink raw reply
* RE: [PATCH 5/6] rtw88: mac: remove dangerous while (1)
From: Tony Chuang @ 2019-05-03 11:22 UTC (permalink / raw)
To: Kalle Valo; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <87r29fkd9k.fsf@kamboji.qca.qualcomm.com>
> Subject: Re: [PATCH 5/6] rtw88: mac: remove dangerous while (1)
>
> <yhchuang@realtek.com> writes:
>
> > From: Yan-Hsuan Chuang <yhchuang@realtek.com>
> >
> > Not to use while (1) to parse power sequence commands in an array.
> > Put the statement (when cmd is not NULL) instead to make the loop stop
> > when the next fetched command is NULL.
> >
> > Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
> > ---
> > drivers/net/wireless/realtek/rtw88/mac.c | 9 +++------
> > 1 file changed, 3 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/net/wireless/realtek/rtw88/mac.c
> b/drivers/net/wireless/realtek/rtw88/mac.c
> > index 25a923b..7487b2e 100644
> > --- a/drivers/net/wireless/realtek/rtw88/mac.c
> > +++ b/drivers/net/wireless/realtek/rtw88/mac.c
> > @@ -203,17 +203,14 @@ static int rtw_pwr_seq_parser(struct rtw_dev
> *rtwdev,
> > return -EINVAL;
> > }
> >
> > - do {
> > - cmd = cmd_seq[idx];
> > - if (!cmd)
> > - break;
> > -
> > + while ((cmd = cmd_seq[idx])) {
> > ret = rtw_sub_pwr_seq_parser(rtwdev, intf_mask, cut_mask, cmd);
> > if (ret)
> > return -EBUSY;
> >
> > + /* fetch next command */
> > idx++;
> > - } while (1);
> > + };
>
> I dount see how this is any better, with a suitable bug you can still
> have a neverending loop, right? I was thinking more something like this:
>
> count = 100;
> do {
> ....
> } while (count--);
>
> That way the won't be more than 100 loops no matter how many bugs there
> are :) Of course I have no idea what would be a good value for count.
>
To make this totally safe, I think we need to re-write the power seq parsing code.
I think I should drop this patch, and write a better code later.
And also re-write the polling command, to remove the while (1).
Yan-Hsuan
^ permalink raw reply
* Re: [PATCH 5/6] rtw88: mac: remove dangerous while (1)
From: Kalle Valo @ 2019-05-03 11:07 UTC (permalink / raw)
To: yhchuang; +Cc: linux-wireless
In-Reply-To: <1556879502-16211-6-git-send-email-yhchuang@realtek.com>
<yhchuang@realtek.com> writes:
> From: Yan-Hsuan Chuang <yhchuang@realtek.com>
>
> Not to use while (1) to parse power sequence commands in an array.
> Put the statement (when cmd is not NULL) instead to make the loop stop
> when the next fetched command is NULL.
>
> Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
> ---
> drivers/net/wireless/realtek/rtw88/mac.c | 9 +++------
> 1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c
> index 25a923b..7487b2e 100644
> --- a/drivers/net/wireless/realtek/rtw88/mac.c
> +++ b/drivers/net/wireless/realtek/rtw88/mac.c
> @@ -203,17 +203,14 @@ static int rtw_pwr_seq_parser(struct rtw_dev *rtwdev,
> return -EINVAL;
> }
>
> - do {
> - cmd = cmd_seq[idx];
> - if (!cmd)
> - break;
> -
> + while ((cmd = cmd_seq[idx])) {
> ret = rtw_sub_pwr_seq_parser(rtwdev, intf_mask, cut_mask, cmd);
> if (ret)
> return -EBUSY;
>
> + /* fetch next command */
> idx++;
> - } while (1);
> + };
I dount see how this is any better, with a suitable bug you can still
have a neverending loop, right? I was thinking more something like this:
count = 100;
do {
....
} while (count--);
That way the won't be more than 100 loops no matter how many bugs there
are :) Of course I have no idea what would be a good value for count.
--
Kalle Valo
^ permalink raw reply
* RE: [PATCH 1/6] rtw88: add license for Makefile
From: Tony Chuang @ 2019-05-03 11:05 UTC (permalink / raw)
To: Kalle Valo; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <87v9yrkdfj.fsf@kamboji.qca.qualcomm.com>
> Subject: Re: [PATCH 1/6] rtw88: add license for Makefile
>
> <yhchuang@realtek.com> writes:
>
> > From: Yan-Hsuan Chuang <yhchuang@realtek.com>
> >
> > Add missing license for Makefile
> >
> > Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
> > ---
> > drivers/net/wireless/realtek/rtw88/Makefile | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/net/wireless/realtek/rtw88/Makefile
> b/drivers/net/wireless/realtek/rtw88/Makefile
> > index da5e36e..74cd066 100644
> > --- a/drivers/net/wireless/realtek/rtw88/Makefile
> > +++ b/drivers/net/wireless/realtek/rtw88/Makefile
> > @@ -1,3 +1,5 @@
> > +# SPDX-License-Identifier: GPL-2.0
>
> Other files in the driver are "GPL-2.0 OR BSD-3-Clause", why not
> Makefile? I prefer that the whole driver has the same license, keeps
> things simple.
>
> --
> Kalle Valo
>
You are right, different license is strange.
Will add it in v2, thanks.
Yan-Hsuan
^ permalink raw reply
* RE: [PATCH 6/6] rtw88: more descriptions about LPS
From: Tony Chuang @ 2019-05-03 11:04 UTC (permalink / raw)
To: Kalle Valo; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <87zho3kdiy.fsf@kamboji.qca.qualcomm.com>
> Subject: Re: [PATCH 6/6] rtw88: more descriptions about LPS
>
> <yhchuang@realtek.com> writes:
>
> > From: Yan-Hsuan Chuang <yhchuang@realtek.com>
> >
> > The LPS represents Leisure Power Save. When enabled, firmware will be in
> > charge of turning radio off between beacons. Also firmware should turn
> > on the radio when beacon is coming, and the data queued should be
> > transmitted in TBTT period.
> >
> > Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
> > ---
> > drivers/net/wireless/realtek/rtw88/main.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/wireless/realtek/rtw88/main.c
> > b/drivers/net/wireless/realtek/rtw88/main.c
> > index f447361..6953013 100644
> > --- a/drivers/net/wireless/realtek/rtw88/main.c
> > +++ b/drivers/net/wireless/realtek/rtw88/main.c
> > @@ -20,7 +20,7 @@ EXPORT_SYMBOL(rtw_debug_mask);
> > module_param_named(support_lps, rtw_fw_support_lps, bool, 0644);
> > module_param_named(debug_mask, rtw_debug_mask, uint, 0644);
> >
> > -MODULE_PARM_DESC(support_lps, "Set Y to enable LPS support");
> > +MODULE_PARM_DESC(support_lps, "Set Y to enable Leisure Power Save
> > support, turn radio off between beacons");
>
> I think it would help to add:
>
> ", to turn radio off between beacons"
>
Looks better, will include it in v2.
Thanks.
Yan-Hsuan
^ permalink raw reply
* [PATCH v2] {nl,mac}80211: allow 4addr AP operation on crypto controlled devices
From: Manikanta Pubbisetty @ 2019-05-03 11:03 UTC (permalink / raw)
To: johannes; +Cc: linux-wireless, Manikanta Pubbisetty
As per the current design, in the case of sw crypto controlled devices,
it is the device which advertises the support for AP/VLAN iftype based
on it's ability to tranmsit packets encrypted in software
(In VLAN functionality, group traffic generated for a specific
VLAN group is always encrypted in software). Commit db3bdcb9c3ff
("mac80211: allow AP_VLAN operation on crypto controlled devices")
has introduced this change.
Since 4addr AP operation also uses AP/VLAN iftype, this conditional
way of advertising AP/VLAN support has broken 4addr AP mode operation on
crypto controlled devices which do not support VLAN functionality.
In the case of ath10k driver, not all firmwares have support for VLAN
functionality but all can support 4addr AP operation. Because AP/VLAN
support is not advertised for these devices, 4addr AP operations are
also blocked.
Fix this by allowing 4addr operation on devices which do not support
AP/VLAN iftype but can support 4addr AP operation (decision is based on
the wiphy flag WIPHY_FLAG_4ADDR_AP).
Fixes: Commit db3bdcb9c3ff ("mac80211: allow AP_VLAN operation on crypto controlled devices")
Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
---
include/net/cfg80211.h | 3 ++-
net/mac80211/util.c | 4 +++-
net/wireless/core.c | 6 +++++-
net/wireless/nl80211.c | 8 ++++++--
4 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 87dae86..9481396 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -3839,7 +3839,8 @@ struct cfg80211_ops {
* on wiphy_new(), but can be changed by the driver if it has a good
* reason to override the default
* @WIPHY_FLAG_4ADDR_AP: supports 4addr mode even on AP (with a single station
- * on a VLAN interface)
+ * on a VLAN interface). This flag also serves an extra purpose of
+ * supporting 4ADDR AP mode on devices which do not support AP/VLAN iftype.
* @WIPHY_FLAG_4ADDR_STATION: supports 4addr mode even as a station
* @WIPHY_FLAG_CONTROL_PORT_PROTOCOL: This device supports setting the
* control port protocol ethertype. The device also honours the
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index cba4633..1c8384f 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -3795,7 +3795,9 @@ int ieee80211_check_combinations(struct ieee80211_sub_if_data *sdata,
}
/* Always allow software iftypes */
- if (local->hw.wiphy->software_iftypes & BIT(iftype)) {
+ if (local->hw.wiphy->software_iftypes & BIT(iftype) ||
+ (iftype == NL80211_IFTYPE_AP_VLAN &&
+ local->hw.wiphy->flags & WIPHY_FLAG_4ADDR_AP)) {
if (radar_detect)
return -EINVAL;
return 0;
diff --git a/net/wireless/core.c b/net/wireless/core.c
index b36ad8e..4e83892 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -1396,8 +1396,12 @@ static int cfg80211_netdev_notifier_call(struct notifier_block *nb,
}
break;
case NETDEV_PRE_UP:
- if (!(wdev->wiphy->interface_modes & BIT(wdev->iftype)))
+ if (!(wdev->wiphy->interface_modes & BIT(wdev->iftype)) &&
+ !(wdev->iftype == NL80211_IFTYPE_AP_VLAN &&
+ rdev->wiphy.flags & WIPHY_FLAG_4ADDR_AP &&
+ wdev->use_4addr))
return notifier_from_errno(-EOPNOTSUPP);
+
if (rfkill_blocked(rdev->rfkill))
return notifier_from_errno(-ERFKILL);
break;
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index fffe4b3..4b3c528 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -3419,8 +3419,7 @@ static int nl80211_new_interface(struct sk_buff *skb, struct genl_info *info)
if (info->attrs[NL80211_ATTR_IFTYPE])
type = nla_get_u32(info->attrs[NL80211_ATTR_IFTYPE]);
- if (!rdev->ops->add_virtual_intf ||
- !(rdev->wiphy.interface_modes & (1 << type)))
+ if (!rdev->ops->add_virtual_intf)
return -EOPNOTSUPP;
if ((type == NL80211_IFTYPE_P2P_DEVICE || type == NL80211_IFTYPE_NAN ||
@@ -3439,6 +3438,11 @@ static int nl80211_new_interface(struct sk_buff *skb, struct genl_info *info)
return err;
}
+ if (!(rdev->wiphy.interface_modes & (1 << type)) &&
+ !(type == NL80211_IFTYPE_AP_VLAN && params.use_4addr &&
+ rdev->wiphy.flags & WIPHY_FLAG_4ADDR_AP))
+ return -EOPNOTSUPP;
+
err = nl80211_parse_mon_options(rdev, type, info, ¶ms);
if (err < 0)
return err;
--
2.7.4
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox