diff options
Diffstat (limited to 'package/kernel/mac80211/patches/314-v4.16-0001-brcmfmac-Remove-r-w-_sdreg32.patch')
-rw-r--r-- | package/kernel/mac80211/patches/314-v4.16-0001-brcmfmac-Remove-r-w-_sdreg32.patch | 227 |
1 files changed, 0 insertions, 227 deletions
diff --git a/package/kernel/mac80211/patches/314-v4.16-0001-brcmfmac-Remove-r-w-_sdreg32.patch b/package/kernel/mac80211/patches/314-v4.16-0001-brcmfmac-Remove-r-w-_sdreg32.patch deleted file mode 100644 index 291cd5d787..0000000000 --- a/package/kernel/mac80211/patches/314-v4.16-0001-brcmfmac-Remove-r-w-_sdreg32.patch +++ /dev/null @@ -1,227 +0,0 @@ -From 3d110df8f74781354051e4bb1e3e97fa368b2f80 Mon Sep 17 00:00:00 2001 -From: Ian Molton <ian@mnementh.co.uk> -Date: Tue, 19 Dec 2017 13:47:07 +0100 -Subject: [PATCH] brcmfmac: Remove {r,w}_sdreg32 - -Remove yet another IO function from the code and replace with one -that already exists. - -Signed-off-by: Ian Molton <ian@mnementh.co.uk> -Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com> -[arend: keep address calculation, ie. (base + offset) in one line] -Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com> -Signed-off-by: Kalle Valo <kvalo@codeaurora.org> ---- - .../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 88 +++++++++++----------- - 1 file changed, 42 insertions(+), 46 deletions(-) - ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c -@@ -660,30 +660,6 @@ static bool data_ok(struct brcmf_sdio *b - ((u8)(bus->tx_max - bus->tx_seq) & 0x80) == 0; - } - --/* -- * Reads a register in the SDIO hardware block. This block occupies a series of -- * adresses on the 32 bit backplane bus. -- */ --static int r_sdreg32(struct brcmf_sdio *bus, u32 *regvar, u32 offset) --{ -- struct brcmf_core *core = bus->sdio_core; -- int ret; -- -- *regvar = brcmf_sdiod_readl(bus->sdiodev, core->base + offset, &ret); -- -- return ret; --} -- --static int w_sdreg32(struct brcmf_sdio *bus, u32 regval, u32 reg_offset) --{ -- struct brcmf_core *core = bus->sdio_core; -- int ret; -- -- brcmf_sdiod_writel(bus->sdiodev, core->base + reg_offset, regval, &ret); -- -- return ret; --} -- - static int - brcmf_sdio_kso_control(struct brcmf_sdio *bus, bool on) - { -@@ -1078,6 +1054,8 @@ static void brcmf_sdio_get_console_addr( - - static u32 brcmf_sdio_hostmail(struct brcmf_sdio *bus) - { -+ struct brcmf_sdio_dev *sdiod = bus->sdiodev; -+ struct brcmf_core *core = bus->sdio_core; - u32 intstatus = 0; - u32 hmb_data; - u8 fcbits; -@@ -1086,10 +1064,14 @@ static u32 brcmf_sdio_hostmail(struct br - brcmf_dbg(SDIO, "Enter\n"); - - /* Read mailbox data and ack that we did so */ -- ret = r_sdreg32(bus, &hmb_data, SD_REG(tohostmailboxdata)); -+ hmb_data = brcmf_sdiod_readl(sdiod, -+ core->base + SD_REG(tohostmailboxdata), -+ &ret); -+ -+ if (!ret) -+ brcmf_sdiod_writel(sdiod, core->base + SD_REG(tosbmailbox), -+ SMB_INT_ACK, &ret); - -- if (ret == 0) -- w_sdreg32(bus, SMB_INT_ACK, SD_REG(tosbmailbox)); - bus->sdcnt.f1regdata += 2; - - /* dongle indicates the firmware has halted/crashed */ -@@ -1163,6 +1145,8 @@ static u32 brcmf_sdio_hostmail(struct br - - static void brcmf_sdio_rxfail(struct brcmf_sdio *bus, bool abort, bool rtx) - { -+ struct brcmf_sdio_dev *sdiod = bus->sdiodev; -+ struct brcmf_core *core = bus->sdio_core; - uint retries = 0; - u16 lastrbc; - u8 hi, lo; -@@ -1204,7 +1188,8 @@ static void brcmf_sdio_rxfail(struct brc - - if (rtx) { - bus->sdcnt.rxrtx++; -- err = w_sdreg32(bus, SMB_NAK, SD_REG(tosbmailbox)); -+ brcmf_sdiod_writel(sdiod, core->base + SD_REG(tosbmailbox), -+ SMB_NAK, &err); - - bus->sdcnt.f1regdata++; - if (err == 0) -@@ -2291,6 +2276,7 @@ static uint brcmf_sdio_sendfromq(struct - { - struct sk_buff *pkt; - struct sk_buff_head pktq; -+ u32 intstat_addr = bus->sdio_core->base + SD_REG(intstatus); - u32 intstatus = 0; - int ret = 0, prec_out, i; - uint cnt = 0; -@@ -2329,7 +2315,8 @@ static uint brcmf_sdio_sendfromq(struct - if (!bus->intr) { - /* Check device status, signal pending interrupt */ - sdio_claim_host(bus->sdiodev->func[1]); -- ret = r_sdreg32(bus, &intstatus, SD_REG(intstatus)); -+ intstatus = brcmf_sdiod_readl(bus->sdiodev, -+ intstat_addr, &ret); - sdio_release_host(bus->sdiodev->func[1]); - bus->sdcnt.f2txdata++; - if (ret != 0) -@@ -2413,12 +2400,13 @@ static int brcmf_sdio_tx_ctrlframe(struc - - static void brcmf_sdio_bus_stop(struct device *dev) - { -- u32 local_hostintmask; -- u8 saveclk; -- int err; - 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_core *core = bus->sdio_core; -+ u32 local_hostintmask; -+ u8 saveclk; -+ int err; - - brcmf_dbg(TRACE, "Enter\n"); - -@@ -2435,7 +2423,9 @@ static void brcmf_sdio_bus_stop(struct d - brcmf_sdio_bus_sleep(bus, false, false); - - /* Disable and clear interrupts at the chip level also */ -- w_sdreg32(bus, 0, SD_REG(hostintmask)); -+ brcmf_sdiod_writel(sdiodev, core->base + SD_REG(hostintmask), -+ 0, NULL); -+ - local_hostintmask = bus->hostintmask; - bus->hostintmask = 0; - -@@ -2454,7 +2444,8 @@ static void brcmf_sdio_bus_stop(struct d - sdio_disable_func(sdiodev->func[SDIO_FUNC_2]); - - /* Clear any pending interrupts now that F2 is disabled */ -- w_sdreg32(bus, local_hostintmask, SD_REG(intstatus)); -+ brcmf_sdiod_writel(sdiodev, core->base + SD_REG(intstatus), -+ local_hostintmask, NULL); - - sdio_release_host(sdiodev->func[1]); - } -@@ -2521,7 +2512,9 @@ static int brcmf_sdio_intr_rstatus(struc - - static void brcmf_sdio_dpc(struct brcmf_sdio *bus) - { -+ struct brcmf_sdio_dev *sdiod = bus->sdiodev; - u32 newstatus = 0; -+ u32 intstat_addr = bus->sdio_core->base + SD_REG(intstatus); - unsigned long intstatus; - uint txlimit = bus->txbound; /* Tx frames to send before resched */ - uint framecnt; /* Temporary counter of tx/rx frames */ -@@ -2576,9 +2569,10 @@ static void brcmf_sdio_dpc(struct brcmf_ - */ - if (intstatus & I_HMB_FC_CHANGE) { - intstatus &= ~I_HMB_FC_CHANGE; -- err = w_sdreg32(bus, I_HMB_FC_CHANGE, SD_REG(intstatus)); -+ brcmf_sdiod_writel(sdiod, intstat_addr, I_HMB_FC_CHANGE, &err); -+ -+ newstatus = brcmf_sdiod_readl(sdiod, intstat_addr, &err); - -- err = r_sdreg32(bus, &newstatus, SD_REG(intstatus)); - bus->sdcnt.f1regdata += 2; - atomic_set(&bus->fcstate, - !!(newstatus & (I_HMB_FC_STATE | I_HMB_FC_CHANGE))); -@@ -4017,22 +4011,21 @@ static void brcmf_sdio_firmware_callback - const struct firmware *code, - void *nvram, u32 nvram_len) - { -- struct brcmf_bus *bus_if; -- struct brcmf_sdio_dev *sdiodev; -- struct brcmf_sdio *bus; -+ 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_core *core = bus->sdio_core; - u8 saveclk; - - brcmf_dbg(TRACE, "Enter: dev=%s, err=%d\n", dev_name(dev), err); -- bus_if = dev_get_drvdata(dev); -- sdiodev = bus_if->bus_priv.sdio; -+ - if (err) - goto fail; - - if (!bus_if->drvr) - return; - -- bus = sdiodev->bus; -- - /* try to download image and nvram to the dongle */ - bus->alp_only = true; - err = brcmf_sdio_download_firmware(bus, code, nvram, nvram_len); -@@ -4063,8 +4056,9 @@ static void brcmf_sdio_firmware_callback - } - - /* Enable function 2 (frame transfers) */ -- w_sdreg32(bus, SDPCM_PROT_VERSION << SMB_DATA_VERSION_SHIFT, -- SD_REG(tosbmailboxdata)); -+ brcmf_sdiod_writel(sdiod, core->base + SD_REG(tosbmailboxdata), -+ SDPCM_PROT_VERSION << SMB_DATA_VERSION_SHIFT, NULL); -+ - err = sdio_enable_func(sdiodev->func[SDIO_FUNC_2]); - - -@@ -4074,7 +4068,9 @@ static void brcmf_sdio_firmware_callback - if (!err) { - /* Set up the interrupt mask and enable interrupts */ - bus->hostintmask = HOSTINTMASK; -- w_sdreg32(bus, bus->hostintmask, SD_REG(hostintmask)); -+ brcmf_sdiod_writel(sdiod, core->base + SD_REG(hostintmask), -+ bus->hostintmask, NULL); -+ - - brcmf_sdiod_writeb(sdiodev, SBSDIO_WATERMARK, 8, &err); - } else { |