diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2021-11-17 19:05:41 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-11-21 15:49:09 +0300 |
commit | 999805aaf925594bd1cf344b2646f19dfc8a1d72 (patch) | |
tree | aaa465dfc1639c326064bccca94cc671bcde6e6a | |
parent | 0750f769b95841b34a9fe8c418dd792ff526bf86 (diff) | |
download | linux-999805aaf925594bd1cf344b2646f19dfc8a1d72.tar.xz |
Revert "ACPI: scan: Release PM resources blocked by unused objects"
commit 3b2b49e6dfdcf423506a771bf44cee842596351a upstream.
Revert commit c10383e8ddf4 ("ACPI: scan: Release PM resources blocked
by unused objects"), because it causes boot issues to appear on some
platforms.
Reported-by: Kyle D. Pelton <kyle.d.pelton@intel.com>
Reported-by: Saranya Gopal <saranya.gopal@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/acpi/glue.c | 25 | ||||
-rw-r--r-- | drivers/acpi/internal.h | 1 | ||||
-rw-r--r-- | drivers/acpi/scan.c | 6 |
3 files changed, 0 insertions, 32 deletions
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c index 3fd1713f1f62..fce3f3bba714 100644 --- a/drivers/acpi/glue.c +++ b/drivers/acpi/glue.c @@ -363,28 +363,3 @@ int acpi_platform_notify(struct device *dev, enum kobject_action action) } return 0; } - -int acpi_dev_turn_off_if_unused(struct device *dev, void *not_used) -{ - struct acpi_device *adev = to_acpi_device(dev); - - /* - * Skip device objects with device IDs, because they may be in use even - * if they are not companions of any physical device objects. - */ - if (adev->pnp.type.hardware_id) - return 0; - - mutex_lock(&adev->physical_node_lock); - - /* - * Device objects without device IDs are not in use if they have no - * corresponding physical device objects. - */ - if (list_empty(&adev->physical_node_list)) - acpi_device_set_power(adev, ACPI_STATE_D3_COLD); - - mutex_unlock(&adev->physical_node_lock); - - return 0; -} diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h index 8fbdc172864b..d91b560e8867 100644 --- a/drivers/acpi/internal.h +++ b/drivers/acpi/internal.h @@ -117,7 +117,6 @@ bool acpi_device_is_battery(struct acpi_device *adev); bool acpi_device_is_first_physical_node(struct acpi_device *adev, const struct device *dev); int acpi_bus_register_early_device(int type); -int acpi_dev_turn_off_if_unused(struct device *dev, void *not_used); /* -------------------------------------------------------------------------- Device Matching and Notification diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index ae9464091f1b..b24513ec3fae 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c @@ -2560,12 +2560,6 @@ int __init acpi_scan_init(void) } } - /* - * Make sure that power management resources are not blocked by ACPI - * device objects with no users. - */ - bus_for_each_dev(&acpi_bus_type, NULL, NULL, acpi_dev_turn_off_if_unused); - acpi_turn_off_unused_power_resources(); acpi_scan_initialized = true; |