Re: [PPC] Boot problems after the pci-v6.18-changes
From: Christian Zigotzky <hidden>
Date: 2025-10-13 05:23:52
Also in:
linux-pci
Subsystem:
pci subsystem, the rest · Maintainers:
Bjorn Helgaas, Linus Torvalds
quoted hunk ↗ jump to hunk
On 13. October 2025 at 07:03 am, Christian Zigotzky [off-list ref] wrote: quoted
On 13 October 2025 at 06:47 am, Christian Zigotzky [off-list ref] wrote: quoted
quoted
On 11 October 2025 at 07:36 pm, Manivannan Sadhasivam [off-list ref] 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,quoted
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, ChristianI 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:quoted
quoted
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