forked from mirrors/linux
		
	mmc: sdhci-acpi: Ensure connected devices are powered when probing
Some devices connected to the SDHCI controller may have separate enabling
lines that are controlled through GPIO. These devices need to be powered
on and enabled before probing. This is to ensure all devices connected can
be seen by the controller.
Note, for "stable" this patch depends on the following change:
commit 78a898d0e3 ("ACPI / PM: Export acpi_device_fix_up_power()")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reported-and-tested-by: Laszlo Fiat <laszlo.fiat@gmail.com>
Cc: <stable@vger.kernel.org> # 4.5+
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Reported-by: Laszlo Fiat <laszlo.fiat@gmail.com>
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=112571
Link: http://lkml.kernel.org/r/CA+7w51inLtQSr656bJvOjGG9oQWKYPXH+xxDPJKbeJ=CcrkS9Q@mail.gmail.com
			
			
This commit is contained in:
		
							parent
							
								
									78a898d0e3
								
							
						
					
					
						commit
						e5bbf30733
					
				
					 1 changed files with 6 additions and 1 deletions
				
			
		|  | @ -378,7 +378,7 @@ static int sdhci_acpi_probe(struct platform_device *pdev) | |||
| { | ||||
| 	struct device *dev = &pdev->dev; | ||||
| 	acpi_handle handle = ACPI_HANDLE(dev); | ||||
| 	struct acpi_device *device; | ||||
| 	struct acpi_device *device, *child; | ||||
| 	struct sdhci_acpi_host *c; | ||||
| 	struct sdhci_host *host; | ||||
| 	struct resource *iomem; | ||||
|  | @ -390,6 +390,11 @@ static int sdhci_acpi_probe(struct platform_device *pdev) | |||
| 	if (acpi_bus_get_device(handle, &device)) | ||||
| 		return -ENODEV; | ||||
| 
 | ||||
| 	/* Power on the SDHCI controller and its children */ | ||||
| 	acpi_device_fix_up_power(device); | ||||
| 	list_for_each_entry(child, &device->children, node) | ||||
| 		acpi_device_fix_up_power(child); | ||||
| 
 | ||||
| 	if (acpi_bus_get_status(device) || !device->status.present) | ||||
| 		return -ENODEV; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Adrian Hunter
						Adrian Hunter