lkml.org 
[lkml]   [2024]   [Jan]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 2/2] clk: mediatek: mt8183: Enable need_runtime_pm on mt8183-mfgcfg
    Date
    mt8183-mfgcfg has a mutual dependency with genpd during the probing
    stage, so enable need_runtim_pm to prevent a deadlock in the following
    call stack:

    CPU0: genpd_lock --> clk_prepare_lock
    genpd_power_off_work_fn()
    genpd_lock()
    generic_pm_domain::power_off()
    clk_unprepare()
    clk_prepare_lock()

    CPU1: clk_prepare_lock --> genpd_lock
    clk_register()
    __clk_core_init()
    clk_prepare_lock()
    clk_pm_runtime_get()
    genpd_lock()

    Do a runtime PM get at the probe function to make sure clk_register()
    won't acquire the genpd lock.

    Fixes: acddfc2c261b ("clk: mediatek: Add MT8183 clock support")
    Signed-off-by: Pin-yen Lin <treapking@chromium.org>
    ---

    (no changes since v1)

    drivers/clk/mediatek/clk-mt8183-mfgcfg.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/drivers/clk/mediatek/clk-mt8183-mfgcfg.c b/drivers/clk/mediatek/clk-mt8183-mfgcfg.c
    index ba504e19d420..62d876e150e1 100644
    --- a/drivers/clk/mediatek/clk-mt8183-mfgcfg.c
    +++ b/drivers/clk/mediatek/clk-mt8183-mfgcfg.c
    @@ -29,6 +29,7 @@ static const struct mtk_gate mfg_clks[] = {
    static const struct mtk_clk_desc mfg_desc = {
    .clks = mfg_clks,
    .num_clks = ARRAY_SIZE(mfg_clks),
    + .need_runtime_pm = true,
    };

    static const struct of_device_id of_match_clk_mt8183_mfg[] = {
    --
    2.43.0.472.g3155946c3a-goog

    \
     
     \ /
      Last update: 2024-01-02 09:14    [W:4.407 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site