mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 14:04:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From: Arend van Spriel <arend@broadcom.com>
 | |
| Date: Wed, 18 Mar 2015 13:25:21 +0100
 | |
| Subject: [PATCH] brcmfmac: avoid runtime-pm for sdio host controller
 | |
| 
 | |
| Several host controllers supporting runtime-pm are causing issues
 | |
| with our sdio wireless cards because they disable the sdio interrupt
 | |
| upon going into runtime suspend. This patch avoids that by doing
 | |
| a pm_runtime_forbid() call during the probe. Tested with Sony Vaio
 | |
| Duo 13 which uses sdhci-acpi host controller.
 | |
| 
 | |
| Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
 | |
| Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
 | |
| Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
 | |
| Signed-off-by: Arend van Spriel <arend@broadcom.com>
 | |
| Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
 | |
| ---
 | |
| 
 | |
| --- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
 | |
| +++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
 | |
| @@ -29,6 +29,7 @@
 | |
|  #include <linux/mmc/host.h>
 | |
|  #include <linux/platform_device.h>
 | |
|  #include <linux/platform_data/brcmfmac-sdio.h>
 | |
| +#include <linux/pm_runtime.h>
 | |
|  #include <linux/suspend.h>
 | |
|  #include <linux/errno.h>
 | |
|  #include <linux/module.h>
 | |
| @@ -1006,6 +1007,7 @@ static int brcmf_sdiod_remove(struct brc
 | |
|  	sg_free_table(&sdiodev->sgtable);
 | |
|  	sdiodev->sbwad = 0;
 | |
|  
 | |
| +	pm_runtime_allow(sdiodev->func[1]->card->host->parent);
 | |
|  	return 0;
 | |
|  }
 | |
|  
 | |
| @@ -1074,7 +1076,7 @@ static int brcmf_sdiod_probe(struct brcm
 | |
|  		ret = -ENODEV;
 | |
|  		goto out;
 | |
|  	}
 | |
| -
 | |
| +	pm_runtime_forbid(host->parent);
 | |
|  out:
 | |
|  	if (ret)
 | |
|  		brcmf_sdiod_remove(sdiodev);
 |