Patch "ACPI: PM: Do not turn of unused power resources on the Toshiba Click Mini" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ACPI: PM: Do not turn of unused power resources on the Toshiba Click Mini

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     acpi-pm-do-not-turn-of-unused-power-resources-on-the.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 94b4ac7d34f9866de0e0dc811fbbdd85f228d0f6
Author: Hans de Goede <hdegoede@xxxxxxxxxx>
Date:   Thu Apr 20 13:02:20 2023 +0200

    ACPI: PM: Do not turn of unused power resources on the Toshiba Click Mini
    
    [ Upstream commit 9b04d99788cf475cbd277f30ec66230ccb7e99f4 ]
    
    The CPR3 power resource on the Toshiba Click Mini toggles a GPIO
    which is called SISP (for SIS touchscreen power?) on/off.
    
    This CPR3 power resource is not listed in any _PR? lists, let alone
    in a _PR0 list for the SIS0817 touchscreen ACPI device which needs it.
    
    Before commit a1224f34d72a ("ACPI: PM: Check states of power resources
    during initialization") this was not an issue because since nothing
    referenced the CPR3 power resource its state was always
    ACPI_POWER_RESOURCE_STATE_UNKNOWN and power resources with this state
    get ignored by acpi_turn_off_unused_power_resources().
    
    This clearly is a bug in the DSDT of this device. Add a DMI quirk
    to make acpi_turn_off_unused_power_resources() a no-op on this
    model to fix the touchscreen no longer working since kernel 5.16 .
    
    This quirk also causes 2 other power resources to not get turned
    off, but the _OFF method on these already was a no-op, so this makes
    no difference for the other 2 power resources.
    
    Fixes: a1224f34d72a ("ACPI: PM: Check states of power resources during initialization")
    Reported-by: Gé Koerkamp <ge.koerkamp@xxxxxxxxx>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=216946
    Link: https://lore.kernel.org/regressions/32a14a8a-9795-4c8c-7e00-da9012f548f8@xxxxxxxxxxxxx/
    Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
index f2588aba8421e..aea8c994caeac 100644
--- a/drivers/acpi/power.c
+++ b/drivers/acpi/power.c
@@ -23,6 +23,7 @@
 
 #define pr_fmt(fmt) "ACPI: PM: " fmt
 
+#include <linux/dmi.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
@@ -1022,6 +1023,21 @@ void acpi_resume_power_resources(void)
 }
 #endif
 
+static const struct dmi_system_id dmi_leave_unused_power_resources_on[] = {
+	{
+		/*
+		 * The Toshiba Click Mini has a CPR3 power-resource which must
+		 * be on for the touchscreen to work, but which is not in any
+		 * _PR? lists. The other 2 affected power-resources are no-ops.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE Click Mini L9W-B"),
+		},
+	},
+	{}
+};
+
 /**
  * acpi_turn_off_unused_power_resources - Turn off power resources not in use.
  */
@@ -1029,6 +1045,9 @@ void acpi_turn_off_unused_power_resources(void)
 {
 	struct acpi_power_resource *resource;
 
+	if (dmi_check_system(dmi_leave_unused_power_resources_on))
+		return;
+
 	mutex_lock(&power_resource_list_lock);
 
 	list_for_each_entry_reverse(resource, &acpi_power_resource_list, list_node) {



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux