]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Merge branch 'pci/controller/dwc'
authorBjorn Helgaas <bhelgaas@google.com>
Thu, 23 Jan 2025 19:04:59 +0000 (13:04 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 23 Jan 2025 19:04:59 +0000 (13:04 -0600)
- Fix potential string truncation in dw_pcie_edma_irq_verify() (Niklas
  Cassel)

- Don't wait for link up in DWC core if driver can detect Link Up event
  (Krishna chaitanya chundru)

- If qcom 'global' IRQ is supported for detection of Link Up events, tell
  DWC core not to wait for link up (Krishna chaitanya chundru)

- Update ICC and OPP votes after Link Up events (Krishna chaitanya chundru)

- Use dw-rockchip dll_link_up IRQ to detect Link Up and enumerate devices
  so users don't have to manually rescan (Niklas Cassel)

- In dw-rockchip, the 'sys' interrupt is required and detects Link Up
  events, so tell DWC core not to wait for link up (Niklas Cassel)

- Always stop link in dw_pcie_suspend_noirq(), which is required at least
  for i.MX8QM to re-establish link on resume (Richard Zhu)

- Drop racy and unnecessary LTSSM state check before sending PME_TURN_OFF
  message in dw_pcie_suspend_noirq() (Richard Zhu)

- Add stubs for dw_pcie_suspend_noirq() dw_pcie_resume_noirq() when
  CONFIG_PCIE_DW_HOST is not defined so drivers don't need #ifdefs (Bjorn
  Helgaas)

- Use DWC core suspend/resume functions for imx6 (Frank Li)

- Add imx6 suspend/resume support for i.MX8MQ, i.MX8Q, and i.MX95 (Richard
  Zhu)

- Add struct of_pci_range.parent_bus_addr for devices that need their
  immediate parent bus address, not the CPU address, e.g., to program an
  internal Address Translation Unit (iATU) (Frank Li)

* pci/controller/dwc:
  PCI: dwc: Simplify config resource lookup
  of: address: Add parent_bus_addr to struct of_pci_range
  PCI: imx6: Add i.MX8MQ, i.MX8Q and i.MX95 PM support
  PCI: imx6: Use DWC common suspend resume method
  PCI: dwc: Add dw_pcie_suspend_noirq(), dw_pcie_resume_noirq() stubs for !CONFIG_PCIE_DW_HOST
  PCI: dwc: Remove LTSSM state test in dw_pcie_suspend_noirq()
  PCI: dwc: Always stop link in the dw_pcie_suspend_noirq
  PCI: dw-rockchip: Don't wait for link since we can detect Link Up
  PCI: dw-rockchip: Enumerate endpoints based on dll_link_up IRQ
  PCI: qcom: Update ICC and OPP values after Link Up event
  PCI: qcom: Don't wait for link if we can detect Link Up
  PCI: dwc: Don't wait for link up if driver can detect Link Up event
  PCI: dwc: Fix potential truncation in dw_pcie_edma_irq_verify()

# Conflicts:
# drivers/pci/controller/dwc/pci-imx6.c

1  2 
drivers/pci/controller/dwc/pci-imx6.c
drivers/pci/controller/dwc/pcie-designware.c
drivers/pci/controller/dwc/pcie-designware.h

index 6ed56ff390d9f903939e2ee0283f417758cb32ed,0fe8c2092d061b151d823b467c7f27910cd48a7b..9734399aefde45b11834bbc6caa73109921d1b45
@@@ -1533,8 -1303,11 +1506,13 @@@ static int imx_pcie_probe(struct platfo
        imx_pcie->pci = pci;
        imx_pcie->drvdata = of_device_get_match_data(dev);
  
 +      mutex_init(&imx_pcie->lock);
 +
+       if (imx_pcie->drvdata->ops)
+               pci->pp.ops = imx_pcie->drvdata->ops;
+       else
+               pci->pp.ops = &imx_pcie_host_dw_pme_ops;
        /* Find the PHY if one is defined, only imx7d uses it */
        np = of_parse_phandle(node, "fsl,imx7d-pcie-phy", 0);
        if (np) {
@@@ -1833,7 -1604,7 +1809,8 @@@ static const struct imx_pcie_drvdata dr
        [IMX95] = {
                .variant = IMX95,
                .flags = IMX_PCIE_FLAG_HAS_SERDES |
-                        IMX_PCIE_FLAG_HAS_LUT,
++                       IMX_PCIE_FLAG_HAS_LUT |
+                        IMX_PCIE_FLAG_SUPPORTS_SUSPEND,
                .clk_names = imx8mq_clks,
                .clks_cnt = ARRAY_SIZE(imx8mq_clks),
                .ltssm_off = IMX95_PE0_GEN_CTRL_3,