Re: sa8755p ufs ice bug: gcc_ufs_phy_ice_core_clk status stuck at 'off'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 1/4/2024 7:39 AM, Brian Masney wrote:
Right now when we boot the RideSX4 (sa8775p) board on linux-next with
a quiet kernel log (specifically loglevel=4 - warning) about 50% of
the boots fail since UFS cannot be mounted. Changing the loglevel to
5 (notice) or higher to show more logging makes the race condition
and error go away. I tracked the error down to the following:

   - The ice driver fails to probe due to the error
     "gcc_ufs_phy_ice_core_clk status stuck at 'off'" and returns
     -EBUSY and is not retried. platform_set_drvdata() is never
     called as expected.

   - The qcom UFS host driver calls of_qcom_ice_get(), however this
     will always return -EPROBE_DEFER since the ice probe failed,
     and platform_get_drvdata() is always null.

Here's the relevant log messages that I was able to get from a failed
boot once I configured dracut to time out:

     gcc_ufs_phy_ice_core_clk status stuck at 'off'
     qcom-ice: probe of 1d88000.crypto failed with error -16
     ufshcd-qcom 1d84000.ufs: Cannot get ice instance from 1d88000.crypto
     ufshcd-qcom 1d84000.ufs: Cannot get ice instance from 1d88000.crypto
     platform 1d84000.ufs: deferred probe pending: ufshcd-qcom: ufshcd_pltfrm_init() failed

I assume that there's some kind of vote (icc, clk, regulator, etc)
that's missing from the ice driver, and another driver is performing
the necessary votes. However, I don't have access to the hardware docs
to tell if that's the case. Can someone that has access take a look? I
can post patch(es) if someone can point me to what needs configured.

Brian


Hi Brian,

I can see that gcc_ufs_phy_ice_core_clk needs the gcc_ufs_phy_gdsc to be
enabled before this particular clk is enabled. But that required
power-domain I do not see in the ice DT node. That can cause this
problem.

-Shazad




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux