On 22-08-17 13:25, Ian Molton wrote:
Remove yet another IO function from the code and replace with one
that already exists.

Reviewed-by: Arend van Spriel <arend.vanspr...@broadcom.com>
Signed-off-by: Ian Molton <i...@mnementh.co.uk>
---
  .../wireless/broadcom/brcm80211/brcmfmac/sdio.c    | 91 +++++++++++-----------
  1 file changed, 45 insertions(+), 46 deletions(-)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c 
b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index 289ff61b7bf8..c1f3366871e5 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c

[...]

@@ -1075,6 +1051,8 @@ static void brcmf_sdio_get_console_addr(struct brcmf_sdio 
*bus)
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;
@@ -1083,10 +1061,13 @@ static u32 brcmf_sdio_hostmail(struct brcmf_sdio *bus)
        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);

Please keep the address calculation (base + offset) in one line.

+
+       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 recomposed rx frames, accept them again */

[...]

@@ -4044,7 +4041,9 @@ static void brcmf_sdio_firmware_callback(struct device 
*dev, int err,
        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);

It seems this function has two pointer variables, ie. sdiod and sdiodev, pointing to the same instance.

        } else {

Reply via email to