diff options
| author | Bjorn Helgaas <bhelgaas@google.com> | 2013-01-10 22:19:22 +0400 | 
|---|---|---|
| committer | Bjorn Helgaas <bhelgaas@google.com> | 2013-01-10 22:19:22 +0400 | 
| commit | b7040469de97d361120836b4140941a08d06f56f (patch) | |
| tree | ad3265c0c03a8586476dfb53f2a2bc3383200e00 /drivers/acpi/container.c | |
| parent | e84813c0cba2af80f0910484f5ba4931375f57ba (diff) | |
| parent | 295a7f6235bfa21be3454aebc1bea1eaf0b74fb7 (diff) | |
| download | linux-b7040469de97d361120836b4140941a08d06f56f.tar.xz | |
Merge branch 'pci/yinghai-survey-resources+acpi-scan' into next
* pci/yinghai-survey-resources+acpi-scan:
  ACPI / scan: Treat power resources in a special way
  ACPI: Remove unused struct acpi_pci_root.id member
  ACPI: Drop ACPI device .bind() and .unbind() callbacks
  ACPI / PCI: Move the _PRT setup and cleanup code to pci-acpi.c
  ACPI / PCI: Rework the setup and cleanup of device wakeup
  ACPI: Add .setup() and .cleanup() callbacks to struct acpi_bus_type
  ACPI: Make acpi_bus_scan() and acpi_bus_add() take only one argument
  ACPI: Replace ACPI device add_type field with a match_driver flag
  ACPI: Drop the second argument of acpi_bus_scan()
  ACPI: Remove the arguments of acpi_bus_add() that are not used
  ACPI: Remove acpi_start_single_object() and acpi_bus_start()
  ACPI / PCI: Fold acpi_pci_root_start() into acpi_pci_root_add()
  ACPI: Change the ordering of acpi_bus_check_add()
  ACPI: Replace struct acpi_bus_ops with enum type
  ACPI: Reduce the usage of struct acpi_bus_ops
  ACPI: Make acpi_bus_add() and acpi_bus_start() visibly different
  ACPI: Change the ordering of PCI root bridge driver registrarion
  ACPI: Separate adding ACPI device objects from probing ACPI drivers
Diffstat (limited to 'drivers/acpi/container.c')
| -rw-r--r-- | drivers/acpi/container.c | 31 | 
1 files changed, 6 insertions, 25 deletions
diff --git a/drivers/acpi/container.c b/drivers/acpi/container.c index 811910b50b75..f8fb2281f34a 100644 --- a/drivers/acpi/container.c +++ b/drivers/acpi/container.c @@ -135,30 +135,6 @@ static int acpi_container_remove(struct acpi_device *device, int type)  	return status;  } -static int container_device_add(struct acpi_device **device, acpi_handle handle) -{ -	acpi_handle phandle; -	struct acpi_device *pdev; -	int result; - - -	if (acpi_get_parent(handle, &phandle)) { -		return -ENODEV; -	} - -	if (acpi_bus_get_device(phandle, &pdev)) { -		return -ENODEV; -	} - -	if (acpi_bus_add(device, pdev, handle, ACPI_BUS_TYPE_DEVICE)) { -		return -ENODEV; -	} - -	result = acpi_bus_start(*device); - -	return result; -} -  static void container_notify_cb(acpi_handle handle, u32 type, void *context)  {  	struct acpi_device *device = NULL; @@ -190,11 +166,16 @@ static void container_notify_cb(acpi_handle handle, u32 type, void *context)  		if (!ACPI_FAILURE(status) || device)  			break; -		result = container_device_add(&device, handle); +		result = acpi_bus_add(handle);  		if (result) {  			acpi_handle_warn(handle, "Failed to add container\n");  			break;  		} +		result = acpi_bus_get_device(handle, &device); +		if (result) { +			acpi_handle_warn(handle, "Missing device object\n"); +			break; +		}  		kobject_uevent(&device->dev.kobj, KOBJ_ONLINE);  		ost_code = ACPI_OST_SC_SUCCESS;  | 
