PCIe probe failure on AmLogic A311D after 6.18-rc1

Neil Armstrong neil.armstrong at linaro.org
Fri Oct 31 01:50:59 PDT 2025


On 10/31/25 06:34, Linnaea Lavia wrote:
> On 10/30/2025 1:15 AM, Bjorn Helgaas wrote:
>> On Wed, Oct 29, 2025 at 06:50:46PM +0800, Linnaea Lavia wrote:
>>> On 10/29/2025 6:16 AM, Bjorn Helgaas wrote:
>>
>>>> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
>>>> index 214ed060ca1b..9cd12924b5cb 100644
>>>> --- a/drivers/pci/quirks.c
>>>> +++ b/drivers/pci/quirks.c
>>>> @@ -2524,6 +2524,7 @@ static void quirk_disable_aspm_l0s_l1(struct pci_dev *dev)
>>>>     * disable both L0s and L1 for now to be safe.
>>>>     */
>>>>    DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASMEDIA, 0x1080, quirk_disable_aspm_l0s_l1);
>>>> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SYNOPSYS, 0xabcd, quirk_disable_aspm_l0s_l1);
>>>>    /*
>>>>     * Some Pericom PCIe-to-PCI bridges in reverse mode need the PCIe Retrain
>>>
>>> I have applied the patch on 6.18-rc3 but it's still trying to enable ASPM for some reasons.
>>
>> Sorry, my fault, I should have made that fixup run earlier, so the
>> patch should be this instead:
>>
>> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
>> index 214ed060ca1b..4fc04015ca0c 100644
>> --- a/drivers/pci/quirks.c
>> +++ b/drivers/pci/quirks.c
>> @@ -2524,6 +2524,7 @@ static void quirk_disable_aspm_l0s_l1(struct pci_dev *dev)
>>    * disable both L0s and L1 for now to be safe.
>>    */
>>   DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASMEDIA, 0x1080, quirk_disable_aspm_l0s_l1);
>> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SYNOPSYS, 0xabcd, quirk_disable_aspm_l0s_l1);
> 
> L1 still got enabled

<snip>

> 
> The card works just fine. I'm thinking the ASPM issue is probably from the glue driver reporting the link to be down when it's really just in low power state.

You're probbaly right, the meson_pcie_link_up() not only checks the LTSSM but also the speed, which is probably wrong.

Can you try removing the test for speed ?

-                 if (smlh_up && rdlh_up && ltssm_up && speed_okay)
+                 if (smlh_up && rdlh_up && ltssm_up)

The other drivers just checks the link, and some only the smlh_up && rdlh_up. So you can also probably drop ltssm_up aswell.

Neil





More information about the linux-amlogic mailing list