* [PATCH] ata: ahci: Disallow LPM for ASUSPRO-D840SA motherboard
@ 2025-05-26 14:03 Niklas Cassel
2025-05-26 14:05 ` Niklas Cassel
2025-05-26 14:07 ` Hans de Goede
0 siblings, 2 replies; 3+ messages in thread
From: Niklas Cassel @ 2025-05-26 14:03 UTC (permalink / raw)
To: Damien Le Moal, Niklas Cassel, Mario Limonciello, Mika Westerberg,
Jian-Hong Pan
Cc: kernel-dev, Hans de Goede, Andy Yang, linux-ide
A user has bisected a regression which causes graphical corruptions on his
screen to commit 7627a0edef54 ("ata: ahci: Drop low power policy board
type").
Simply reverting commit 7627a0edef54 ("ata: ahci: Drop low power policy
board type") makes the graphical corruptions on his screen to go away.
(Note: there are no visible messages in dmesg that indicates a problem
with AHCI.)
The user also reports that the problem occurs regardless if there is an
HDD or an SSD connected via AHCI, so the problem is not device related.
The devices also work fine on other motherboards, so it seems specific to
the ASUSPRO-D840SA motherboard.
While enabling low power modes for AHCI is not supposed to affect
completely unrelated hardware, like a graphics card, it does however
allow the system to enter deeper PC-states, which could expose ACPI issues
that were previously not visible (because the system never entered these
lower power states before).
There are previous examples where enabling LPM exposed serious BIOS/ACPI
bugs, see e.g. commit 240630e61870 ("ahci: Disable LPM on Lenovo 50 series
laptops with a too old BIOS").
Since there hasn't been any BIOS update in years for the ASUSPRO-D840SA
motherboard, disable LPM for this board, in order to avoid entering lower
PC-states, which triggers graphical corruptions.
Reported-by: Andy Yang <andyybtc79@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220111
Fixes: 7627a0edef54 ("ata: ahci: Drop low power policy board type")
Signed-off-by: Niklas Cassel <cassel@kernel.org>
---
drivers/ata/ahci.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 163ac909bd06..03f24bff040c 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -1411,7 +1411,10 @@ static bool ahci_broken_suspend(struct pci_dev *pdev)
static bool ahci_broken_lpm(struct pci_dev *pdev)
{
static const struct dmi_system_id sysids[] = {
- /* Various Lenovo 50 series have LPM issues with older BIOSen */
+ /*
+ * Various Lenovo 50 series and some ASUS boards have LPM issues
+ * with older BIOS versions.
+ */
{
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
@@ -1446,6 +1449,13 @@ static bool ahci_broken_lpm(struct pci_dev *pdev)
*/
.driver_data = "20180310", /* 2.35 */
},
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "ASUSPRO D840MB_M840SA/D840MB"),
+ },
+ .driver_data = "20230208", /* 320 */
+ },
{ } /* terminate list */
};
const struct dmi_system_id *dmi = dmi_first_match(sysids);
--
2.49.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] ata: ahci: Disallow LPM for ASUSPRO-D840SA motherboard
2025-05-26 14:03 [PATCH] ata: ahci: Disallow LPM for ASUSPRO-D840SA motherboard Niklas Cassel
@ 2025-05-26 14:05 ` Niklas Cassel
2025-05-26 14:07 ` Hans de Goede
1 sibling, 0 replies; 3+ messages in thread
From: Niklas Cassel @ 2025-05-26 14:05 UTC (permalink / raw)
To: Damien Le Moal, Mario Limonciello, Mika Westerberg, Jian-Hong Pan
Cc: kernel-dev, Hans de Goede, Andy Yang, linux-ide
On Mon, May 26, 2025 at 04:03:13PM +0200, Niklas Cassel wrote:
> A user has bisected a regression which causes graphical corruptions on his
> screen to commit 7627a0edef54 ("ata: ahci: Drop low power policy board
> type").
>
> Simply reverting commit 7627a0edef54 ("ata: ahci: Drop low power policy
> board type") makes the graphical corruptions on his screen to go away.
> (Note: there are no visible messages in dmesg that indicates a problem
> with AHCI.)
>
> The user also reports that the problem occurs regardless if there is an
> HDD or an SSD connected via AHCI, so the problem is not device related.
>
> The devices also work fine on other motherboards, so it seems specific to
> the ASUSPRO-D840SA motherboard.
>
> While enabling low power modes for AHCI is not supposed to affect
> completely unrelated hardware, like a graphics card, it does however
> allow the system to enter deeper PC-states, which could expose ACPI issues
> that were previously not visible (because the system never entered these
> lower power states before).
>
> There are previous examples where enabling LPM exposed serious BIOS/ACPI
> bugs, see e.g. commit 240630e61870 ("ahci: Disable LPM on Lenovo 50 series
> laptops with a too old BIOS").
>
> Since there hasn't been any BIOS update in years for the ASUSPRO-D840SA
> motherboard, disable LPM for this board, in order to avoid entering lower
> PC-states, which triggers graphical corruptions.
>
> Reported-by: Andy Yang <andyybtc79@gmail.com>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220111
> Fixes: 7627a0edef54 ("ata: ahci: Drop low power policy board type")
> Signed-off-by: Niklas Cassel <cassel@kernel.org>
> ---
Hello Andy,
Could you please test this patch?
Kind regards,
Niklas
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] ata: ahci: Disallow LPM for ASUSPRO-D840SA motherboard
2025-05-26 14:03 [PATCH] ata: ahci: Disallow LPM for ASUSPRO-D840SA motherboard Niklas Cassel
2025-05-26 14:05 ` Niklas Cassel
@ 2025-05-26 14:07 ` Hans de Goede
1 sibling, 0 replies; 3+ messages in thread
From: Hans de Goede @ 2025-05-26 14:07 UTC (permalink / raw)
To: Niklas Cassel, Damien Le Moal, Mario Limonciello, Mika Westerberg,
Jian-Hong Pan
Cc: kernel-dev, Andy Yang, linux-ide
Hi,
On 26-May-25 16:03, Niklas Cassel wrote:
> A user has bisected a regression which causes graphical corruptions on his
> screen to commit 7627a0edef54 ("ata: ahci: Drop low power policy board
> type").
>
> Simply reverting commit 7627a0edef54 ("ata: ahci: Drop low power policy
> board type") makes the graphical corruptions on his screen to go away.
> (Note: there are no visible messages in dmesg that indicates a problem
> with AHCI.)
>
> The user also reports that the problem occurs regardless if there is an
> HDD or an SSD connected via AHCI, so the problem is not device related.
>
> The devices also work fine on other motherboards, so it seems specific to
> the ASUSPRO-D840SA motherboard.
>
> While enabling low power modes for AHCI is not supposed to affect
> completely unrelated hardware, like a graphics card, it does however
> allow the system to enter deeper PC-states, which could expose ACPI issues
> that were previously not visible (because the system never entered these
> lower power states before).
>
> There are previous examples where enabling LPM exposed serious BIOS/ACPI
> bugs, see e.g. commit 240630e61870 ("ahci: Disable LPM on Lenovo 50 series
> laptops with a too old BIOS").
>
> Since there hasn't been any BIOS update in years for the ASUSPRO-D840SA
> motherboard, disable LPM for this board, in order to avoid entering lower
> PC-states, which triggers graphical corruptions.
>
> Reported-by: Andy Yang <andyybtc79@gmail.com>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220111
> Fixes: 7627a0edef54 ("ata: ahci: Drop low power policy board type")
> Signed-off-by: Niklas Cassel <cassel@kernel.org>
Thanks, patch looks good to me:
Reviewed-by: Hans de Goede <hansg@kernel.org>
Regards,
Hans
> ---
> drivers/ata/ahci.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
> index 163ac909bd06..03f24bff040c 100644
> --- a/drivers/ata/ahci.c
> +++ b/drivers/ata/ahci.c
> @@ -1411,7 +1411,10 @@ static bool ahci_broken_suspend(struct pci_dev *pdev)
> static bool ahci_broken_lpm(struct pci_dev *pdev)
> {
> static const struct dmi_system_id sysids[] = {
> - /* Various Lenovo 50 series have LPM issues with older BIOSen */
> + /*
> + * Various Lenovo 50 series and some ASUS boards have LPM issues
> + * with older BIOS versions.
> + */
> {
> .matches = {
> DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> @@ -1446,6 +1449,13 @@ static bool ahci_broken_lpm(struct pci_dev *pdev)
> */
> .driver_data = "20180310", /* 2.35 */
> },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
> + DMI_MATCH(DMI_PRODUCT_VERSION, "ASUSPRO D840MB_M840SA/D840MB"),
> + },
> + .driver_data = "20230208", /* 320 */
> + },
> { } /* terminate list */
> };
> const struct dmi_system_id *dmi = dmi_first_match(sysids);
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-05-26 14:07 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-26 14:03 [PATCH] ata: ahci: Disallow LPM for ASUSPRO-D840SA motherboard Niklas Cassel
2025-05-26 14:05 ` Niklas Cassel
2025-05-26 14:07 ` Hans de Goede
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox