mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
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) \
 |