aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/hotplug/acpiphp_glue.c
diff options
context:
space:
mode:
authorKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>2006-05-01 21:54:50 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2006-06-19 17:13:22 -0400
commit7430e34c70106a9576fc61d77604d164b187a1b7 (patch)
tree4b9eeaaa3702c9be216f820e8eeaf11f93610d2c /drivers/pci/hotplug/acpiphp_glue.c
parent2433ee2654f0ac86f7886e5a8d01bee7f3c7c6db (diff)
[PATCH] acpi_pcihp: Fix programming _HPP values
This patch fixes the problem that hotplug parameters are not programed when PCI cards are hot-added by ACPIPHP, SHPCHP and PCIEHP driver. The pci_dev structure being hot-added is not bound to ACPI handle, so we need to trace PCI bus tree to find ACPI handle. Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Cc: Kristen Accardi <kristen.c.accardi@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/pci/hotplug/acpiphp_glue.c')
-rw-r--r--drivers/pci/hotplug/acpiphp_glue.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index 2a83e6bdab6a..4b0988e93806 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -286,7 +286,7 @@ static void decode_hpp(struct acpiphp_bridge *bridge)
286{ 286{
287 acpi_status status; 287 acpi_status status;
288 288
289 status = acpi_get_hp_params_from_firmware(bridge->pci_dev, &bridge->hpp); 289 status = acpi_get_hp_params_from_firmware(bridge->pci_bus, &bridge->hpp);
290 if (ACPI_FAILURE(status)) { 290 if (ACPI_FAILURE(status)) {
291 /* use default numbers */ 291 /* use default numbers */
292 bridge->hpp.cache_line_size = 0x10; 292 bridge->hpp.cache_line_size = 0x10;
@@ -1250,6 +1250,7 @@ static void acpiphp_set_hpp_values(acpi_handle handle, struct pci_bus *bus)
1250 1250
1251 memset(&bridge, 0, sizeof(bridge)); 1251 memset(&bridge, 0, sizeof(bridge));
1252 bridge.handle = handle; 1252 bridge.handle = handle;
1253 bridge.pci_bus = bus;
1253 bridge.pci_dev = bus->self; 1254 bridge.pci_dev = bus->self;
1254 decode_hpp(&bridge); 1255 decode_hpp(&bridge);
1255 list_for_each_entry(dev, &bus->devices, bus_list) 1256 list_for_each_entry(dev, &bus->devices, bus_list)