On 5/6/25 2:09 AM, Mikko Juhani Korhonen wrote:
> ma 5.5.2025 klo 18.37 Niklas Cassel (cassel@xxxxxxxxxx) kirjoitti:
>
>> On Mon, May 05, 2025 at 10:58:22AM +0300, Mikko Juhani Korhonen wrote:
>>>>> On 5/1/25 05:36, Ioannis Barkas wrote:
>>>>>> It would be better to have more details on this since only the 2TB
>>>>>> model is targeted.
>>> I have two WD20EFAX-68FB5N0 and both behave consistently, unusable
>>> from 6.9.0 on as they just keep resetting the SATA link , but they
>>> have worked flawlessly with 6.8.x for a year and also now with the
>>> quirk applied.
>>> I have also tested a different WDC model with med_power_with_dipm on
>>> the same SATA port and there are no problems.
>>> But after you guys got suspicious I found there is in fact a SATA port
>>> on my motherboard where the WD20EFAX-68FB5N0 works with LPM on
>> This motherboard looks to be AMD chipset, so I assume AMD AHCI controller.
>>
>> Could you send the output of:
>> $ lspci -nn | grep -E "SATA|AHCI"
>
> mjkorhon@taavi:~$ sudo lspci -nn | grep -E "SATA|AHCI"
> 01:00.1 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] 500
> Series Chipset SATA Controller [1022:43eb]
Mikko,
could you also please try this patch on top of a vanilla 6.15 kernel (no quirk
patch applied) ?
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 163ac909bd06..a09b7b825780 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -52,6 +52,7 @@ enum board_ids {
board_ahci_ign_iferr,
board_ahci_no_debounce_delay,
board_ahci_no_msi,
+ board_ahci_no_dipm,
/*
* board_ahci_pcs_quirk is for legacy Intel platforms.
* Modern Intel platforms should use board_ahci instead.
@@ -152,6 +153,12 @@ static const struct ata_port_info ahci_port_info[] = {
.udma_mask = ATA_UDMA6,
.port_ops = &ahci_ops,
},
+ [board_ahci_no_dipm] = {
+ .flags = AHCI_FLAG_COMMON | ATA_FLAG_NO_DIPM,
+ .pio_mask = ATA_PIO4,
+ .udma_mask = ATA_UDMA6,
+ .port_ops = &ahci_ops,
+ },
[board_ahci_no_msi] = {
AHCI_HFLAGS (AHCI_HFLAG_NO_MSI),
.flags = AHCI_FLAG_COMMON,
@@ -466,6 +473,7 @@ static const struct pci_device_id ahci_pci_tbl[] = {
{ PCI_VDEVICE(AMD, 0x7801), board_ahci_no_debounce_delay }, /* AMD
Hudson-2 (AHCI mode) */
{ PCI_VDEVICE(AMD, 0x7900), board_ahci }, /* AMD CZ */
{ PCI_VDEVICE(AMD, 0x7901), board_ahci }, /* AMD Green Sardine */
+ { PCI_VDEVICE(AMD, 0x43EB), board_ahci_no_dipm }, /* 500 Series Chipset */
/* AMD is using RAID class only for ahci controllers */
{ PCI_VENDOR_ID_AMD, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
PCI_CLASS_STORAGE_RAID << 8, 0xffffff, board_ahci },
--
Damien Le Moal
Western Digital Research