Message ID | alpine.DEB.2.21.2304042243250.37565@angie.orcam.me.uk |
---|---|
State | New |
Headers | show |
Series | pci: Work around ASMedia ASM2824 PCIe link training failures | expand |
On Tue, Apr 04, 2023 at 10:56:21PM +0100, Maciej W. Rozycki wrote: > Use `link_active_reporting' to determine whether Data Link Layer Link > Active Reporting is available rather than re-retrieving the capability. > > Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk> I provided a Reviewed-by for this patch back in February: https://lore.kernel.org/linux-pci/20230213135327.GA29595@wunner.de/ Please always include collected tags when reposting your patches. I also noted back then that this patch does not depend on the preceding patches in the series. So please move it to the front of the series so that it can be picked up despite the other patches still being under discussion. That way you reduce the size of any future reposts of the series and make life easier both for yourself and reviewers. Thanks, Lukas > --- > NB this has been compile-tested only with PPC64LE and x86-64 > configurations. > > No change from v6. > > New change in v6. > --- > drivers/pci/hotplug/pciehp_hpc.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > linux-pcie-link-active-reporting-hpc.diff > Index: linux-macro/drivers/pci/hotplug/pciehp_hpc.c > =================================================================== > --- linux-macro.orig/drivers/pci/hotplug/pciehp_hpc.c > +++ linux-macro/drivers/pci/hotplug/pciehp_hpc.c > @@ -984,7 +984,7 @@ static inline int pcie_hotplug_depth(str > struct controller *pcie_init(struct pcie_device *dev) > { > struct controller *ctrl; > - u32 slot_cap, slot_cap2, link_cap; > + u32 slot_cap, slot_cap2; > u8 poweron; > struct pci_dev *pdev = dev->port; > struct pci_bus *subordinate = pdev->subordinate; > @@ -1030,9 +1030,6 @@ struct controller *pcie_init(struct pcie > if (dmi_first_match(inband_presence_disabled_dmi_table)) > ctrl->inband_presence_disabled = 1; > > - /* Check if Data Link Layer Link Active Reporting is implemented */ > - pcie_capability_read_dword(pdev, PCI_EXP_LNKCAP, &link_cap); > - > /* Clear all remaining event bits in Slot Status register. */ > pcie_capability_write_word(pdev, PCI_EXP_SLTSTA, > PCI_EXP_SLTSTA_ABP | PCI_EXP_SLTSTA_PFD | > @@ -1051,7 +1048,7 @@ struct controller *pcie_init(struct pcie > FLAG(slot_cap, PCI_EXP_SLTCAP_EIP), > FLAG(slot_cap, PCI_EXP_SLTCAP_NCCS), > FLAG(slot_cap2, PCI_EXP_SLTCAP2_IBPD), > - FLAG(link_cap, PCI_EXP_LNKCAP_DLLLARC), > + FLAG(pdev->link_active_reporting, true), > pdev->broken_cmd_compl ? " (with Cmd Compl erratum)" : ""); > > /*
On Wed, 5 Apr 2023, Lukas Wunner wrote: > > Use `link_active_reporting' to determine whether Data Link Layer Link > > Active Reporting is available rather than re-retrieving the capability. > > > > Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk> > > I provided a Reviewed-by for this patch back in February: > > https://lore.kernel.org/linux-pci/20230213135327.GA29595@wunner.de/ Apologies, it's been so long and so many distractions that I completely forgot about it. Thank you for your vigilance, and for the review in the first place. Really appreciated! I'll post v8 tonight with the change description updated and the patch reordered. Maciej
Index: linux-macro/drivers/pci/hotplug/pciehp_hpc.c =================================================================== --- linux-macro.orig/drivers/pci/hotplug/pciehp_hpc.c +++ linux-macro/drivers/pci/hotplug/pciehp_hpc.c @@ -984,7 +984,7 @@ static inline int pcie_hotplug_depth(str struct controller *pcie_init(struct pcie_device *dev) { struct controller *ctrl; - u32 slot_cap, slot_cap2, link_cap; + u32 slot_cap, slot_cap2; u8 poweron; struct pci_dev *pdev = dev->port; struct pci_bus *subordinate = pdev->subordinate; @@ -1030,9 +1030,6 @@ struct controller *pcie_init(struct pcie if (dmi_first_match(inband_presence_disabled_dmi_table)) ctrl->inband_presence_disabled = 1; - /* Check if Data Link Layer Link Active Reporting is implemented */ - pcie_capability_read_dword(pdev, PCI_EXP_LNKCAP, &link_cap); - /* Clear all remaining event bits in Slot Status register. */ pcie_capability_write_word(pdev, PCI_EXP_SLTSTA, PCI_EXP_SLTSTA_ABP | PCI_EXP_SLTSTA_PFD | @@ -1051,7 +1048,7 @@ struct controller *pcie_init(struct pcie FLAG(slot_cap, PCI_EXP_SLTCAP_EIP), FLAG(slot_cap, PCI_EXP_SLTCAP_NCCS), FLAG(slot_cap2, PCI_EXP_SLTCAP2_IBPD), - FLAG(link_cap, PCI_EXP_LNKCAP_DLLLARC), + FLAG(pdev->link_active_reporting, true), pdev->broken_cmd_compl ? " (with Cmd Compl erratum)" : ""); /*
Use `link_active_reporting' to determine whether Data Link Layer Link Active Reporting is available rather than re-retrieving the capability. Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk> --- NB this has been compile-tested only with PPC64LE and x86-64 configurations. No change from v6. New change in v6. --- drivers/pci/hotplug/pciehp_hpc.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) linux-pcie-link-active-reporting-hpc.diff