[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20240913224817.GA635227@rocinante>
Date: Sat, 14 Sep 2024 07:48:17 +0900
From: Krzysztof WilczyĆski <kw@...ux.com>
To: Manivannan Sadhasivam <manivannan.sadhasivam@...aro.org>
Cc: lpieralisi@...nel.org, bhelgaas@...gle.com, robh@...nel.org,
linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-msm@...r.kernel.org,
Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
Subject: Re: [PATCH v3] PCI: qcom-ep: Enable controller resources like PHY
only after refclk is available
Hello,
> qcom_pcie_enable_resources() is called by qcom_pcie_ep_probe() and it
> enables the controller resources like clocks, regulator, PHY. On one of the
> new unreleased Qcom SoC, PHY enablement depends on the active refclk. And
> on all of the supported Qcom endpoint SoCs, refclk comes from the host
> (RC). So calling qcom_pcie_enable_resources() without refclk causes the
> NoC (Network On Chip) error in the endpoint SoC and in turn results in a
> whole SoC crash and rebooting into EDL (Emergency Download) mode which is
> an unrecoverable state.
>
> But qcom_pcie_enable_resources() is already called by
> qcom_pcie_perst_deassert() when PERST# is deasserted, and refclk is
> available at that time.
>
> Hence, remove the unnecessary call to qcom_pcie_enable_resources() from
> qcom_pcie_ep_probe() to prevent the above mentioned crash.
>
> It should be noted that this commit prevents the crash only under normal
> working condition (booting endpoint before host), but the crash may also
> occur if PERST# assert happens at the wrong time. For avoiding the crash
> completely, it is recommended to use SRIS mode which allows the endpoint
> SoC to generate its own refclk. The driver is not supporting SRIS mode
> currently, but will be added in the future.
Applied to controller/qcom, thank you!
[1/1] PCI: qcom-ep: Enable controller resources like PHY only after refclk is available
https://git.kernel.org/pci/pci/c/d3745e3ae6c0
Krzysztof
Powered by blists - more mailing lists