• Pin-yen Lin's avatar
    clk: mediatek: mt8183: Only enable runtime PM on mt8183-mfgcfg · 878e845d
    Pin-yen Lin authored
    Commit 2f7b1d8b ("clk: mediatek: Do a runtime PM get on controllers
    during probe") enabled runtime PM for all mediatek clock controllers,
    but this introduced an issue on the resume path.
    
    If a device resumes earlier than the clock controller and calls
    clk_prepare() when runtime PM is enabled on the controller, it will end
    up calling clk_pm_runtime_get(). But the subsequent
    pm_runtime_resume_and_get() call will fail because the runtime PM is
    temporarily disabled during suspend.
    
    To workaround this, introduce a need_runtime_pm flag and only enable it
    on mt8183-mfgcfg, which is the driver that observed deadlock previously.
    Hopefully mt8183-cfgcfg won't run into the issue at the resume stage
    because the GPU should have stopped rendering before the system calls
    suspend.
    
    Fixes: 2f7b1d8b ("clk: mediatek: Do a runtime PM get on controllers during probe")
    Signed-off-by: default avatarPin-yen Lin <treapking@chromium.org>
    Link: https://lore.kernel.org/r/20240613120357.1043342-1-treapking@chromium.orgSigned-off-by: default avatarStephen Boyd <sboyd@kernel.org>
    878e845d
clk-mtk.c 15.5 KB