ACPI / PNP: skip ACPI device nodes associated with physical nodes already
authorAdrian Hunter <adrian.hunter@intel.com>
Fri, 23 Nov 2012 20:07:12 +0000 (21:07 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 23 Nov 2012 20:07:12 +0000 (21:07 +0100)
Make pnpacpi_add_device() ignore ACPI device nodes already associated
with struct device objects representing physical devices.

In particular, this will prevent PNP device objects from being
created for ACPI device nodes already associated with platform
devices.

This change was originally proposed by Mika Westerberg.

[rjw: Modified the subject and changelog.]
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/pnp/pnpacpi/core.c

index 26b5d4b18dd7ac633119cbe7c7562e385624430a..653d5637a37c249c332bb206c58153c8e7204d16 100644 (file)
@@ -242,6 +242,10 @@ static int __init pnpacpi_add_device(struct acpi_device *device)
        char *pnpid;
        struct acpi_hardware_id *id;
 
+       /* Skip devices that are already bound */
+       if (device->physical_node_count)
+               return 0;
+
        /*
         * If a PnPacpi device is not present , the device
         * driver should not be loaded.