* [PATCH v13 0/5] Add AP6276P wireless support
@ 2024-08-28 8:49 Jacobe Zang
2024-08-28 8:49 ` [PATCH v13 1/5] dt-bindings: net: wireless: brcm4329-fmac: add pci14e4,449d Jacobe Zang
` (4 more replies)
0 siblings, 5 replies; 12+ messages in thread
From: Jacobe Zang @ 2024-08-28 8:49 UTC (permalink / raw)
To: Kalle Valo, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
van Spriel, Arend van Spriel
Cc: linux-wireless, netdev, devicetree, linux-kernel, brcm80211,
brcm80211-dev-list.pdl, Jacobe Zang, Krzysztof Kozlowski,
Ondrej Jirman, Sai Krishna
Signed-off-by: Jacobe Zang <jacobe.zang@wesion.com>
---
Changes in v13:
- CC devicetree list that forget last version
- Link to v12: https://lore.kernel.org/all/20240828034915.969383-1-jacobe.zang@wesion.com/
These add AP6275P wireless support on Khadas Edge2. Enable 32k clock
for Wi-Fi module and extend the hardware IDs table in the brcmfmac
driver for it to attach.
Changes in v12:
- Add "brcm,bcm4329-fmac" as fallback compatible for PCI ID based devices.
- Link to v11: https://lore.kernel.org/all/20240816020635.1273911-1-jacobe.zang@wesion.com/
Changes in v11:
- Retain interrupt check in of.c
- Split DTS and submit separately
- Link to v10: https://lore.kernel.org/all/20240813082007.2625841-1-jacobe.zang@wesion.com/
Changes in v10:
- Use ret instead unused probe_attach_result in sdio.c
- Link to v9: https://lore.kernel.org/all/20240810035141.439024-1-jacobe.zang@wesion.com/
Changes in v9:
- Add return -ENODEV error pointer from brcmf_sdio_probe as the default for the fail path
- Add if statement for brcmf_of_probe in common.c
- Retain modifications to of.c other than the return values
- Link to v8: https://lore.kernel.org/all/20240805073425.3492078-1-jacobe.zang@wesion.com/
Changes in v8:
- Add appropriate errno's for return values that will be
send to bus when error occurred.
- Link to v7: https://lore.kernel.org/all/20240802025715.2360456-1-jacobe.zang@wesion.com/
Changes in v7:
- Change brcmf_of_probe prototypes from void to int, add appropriate errno's for return
value, move clock check to the end of brcmf_of_probe
- Add "brcm,bcm4329-fmac" compatible for wifi node
- Link to v6: https://lore.kernel.org/all/20240731061132.703368-1-jacobe.zang@wesion.com/
Changes in v6:
- Move "brcm,bcm4329-fmac" check to the top of brcmf_of_probe in of.c
- Add return if clk didn't set in DTS
-Link to v5: https://lore.kernel.org/all/20240730033053.4092132-1-jacobe.zang@wesion.com/
Changes in v5:
- Add more commit message to the clock in bindings
- Use IS_ERR_OR_NULL as a judgment condition of clk
- Link to v4: https://lore.kernel.org/all/20240729070102.3770318-1-jacobe.zang@wesion.com/
Changes in v4:
- Change clock description in dt-bindings
- Move enable clk from pcie.c to of.c
- Add compatible for wifi node in DTS
- Add random seed flag for firmware download
- Link to v3: https://lore.kernel.org/all/20240630073605.2164346-1-jacobe.zang@wesion.com/
Changes in v3:
- Dropped redundant parts in dt-bindings.
- Change driver patch title prefix as 'wifi: brcmfmac:'.
- Change DTS Wi-Fi node clock-name as 'lpo'.
- Link to v2: https://lore.kernel.org/all/20240624081906.1399447-1-jacobe.zang@wesion.com/
Changes in v2:
- Add SoB tags for original developer.
- Add dt-bindings for pci14e4,449d and clocks.
- Replace dev_info to brcmf_dbg in pcie.c
- Link to v1: https://lore.kernel.org/all/20240620020015.4021696-1-jacobe.zang@wesion.com/
---
Jacobe Zang (5):
dt-bindings: net: wireless: brcm4329-fmac: add pci14e4,449d
dt-bindings: net: wireless: brcm4329-fmac: add clock description for AP6275P
dt-bindings: net: wireless: brcm4329-fmac: change properties enum structure
wifi: brcmfmac: Add optional lpo clock enable support
wifi: brcmfmac: add flag for random seed during firmware download
.../bindings/net/wireless/brcm,bcm4329-fmac.yaml | 27 +++++++----
.../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 4 +-
.../wireless/broadcom/brcm80211/brcmfmac/common.c | 3 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/of.c | 29 ++++++++----
.../net/wireless/broadcom/brcm80211/brcmfmac/of.h | 9 ++--
.../wireless/broadcom/brcm80211/brcmfmac/pcie.c | 55 ++++++++++++++++++----
.../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 20 +++++---
.../net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 3 ++
.../broadcom/brcm80211/include/brcm_hw_ids.h | 2 +
9 files changed, 113 insertions(+), 39 deletions(-)
---
base-commit: dabcfd5e116800496eb9bec2ba7c015ca2043aa0
change-id: 20240828-wireless-mainline-bccba9d69efb
Best regards,
--
Jacobe Zang <jacobe.zang@wesion.com>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v13 1/5] dt-bindings: net: wireless: brcm4329-fmac: add pci14e4,449d
2024-08-28 8:49 [PATCH v13 0/5] Add AP6276P wireless support Jacobe Zang
@ 2024-08-28 8:49 ` Jacobe Zang
2024-08-28 8:49 ` [PATCH v13 2/5] dt-bindings: net: wireless: brcm4329-fmac: add clock description for AP6275P Jacobe Zang
` (3 subsequent siblings)
4 siblings, 0 replies; 12+ messages in thread
From: Jacobe Zang @ 2024-08-28 8:49 UTC (permalink / raw)
To: Kalle Valo, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
van Spriel, Arend van Spriel
Cc: linux-wireless, netdev, devicetree, linux-kernel, brcm80211,
brcm80211-dev-list.pdl, Jacobe Zang, Krzysztof Kozlowski
It's the device id used by AP6275P which is the Wi-Fi module
used by Rockchip's RK3588 evaluation board and also used in
some other RK3588 boards.
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Jacobe Zang <jacobe.zang@wesion.com>
---
Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml b/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
index e564f20d8f415..2c2093c77ec9a 100644
--- a/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
@@ -53,6 +53,7 @@ properties:
- pci14e4,4488 # BCM4377
- pci14e4,4425 # BCM4378
- pci14e4,4433 # BCM4387
+ - pci14e4,449d # BCM43752
reg:
description: SDIO function number for the device (for most cases
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v13 2/5] dt-bindings: net: wireless: brcm4329-fmac: add clock description for AP6275P
2024-08-28 8:49 [PATCH v13 0/5] Add AP6276P wireless support Jacobe Zang
2024-08-28 8:49 ` [PATCH v13 1/5] dt-bindings: net: wireless: brcm4329-fmac: add pci14e4,449d Jacobe Zang
@ 2024-08-28 8:49 ` Jacobe Zang
2024-08-28 8:49 ` [PATCH v13 3/5] dt-bindings: net: wireless: brcm4329-fmac: change properties enum structure Jacobe Zang
` (2 subsequent siblings)
4 siblings, 0 replies; 12+ messages in thread
From: Jacobe Zang @ 2024-08-28 8:49 UTC (permalink / raw)
To: Kalle Valo, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
van Spriel, Arend van Spriel
Cc: linux-wireless, netdev, devicetree, linux-kernel, brcm80211,
brcm80211-dev-list.pdl, Jacobe Zang, Krzysztof Kozlowski
Not only AP6275P Wi-Fi device but also all Broadcom wireless devices allow
external low power clock input. In DTS the clock as an optional choice in
the absence of an internal clock.
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Jacobe Zang <jacobe.zang@wesion.com>
---
.../devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml b/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
index 2c2093c77ec9a..a3607d55ef367 100644
--- a/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
@@ -122,6 +122,14 @@ properties:
NVRAM. This would normally be filled in by the bootloader from platform
configuration data.
+ clocks:
+ items:
+ - description: External Low Power Clock input (32.768KHz)
+
+ clock-names:
+ items:
+ - const: lpo
+
required:
- compatible
- reg
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v13 3/5] dt-bindings: net: wireless: brcm4329-fmac: change properties enum structure
2024-08-28 8:49 [PATCH v13 0/5] Add AP6276P wireless support Jacobe Zang
2024-08-28 8:49 ` [PATCH v13 1/5] dt-bindings: net: wireless: brcm4329-fmac: add pci14e4,449d Jacobe Zang
2024-08-28 8:49 ` [PATCH v13 2/5] dt-bindings: net: wireless: brcm4329-fmac: add clock description for AP6275P Jacobe Zang
@ 2024-08-28 8:49 ` Jacobe Zang
2024-08-28 13:04 ` Krzysztof Kozlowski
2024-08-28 8:49 ` [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support Jacobe Zang
2024-08-28 8:49 ` [PATCH v13 5/5] wifi: brcmfmac: add flag for random seed during firmware download Jacobe Zang
4 siblings, 1 reply; 12+ messages in thread
From: Jacobe Zang @ 2024-08-28 8:49 UTC (permalink / raw)
To: Kalle Valo, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
van Spriel, Arend van Spriel
Cc: linux-wireless, netdev, devicetree, linux-kernel, brcm80211,
brcm80211-dev-list.pdl, Jacobe Zang
Add "brcm,bcm4329-fmac" as fallback compatible for wireless devices that
used PCI ID based compatible. So that can pass the compatible check in
driver.
Signed-off-by: Jacobe Zang <jacobe.zang@wesion.com>
---
.../bindings/net/wireless/brcm,bcm4329-fmac.yaml | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml b/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
index a3607d55ef367..4870caed5f75e 100644
--- a/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
@@ -27,7 +27,6 @@ properties:
- brcm,bcm4341b0-fmac
- brcm,bcm4341b4-fmac
- brcm,bcm4341b5-fmac
- - brcm,bcm4329-fmac
- brcm,bcm4330-fmac
- brcm,bcm4334-fmac
- brcm,bcm43340-fmac
@@ -46,14 +45,17 @@ properties:
- cypress,cyw43012-fmac
- infineon,cyw43439-fmac
- const: brcm,bcm4329-fmac
- - enum:
- - brcm,bcm4329-fmac
- - pci14e4,43dc # BCM4355
- - pci14e4,4464 # BCM4364
- - pci14e4,4488 # BCM4377
- - pci14e4,4425 # BCM4378
- - pci14e4,4433 # BCM4387
- - pci14e4,449d # BCM43752
+ - items:
+ - enum:
+ - brcm,bcm4329-fmac
+ - pci14e4,43dc # BCM4355
+ - pci14e4,4464 # BCM4364
+ - pci14e4,4488 # BCM4377
+ - pci14e4,4425 # BCM4378
+ - pci14e4,4433 # BCM4387
+ - pci14e4,449d # BCM43752
+ - const: brcm,bcm4329-fmac
+ - const: brcm,bcm4329-fmac
reg:
description: SDIO function number for the device (for most cases
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support
2024-08-28 8:49 [PATCH v13 0/5] Add AP6276P wireless support Jacobe Zang
` (2 preceding siblings ...)
2024-08-28 8:49 ` [PATCH v13 3/5] dt-bindings: net: wireless: brcm4329-fmac: change properties enum structure Jacobe Zang
@ 2024-08-28 8:49 ` Jacobe Zang
2024-08-28 15:20 ` Simon Horman
` (2 more replies)
2024-08-28 8:49 ` [PATCH v13 5/5] wifi: brcmfmac: add flag for random seed during firmware download Jacobe Zang
4 siblings, 3 replies; 12+ messages in thread
From: Jacobe Zang @ 2024-08-28 8:49 UTC (permalink / raw)
To: Kalle Valo, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
van Spriel, Arend van Spriel
Cc: linux-wireless, netdev, devicetree, linux-kernel, brcm80211,
brcm80211-dev-list.pdl, Jacobe Zang, Ondrej Jirman, Sai Krishna
WiFi modules often require 32kHz clock to function. Add support to
enable the clock to PCIe driver and move "brcm,bcm4329-fmac" check
to the top of brcmf_of_probe. Change function prototypes from void
to int and add appropriate errno's for return values that will be
send to bus when error occurred.
Co-developed-by: Ondrej Jirman <megi@xff.cz>
Signed-off-by: Ondrej Jirman <megi@xff.cz>
Co-developed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Reviewed-by: Sai Krishna <saikrishnag@marvell.com>
Signed-off-by: Jacobe Zang <jacobe.zang@wesion.com>
---
.../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 4 +--
.../wireless/broadcom/brcm80211/brcmfmac/common.c | 3 ++-
.../net/wireless/broadcom/brcm80211/brcmfmac/of.c | 29 +++++++++++++++-------
.../net/wireless/broadcom/brcm80211/brcmfmac/of.h | 9 ++++---
.../wireless/broadcom/brcm80211/brcmfmac/pcie.c | 3 +++
.../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 20 +++++++++------
.../net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 3 +++
7 files changed, 48 insertions(+), 23 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
index d35262335eaf7..17f6b33beabd8 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
@@ -947,8 +947,8 @@ int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev)
/* try to attach to the target device */
sdiodev->bus = brcmf_sdio_probe(sdiodev);
- if (!sdiodev->bus) {
- ret = -ENODEV;
+ if (IS_ERR(sdiodev->bus)) {
+ ret = PTR_ERR(sdiodev->bus);
goto out;
}
brcmf_sdiod_host_fixup(sdiodev->func2->card->host);
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
index b24faae35873d..58d50918dd177 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
@@ -561,7 +561,8 @@ struct brcmf_mp_device *brcmf_get_module_param(struct device *dev,
if (!found) {
/* No platform data for this device, try OF and DMI data */
brcmf_dmi_probe(settings, chip, chiprev);
- brcmf_of_probe(dev, bus_type, settings);
+ if (brcmf_of_probe(dev, bus_type, settings) == -EPROBE_DEFER)
+ return ERR_PTR(-EPROBE_DEFER);
brcmf_acpi_probe(dev, bus_type, settings);
}
return settings;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
index fe4f657561056..c1285adabf72b 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
@@ -6,6 +6,7 @@
#include <linux/of.h>
#include <linux/of_irq.h>
#include <linux/of_net.h>
+#include <linux/clk.h>
#include <defs.h>
#include "debug.h"
@@ -65,18 +66,22 @@ static int brcmf_of_get_country_codes(struct device *dev,
return 0;
}
-void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
- struct brcmf_mp_device *settings)
+int brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
+ struct brcmf_mp_device *settings)
{
struct brcmfmac_sdio_pd *sdio = &settings->bus.sdio;
struct device_node *root, *np = dev->of_node;
struct of_phandle_args oirq;
+ struct clk *clk;
const char *prop;
int irq;
int err;
u32 irqf;
u32 val;
+ if (!np || !of_device_is_compatible(np, "brcm,bcm4329-fmac"))
+ return 0;
+
/* Apple ARM64 platforms have their own idea of board type, passed in
* via the device tree. They also have an antenna SKU parameter
*/
@@ -106,7 +111,7 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
board_type = devm_kstrdup(dev, tmp, GFP_KERNEL);
if (!board_type) {
of_node_put(root);
- return;
+ return 0;
}
strreplace(board_type, '/', '-');
settings->board_type = board_type;
@@ -114,33 +119,39 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
of_node_put(root);
}
- if (!np || !of_device_is_compatible(np, "brcm,bcm4329-fmac"))
- return;
-
err = brcmf_of_get_country_codes(dev, settings);
if (err)
brcmf_err("failed to get OF country code map (err=%d)\n", err);
of_get_mac_address(np, settings->mac);
+ clk = devm_clk_get_optional_enabled(dev, "lpo");
+ if (IS_ERR(clk))
+ return PTR_ERR(clk);
+
+ brcmf_dbg(INFO, "%s LPO clock\n", clk ? "enable" : "no");
+ clk_set_rate(clk, 32768);
+
if (bus_type != BRCMF_BUSTYPE_SDIO)
- return;
+ return 0;
if (of_property_read_u32(np, "brcm,drive-strength", &val) == 0)
sdio->drive_strength = val;
/* make sure there are interrupts defined in the node */
if (of_irq_parse_one(np, 0, &oirq))
- return;
+ return 0;
irq = irq_create_of_mapping(&oirq);
if (!irq) {
brcmf_err("interrupt could not be mapped\n");
- return;
+ return 0;
}
irqf = irqd_get_trigger_type(irq_get_irq_data(irq));
sdio->oob_irq_supported = true;
sdio->oob_irq_nr = irq;
sdio->oob_irq_flags = irqf;
+
+ return 0;
}
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h
index 10bf52253337e..ae124c73fc3b7 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h
@@ -3,11 +3,12 @@
* Copyright (c) 2014 Broadcom Corporation
*/
#ifdef CONFIG_OF
-void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
- struct brcmf_mp_device *settings);
+int brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
+ struct brcmf_mp_device *settings);
#else
-static void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
- struct brcmf_mp_device *settings)
+static int brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
+ struct brcmf_mp_device *settings)
{
+ return 0;
}
#endif /* CONFIG_OF */
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
index ce482a3877e90..190e8990618c5 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
@@ -2452,6 +2452,9 @@ brcmf_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id)
ret = -ENOMEM;
goto fail;
}
+ ret = PTR_ERR_OR_ZERO(devinfo->settings);
+ if (ret < 0)
+ goto fail;
bus = kzalloc(sizeof(*bus), GFP_KERNEL);
if (!bus) {
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index 1461dc453ac22..59c77645e2183 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -3943,7 +3943,7 @@ static const struct brcmf_buscore_ops brcmf_sdio_buscore_ops = {
.write32 = brcmf_sdio_buscore_write32,
};
-static bool
+static int
brcmf_sdio_probe_attach(struct brcmf_sdio *bus)
{
struct brcmf_sdio_dev *sdiodev;
@@ -3953,6 +3953,7 @@ brcmf_sdio_probe_attach(struct brcmf_sdio *bus)
u32 reg_val;
u32 drivestrength;
u32 enum_base;
+ int ret = -EBADE;
sdiodev = bus->sdiodev;
sdio_claim_host(sdiodev->func1);
@@ -4001,8 +4002,9 @@ brcmf_sdio_probe_attach(struct brcmf_sdio *bus)
BRCMF_BUSTYPE_SDIO,
bus->ci->chip,
bus->ci->chiprev);
- if (!sdiodev->settings) {
+ if (IS_ERR_OR_NULL(sdiodev->settings)) {
brcmf_err("Failed to get device parameters\n");
+ ret = PTR_ERR_OR_ZERO(sdiodev->settings);
goto fail;
}
/* platform specific configuration:
@@ -4071,7 +4073,7 @@ brcmf_sdio_probe_attach(struct brcmf_sdio *bus)
/* allocate header buffer */
bus->hdrbuf = kzalloc(MAX_HDR_READ + bus->head_align, GFP_KERNEL);
if (!bus->hdrbuf)
- return false;
+ return -ENOMEM;
/* Locate an appropriately-aligned portion of hdrbuf */
bus->rxhdr = (u8 *) roundup((unsigned long)&bus->hdrbuf[0],
bus->head_align);
@@ -4082,11 +4084,11 @@ brcmf_sdio_probe_attach(struct brcmf_sdio *bus)
if (bus->poll)
bus->pollrate = 1;
- return true;
+ return 0;
fail:
sdio_release_host(sdiodev->func1);
- return false;
+ return ret;
}
static int
@@ -4452,7 +4454,9 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
/* Allocate private bus interface state */
bus = kzalloc(sizeof(*bus), GFP_ATOMIC);
if (!bus)
+ ret = -ENOMEM;
goto fail;
+ }
bus->sdiodev = sdiodev;
sdiodev->bus = bus;
@@ -4467,6 +4471,7 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
dev_name(&sdiodev->func1->dev));
if (!wq) {
brcmf_err("insufficient memory to create txworkqueue\n");
+ ret = -ENOMEM;
goto fail;
}
brcmf_sdiod_freezer_count(sdiodev);
@@ -4474,7 +4479,8 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
bus->brcmf_wq = wq;
/* attempt to attach to the dongle */
- if (!(brcmf_sdio_probe_attach(bus))) {
+ ret = brcmf_sdio_probe_attach(bus);
+ if (ret < 0) {
brcmf_err("brcmf_sdio_probe_attach failed\n");
goto fail;
}
@@ -4546,7 +4552,7 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
fail:
brcmf_sdio_remove(bus);
- return NULL;
+ return ERR_PTR(ret);
}
/* Detach and free everything */
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
index 8afbf529c7450..2821c27f317ee 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
@@ -1272,6 +1272,9 @@ static int brcmf_usb_probe_cb(struct brcmf_usbdev_info *devinfo,
ret = -ENOMEM;
goto fail;
}
+ ret = PTR_ERR_OR_ZERO(devinfo->settings);
+ if (ret < 0)
+ goto fail;
if (!brcmf_usb_dlneeded(devinfo)) {
ret = brcmf_alloc(devinfo->dev, devinfo->settings);
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v13 5/5] wifi: brcmfmac: add flag for random seed during firmware download
2024-08-28 8:49 [PATCH v13 0/5] Add AP6276P wireless support Jacobe Zang
` (3 preceding siblings ...)
2024-08-28 8:49 ` [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support Jacobe Zang
@ 2024-08-28 8:49 ` Jacobe Zang
4 siblings, 0 replies; 12+ messages in thread
From: Jacobe Zang @ 2024-08-28 8:49 UTC (permalink / raw)
To: Kalle Valo, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
van Spriel, Arend van Spriel
Cc: linux-wireless, netdev, devicetree, linux-kernel, brcm80211,
brcm80211-dev-list.pdl, Jacobe Zang, Ondrej Jirman
Providing the random seed to firmware was tied to the fact that the
device has a valid OTP, which worked for some Apple chips. However,
it turns out the BCM43752 device also needs the random seed in order
to get firmware running. Suspect it is simply tied to the firmware
branch used for the device. Introducing a mechanism to allow setting
it for a device through the device table.
Co-developed-by: Ondrej Jirman <megi@xff.cz>
Signed-off-by: Ondrej Jirman <megi@xff.cz>
Co-developed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Jacobe Zang <jacobe.zang@wesion.com>
---
.../wireless/broadcom/brcm80211/brcmfmac/pcie.c | 52 ++++++++++++++++++----
.../broadcom/brcm80211/include/brcm_hw_ids.h | 2 +
2 files changed, 46 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
index 190e8990618c5..c0fdaa4dceda4 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
@@ -66,6 +66,7 @@ BRCMF_FW_DEF(4365C, "brcmfmac4365c-pcie");
BRCMF_FW_DEF(4366B, "brcmfmac4366b-pcie");
BRCMF_FW_DEF(4366C, "brcmfmac4366c-pcie");
BRCMF_FW_DEF(4371, "brcmfmac4371-pcie");
+BRCMF_FW_CLM_DEF(43752, "brcmfmac43752-pcie");
BRCMF_FW_CLM_DEF(4377B3, "brcmfmac4377b3-pcie");
BRCMF_FW_CLM_DEF(4378B1, "brcmfmac4378b1-pcie");
BRCMF_FW_CLM_DEF(4378B3, "brcmfmac4378b3-pcie");
@@ -104,6 +105,7 @@ static const struct brcmf_firmware_mapping brcmf_pcie_fwnames[] = {
BRCMF_FW_ENTRY(BRCM_CC_43664_CHIP_ID, 0xFFFFFFF0, 4366C),
BRCMF_FW_ENTRY(BRCM_CC_43666_CHIP_ID, 0xFFFFFFF0, 4366C),
BRCMF_FW_ENTRY(BRCM_CC_4371_CHIP_ID, 0xFFFFFFFF, 4371),
+ BRCMF_FW_ENTRY(BRCM_CC_43752_CHIP_ID, 0xFFFFFFFF, 43752),
BRCMF_FW_ENTRY(BRCM_CC_4377_CHIP_ID, 0xFFFFFFFF, 4377B3), /* revision ID 4 */
BRCMF_FW_ENTRY(BRCM_CC_4378_CHIP_ID, 0x0000000F, 4378B1), /* revision ID 3 */
BRCMF_FW_ENTRY(BRCM_CC_4378_CHIP_ID, 0xFFFFFFE0, 4378B3), /* revision ID 5 */
@@ -353,6 +355,7 @@ struct brcmf_pciedev_info {
u16 value);
struct brcmf_mp_device *settings;
struct brcmf_otp_params otp;
+ bool fwseed;
#ifdef DEBUG
u32 console_interval;
bool console_active;
@@ -1715,14 +1718,14 @@ static int brcmf_pcie_download_fw_nvram(struct brcmf_pciedev_info *devinfo,
memcpy_toio(devinfo->tcm + address, nvram, nvram_len);
brcmf_fw_nvram_free(nvram);
- if (devinfo->otp.valid) {
+ if (devinfo->fwseed) {
size_t rand_len = BRCMF_RANDOM_SEED_LENGTH;
struct brcmf_random_seed_footer footer = {
.length = cpu_to_le32(rand_len),
.magic = cpu_to_le32(BRCMF_RANDOM_SEED_MAGIC),
};
- /* Some Apple chips/firmwares expect a buffer of random
+ /* Some chips/firmwares expect a buffer of random
* data to be present before NVRAM
*/
brcmf_dbg(PCIE, "Download random seed\n");
@@ -2394,6 +2397,37 @@ static void brcmf_pcie_debugfs_create(struct device *dev)
}
#endif
+struct brcmf_pcie_drvdata {
+ enum brcmf_fwvendor vendor;
+ bool fw_seed;
+};
+
+enum {
+ BRCMF_DRVDATA_CYW,
+ BRCMF_DRVDATA_BCA,
+ BRCMF_DRVDATA_WCC,
+ BRCMF_DRVDATA_WCC_SEED,
+};
+
+static const struct brcmf_pcie_drvdata drvdata[] = {
+ [BRCMF_DRVDATA_CYW] = {
+ .vendor = BRCMF_FWVENDOR_CYW,
+ .fw_seed = false,
+ },
+ [BRCMF_DRVDATA_BCA] = {
+ .vendor = BRCMF_FWVENDOR_BCA,
+ .fw_seed = false,
+ },
+ [BRCMF_DRVDATA_WCC] = {
+ .vendor = BRCMF_FWVENDOR_WCC,
+ .fw_seed = false,
+ },
+ [BRCMF_DRVDATA_WCC_SEED] = {
+ .vendor = BRCMF_FWVENDOR_WCC,
+ .fw_seed = true,
+ },
+};
+
/* Forward declaration for pci_match_id() call */
static const struct pci_device_id brcmf_pcie_devid_table[];
@@ -2475,9 +2509,10 @@ brcmf_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id)
bus->bus_priv.pcie = pcie_bus_dev;
bus->ops = &brcmf_pcie_bus_ops;
bus->proto_type = BRCMF_PROTO_MSGBUF;
- bus->fwvid = id->driver_data;
bus->chip = devinfo->coreid;
bus->wowl_supported = pci_pme_capable(pdev, PCI_D3hot);
+ bus->fwvid = drvdata[id->driver_data].vendor;
+ devinfo->fwseed = drvdata[id->driver_data].fw_seed;
dev_set_drvdata(&pdev->dev, bus);
ret = brcmf_alloc(&devinfo->pdev->dev, devinfo->settings);
@@ -2663,14 +2698,14 @@ static const struct dev_pm_ops brcmf_pciedrvr_pm = {
BRCM_PCIE_VENDOR_ID_BROADCOM, (dev_id), \
PCI_ANY_ID, PCI_ANY_ID, \
PCI_CLASS_NETWORK_OTHER << 8, 0xffff00, \
- BRCMF_FWVENDOR_ ## fw_vend \
+ BRCMF_DRVDATA_ ## fw_vend \
}
#define BRCMF_PCIE_DEVICE_SUB(dev_id, subvend, subdev, fw_vend) \
{ \
BRCM_PCIE_VENDOR_ID_BROADCOM, (dev_id), \
(subvend), (subdev), \
PCI_CLASS_NETWORK_OTHER << 8, 0xffff00, \
- BRCMF_FWVENDOR_ ## fw_vend \
+ BRCMF_DRVDATA_ ## fw_vend \
}
static const struct pci_device_id brcmf_pcie_devid_table[] = {
@@ -2698,9 +2733,10 @@ static const struct pci_device_id brcmf_pcie_devid_table[] = {
BRCMF_PCIE_DEVICE(BRCM_PCIE_4366_5G_DEVICE_ID, BCA),
BRCMF_PCIE_DEVICE(BRCM_PCIE_4371_DEVICE_ID, WCC),
BRCMF_PCIE_DEVICE(BRCM_PCIE_43596_DEVICE_ID, CYW),
- BRCMF_PCIE_DEVICE(BRCM_PCIE_4377_DEVICE_ID, WCC),
- BRCMF_PCIE_DEVICE(BRCM_PCIE_4378_DEVICE_ID, WCC),
- BRCMF_PCIE_DEVICE(BRCM_PCIE_4387_DEVICE_ID, WCC),
+ BRCMF_PCIE_DEVICE(BRCM_PCIE_4377_DEVICE_ID, WCC_SEED),
+ BRCMF_PCIE_DEVICE(BRCM_PCIE_4378_DEVICE_ID, WCC_SEED),
+ BRCMF_PCIE_DEVICE(BRCM_PCIE_4387_DEVICE_ID, WCC_SEED),
+ BRCMF_PCIE_DEVICE(BRCM_PCIE_43752_DEVICE_ID, WCC_SEED),
{ /* end: all zeroes */ }
};
diff --git a/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h b/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h
index 44684bf1b9acc..c1e22c589d85e 100644
--- a/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h
+++ b/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h
@@ -52,6 +52,7 @@
#define BRCM_CC_43664_CHIP_ID 43664
#define BRCM_CC_43666_CHIP_ID 43666
#define BRCM_CC_4371_CHIP_ID 0x4371
+#define BRCM_CC_43752_CHIP_ID 43752
#define BRCM_CC_4377_CHIP_ID 0x4377
#define BRCM_CC_4378_CHIP_ID 0x4378
#define BRCM_CC_4387_CHIP_ID 0x4387
@@ -94,6 +95,7 @@
#define BRCM_PCIE_4366_5G_DEVICE_ID 0x43c5
#define BRCM_PCIE_4371_DEVICE_ID 0x440d
#define BRCM_PCIE_43596_DEVICE_ID 0x4415
+#define BRCM_PCIE_43752_DEVICE_ID 0x449d
#define BRCM_PCIE_4377_DEVICE_ID 0x4488
#define BRCM_PCIE_4378_DEVICE_ID 0x4425
#define BRCM_PCIE_4387_DEVICE_ID 0x4433
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v13 3/5] dt-bindings: net: wireless: brcm4329-fmac: change properties enum structure
2024-08-28 8:49 ` [PATCH v13 3/5] dt-bindings: net: wireless: brcm4329-fmac: change properties enum structure Jacobe Zang
@ 2024-08-28 13:04 ` Krzysztof Kozlowski
2024-08-28 13:20 ` Jacobe Zang
0 siblings, 1 reply; 12+ messages in thread
From: Krzysztof Kozlowski @ 2024-08-28 13:04 UTC (permalink / raw)
To: Jacobe Zang, Kalle Valo, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, van Spriel, Arend van Spriel
Cc: linux-wireless, netdev, devicetree, linux-kernel, brcm80211,
brcm80211-dev-list.pdl
On 28/08/2024 10:49, Jacobe Zang wrote:
> Add "brcm,bcm4329-fmac" as fallback compatible for wireless devices that
> used PCI ID based compatible. So that can pass the compatible check in
> driver.
Driver? Why this has to pass compatible check?
I think I asked to provide proper rationale based on hardware... if not,
then let me ask here: Please provide proper rationale explaining how
this hardware is compatible, especially considering these are entirely
different buses (SDIO and PCI!).
It feels you patch up bindings and DTS, because of buggy driver. Sorry
no, fix the driver.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v13 3/5] dt-bindings: net: wireless: brcm4329-fmac: change properties enum structure
2024-08-28 13:04 ` Krzysztof Kozlowski
@ 2024-08-28 13:20 ` Jacobe Zang
0 siblings, 0 replies; 12+ messages in thread
From: Jacobe Zang @ 2024-08-28 13:20 UTC (permalink / raw)
To: Krzysztof Kozlowski, Kalle Valo, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, van Spriel, Arend van Spriel
Cc: linux-wireless, netdev, devicetree, linux-kernel, brcm80211,
brcm80211-dev-list.pdl
On 2024/8/28 21:04, Krzysztof Kozlowski wrote:
> On 28/08/2024 10:49, Jacobe Zang wrote:
>> Add "brcm,bcm4329-fmac" as fallback compatible for wireless devices that
>> used PCI ID based compatible. So that can pass the compatible check in
>> driver.
>
> Driver? Why this has to pass compatible check?
>
> I think I asked to provide proper rationale based on hardware... if not,
> then let me ask here: Please provide proper rationale explaining how
> this hardware is compatible, especially considering these are entirely
> different buses (SDIO and PCI!).
>
> It feels you patch up bindings and DTS, because of buggy driver. Sorry
> no, fix the driver.
>
All right. Anyway after discussion in the other series, this patch
should be dropped, and driver also need to fix.
--
Best Regards
Jacobe
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support
2024-08-28 8:49 ` [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support Jacobe Zang
@ 2024-08-28 15:20 ` Simon Horman
2024-08-29 0:05 ` Jacobe Zang
2024-08-29 16:31 ` kernel test robot
2024-08-29 16:41 ` kernel test robot
2 siblings, 1 reply; 12+ messages in thread
From: Simon Horman @ 2024-08-28 15:20 UTC (permalink / raw)
To: Jacobe Zang
Cc: Kalle Valo, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
van Spriel, Arend van Spriel, linux-wireless, netdev, devicetree,
linux-kernel, brcm80211, brcm80211-dev-list.pdl, Ondrej Jirman,
Sai Krishna
On Wed, Aug 28, 2024 at 04:49:25PM +0800, Jacobe Zang wrote:
> WiFi modules often require 32kHz clock to function. Add support to
> enable the clock to PCIe driver and move "brcm,bcm4329-fmac" check
> to the top of brcmf_of_probe. Change function prototypes from void
> to int and add appropriate errno's for return values that will be
> send to bus when error occurred.
>
> Co-developed-by: Ondrej Jirman <megi@xff.cz>
> Signed-off-by: Ondrej Jirman <megi@xff.cz>
> Co-developed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
> Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
> Reviewed-by: Sai Krishna <saikrishnag@marvell.com>
> Signed-off-by: Jacobe Zang <jacobe.zang@wesion.com>
...
> @@ -4452,7 +4454,9 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
> /* Allocate private bus interface state */
> bus = kzalloc(sizeof(*bus), GFP_ATOMIC);
> if (!bus)
> + ret = -ENOMEM;
> goto fail;
> + }
>
Perhaps a local change didn't make it into git, or something like that.
But this does not compile. As was also the case in v12.
Please take time to test your patches, not just the local tree.
> bus->sdiodev = sdiodev;
> sdiodev->bus = bus;
--
pw-bot: cr
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support
2024-08-28 15:20 ` Simon Horman
@ 2024-08-29 0:05 ` Jacobe Zang
0 siblings, 0 replies; 12+ messages in thread
From: Jacobe Zang @ 2024-08-29 0:05 UTC (permalink / raw)
To: Simon Horman
Cc: Kalle Valo, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
van Spriel, Arend van Spriel, linux-wireless, netdev, devicetree,
linux-kernel, brcm80211, brcm80211-dev-list.pdl, Ondrej Jirman,
Sai Krishna
On 2024/8/28 23:20, Simon Horman wrote:
> On Wed, Aug 28, 2024 at 04:49:25PM +0800, Jacobe Zang wrote:
>> WiFi modules often require 32kHz clock to function. Add support to
>> enable the clock to PCIe driver and move "brcm,bcm4329-fmac" check
>> to the top of brcmf_of_probe. Change function prototypes from void
>> to int and add appropriate errno's for return values that will be
>> send to bus when error occurred.
>>
>> Co-developed-by: Ondrej Jirman <megi@xff.cz>
>> Signed-off-by: Ondrej Jirman <megi@xff.cz>
>> Co-developed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
>> Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
>> Reviewed-by: Sai Krishna <saikrishnag@marvell.com>
>> Signed-off-by: Jacobe Zang <jacobe.zang@wesion.com>
>
> ...
>
>> @@ -4452,7 +4454,9 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
>> /* Allocate private bus interface state */
>> bus = kzalloc(sizeof(*bus), GFP_ATOMIC);
>> if (!bus)
>> + ret = -ENOMEM;
>> goto fail;
>> + }
>>
>
> Perhaps a local change didn't make it into git, or something like that.
> But this does not compile. As was also the case in v12.
> Please take time to test your patches, not just the local tree.
>
Thanks for your correction. I will fix it.
>> bus->sdiodev = sdiodev;
>> sdiodev->bus = bus;
>
--
Best Regards
Jacobe
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support
2024-08-28 8:49 ` [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support Jacobe Zang
2024-08-28 15:20 ` Simon Horman
@ 2024-08-29 16:31 ` kernel test robot
2024-08-29 16:41 ` kernel test robot
2 siblings, 0 replies; 12+ messages in thread
From: kernel test robot @ 2024-08-29 16:31 UTC (permalink / raw)
To: Jacobe Zang, Kalle Valo, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, van Spriel, Arend van Spriel
Cc: oe-kbuild-all, netdev, linux-wireless, devicetree, linux-kernel,
brcm80211, brcm80211-dev-list.pdl, Jacobe Zang, Ondrej Jirman,
Sai Krishna
Hi Jacobe,
kernel test robot noticed the following build errors:
[auto build test ERROR on dabcfd5e116800496eb9bec2ba7c015ca2043aa0]
url: https://github.com/intel-lab-lkp/linux/commits/Jacobe-Zang/dt-bindings-net-wireless-brcm4329-fmac-add-pci14e4-449d/20240828-165201
base: dabcfd5e116800496eb9bec2ba7c015ca2043aa0
patch link: https://lore.kernel.org/r/20240828-wireless-mainline-v13-4-9998b19cfe7e%40wesion.com
patch subject: [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20240830/202408300052.uYcuFzk0-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240830/202408300052.uYcuFzk0-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408300052.uYcuFzk0-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c: In function 'brcmf_sdio_probe':
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4456:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
4456 | if (!bus)
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4458:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
4458 | goto fail;
| ^~~~
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4458:17: error: label 'fail' used but not defined
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4450:34: warning: unused variable 'fwreq' [-Wunused-variable]
4450 | struct brcmf_fw_request *fwreq;
| ^~~~~
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4449:34: warning: unused variable 'wq' [-Wunused-variable]
4449 | struct workqueue_struct *wq;
| ^~
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4447:13: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
4447 | int ret;
| ^~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c: At top level:
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4461:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4461 | bus->sdiodev = sdiodev;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4462:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4462 | sdiodev->bus = bus;
| ^~
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4463:29: error: expected declaration specifiers or '...' before '&' token
4463 | skb_queue_head_init(&bus->glom);
| ^
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4464:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4464 | bus->txbound = BRCMF_TXBOUND;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4465:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4465 | bus->rxbound = BRCMF_RXBOUND;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4466:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4466 | bus->txminmax = BRCMF_TXMINMAX;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4467:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4467 | bus->tx_seq = SDPCM_SEQ_WRAP - 1;
| ^~
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4470:9: warning: data definition has no type or storage class
4470 | wq = alloc_ordered_workqueue("brcmf_wq/%s", WQ_MEM_RECLAIM | WQ_HIGHPRI,
| ^~
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4470:9: error: type defaults to 'int' in declaration of 'wq' [-Wimplicit-int]
In file included from include/linux/netdevice.h:35,
from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:12:
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4471:48: error: 'sdiodev' undeclared here (not in a function)
4471 | dev_name(&sdiodev->func1->dev));
| ^~~~~~~
include/linux/workqueue.h:524:72: note: in definition of macro 'alloc_ordered_workqueue'
524 | alloc_workqueue(fmt, WQ_UNBOUND | __WQ_ORDERED | (flags), 1, ##args)
| ^~~~
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4472:9: error: expected identifier or '(' before 'if'
4472 | if (!wq) {
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: warning: data definition has no type or storage class
4477 | brcmf_sdiod_freezer_count(sdiodev);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: error: type defaults to 'int' in declaration of 'brcmf_sdiod_freezer_count' [-Wimplicit-int]
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: error: parameter names (without types) in function declaration [-Wdeclaration-missing-parameter-type]
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: error: conflicting types for 'brcmf_sdiod_freezer_count'; have 'int()'
In file included from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:32:
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:355:6: note: previous declaration of 'brcmf_sdiod_freezer_count' with type 'void(struct brcmf_sdio_dev *)'
355 | void brcmf_sdiod_freezer_count(struct brcmf_sdio_dev *sdiodev);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/workqueue.h:301:9: error: expected identifier or '(' before 'do'
301 | do { \
| ^~
include/linux/workqueue.h:308:9: note: in expansion of macro '__INIT_WORK'
308 | __INIT_WORK((_work), (_func), 0)
| ^~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4478:9: note: in expansion of macro 'INIT_WORK'
4478 | INIT_WORK(&bus->datawork, brcmf_sdio_dataworker);
| ^~~~~~~~~
>> include/linux/workqueue.h:305:11: error: expected identifier or '(' before 'while'
305 | } while (0)
| ^~~~~
include/linux/workqueue.h:308:9: note: in expansion of macro '__INIT_WORK'
308 | __INIT_WORK((_work), (_func), 0)
| ^~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4478:9: note: in expansion of macro 'INIT_WORK'
4478 | INIT_WORK(&bus->datawork, brcmf_sdio_dataworker);
| ^~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4479:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4479 | bus->brcmf_wq = wq;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:9: warning: data definition has no type or storage class
4482 | ret = brcmf_sdio_probe_attach(bus);
| ^~~
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:9: error: type defaults to 'int' in declaration of 'ret' [-Wimplicit-int]
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:39: error: 'bus' undeclared here (not in a function)
4482 | ret = brcmf_sdio_probe_attach(bus);
| ^~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4483:9: error: expected identifier or '(' before 'if'
4483 | if (ret < 0) {
| ^~
In file included from include/linux/sched.h:2148,
from include/linux/kthread.h:6,
from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:9:
>> include/linux/spinlock.h:332:1: error: expected identifier or '(' before 'do'
332 | do { \
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4488:9: note: in expansion of macro 'spin_lock_init'
4488 | spin_lock_init(&bus->rxctl_lock);
| ^~~~~~~~~~~~~~
>> include/linux/spinlock.h:337:3: error: expected identifier or '(' before 'while'
337 | } while (0)
| ^~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4488:9: note: in expansion of macro 'spin_lock_init'
4488 | spin_lock_init(&bus->rxctl_lock);
| ^~~~~~~~~~~~~~
include/linux/spinlock.h:332:1: error: expected identifier or '(' before 'do'
332 | do { \
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4489:9: note: in expansion of macro 'spin_lock_init'
4489 | spin_lock_init(&bus->txq_lock);
| ^~~~~~~~~~~~~~
include/linux/spinlock.h:337:3: error: expected identifier or '(' before 'while'
337 | } while (0)
| ^~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4489:9: note: in expansion of macro 'spin_lock_init'
4489 | spin_lock_init(&bus->txq_lock);
| ^~~~~~~~~~~~~~
In file included from include/linux/sysctl.h:27,
from include/net/net_namespace.h:12,
from include/linux/netdevice.h:38:
include/linux/wait.h:65:9: error: expected identifier or '(' before 'do'
65 | do { \
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4490:9: note: in expansion of macro 'init_waitqueue_head'
4490 | init_waitqueue_head(&bus->ctrl_wait);
| ^~~~~~~~~~~~~~~~~~~
include/linux/wait.h:69:11: error: expected identifier or '(' before 'while'
69 | } while (0)
| ^~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4490:9: note: in expansion of macro 'init_waitqueue_head'
4490 | init_waitqueue_head(&bus->ctrl_wait);
| ^~~~~~~~~~~~~~~~~~~
include/linux/wait.h:65:9: error: expected identifier or '(' before 'do'
65 | do { \
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4491:9: note: in expansion of macro 'init_waitqueue_head'
4491 | init_waitqueue_head(&bus->dcmd_resp_wait);
| ^~~~~~~~~~~~~~~~~~~
include/linux/wait.h:69:11: error: expected identifier or '(' before 'while'
69 | } while (0)
| ^~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4491:9: note: in expansion of macro 'init_waitqueue_head'
4491 | init_waitqueue_head(&bus->dcmd_resp_wait);
| ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/netdevice.h:24:
include/linux/timer.h:105:24: error: expected declaration specifiers or '...' before '(' token
105 | init_timer_key((_timer), (_fn), (_flags), NULL, NULL)
| ^
include/linux/timer.h:121:9: note: in expansion of macro '__init_timer'
121 | __init_timer((timer), (callback), (flags))
| ^~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4494:9: note: in expansion of macro 'timer_setup'
4494 | timer_setup(&bus->timer, brcmf_sdio_watchdog, 0);
| ^~~~~~~~~~~
include/linux/timer.h:105:34: error: expected declaration specifiers or '...' before '(' token
105 | init_timer_key((_timer), (_fn), (_flags), NULL, NULL)
| ^
include/linux/timer.h:121:9: note: in expansion of macro '__init_timer'
121 | __init_timer((timer), (callback), (flags))
| ^~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4494:9: note: in expansion of macro 'timer_setup'
4494 | timer_setup(&bus->timer, brcmf_sdio_watchdog, 0);
| ^~~~~~~~~~~
include/linux/timer.h:105:41: error: expected declaration specifiers or '...' before '(' token
105 | init_timer_key((_timer), (_fn), (_flags), NULL, NULL)
| ^
include/linux/timer.h:121:9: note: in expansion of macro '__init_timer'
121 | __init_timer((timer), (callback), (flags))
| ^~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4494:9: note: in expansion of macro 'timer_setup'
4494 | timer_setup(&bus->timer, brcmf_sdio_watchdog, 0);
| ^~~~~~~~~~~
In file included from include/uapi/linux/posix_types.h:5,
from include/uapi/linux/types.h:14,
from include/linux/types.h:6,
from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:6:
include/linux/stddef.h:8:14: error: expected declaration specifiers or '...' before '(' token
8 | #define NULL ((void *)0)
| ^
include/linux/timer.h:105:51: note: in expansion of macro 'NULL'
105 | init_timer_key((_timer), (_fn), (_flags), NULL, NULL)
| ^~~~
include/linux/timer.h:121:9: note: in expansion of macro '__init_timer'
121 | __init_timer((timer), (callback), (flags))
| ^~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4494:9: note: in expansion of macro 'timer_setup'
4494 | timer_setup(&bus->timer, brcmf_sdio_watchdog, 0);
| ^~~~~~~~~~~
include/linux/stddef.h:8:14: error: expected declaration specifiers or '...' before '(' token
8 | #define NULL ((void *)0)
| ^
include/linux/timer.h:105:57: note: in expansion of macro 'NULL'
105 | init_timer_key((_timer), (_fn), (_flags), NULL, NULL)
| ^~~~
include/linux/timer.h:121:9: note: in expansion of macro '__init_timer'
121 | __init_timer((timer), (callback), (flags))
| ^~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4494:9: note: in expansion of macro 'timer_setup'
4494 | timer_setup(&bus->timer, brcmf_sdio_watchdog, 0);
| ^~~~~~~~~~~
vim +/fail +4458 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
2baa3aaee27f13 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4444
82d7f3c10cf41c drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4445 struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4446 {
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4447 int ret;
e92eedf4e080fc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2011-11-22 4448 struct brcmf_sdio *bus;
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4449 struct workqueue_struct *wq;
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 @4450 struct brcmf_fw_request *fwreq;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4451
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4452 brcmf_dbg(TRACE, "Enter\n");
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4453
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4454 /* Allocate private bus interface state */
dcb77f854ae086 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Erick Archer 2024-05-27 4455 bus = kzalloc(sizeof(*bus), GFP_ATOMIC);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4456 if (!bus)
b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4457 ret = -ENOMEM;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4458 goto fail;
b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4459 }
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4460
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4461 bus->sdiodev = sdiodev;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4462 sdiodev->bus = bus;
b83db862ffb871 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-19 @4463 skb_queue_head_init(&bus->glom);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4464 bus->txbound = BRCMF_TXBOUND;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4465 bus->rxbound = BRCMF_RXBOUND;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4466 bus->txminmax = BRCMF_TXMINMAX;
6bc52319c2c688 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 @4467 bus->tx_seq = SDPCM_SEQ_WRAP - 1;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4468
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4469 /* single-threaded workqueue */
41b637bac0b0a9 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Sean Anderson 2021-08-02 @4470 wq = alloc_ordered_workqueue("brcmf_wq/%s", WQ_MEM_RECLAIM | WQ_HIGHPRI,
c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 @4471 dev_name(&sdiodev->func1->dev));
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4472 if (!wq) {
5e8149f5036afe drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2012-12-07 4473 brcmf_err("insufficient memory to create txworkqueue\n");
b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4474 ret = -ENOMEM;
37ac5780e08e4e drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2012-11-14 4475 goto fail;
37ac5780e08e4e drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2012-11-14 4476 }
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4477 brcmf_sdiod_freezer_count(sdiodev);
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4478 INIT_WORK(&bus->datawork, brcmf_sdio_dataworker);
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4479 bus->brcmf_wq = wq;
37ac5780e08e4e drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2012-11-14 4480
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4481 /* attempt to attach to the dongle */
b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 @4482 ret = brcmf_sdio_probe_attach(bus);
b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4483 if (ret < 0) {
82d7f3c10cf41c drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4484 brcmf_err("brcmf_sdio_probe_attach failed\n");
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4485 goto fail;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4486 }
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4487
dd43a01c5cdb81 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2012-11-05 4488 spin_lock_init(&bus->rxctl_lock);
fed7ec44e7ef64 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2014-03-15 4489 spin_lock_init(&bus->txq_lock);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4490 init_waitqueue_head(&bus->ctrl_wait);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4491 init_waitqueue_head(&bus->dcmd_resp_wait);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4492
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4493 /* Set up the watchdog timer */
e99e88a9d2b067 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Kees Cook 2017-10-16 4494 timer_setup(&bus->timer, brcmf_sdio_watchdog, 0);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4495 /* Initialize watchdog thread */
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4496 init_completion(&bus->watchdog_wait);
82d7f3c10cf41c drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4497 bus->watchdog_tsk = kthread_run(brcmf_sdio_watchdog_thread,
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4498 bus, "brcmf_wdog/%s",
c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4499 dev_name(&sdiodev->func1->dev));
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4500 if (IS_ERR(bus->watchdog_tsk)) {
02f77195db6ce2 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Joe Perches 2012-01-15 4501 pr_warn("brcmf_watchdog thread failed to start\n");
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4502 bus->watchdog_tsk = NULL;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4503 }
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4504 /* Initialize DPC thread */
2c64e16d1ff122 drivers/net/wireless/brcm80211/brcmfmac/sdio.c Hante Meuleman 2015-03-18 4505 bus->dpc_triggered = false;
2c64e16d1ff122 drivers/net/wireless/brcm80211/brcmfmac/sdio.c Hante Meuleman 2015-03-18 4506 bus->dpc_running = false;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4507
706478cba54458 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4508 /* default sdio bus header length for tx packet */
706478cba54458 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4509 bus->tx_hdrlen = SDPCM_HWHDR_LEN + SDPCM_SWHDR_LEN;
706478cba54458 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4510
7dd3abc14f94bc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Daniel Kim 2014-05-27 4511 /* Query the F2 block size, set roundup accordingly */
c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4512 bus->blocksize = bus->sdiodev->func2->cur_blksize;
7dd3abc14f94bc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Daniel Kim 2014-05-27 @4513 bus->roundup = min(max_roundup, bus->blocksize);
7dd3abc14f94bc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Daniel Kim 2014-05-27 4514
c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 @4515 sdio_claim_host(bus->sdiodev->func1);
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4516
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4517 /* Disable F2 to clear any intermediate frame state on the dongle */
c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4518 sdio_disable_func(bus->sdiodev->func2);
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4519
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4520 bus->rxflow = false;
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4521
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4522 /* Done with backplane-dependent accesses, can drop clock... */
71bd508d7ded8c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Ian Molton 2017-12-08 4523 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL);
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4524
c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4525 sdio_release_host(bus->sdiodev->func1);
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4526
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4527 /* ...and initialize clock/power states */
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4528 bus->clkstate = CLK_SDONLY;
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4529 bus->idletime = BRCMF_IDLE_INTERVAL;
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4530 bus->idleclock = BRCMF_IDLE_ACTIVE;
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4531
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4532 /* SR state */
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4533 bus->sr_enabled = false;
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4534
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4535 brcmf_dbg(INFO, "completed!!\n");
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4536
2baa3aaee27f13 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 @4537 fwreq = brcmf_sdio_prepare_fw_request(bus);
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4538 if (!fwreq) {
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4539 ret = -ENOMEM;
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4540 goto fail;
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4541 }
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4542
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 @4543 ret = brcmf_fw_get_firmwares(sdiodev->dev, fwreq,
bd0e1b1d380efe drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-05-27 4544 brcmf_sdio_firmware_callback);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4545 if (ret != 0) {
bd0e1b1d380efe drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-05-27 4546 brcmf_err("async firmware request failed: %d\n", ret);
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4547 kfree(fwreq);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4548 goto fail;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4549 }
15d45b6fbd01ec drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2011-10-21 4550
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4551 return bus;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4552
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4553 fail:
9fbe2a6dc71d85 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4554 brcmf_sdio_remove(bus);
b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4555 return ERR_PTR(ret);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 @4556 }
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4557
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support
2024-08-28 8:49 ` [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support Jacobe Zang
2024-08-28 15:20 ` Simon Horman
2024-08-29 16:31 ` kernel test robot
@ 2024-08-29 16:41 ` kernel test robot
2 siblings, 0 replies; 12+ messages in thread
From: kernel test robot @ 2024-08-29 16:41 UTC (permalink / raw)
To: Jacobe Zang, Kalle Valo, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, van Spriel, Arend van Spriel
Cc: oe-kbuild-all, netdev, linux-wireless, devicetree, linux-kernel,
brcm80211, brcm80211-dev-list.pdl, Jacobe Zang, Ondrej Jirman,
Sai Krishna
Hi Jacobe,
kernel test robot noticed the following build warnings:
[auto build test WARNING on dabcfd5e116800496eb9bec2ba7c015ca2043aa0]
url: https://github.com/intel-lab-lkp/linux/commits/Jacobe-Zang/dt-bindings-net-wireless-brcm4329-fmac-add-pci14e4-449d/20240828-165201
base: dabcfd5e116800496eb9bec2ba7c015ca2043aa0
patch link: https://lore.kernel.org/r/20240828-wireless-mainline-v13-4-9998b19cfe7e%40wesion.com
patch subject: [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support
config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20240830/202408300014.XUogBpfg-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 13.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240830/202408300014.XUogBpfg-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408300014.XUogBpfg-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c: In function 'brcmf_sdio_probe':
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4456:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
4456 | if (!bus)
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4458:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
4458 | goto fail;
| ^~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4458:17: error: label 'fail' used but not defined
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4450:34: warning: unused variable 'fwreq' [-Wunused-variable]
4450 | struct brcmf_fw_request *fwreq;
| ^~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4449:34: warning: unused variable 'wq' [-Wunused-variable]
4449 | struct workqueue_struct *wq;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4447:13: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
4447 | int ret;
| ^~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c: At top level:
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4461:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4461 | bus->sdiodev = sdiodev;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4462:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4462 | sdiodev->bus = bus;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4463:29: error: expected declaration specifiers or '...' before '&' token
4463 | skb_queue_head_init(&bus->glom);
| ^
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4464:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4464 | bus->txbound = BRCMF_TXBOUND;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4465:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4465 | bus->rxbound = BRCMF_RXBOUND;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4466:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4466 | bus->txminmax = BRCMF_TXMINMAX;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4467:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4467 | bus->tx_seq = SDPCM_SEQ_WRAP - 1;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4470:9: warning: data definition has no type or storage class
4470 | wq = alloc_ordered_workqueue("brcmf_wq/%s", WQ_MEM_RECLAIM | WQ_HIGHPRI,
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4470:9: error: type defaults to 'int' in declaration of 'wq' [-Werror=implicit-int]
In file included from include/linux/netdevice.h:35,
from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:12:
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4471:48: error: 'sdiodev' undeclared here (not in a function)
4471 | dev_name(&sdiodev->func1->dev));
| ^~~~~~~
include/linux/workqueue.h:524:72: note: in definition of macro 'alloc_ordered_workqueue'
524 | alloc_workqueue(fmt, WQ_UNBOUND | __WQ_ORDERED | (flags), 1, ##args)
| ^~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4472:9: error: expected identifier or '(' before 'if'
4472 | if (!wq) {
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: warning: data definition has no type or storage class
4477 | brcmf_sdiod_freezer_count(sdiodev);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: error: type defaults to 'int' in declaration of 'brcmf_sdiod_freezer_count' [-Werror=implicit-int]
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: warning: parameter names (without types) in function declaration
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4477:9: error: conflicting types for 'brcmf_sdiod_freezer_count'; have 'int()'
In file included from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:32:
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:355:6: note: previous declaration of 'brcmf_sdiod_freezer_count' with type 'void(struct brcmf_sdio_dev *)'
355 | void brcmf_sdiod_freezer_count(struct brcmf_sdio_dev *sdiodev);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/workqueue.h:301:9: error: expected identifier or '(' before 'do'
301 | do { \
| ^~
include/linux/workqueue.h:308:9: note: in expansion of macro '__INIT_WORK'
308 | __INIT_WORK((_work), (_func), 0)
| ^~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4478:9: note: in expansion of macro 'INIT_WORK'
4478 | INIT_WORK(&bus->datawork, brcmf_sdio_dataworker);
| ^~~~~~~~~
include/linux/workqueue.h:305:11: error: expected identifier or '(' before 'while'
305 | } while (0)
| ^~~~~
include/linux/workqueue.h:308:9: note: in expansion of macro '__INIT_WORK'
308 | __INIT_WORK((_work), (_func), 0)
| ^~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4478:9: note: in expansion of macro 'INIT_WORK'
4478 | INIT_WORK(&bus->datawork, brcmf_sdio_dataworker);
| ^~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4479:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4479 | bus->brcmf_wq = wq;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:9: warning: data definition has no type or storage class
4482 | ret = brcmf_sdio_probe_attach(bus);
| ^~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:9: error: type defaults to 'int' in declaration of 'ret' [-Werror=implicit-int]
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:39: error: 'bus' undeclared here (not in a function)
4482 | ret = brcmf_sdio_probe_attach(bus);
| ^~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4483:9: error: expected identifier or '(' before 'if'
4483 | if (ret < 0) {
| ^~
In file included from include/linux/sched.h:2148,
from include/linux/kthread.h:6,
from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:9:
include/linux/spinlock.h:332:1: error: expected identifier or '(' before 'do'
332 | do { \
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4488:9: note: in expansion of macro 'spin_lock_init'
4488 | spin_lock_init(&bus->rxctl_lock);
| ^~~~~~~~~~~~~~
include/linux/spinlock.h:337:3: error: expected identifier or '(' before 'while'
337 | } while (0)
| ^~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4488:9: note: in expansion of macro 'spin_lock_init'
4488 | spin_lock_init(&bus->rxctl_lock);
| ^~~~~~~~~~~~~~
include/linux/spinlock.h:332:1: error: expected identifier or '(' before 'do'
332 | do { \
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4489:9: note: in expansion of macro 'spin_lock_init'
4489 | spin_lock_init(&bus->txq_lock);
| ^~~~~~~~~~~~~~
include/linux/spinlock.h:337:3: error: expected identifier or '(' before 'while'
337 | } while (0)
| ^~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4489:9: note: in expansion of macro 'spin_lock_init'
4489 | spin_lock_init(&bus->txq_lock);
| ^~~~~~~~~~~~~~
In file included from include/linux/sysctl.h:27,
from include/net/net_namespace.h:12,
from include/linux/netdevice.h:38:
include/linux/wait.h:65:9: error: expected identifier or '(' before 'do'
65 | do { \
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4490:9: note: in expansion of macro 'init_waitqueue_head'
4490 | init_waitqueue_head(&bus->ctrl_wait);
| ^~~~~~~~~~~~~~~~~~~
include/linux/wait.h:69:11: error: expected identifier or '(' before 'while'
69 | } while (0)
| ^~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4490:9: note: in expansion of macro 'init_waitqueue_head'
4490 | init_waitqueue_head(&bus->ctrl_wait);
| ^~~~~~~~~~~~~~~~~~~
include/linux/wait.h:65:9: error: expected identifier or '(' before 'do'
65 | do { \
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4491:9: note: in expansion of macro 'init_waitqueue_head'
4491 | init_waitqueue_head(&bus->dcmd_resp_wait);
| ^~~~~~~~~~~~~~~~~~~
include/linux/wait.h:69:11: error: expected identifier or '(' before 'while'
69 | } while (0)
| ^~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4491:9: note: in expansion of macro 'init_waitqueue_head'
4491 | init_waitqueue_head(&bus->dcmd_resp_wait);
| ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/netdevice.h:24:
include/linux/timer.h:105:24: error: expected declaration specifiers or '...' before '(' token
105 | init_timer_key((_timer), (_fn), (_flags), NULL, NULL)
| ^
include/linux/timer.h:121:9: note: in expansion of macro '__init_timer'
121 | __init_timer((timer), (callback), (flags))
| ^~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4494:9: note: in expansion of macro 'timer_setup'
4494 | timer_setup(&bus->timer, brcmf_sdio_watchdog, 0);
| ^~~~~~~~~~~
--
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4512:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4512 | bus->blocksize = bus->sdiodev->func2->cur_blksize;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4513:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4513 | bus->roundup = min(max_roundup, bus->blocksize);
| ^~
In file included from include/linux/kernel.h:28,
from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:8:
include/linux/minmax.h:53:41: error: expected identifier or '(' before ')' token
53 | __cmp(op, unique_x, unique_y); })
| ^
include/linux/minmax.h:58:17: note: in expansion of macro '__cmp_once'
58 | __cmp_once(op, x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y)))
| ^~~~~~~~~~
include/linux/minmax.h:85:25: note: in expansion of macro '__careful_cmp'
85 | #define min(x, y) __careful_cmp(min, x, y)
| ^~~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4513:24: note: in expansion of macro 'min'
4513 | bus->roundup = min(max_roundup, bus->blocksize);
| ^~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4515:28: error: expected ')' before '->' token
4515 | sdio_claim_host(bus->sdiodev->func1);
| ^~
| )
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4518:30: error: expected ')' before '->' token
4518 | sdio_disable_func(bus->sdiodev->func2);
| ^~
| )
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4520:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4520 | bus->rxflow = false;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:304:21: error: expected declaration specifiers or '...' before '(' token
304 | sdio_writeb((sdiodev)->func1, (v), (addr), (ret))
| ^
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4523:9: note: in expansion of macro 'brcmf_sdiod_writeb'
4523 | brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL);
| ^~~~~~~~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:304:39: error: expected declaration specifiers or '...' before '(' token
304 | sdio_writeb((sdiodev)->func1, (v), (addr), (ret))
| ^
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4523:9: note: in expansion of macro 'brcmf_sdiod_writeb'
4523 | brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL);
| ^~~~~~~~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:304:44: error: expected declaration specifiers or '...' before '(' token
304 | sdio_writeb((sdiodev)->func1, (v), (addr), (ret))
| ^
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4523:9: note: in expansion of macro 'brcmf_sdiod_writeb'
4523 | brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL);
| ^~~~~~~~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:304:52: error: expected declaration specifiers or '...' before '(' token
304 | sdio_writeb((sdiodev)->func1, (v), (addr), (ret))
| ^
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4523:9: note: in expansion of macro 'brcmf_sdiod_writeb'
4523 | brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL);
| ^~~~~~~~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4525:30: error: expected ')' before '->' token
4525 | sdio_release_host(bus->sdiodev->func1);
| ^~
| )
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4528:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4528 | bus->clkstate = CLK_SDONLY;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4529:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4529 | bus->idletime = BRCMF_IDLE_INTERVAL;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4530:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4530 | bus->idleclock = BRCMF_IDLE_ACTIVE;
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4533:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
4533 | bus->sr_enabled = false;
| ^~
In file included from drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h:12,
from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:112:
drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h:75:1: error: expected identifier or '(' before 'do'
75 | do { \
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4535:9: note: in expansion of macro 'brcmf_dbg'
4535 | brcmf_dbg(INFO, "completed!!\n");
| ^~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h:78:3: error: expected identifier or '(' before 'while'
78 | } while (0)
| ^~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4535:9: note: in expansion of macro 'brcmf_dbg'
4535 | brcmf_dbg(INFO, "completed!!\n");
| ^~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4537:9: warning: data definition has no type or storage class
4537 | fwreq = brcmf_sdio_prepare_fw_request(bus);
| ^~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4537:9: error: type defaults to 'int' in declaration of 'fwreq' [-Werror=implicit-int]
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4538:9: error: expected identifier or '(' before 'if'
4538 | if (!fwreq) {
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4543:9: warning: data definition has no type or storage class
4543 | ret = brcmf_fw_get_firmwares(sdiodev->dev, fwreq,
| ^~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4543:9: error: type defaults to 'int' in declaration of 'ret' [-Werror=implicit-int]
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4543:9: error: redefinition of 'ret'
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4482:9: note: previous definition of 'ret' with type 'int'
4482 | ret = brcmf_sdio_probe_attach(bus);
| ^~~
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4543:52: warning: passing argument 2 of 'brcmf_fw_get_firmwares' makes pointer from integer without a cast [-Wint-conversion]
4543 | ret = brcmf_fw_get_firmwares(sdiodev->dev, fwreq,
| ^~~~~
| |
| int
In file included from drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h:11:
drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h:91:73: note: expected 'struct brcmf_fw_request *' but argument is of type 'int'
91 | int brcmf_fw_get_firmwares(struct device *dev, struct brcmf_fw_request *req,
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4545:9: error: expected identifier or '(' before 'if'
4545 | if (ret != 0) {
| ^~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4551:9: error: expected identifier or '(' before 'return'
4551 | return bus;
| ^~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4553:5: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
4553 | fail:
| ^
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4555:9: error: expected identifier or '(' before 'return'
4555 | return ERR_PTR(ret);
| ^~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4556:1: error: expected identifier or '(' before '}' token
4556 | }
| ^
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4122:1: warning: 'brcmf_sdio_watchdog' defined but not used [-Wunused-function]
4122 | brcmf_sdio_watchdog(struct timer_list *t)
| ^~~~~~~~~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:4095:1: warning: 'brcmf_sdio_watchdog_thread' defined but not used [-Wunused-function]
4095 | brcmf_sdio_watchdog_thread(void *data)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:3753:13: warning: 'brcmf_sdio_dataworker' defined but not used [-Wunused-function]
3753 | static void brcmf_sdio_dataworker(struct work_struct *work)
| ^~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:544:19: warning: 'max_roundup' defined but not used [-Wunused-const-variable=]
544 | static const uint max_roundup = 512;
| ^~~~~~~~~~~
cc1: some warnings being treated as errors
vim +4477 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
2baa3aaee27f13 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4444
82d7f3c10cf41c drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4445 struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4446 {
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4447 int ret;
e92eedf4e080fc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2011-11-22 4448 struct brcmf_sdio *bus;
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4449 struct workqueue_struct *wq;
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4450 struct brcmf_fw_request *fwreq;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4451
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4452 brcmf_dbg(TRACE, "Enter\n");
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4453
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4454 /* Allocate private bus interface state */
dcb77f854ae086 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Erick Archer 2024-05-27 4455 bus = kzalloc(sizeof(*bus), GFP_ATOMIC);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4456 if (!bus)
b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4457 ret = -ENOMEM;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4458 goto fail;
b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4459 }
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4460
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4461 bus->sdiodev = sdiodev;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4462 sdiodev->bus = bus;
b83db862ffb871 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-19 4463 skb_queue_head_init(&bus->glom);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4464 bus->txbound = BRCMF_TXBOUND;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4465 bus->rxbound = BRCMF_RXBOUND;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4466 bus->txminmax = BRCMF_TXMINMAX;
6bc52319c2c688 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4467 bus->tx_seq = SDPCM_SEQ_WRAP - 1;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4468
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4469 /* single-threaded workqueue */
41b637bac0b0a9 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Sean Anderson 2021-08-02 4470 wq = alloc_ordered_workqueue("brcmf_wq/%s", WQ_MEM_RECLAIM | WQ_HIGHPRI,
c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4471 dev_name(&sdiodev->func1->dev));
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4472 if (!wq) {
5e8149f5036afe drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2012-12-07 4473 brcmf_err("insufficient memory to create txworkqueue\n");
b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4474 ret = -ENOMEM;
37ac5780e08e4e drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2012-11-14 4475 goto fail;
37ac5780e08e4e drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2012-11-14 4476 }
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 @4477 brcmf_sdiod_freezer_count(sdiodev);
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4478 INIT_WORK(&bus->datawork, brcmf_sdio_dataworker);
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4479 bus->brcmf_wq = wq;
37ac5780e08e4e drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2012-11-14 4480
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4481 /* attempt to attach to the dongle */
b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4482 ret = brcmf_sdio_probe_attach(bus);
b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4483 if (ret < 0) {
82d7f3c10cf41c drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4484 brcmf_err("brcmf_sdio_probe_attach failed\n");
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4485 goto fail;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4486 }
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4487
dd43a01c5cdb81 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2012-11-05 4488 spin_lock_init(&bus->rxctl_lock);
fed7ec44e7ef64 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Hante Meuleman 2014-03-15 4489 spin_lock_init(&bus->txq_lock);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4490 init_waitqueue_head(&bus->ctrl_wait);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4491 init_waitqueue_head(&bus->dcmd_resp_wait);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4492
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4493 /* Set up the watchdog timer */
e99e88a9d2b067 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Kees Cook 2017-10-16 4494 timer_setup(&bus->timer, brcmf_sdio_watchdog, 0);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4495 /* Initialize watchdog thread */
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4496 init_completion(&bus->watchdog_wait);
82d7f3c10cf41c drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4497 bus->watchdog_tsk = kthread_run(brcmf_sdio_watchdog_thread,
9982464379e81e drivers/net/wireless/brcm80211/brcmfmac/sdio.c Arend van Spriel 2015-02-06 4498 bus, "brcmf_wdog/%s",
c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4499 dev_name(&sdiodev->func1->dev));
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4500 if (IS_ERR(bus->watchdog_tsk)) {
02f77195db6ce2 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Joe Perches 2012-01-15 4501 pr_warn("brcmf_watchdog thread failed to start\n");
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4502 bus->watchdog_tsk = NULL;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4503 }
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4504 /* Initialize DPC thread */
2c64e16d1ff122 drivers/net/wireless/brcm80211/brcmfmac/sdio.c Hante Meuleman 2015-03-18 4505 bus->dpc_triggered = false;
2c64e16d1ff122 drivers/net/wireless/brcm80211/brcmfmac/sdio.c Hante Meuleman 2015-03-18 4506 bus->dpc_running = false;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4507
706478cba54458 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4508 /* default sdio bus header length for tx packet */
706478cba54458 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4509 bus->tx_hdrlen = SDPCM_HWHDR_LEN + SDPCM_SWHDR_LEN;
706478cba54458 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2013-08-10 4510
7dd3abc14f94bc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Daniel Kim 2014-05-27 4511 /* Query the F2 block size, set roundup accordingly */
c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4512 bus->blocksize = bus->sdiodev->func2->cur_blksize;
7dd3abc14f94bc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Daniel Kim 2014-05-27 4513 bus->roundup = min(max_roundup, bus->blocksize);
7dd3abc14f94bc drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Daniel Kim 2014-05-27 4514
c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4515 sdio_claim_host(bus->sdiodev->func1);
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4516
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4517 /* Disable F2 to clear any intermediate frame state on the dongle */
c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4518 sdio_disable_func(bus->sdiodev->func2);
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4519
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4520 bus->rxflow = false;
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4521
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4522 /* Done with backplane-dependent accesses, can drop clock... */
71bd508d7ded8c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Ian Molton 2017-12-08 4523 brcmf_sdiod_writeb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL);
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4524
c9aa7a91de740c drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-01-09 4525 sdio_release_host(bus->sdiodev->func1);
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4526
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4527 /* ...and initialize clock/power states */
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4528 bus->clkstate = CLK_SDONLY;
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4529 bus->idletime = BRCMF_IDLE_INTERVAL;
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4530 bus->idleclock = BRCMF_IDLE_ACTIVE;
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4531
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4532 /* SR state */
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4533 bus->sr_enabled = false;
fad132285081c1 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-01-06 4534
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4535 brcmf_dbg(INFO, "completed!!\n");
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4536
2baa3aaee27f13 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4537 fwreq = brcmf_sdio_prepare_fw_request(bus);
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4538 if (!fwreq) {
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4539 ret = -ENOMEM;
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4540 goto fail;
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4541 }
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4542
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 @4543 ret = brcmf_fw_get_firmwares(sdiodev->dev, fwreq,
bd0e1b1d380efe drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-05-27 4544 brcmf_sdio_firmware_callback);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4545 if (ret != 0) {
bd0e1b1d380efe drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2014-05-27 4546 brcmf_err("async firmware request failed: %d\n", ret);
d09ae51a4b6761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Arend Van Spriel 2018-03-22 4547 kfree(fwreq);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4548 goto fail;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4549 }
15d45b6fbd01ec drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Franky Lin 2011-10-21 4550
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4551 return bus;
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4552
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4553 fail:
9fbe2a6dc71d85 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2013-12-12 4554 brcmf_sdio_remove(bus);
b3e8126eb4c102 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c Jacobe Zang 2024-08-28 4555 return ERR_PTR(ret);
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4556 }
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c Arend van Spriel 2011-10-05 4557
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2024-08-29 16:42 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-28 8:49 [PATCH v13 0/5] Add AP6276P wireless support Jacobe Zang
2024-08-28 8:49 ` [PATCH v13 1/5] dt-bindings: net: wireless: brcm4329-fmac: add pci14e4,449d Jacobe Zang
2024-08-28 8:49 ` [PATCH v13 2/5] dt-bindings: net: wireless: brcm4329-fmac: add clock description for AP6275P Jacobe Zang
2024-08-28 8:49 ` [PATCH v13 3/5] dt-bindings: net: wireless: brcm4329-fmac: change properties enum structure Jacobe Zang
2024-08-28 13:04 ` Krzysztof Kozlowski
2024-08-28 13:20 ` Jacobe Zang
2024-08-28 8:49 ` [PATCH v13 4/5] wifi: brcmfmac: Add optional lpo clock enable support Jacobe Zang
2024-08-28 15:20 ` Simon Horman
2024-08-29 0:05 ` Jacobe Zang
2024-08-29 16:31 ` kernel test robot
2024-08-29 16:41 ` kernel test robot
2024-08-28 8:49 ` [PATCH v13 5/5] wifi: brcmfmac: add flag for random seed during firmware download Jacobe Zang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).