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]

 



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





[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