From d5679b6d06fb00a06adaa0762dd440fbdc215bf2 Mon Sep 17 00:00:00 2001 From: Gaurang Rathod Date: Mon, 16 Dec 2024 23:47:27 -0600 Subject: [PATCH 3/4] brcmfmac: Fix compilation issue for PCIe build if SDIO is disabled Fix the compilation for PCIe builds. This was observed when customer wanted to compile for PCIe by disabling CONFIG_BRCMFMAC_SDIO flag in Kconfig. Fixes SWWLAN-152082 Signed-off-by: Gaurang Rathod --- .../broadcom/brcm80211/brcmfmac/chip.c | 5 +++-- .../broadcom/brcm80211/brcmfmac/chip.h | 2 +- .../broadcom/brcm80211/brcmfmac/sdio.c | 19 ++++++++++--------- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c index 589b09cb77c3..1b9bb3366690 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c @@ -1128,7 +1128,7 @@ static int brcmf_blhs_ack_wait_dongle_access(struct brcmf_chip *pub) { struct brcmf_chip_priv *chip; u32 addr; - int err; + int err = 0; chip = container_of(pub, struct brcmf_chip_priv, pub); @@ -1141,7 +1141,8 @@ static int brcmf_blhs_ack_wait_dongle_access(struct brcmf_chip *pub) addr = pub->blhs->h2d; pub->blhs->write(chip->ctx, addr, BRCMF_BLHS_H2D_BP_CLK_DISABLE_ACK); - err = brcmf_get_intr_pending_data(chip->ctx); + if (chip->ops->get_intr_pend) + err = chip->ops->get_intr_pend(chip->ctx); return err; } diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.h index 1ca82f137448..23d1c87960df 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.h @@ -80,6 +80,7 @@ struct brcmf_buscore_ops { void (*activate)(void *ctx, struct brcmf_chip *chip, u32 rstvec); int (*sec_attach)(void *ctx, struct brcmf_blhs **blhs, struct brcmf_ccsec **ccsec, u32 flag, uint timeout, uint interval); + int (*get_intr_pend)(void *ctx); }; /** @@ -138,6 +139,5 @@ void brcmf_chip_reset_watchdog(struct brcmf_chip *pub); void brcmf_chip_ulp_reset_lhl_regs(struct brcmf_chip *pub); void brcmf_chip_reset_pmu_regs(struct brcmf_chip *pub); void brcmf_chip_set_default_min_res_mask(struct brcmf_chip *pub); -int brcmf_get_intr_pending_data(void *ctx); #endif /* BRCMF_AXIDMP_H */ diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c index 5b68b2cff52a..7112e374329b 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -4919,17 +4919,9 @@ brcmf_sdio_buscore_sec_attach(void *ctx, struct brcmf_blhs **blhs, struct brcmf_ return 0; } -static const struct brcmf_buscore_ops brcmf_sdio_buscore_ops = { - .prepare = brcmf_sdio_buscoreprep, - .activate = brcmf_sdio_buscore_activate, - .read32 = brcmf_sdio_buscore_read32, - .write32 = brcmf_sdio_buscore_write32, - .sec_attach = brcmf_sdio_buscore_sec_attach, -}; - #define LOOP_TO_CHECK_FOR_BP_ENABLE 50000 /* Wait for 500msec */ -int brcmf_get_intr_pending_data(void *ctx) +static int brcmf_get_intr_pending_data(void *ctx) { struct brcmf_sdio_dev *sdiodev = (struct brcmf_sdio_dev *)ctx; int loop = 0, status = 0, err = 0; @@ -4958,6 +4950,15 @@ int brcmf_get_intr_pending_data(void *ctx) return 0; } +static const struct brcmf_buscore_ops brcmf_sdio_buscore_ops = { + .prepare = brcmf_sdio_buscoreprep, + .activate = brcmf_sdio_buscore_activate, + .read32 = brcmf_sdio_buscore_read32, + .write32 = brcmf_sdio_buscore_write32, + .sec_attach = brcmf_sdio_buscore_sec_attach, + .get_intr_pend = brcmf_get_intr_pending_data +}; + static bool brcmf_sdio_probe_attach(struct brcmf_sdio *bus) { -- 2.25.0