[PPC] Boot problems after the pci-v6.18-changes

Manivannan Sadhasivam mani at kernel.org
Tue Oct 14 03:01:48 AEDT 2025


On Mon, Oct 13, 2025 at 07:02:19AM +0200, Christian Zigotzky wrote:
> 
> 
> > On 13 October 2025 at 06:47 am, Christian Zigotzky <chzigotzky at xenosoft.de> wrote:
> > 
> > 
> >> On 11 October 2025 at 07:36 pm, Manivannan Sadhasivam <mani at kernel.org> wrote:
> >> 
> >> Hi Lukas,
> >> 
> >> Thanks for looping me in. The referenced commit forcefully enables ASPM on all
> >> DT platforms as we decided to bite the bullet finally.
> >> 
> >> Looks like the device (0000:01:00.0) doesn't play nice with ASPM even though it
> >> advertises ASPM capability.
> >> 
> >> Christian, could you please test the below change and see if it fixes the issue?
> >> 
> >> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> >> index 214ed060ca1b..e006b0560b39 100644
> >> --- a/drivers/pci/quirks.c
> >> +++ b/drivers/pci/quirks.c
> >> @@ -2525,6 +2525,15 @@ static void quirk_disable_aspm_l0s_l1(struct pci_dev *dev)
> >> */
> >> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASMEDIA, 0x1080, quirk_disable_aspm_l0s_l1);
> >> 
> >> +
> >> +static void quirk_disable_aspm_all(struct pci_dev *dev)
> >> +{
> >> +       pci_info(dev, "Disabling ASPM\n");
> >> +       pci_disable_link_state(dev, PCIE_LINK_STATE_ALL);
> >> +}
> >> +
> >> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6738, quirk_disable_aspm_all);
> >> +
> >> /*
> >> * Some Pericom PCIe-to-PCI bridges in reverse mode need the PCIe Retrain
> >> * Link bit cleared after starting the link retrain process to allow this
> >> 
> >> 
> >> Going forward, we should be quirking the devices if they behave erratically.
> >> 
> >> - Mani
> >> 
> >> --
> >> மணிவண்ணன் சதாசிவம்
> > 
> > Hello Mani,
> > 
> >> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6738, quirk_disable_aspm_all);
> > 
> > Is this only for my AMD Radeon HD6870?
> > 
> > My AMD Radeon HD5870 is also affected.
> > 
> > And I tested it with my AMD Radeon HD5870.
> > 
> > What would the line be for all AMD graphics cards?
> > 
> > Thanks,
> > Christian
> 
> I see. 0x6738 is for the AMD Radeon HD 6800 series.
> 
> It could be, that your patch works because I tested it with an AMD Radeon HD5870 instead of an AMD Radeon HD6870. Sorry 
> 
> This could be the correct line for the HD5870:
> 
> >> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6898, quirk_disable_aspm_all);
> 
> There are some more id numbers for the HD5870.
> 
> Correct:
> 
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index 214ed060ca1b..e006b0560b39 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -2525,6 +2525,15 @@ static void quirk_disable_aspm_l0s_l1(struct pci_dev *dev)
> */
> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASMEDIA, 0x1080, quirk_disable_aspm_l0s_l1);
> 
> +
> +static void quirk_disable_aspm_all(struct pci_dev *dev)
> +{
> +       pci_info(dev, "Disabling ASPM\n");
> +       pci_disable_link_state(dev, PCIE_LINK_STATE_ALL);
> +}
> +
> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6738, quirk_disable_aspm_all);

As you've figured out, we need to add the quirks for individual devices. Btw, I
just used PCIE_LINK_STATE_ALL to make sure the patch works. But for properly
fixing the issue, we need to try disabling L0s, L1 separately and check which
one (or both) is causing issue.

- Mani

-- 
மணிவண்ணன் சதாசிவம்


More information about the Linuxppc-dev mailing list