Hi Niklas,
On 9-Jun-25 3:45 PM, 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.
>
> Cc: stable+noautosel@xxxxxxxxxx # Depends on ahci_broken_lpm() refactor
> 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>
> ---
> drivers/ata/ahci.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
> index a6ce172fa928..be464d0f46a4 100644
> --- a/drivers/ata/ahci.c
> +++ b/drivers/ata/ahci.c
> @@ -1460,6 +1460,17 @@ static bool ahci_broken_lpm(struct pci_dev *pdev)
> */
> .driver_data = "20180309",
> },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
> + DMI_MATCH(DMI_PRODUCT_VERSION, "ASUSPRO D840MB_M840SA"),
> + },
> + /*
> + * 320, released 20230208, has broken LPM, no working
> + * BIOS has been released at time of writing.
> + */
> + .driver_data = "20230208",
> + },
Same remark about using "released" in the comment. Otherwise
both patches look good to me:
Reviewed-by: Hans de Goede <hansg@xxxxxxxxxx>
for the series.
Regards,
Hans
> { } /* terminate list */
> };
> const struct dmi_system_id *dmi = dmi_first_match(sysids);