You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.8 KiB
45 lines
1.8 KiB
From 508422f3695bf66f7b85fb4723c22f5166003ec6 Mon Sep 17 00:00:00 2001
|
|
From: Ian Molton <ian@mnementh.co.uk>
|
|
Date: Tue, 19 Dec 2017 13:47:10 +0100
|
|
Subject: [PATCH] brcmfmac: Correctly handle accesses to SDIO func0
|
|
|
|
Rather than workaround the restrictions on func0 addressing in the
|
|
driver, set MMC_QUIRK_LENIENT_FN0
|
|
|
|
Signed-off-by: Ian Molton <ian@mnementh.co.uk>
|
|
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
|
|
Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
|
|
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
|
---
|
|
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 4 ++++
|
|
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h | 4 ++--
|
|
2 files changed, 6 insertions(+), 2 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
|
|
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
|
|
@@ -995,6 +995,10 @@ static int brcmf_ops_sdio_probe(struct s
|
|
brcmf_dbg(SDIO, "Function#: %d\n", func->num);
|
|
|
|
dev = &func->dev;
|
|
+
|
|
+ /* Set MMC_QUIRK_LENIENT_FN0 for this card */
|
|
+ func->card->quirks |= MMC_QUIRK_LENIENT_FN0;
|
|
+
|
|
/* prohibit ACPI power management for this device */
|
|
brcmf_sdiod_acpi_set_power_manageable(dev, 0);
|
|
|
|
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h
|
|
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h
|
|
@@ -297,10 +297,10 @@ void brcmf_sdiod_intr_unregister(struct
|
|
/* SDIO device register access interface */
|
|
/* Accessors for SDIO Function 0 */
|
|
#define brcmf_sdiod_func0_rb(sdiodev, addr, r) \
|
|
- sdio_readb((sdiodev)->func[0], (addr), (r))
|
|
+ sdio_f0_readb((sdiodev)->func[0], (addr), (r))
|
|
|
|
#define brcmf_sdiod_func0_wb(sdiodev, addr, v, ret) \
|
|
- sdio_writeb((sdiodev)->func[0], (v), (addr), (ret))
|
|
+ sdio_f0_writeb((sdiodev)->func[0], (v), (addr), (ret))
|
|
|
|
/* Accessors for SDIO Function 1 */
|
|
#define brcmf_sdiod_readb(sdiodev, addr, r) \
|
|
|