aboutsummaryrefslogtreecommitdiffstats
path: root/rust/helpers/platform.c
diff options
context:
space:
mode:
authorNicolas Frattaroli <[email protected]>2025-04-23 07:53:32 +0000
committerUlf Hansson <[email protected]>2025-05-14 15:01:42 +0000
commit08f959759e1e6e9c4b898c51a7d387ac3480630b (patch)
treeb5cb1f817967f7df75a70a8cbba8554f83fdbaee /rust/helpers/platform.c
parentLinux 6.15-rc6 (diff)
downloadkernel-08f959759e1e6e9c4b898c51a7d387ac3480630b.tar.gz
kernel-08f959759e1e6e9c4b898c51a7d387ac3480630b.zip
mmc: sdhci-of-dwcmshc: add PD workaround on RK3576
RK3576's power domains have a peculiar design where the PD_NVM power domain, of which the sdhci controller is a part, seemingly does not have idempotent runtime disable/enable. The end effect is that if PD_NVM gets turned off by the generic power domain logic because all the devices depending on it are suspended, then the next time the sdhci device is unsuspended, it'll hang the SoC as soon as it tries accessing the CQHCI registers. RK3576's UFS support needed a new dev_pm_genpd_rpm_always_on function added to the generic power domains API to handle what appears to be a similar hardware design. Use this new function to ask for the same treatment in the sdhci controller by giving rk3576 its own platform data with its own postinit function. The benefit of doing this instead of marking the power domains always on in the power domain core is that we only do this if we know the platform we're running on actually uses the sdhci controller. For others, keeping PD_NVM always on would be a waste, as they won't run into this specific issue. The only other IP in PD_NVM that could be affected is FSPI0. If it gets a mainline driver, it will probably want to do the same thing. Acked-by: Adrian Hunter <[email protected]> Signed-off-by: Nicolas Frattaroli <[email protected]> Reviewed-by: Shawn Lin <[email protected]> Fixes: cfee1b507758 ("pmdomain: rockchip: Add support for RK3576 SoC") Cc: <[email protected]> # v6.15+ Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Ulf Hansson <[email protected]>
Diffstat (limited to 'rust/helpers/platform.c')
0 files changed, 0 insertions, 0 deletions