123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- From 1e6f676f43aa4270ebc5cff8e32a55f72362e042 Mon Sep 17 00:00:00 2001
- From: Ian Molton <[email protected]>
- Date: Mon, 13 Nov 2017 21:35:39 +0100
- Subject: [PATCH] brcmfmac: Register sizes on hardware are not dependent on
- compiler types
- The 4 IO functions in this patch are incorrect as they use compiler types
- to determine how many bytes to send to the hardware.
- Signed-off-by: Ian Molton <[email protected]>
- Signed-off-by: Arend van Spriel <[email protected]>
- Signed-off-by: Kalle Valo <[email protected]>
- ---
- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 22 +++++++++++-----------
- 1 file changed, 11 insertions(+), 11 deletions(-)
- --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
- +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
- @@ -264,7 +264,7 @@ static int brcmf_sdiod_request_data(stru
- func = sdiodev->func[fn];
-
- switch (regsz) {
- - case sizeof(u8):
- + case 1:
- if (write) {
- if (fn)
- sdio_writeb(func, *(u8 *)data, addr, &ret);
- @@ -278,13 +278,13 @@ static int brcmf_sdiod_request_data(stru
- *(u8 *)data = sdio_f0_readb(func, addr, &ret);
- }
- break;
- - case sizeof(u16):
- + case 2:
- if (write)
- sdio_writew(func, *(u16 *)data, addr, &ret);
- else
- *(u16 *)data = sdio_readw(func, addr, &ret);
- break;
- - case sizeof(u32):
- + case 4:
- if (write)
- sdio_writel(func, *(u32 *)data, addr, &ret);
- else
- @@ -368,7 +368,7 @@ brcmf_sdiod_set_sbaddr_window(struct brc
- for (i = 0; i < 3; i++) {
- err = brcmf_sdiod_regrw_helper(sdiodev,
- SBSDIO_FUNC1_SBADDRLOW + i,
- - sizeof(u8), &addr[i], true);
- + 1, &addr[i], true);
- if (err) {
- brcmf_err("failed at addr: 0x%0x\n",
- SBSDIO_FUNC1_SBADDRLOW + i);
- @@ -407,7 +407,7 @@ u8 brcmf_sdiod_regrb(struct brcmf_sdio_d
- int retval;
-
- brcmf_dbg(SDIO, "addr:0x%08x\n", addr);
- - retval = brcmf_sdiod_regrw_helper(sdiodev, addr, sizeof(data), &data,
- + retval = brcmf_sdiod_regrw_helper(sdiodev, addr, 1, &data,
- false);
- brcmf_dbg(SDIO, "data:0x%02x\n", data);
-
- @@ -423,10 +423,10 @@ u32 brcmf_sdiod_regrl(struct brcmf_sdio_
- int retval;
-
- brcmf_dbg(SDIO, "addr:0x%08x\n", addr);
- - retval = brcmf_sdiod_addrprep(sdiodev, sizeof(data), &addr);
- + retval = brcmf_sdiod_addrprep(sdiodev, 4, &addr);
- if (retval)
- goto done;
- - retval = brcmf_sdiod_regrw_helper(sdiodev, addr, sizeof(data), &data,
- + retval = brcmf_sdiod_regrw_helper(sdiodev, addr, 4, &data,
- false);
- brcmf_dbg(SDIO, "data:0x%08x\n", data);
-
- @@ -443,7 +443,7 @@ void brcmf_sdiod_regwb(struct brcmf_sdio
- int retval;
-
- brcmf_dbg(SDIO, "addr:0x%08x, data:0x%02x\n", addr, data);
- - retval = brcmf_sdiod_regrw_helper(sdiodev, addr, sizeof(data), &data,
- + retval = brcmf_sdiod_regrw_helper(sdiodev, addr, 1, &data,
- true);
- if (ret)
- *ret = retval;
- @@ -455,10 +455,10 @@ void brcmf_sdiod_regwl(struct brcmf_sdio
- int retval;
-
- brcmf_dbg(SDIO, "addr:0x%08x, data:0x%08x\n", addr, data);
- - retval = brcmf_sdiod_addrprep(sdiodev, sizeof(data), &addr);
- + retval = brcmf_sdiod_addrprep(sdiodev, 4, &addr);
- if (retval)
- goto done;
- - retval = brcmf_sdiod_regrw_helper(sdiodev, addr, sizeof(data), &data,
- + retval = brcmf_sdiod_regrw_helper(sdiodev, addr, 4, &data,
- true);
-
- done:
- @@ -876,7 +876,7 @@ int brcmf_sdiod_abort(struct brcmf_sdio_
-
- /* issue abort cmd52 command through F0 */
- brcmf_sdiod_request_data(sdiodev, SDIO_FUNC_0, SDIO_CCCR_ABORT,
- - sizeof(t_func), &t_func, true);
- + 1, &t_func, true);
-
- brcmf_dbg(SDIO, "Exit\n");
- return 0;
|