mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ACPI / hotplug / PCI: Runtime resume bridge before rescan
If a PCI bridge (or PCIe port) that is runtime suspended gets an ACPI hotplug event, such as BUS_CHECK we need to make sure it is resumed before devices below the bridge are re-scanned. Otherwise the devices behind the port are not accessible and will be treated as hot-unplugged. To fix this, resume PCI bridges from runtime suspend while rescanning. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
		
							parent
							
								
									d963f6512e
								
							
						
					
					
						commit
						16468c783c
					
				
					 1 changed files with 4 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -675,6 +675,8 @@ static void acpiphp_check_bridge(struct acpiphp_bridge *bridge)
 | 
			
		|||
	if (bridge->is_going_away)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	pm_runtime_get_sync(&bridge->pci_dev->dev);
 | 
			
		||||
 | 
			
		||||
	list_for_each_entry(slot, &bridge->slots, node) {
 | 
			
		||||
		struct pci_bus *bus = slot->bus;
 | 
			
		||||
		struct pci_dev *dev, *tmp;
 | 
			
		||||
| 
						 | 
				
			
			@ -694,6 +696,8 @@ static void acpiphp_check_bridge(struct acpiphp_bridge *bridge)
 | 
			
		|||
			disable_slot(slot);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pm_runtime_put(&bridge->pci_dev->dev);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue