PNP / ACPI: Use ACPI_COMPANION_SET() during initialization
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 13 Mar 2015 00:45:49 +0000 (01:45 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 16 Mar 2015 14:19:07 +0000 (15:19 +0100)
pnpacpi_add_device() calls acpi_bind_one() on an already registered
device, which is a mistake, but it can initialize the ACPI companion
field of the struct device to be registered using ACPI_COMPANION_SET()
instead, so make it do that.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/pnp/pnpacpi/core.c

index d2b780a..5153d1d 100644 (file)
@@ -248,6 +248,7 @@ static int __init pnpacpi_add_device(struct acpi_device *device)
        if (!dev)
                return -ENOMEM;
 
+       ACPI_COMPANION_SET(&dev->dev, device);
        dev->data = device;
        /* .enabled means the device can decode the resources */
        dev->active = device->status.enabled;
@@ -290,11 +291,9 @@ static int __init pnpacpi_add_device(struct acpi_device *device)
                return error;
        }
 
-       error = acpi_bind_one(&dev->dev, device);
-
        num++;
 
-       return error;
+       return 0;
 }
 
 static acpi_status __init pnpacpi_add_device_handler(acpi_handle handle,