From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: Chen-Yu Tsai <wenst@chromium.org>, Pin-yen Lin <treapking@chromium.org>
Cc: Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
Weiyi Lu <weiyi.lu@mediatek.com>,
linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
linux-mediatek@lists.infradead.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 2/2] clk: mediatek: mt8183: Enable need_runtime_pm on mt8183-mfgcfg
Date: Mon, 26 Feb 2024 12:35:11 +0100 [thread overview]
Message-ID: <a22b7703-2ee1-47dd-8933-4a72e64e9fe0@collabora.com> (raw)
In-Reply-To: <CAGXv+5GoAauw77wVXx6SXsSma9zP_A1vXLRo=GH2ptjvY=kLgA@mail.gmail.com>
Il 23/02/24 05:43, Chen-Yu Tsai ha scritto:
> On Mon, Jan 8, 2024 at 4:18 PM Pin-yen Lin <treapking@chromium.org> wrote:
>>
>> 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>
>
> Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
>
> Note that this compliments a patch [1] adding the power domain for the mfgcfg
> clock controller node, which has been floating around for almost 3 years.
>
...but why does this happen *only* on MT8183 and not on any other MediaTek SoC?
I understand what you're trying to solve here, but if we explore a bit more, we
can maybe come to the conclusion that we don't need to add this flag, and perhaps
just enable PM runtime as regular flow for all clock controllers.
That would also be cleaner, to some extent.
Cheers,
Angelo
> [1] https://lore.kernel.org/linux-mediatek/20210414073108.3899082-1-ikjn@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
>>
next prev parent reply other threads:[~2024-02-26 11:35 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-08 8:18 [PATCH v3 1/2] clk: mediatek: Introduce need_pm_runtime to mtk_clk_desc Pin-yen Lin
2024-01-08 8:18 ` [PATCH v3 2/2] clk: mediatek: mt8183: Enable need_runtime_pm on mt8183-mfgcfg Pin-yen Lin
2024-02-23 4:43 ` Chen-Yu Tsai
2024-02-26 11:35 ` AngeloGioacchino Del Regno [this message]
2024-02-23 4:27 ` [PATCH v3 1/2] clk: mediatek: Introduce need_pm_runtime to mtk_clk_desc Chen-Yu Tsai
2024-02-26 11:16 ` AngeloGioacchino Del Regno
2024-02-29 7:17 ` Chen-Yu Tsai
2024-02-29 9:45 ` AngeloGioacchino Del Regno
2024-02-29 10:34 ` Chen-Yu Tsai
2024-02-29 10:36 ` AngeloGioacchino Del Regno
2024-03-07 11:10 ` Pin-yen Lin
2024-03-07 11:22 ` AngeloGioacchino Del Regno
2024-03-12 9:35 ` Pin-yen Lin
2024-03-12 9:45 ` AngeloGioacchino Del Regno
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a22b7703-2ee1-47dd-8933-4a72e64e9fe0@collabora.com \
--to=angelogioacchino.delregno@collabora.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=mturquette@baylibre.com \
--cc=sboyd@kernel.org \
--cc=treapking@chromium.org \
--cc=weiyi.lu@mediatek.com \
--cc=wenst@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox