Altix: Add ACPI SSDT PCI device support (hotplug)
authorJohn Keller <jpk@sgi.com>
Tue, 30 Jan 2007 06:18:38 +0000 (01:18 -0500)
committerLen Brown <len.brown@intel.com>
Sat, 3 Feb 2007 03:14:57 +0000 (22:14 -0500)
commit3e643e77a929202455a0cc868c2030a5ba8d1371
treeb89d4c70ff8a9b06b00d86a6d92c7c9f5149767a
parent6f09a9250a5d76c0765cd51a33e0a042e9761cfc
Altix: Add ACPI SSDT PCI device support (hotplug)

Support for dynamic loading and unloading of ACPI SSDT tables upon slot
hotplugs and unplugs.

On SN platforms, we now represent every populated root bus slot with a single
ACPI SSDT table containing info for every device and PPB attached to the slot.
 These SSDTs are generated by the prom at initial boot and hotplug time.  The
info in these SSDT tables is used by the SN kernel IO "fixup" code (which is
called at boot and hotplug time).

On hotplugs (i.e.  enable_slot()), if running with an ACPI capable prom,
attempt to obtain a new ACPI SSDT table for the slot being hotplugged.  If
successful, add the table to the ACPI namespace (acpi_load_table()) and then
walk the new devices and add them to the ACPI infrastructure (acpi_bus_add()).

On hot unplugs (i.e.  disable_slot()), if running with an ACPI capable prom,
attempt to remove the SSDT table associated with the slot from the ACPI
namespace (acpi_unload_table_id()) and infastructure (acpi_bus_trim()).

From: John Keller <jpk@sgi.com>

 A bug was fixed where the sgi hotplug driver was removing
 the slot's SSDT table from the ACPI namespace a bit too early in
 disable_slot(). Also, we now call acpi_bus_start() subsequent
 to acpi_bus_add().

Signed-off-by: Aaron Young <ayoung@sgi.com>
Cc: Greg KH <greg@kroah.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown<len.brown@intel.com>
drivers/pci/hotplug/sgi_hotplug.c