diff options
Diffstat (limited to 'package/kernel/mac80211/patches/325-v4.17-0008-brcmfmac-remove-duplicate-pointer-variable-from-brcm.patch')
-rw-r--r-- | package/kernel/mac80211/patches/325-v4.17-0008-brcmfmac-remove-duplicate-pointer-variable-from-brcm.patch | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/325-v4.17-0008-brcmfmac-remove-duplicate-pointer-variable-from-brcm.patch b/package/kernel/mac80211/patches/325-v4.17-0008-brcmfmac-remove-duplicate-pointer-variable-from-brcm.patch new file mode 100644 index 0000000..39fba21 --- /dev/null +++ b/package/kernel/mac80211/patches/325-v4.17-0008-brcmfmac-remove-duplicate-pointer-variable-from-brcm.patch @@ -0,0 +1,126 @@ +From 2d6edad4b2da1991f74e7b02053eeb4a043b887f Mon Sep 17 00:00:00 2001 +From: Arend Van Spriel <arend.vanspriel@broadcom.com> +Date: Tue, 20 Feb 2018 00:14:25 +0100 +Subject: [PATCH] brcmfmac: remove duplicate pointer variable from + brcmf_sdio_firmware_callback() + +In brcmf_sdio_firmware_callback() two pointer variables were used +pointing to the same construct. Get rid of sdiodev variable. + +Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com> +Signed-off-by: Kalle Valo <kvalo@codeaurora.org> +--- + .../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 37 +++++++++++----------- + 1 file changed, 18 insertions(+), 19 deletions(-) + +--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c ++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +@@ -4039,9 +4039,8 @@ static void brcmf_sdio_firmware_callback + void *nvram, u32 nvram_len) + { + struct brcmf_bus *bus_if = dev_get_drvdata(dev); +- struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; +- struct brcmf_sdio *bus = sdiodev->bus; +- struct brcmf_sdio_dev *sdiod = bus->sdiodev; ++ struct brcmf_sdio_dev *sdiod = bus_if->bus_priv.sdio; ++ struct brcmf_sdio *bus = sdiod->bus; + struct brcmf_core *core = bus->sdio_core; + u8 saveclk; + +@@ -4061,7 +4060,7 @@ static void brcmf_sdio_firmware_callback + bus->sdcnt.tickcnt = 0; + brcmf_sdio_wd_timer(bus, true); + +- sdio_claim_host(sdiodev->func1); ++ sdio_claim_host(sdiod->func1); + + /* Make sure backplane clock is on, needed to generate F2 interrupt */ + brcmf_sdio_clkctl(bus, CLK_AVAIL, false); +@@ -4069,9 +4068,9 @@ static void brcmf_sdio_firmware_callback + goto release; + + /* Force clocks on backplane to be sure F2 interrupt propagates */ +- saveclk = brcmf_sdiod_readb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, &err); ++ saveclk = brcmf_sdiod_readb(sdiod, SBSDIO_FUNC1_CHIPCLKCSR, &err); + if (!err) { +- brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, ++ brcmf_sdiod_writeb(sdiod, SBSDIO_FUNC1_CHIPCLKCSR, + (saveclk | SBSDIO_FORCE_HT), &err); + } + if (err) { +@@ -4083,7 +4082,7 @@ static void brcmf_sdio_firmware_callback + brcmf_sdiod_writel(sdiod, core->base + SD_REG(tosbmailboxdata), + SDPCM_PROT_VERSION << SMB_DATA_VERSION_SHIFT, NULL); + +- err = sdio_enable_func(sdiodev->func2); ++ err = sdio_enable_func(sdiod->func2); + + brcmf_dbg(INFO, "enable F2: err=%d\n", err); + +@@ -4095,10 +4094,10 @@ static void brcmf_sdio_firmware_callback + bus->hostintmask, NULL); + + +- brcmf_sdiod_writeb(sdiodev, SBSDIO_WATERMARK, 8, &err); ++ brcmf_sdiod_writeb(sdiod, SBSDIO_WATERMARK, 8, &err); + } else { + /* Disable F2 again */ +- sdio_disable_func(sdiodev->func2); ++ sdio_disable_func(sdiod->func2); + goto release; + } + +@@ -4106,7 +4105,7 @@ static void brcmf_sdio_firmware_callback + brcmf_sdio_sr_init(bus); + } else { + /* Restore previous clock setting */ +- brcmf_sdiod_writeb(sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, ++ brcmf_sdiod_writeb(sdiod, SBSDIO_FUNC1_CHIPCLKCSR, + saveclk, &err); + } + +@@ -4114,7 +4113,7 @@ static void brcmf_sdio_firmware_callback + /* Allow full data communication using DPC from now on. */ + brcmf_sdiod_change_state(bus->sdiodev, BRCMF_SDIOD_DATA); + +- err = brcmf_sdiod_intr_register(sdiodev); ++ err = brcmf_sdiod_intr_register(sdiod); + if (err != 0) + brcmf_err("intr register failed:%d\n", err); + } +@@ -4123,16 +4122,16 @@ static void brcmf_sdio_firmware_callback + if (err != 0) + brcmf_sdio_clkctl(bus, CLK_NONE, false); + +- sdio_release_host(sdiodev->func1); ++ sdio_release_host(sdiod->func1); + + /* Assign bus interface call back */ +- sdiodev->bus_if->dev = sdiodev->dev; +- sdiodev->bus_if->ops = &brcmf_sdio_bus_ops; +- sdiodev->bus_if->chip = bus->ci->chip; +- sdiodev->bus_if->chiprev = bus->ci->chiprev; ++ sdiod->bus_if->dev = sdiod->dev; ++ sdiod->bus_if->ops = &brcmf_sdio_bus_ops; ++ sdiod->bus_if->chip = bus->ci->chip; ++ sdiod->bus_if->chiprev = bus->ci->chiprev; + + /* Attach to the common layer, reserve hdr space */ +- err = brcmf_attach(sdiodev->dev, sdiodev->settings); ++ err = brcmf_attach(sdiod->dev, sdiod->settings); + if (err != 0) { + brcmf_err("brcmf_attach failed\n"); + goto fail; +@@ -4142,10 +4141,10 @@ static void brcmf_sdio_firmware_callback + return; + + release: +- sdio_release_host(sdiodev->func1); ++ sdio_release_host(sdiod->func1); + fail: + brcmf_dbg(TRACE, "failed: dev=%s, err=%d\n", dev_name(dev), err); +- device_release_driver(&sdiodev->func2->dev); ++ device_release_driver(&sdiod->func2->dev); + device_release_driver(dev); + } + |