ACPI / LPSS: allow to use specific PM domain during ->probe()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 5 Nov 2014 16:34:46 +0000 (18:34 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 11 Nov 2014 22:44:19 +0000 (23:44 +0100)
The LPSS DMA controller would like to use the specific PM domain callbacks
during early stage, namely in ->probe(). This patch moves the specific PM
domain assignment early to be accessible during a whole life time of the device
in the system.

Suggested-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Scott Ashcroft <scott.ashcroft@talk21.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpi_lpss.c

index f6b71afb80ea2145391b9a67060647ba81b9d69e..4804ae31b05708649901839511a2be3c85cd9a92 100644 (file)
@@ -659,19 +659,17 @@ static int acpi_lpss_platform_notify(struct notifier_block *nb,
        }
 
        switch (action) {
-       case BUS_NOTIFY_BOUND_DRIVER:
-               pdev->dev.pm_domain = &acpi_lpss_pm_domain;
-               break;
-       case BUS_NOTIFY_UNBOUND_DRIVER:
-               pdev->dev.pm_domain = NULL;
-               break;
        case BUS_NOTIFY_ADD_DEVICE:
+               pdev->dev.pm_domain = &acpi_lpss_pm_domain;
                if (pdata->dev_desc->flags & LPSS_LTR)
                        return sysfs_create_group(&pdev->dev.kobj,
                                                  &lpss_attr_group);
+               break;
        case BUS_NOTIFY_DEL_DEVICE:
                if (pdata->dev_desc->flags & LPSS_LTR)
                        sysfs_remove_group(&pdev->dev.kobj, &lpss_attr_group);
+               pdev->dev.pm_domain = NULL;
+               break;
        default:
                break;
        }