Re: [PPC] Boot problems after the pci-v6.18-changes
Christian Zigotzky <[email protected]>
| Newsgroups | gmane.linux.kernel.pci,gmane.linux.ports.ppc64.devel,gmane.linux.debian.ports.powerpc |
|---|---|
| Message-ID | <[email protected]> |
> On 13. October 2025 at 07:03 am, Christian Zigotzky <[email protected]> wrote: > > > >> On 13 October 2025 at 06:47 am, Christian Zigotzky <[email protected]> wrote: >> >> >>>> On 11 October 2025 at 07:36 pm, Manivannan Sadhasivam <[email protected]> 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); > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6898, quirk_disable_aspm_all); > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6899, quirk_disable_aspm_all); > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x689E, 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 Better for testing (All AMD graphics cards): 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, PCI_ANY_ID, 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