RE: [PATCH v6 08/11] PCI: dwc: Invoke post_init in dw_pcie_resume_noirq()

Hongxing Zhu
2026-01-21T02:24:21Z

> -----Original Message-----
> From: Bjorn Helgaas <helgaas@kernel.org>
> Sent: 2026年1月21日 6:05
> To: Hongxing Zhu <hongxing.zhu@nxp.com>
> Cc: Frank Li <frank.li@nxp.com>; l.stach@pengutronix.de; lpieralisi@kernel.org;
> kwilczynski@kernel.org; mani@kernel.org; robh@kernel.org;
> krzk+dt@kernel.org; conor+dt@kernel.org; bhelgaas@google.com;
> shawnguo@kernel.org; s.hauer@pengutronix.de; kernel@pengutronix.de;
> festevam@gmail.com; linux-pci@vger.kernel.org;
> linux-arm-kernel@lists.infradead.org; devicetree@vger.kernel.org;
> imx@lists.linux.dev; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH v6 08/11] PCI: dwc: Invoke post_init in
> dw_pcie_resume_noirq()
>
> On Fri, Jan 09, 2026 at 09:27:50AM -0600, Bjorn Helgaas wrote:
> > ...
>
> > The current commit log for this patch is this:
> >
> > Some SoCs like i.MX95 require enabling REFCLK after resuming from
> suspend
> > in their post_init callback. So invoke the callback at the end of
> > dw_pcie_resume_noirq() if available.
> >
> > When .post_init() is called, the link is already up and PCIe devices
> > have already been enumerated. I think REFCLK is required for the link
> > to come up, so it doesn't sound right to me that .post_init() would be
> > *enabling* REFCLK.
>
> This never got resolved.
>
> https://git.kernel/
> .org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Fpci%2Fpci.git%2Fcommit%2F
> %3Fh%3Dcontroller%2Fdwc-imx6%26id%3D199c18221622&data=05%7C02%7
> Chongxing.zhu%40nxp.com%7Cb277f497a8754568002e08de586feb44%7C686e
> a1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C639045434872228122%7CUnk
> nown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIs
> IlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdat
> a=ms2JkhYXBW9YXRaFGoUIF%2BPgpRCuWGD6F2%2FNDh%2F1PUg%3D&reser
> ved=0
> says imx_pcie_host_post_init() enables REFCLK by applying the
> IMX_PCIE_FLAG_8GT_ECN_ERR051586 workaround.
>
> I don't think that commit log is correct. Can you please supply some correct
> text for that commit?
Hi Bjorn:
How about the following one?
"
At the begin of the dw_pcie_resume_noirq(), REFCLK of i.MX95 PCIe would be
overridden to active low to make sure the REFCLK is ready before RC controller
is initialized. After the initialization of RC controller is done and PCIe
link is up, invoke the post_init callback if available to clear the CLKREQ#
signal override active low settings if the support-clkreqs property is TRUE.

It paves the way to support the CLKREQ# toggling mandatory required by L1SS.
"

Best Regards
Richard Zhu

>
> Bjorn