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@xxxxxxxxx> > 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@xxxxxxxxxx> Thanks, patch looks good to me: Reviewed-by: Hans de Goede <hansg@xxxxxxxxxx> 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);