The CLKREQ# is an open drain, active low signal that is driven low by
the card to request reference clock.
But the CLKREQ# maybe reserved on some old device, compliant with CEM
r3.0 or before. Thus, this signal wouldn't be driven low by these old
devices.
Since the reference clock controlled by CLKREQ# may be required by i.MX
PCIe host too. To make sure this clock is ready even when the CLKREQ#
isn't driven low by the card(e.x old cards described above), force
CLKREQ# override active low for i.MX PCIe host during initialization.
The CLKREQ# override can be cleared safely when supports-clkreq is
present and PCIe link is up later. Because the CLKREQ# would be driven
low by the card in this case.
Main changes in v2:
- Update the commit message, and collect the reviewed-by tag.
[PATCH v2 1/2] PCI: dwc: Invoke post_init in dw_pcie_resume_noirq()
[PATCH v2 2/2] PCI: imx6: Add a method to handle CLKREQ# override
drivers/pci/controller/dwc/pci-imx6.c | 35 +++++++++++++++++++++++++++++++++++
drivers/pci/controller/dwc/pcie-designware-host.c | 3 +++
2 files changed, 38 insertions(+)