[PATCH] ACPI: PM: Add unused power resource quirk for THUNDEROBOT ZERO

Zhai Can posted 1 patch 1 month, 2 weeks ago
drivers/acpi/power.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
[PATCH] ACPI: PM: Add unused power resource quirk for THUNDEROBOT ZERO
Posted by Zhai Can 1 month, 2 weeks ago
On the THUNDEROBOT ZERO laptop, the second NVMe slot and the discrete
NVIDIA GPU are both controlled by power-resource PXP. Due to the SSDT table
bug (lack of reference), PXP will be shut dow as an "unused" power resource
during initialization, making the NVMe slot #2 + NVIDIA both inaccessible.

This issue was introduced by commit a1224f34d72a ("ACPI: PM: Check states of
power resources during initialization"). Here are test results on
the three consecutive commits:

(bad again!) a1224f34d72a ACPI: PM: Check states of power resources during initialization
(good) bc2836859643 ACPI: PM: Do not turn off power resources in unknown state
(bad) 519d81956ee2 Linux 5.15-rc6

On commit bc2836859643 ("ACPI: PM: Do not turn off power resources in unknown state")
this was not an issue because the power resource state left UNKNOWN thus being ignored.

See also commit 9b04d99788cf ("ACPI: PM:
Do not turn of unused power resources on the Toshiba Click Mini") which
is another almost identical case to this one.

Fixes: a1224f34d72a ("ACPI: PM: Check states of power resources during initialization")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=221087
Signed-off-by: Zhai Can <bczhc0@126.com>
---
 drivers/acpi/power.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
index 361a7721a6a8..7da5ae5594a7 100644
--- a/drivers/acpi/power.c
+++ b/drivers/acpi/power.c
@@ -1113,6 +1113,19 @@ static const struct dmi_system_id dmi_leave_unused_power_resources_on[] = {
 			DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE Click Mini L9W-B"),
 		},
 	},
+	{
+		/*
+		 * THUNDEROBOT ZERO laptop: Due to its SSDT table bug, power
+		 * resource 'PXP' will be shut down on initialization, making
+		 * the NVMe #2 and the NVIDIA dGPU both unavailable (they're
+		 * both controlled by 'PXP').
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "THUNDEROBOT"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "ZERO"),
+		}
+
+	},
 	{}
 };
 
-- 
2.53.0
Re: [PATCH] ACPI: PM: Add unused power resource quirk for THUNDEROBOT ZERO
Posted by Rafael J. Wysocki 1 month, 2 weeks ago
On Sat, Feb 14, 2026 at 5:15 PM Zhai Can <bczhc0@126.com> wrote:
>
> On the THUNDEROBOT ZERO laptop, the second NVMe slot and the discrete
> NVIDIA GPU are both controlled by power-resource PXP. Due to the SSDT table
> bug (lack of reference), PXP will be shut dow as an "unused" power resource
> during initialization, making the NVMe slot #2 + NVIDIA both inaccessible.
>
> This issue was introduced by commit a1224f34d72a ("ACPI: PM: Check states of
> power resources during initialization"). Here are test results on
> the three consecutive commits:
>
> (bad again!) a1224f34d72a ACPI: PM: Check states of power resources during initialization
> (good) bc2836859643 ACPI: PM: Do not turn off power resources in unknown state
> (bad) 519d81956ee2 Linux 5.15-rc6
>
> On commit bc2836859643 ("ACPI: PM: Do not turn off power resources in unknown state")
> this was not an issue because the power resource state left UNKNOWN thus being ignored.
>
> See also commit 9b04d99788cf ("ACPI: PM:
> Do not turn of unused power resources on the Toshiba Click Mini") which
> is another almost identical case to this one.
>
> Fixes: a1224f34d72a ("ACPI: PM: Check states of power resources during initialization")
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=221087
> Signed-off-by: Zhai Can <bczhc0@126.com>
> ---
>  drivers/acpi/power.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
> index 361a7721a6a8..7da5ae5594a7 100644
> --- a/drivers/acpi/power.c
> +++ b/drivers/acpi/power.c
> @@ -1113,6 +1113,19 @@ static const struct dmi_system_id dmi_leave_unused_power_resources_on[] = {
>                         DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE Click Mini L9W-B"),
>                 },
>         },
> +       {
> +               /*
> +                * THUNDEROBOT ZERO laptop: Due to its SSDT table bug, power
> +                * resource 'PXP' will be shut down on initialization, making
> +                * the NVMe #2 and the NVIDIA dGPU both unavailable (they're
> +                * both controlled by 'PXP').
> +                */
> +               .matches = {
> +                       DMI_MATCH(DMI_SYS_VENDOR, "THUNDEROBOT"),
> +                       DMI_MATCH(DMI_PRODUCT_NAME, "ZERO"),
> +               }
> +
> +       },
>         {}
>  };
>
> --

Applied as 7.0-rc material, thanks!