HI Vladimir, > -----Original Message----- > From: Vladimir Oltean <[email protected]> > Sent: Friday, March 20, 2026 4:02 AM > To: [email protected] > Cc: Vinod Koul <[email protected]>; Neil Armstrong > <[email protected]>; [email protected]; > [email protected]; [email protected]; > [email protected]; [email protected]; linux- > [email protected]; [email protected]; linux- > [email protected]; [email protected]; linux- > [email protected]; [email protected]; linux- > [email protected]; [email protected]; linux-samsung- > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; > [email protected]; [email protected]; > [email protected]; Bart Van Assche <[email protected]>; > Alim Akhtar <[email protected]>; Peter Griffin > <[email protected]>; James E.J. Bottomley > <[email protected]>; Martin K. Petersen > <[email protected]>; Krzysztof Kozlowski <[email protected]>; > Chanho Park <[email protected]> > Subject: [PATCH v5 phy-next 09/27] scsi: ufs: exynos: stop poking into struct > phy guts > > The Exynos host controller driver is clearly a PHY consumer (gets the > ufs->phy using devm_phy_get()), but pokes into the guts of struct phy > to get the generic_phy->power_count. > > The UFS core (specifically ufshcd_link_startup()) may call the variant > operation exynos_ufs_pre_link() -> exynos_ufs_phy_init() multiple times if > the link startup fails and needs to be retried. > > However ufs-exynos shouldn't be doing what it's doing, i.e. looking at the > generic_phy->power_count, because in the general sense of the API, a > single Generic PHY may have multiple consumers. If ufs-exynos looks at > generic_phy->power_count, there's no guarantee that this ufs-exynos > instance is the one who previously bumped that power count. So it may be > powering down the PHY on behalf of another consumer. > > The correct way in which this should be handled is ufs-exynos should > *remember* whether it has initialized and powered up the PHY before, and > power it down during link retries. Not rely on the power_count (which, btw, > on the writer side is modified under &phy->mutex, but on the reader side is > accessed unlocked). This is a discouraged pattern even if here it doesn't > cause functional problems. > > Signed-off-by: Vladimir Oltean <[email protected]> > Reviewed-by: Bart Van Assche <[email protected]> > --- Thanks for the patch Acked-by: Alim Akhtar <[email protected]>
Tested this patch for basic UFS functionality, UFS still works. Feel free to add Tested-by: Alim Akhtar <[email protected]>
