--- /dev/null
+From 3b2b49e6dfdcf423506a771bf44cee842596351a Mon Sep 17 00:00:00 2001
+From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
+Date: Wed, 17 Nov 2021 17:05:41 +0100
+Subject: Revert "ACPI: scan: Release PM resources blocked by unused objects"
+
+From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+
+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>
+---
+ drivers/acpi/glue.c | 25 -------------------------
+ drivers/acpi/internal.h | 1 -
+ drivers/acpi/scan.c | 6 ------
+ 3 files changed, 32 deletions(-)
+
+--- a/drivers/acpi/glue.c
++++ b/drivers/acpi/glue.c
+@@ -363,28 +363,3 @@ int acpi_platform_notify(struct device *
+ }
+ 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;
+-}
+--- a/drivers/acpi/internal.h
++++ b/drivers/acpi/internal.h
+@@ -117,7 +117,6 @@ bool acpi_device_is_battery(struct acpi_
+ 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
+--- 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;