aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/311-v4.16-0002-brcmfmac-Register-sizes-on-hardware-are-not-dependen.patch
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2018-03-01 18:00:19 +0100
committerRafał Miłecki <rafal@milecki.pl>2018-03-01 18:07:09 +0100
commitbb04b7ced7047c93e907134ede6b74b0cf438aa0 (patch)
treece279ce861c03edd7f6496402dd3778bc5ae09d4 /package/kernel/mac80211/patches/311-v4.16-0002-brcmfmac-Register-sizes-on-hardware-are-not-dependen.patch
parente52e8480add7607fe9643111d34ac3efdecad29a (diff)
downloadupstream-bb04b7ced7047c93e907134ede6b74b0cf438aa0.tar.gz
upstream-bb04b7ced7047c93e907134ede6b74b0cf438aa0.tar.bz2
upstream-bb04b7ced7047c93e907134ede6b74b0cf438aa0.zip
mac80211: brcmfmac: restructuring sdio access functions
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Diffstat (limited to 'package/kernel/mac80211/patches/311-v4.16-0002-brcmfmac-Register-sizes-on-hardware-are-not-dependen.patch')
-rw-r--r--package/kernel/mac80211/patches/311-v4.16-0002-brcmfmac-Register-sizes-on-hardware-are-not-dependen.patch105
1 files changed, 105 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/311-v4.16-0002-brcmfmac-Register-sizes-on-hardware-are-not-dependen.patch b/package/kernel/mac80211/patches/311-v4.16-0002-brcmfmac-Register-sizes-on-hardware-are-not-dependen.patch
new file mode 100644
index 0000000000..719268f8fe
--- /dev/null
+++ b/package/kernel/mac80211/patches/311-v4.16-0002-brcmfmac-Register-sizes-on-hardware-are-not-dependen.patch
@@ -0,0 +1,105 @@
+From 1e6f676f43aa4270ebc5cff8e32a55f72362e042 Mon Sep 17 00:00:00 2001
+From: Ian Molton <ian@mnementh.co.uk>
+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 <ian@mnementh.co.uk>
+Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ .../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;