All of lore.kernel.org
 help / color / mirror / Atom feed
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: Pin-yen Lin <treapking@chromium.org>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>
Cc: "Chen-Yu Tsai" <wenst@chromium.org>,
	linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Weiyi Lu" <weiyi.lu@mediatek.com>,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org,
	"Bosi Zhang" <u201911157@hust.edu.cn>,
	"Nicolas Boichat" <drinkcat@chromium.org>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Subject: Re: [PATCH v4] clk: mediatek: Do a runtime PM get on controllers during probe
Date: Tue, 12 Mar 2024 15:41:46 +0100	[thread overview]
Message-ID: <3ec20339-b176-4d39-8cbe-4577a782aeec@collabora.com> (raw)
In-Reply-To: <20240312115249.3341654-1-treapking@chromium.org>

Il 12/03/24 12:51, Pin-yen Lin ha scritto:
> mt8183-mfgcfg has a mutual dependency with genpd during the probing
> stage, which leads to 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. Instead of only modifying mt8183-mfgcfg,
> do this on all mediatek clock controller probings because we don't
> believe this would cause any regression.
> 
> Verified on MT8183 and MT8192 Chromebooks.
> 
> Fixes: acddfc2c261b ("clk: mediatek: Add MT8183 clock support")
> Signed-off-by: Pin-yen Lin <treapking@chromium.org>
> 

MT8195 Cherry Tomato - no issues as well.

Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>


WARNING: multiple messages have this Message-ID (diff)
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: Pin-yen Lin <treapking@chromium.org>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>
Cc: "Chen-Yu Tsai" <wenst@chromium.org>,
	linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Weiyi Lu" <weiyi.lu@mediatek.com>,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org,
	"Bosi Zhang" <u201911157@hust.edu.cn>,
	"Nicolas Boichat" <drinkcat@chromium.org>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Subject: Re: [PATCH v4] clk: mediatek: Do a runtime PM get on controllers during probe
Date: Tue, 12 Mar 2024 15:41:46 +0100	[thread overview]
Message-ID: <3ec20339-b176-4d39-8cbe-4577a782aeec@collabora.com> (raw)
In-Reply-To: <20240312115249.3341654-1-treapking@chromium.org>

Il 12/03/24 12:51, Pin-yen Lin ha scritto:
> mt8183-mfgcfg has a mutual dependency with genpd during the probing
> stage, which leads to 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. Instead of only modifying mt8183-mfgcfg,
> do this on all mediatek clock controller probings because we don't
> believe this would cause any regression.
> 
> Verified on MT8183 and MT8192 Chromebooks.
> 
> Fixes: acddfc2c261b ("clk: mediatek: Add MT8183 clock support")
> Signed-off-by: Pin-yen Lin <treapking@chromium.org>
> 

MT8195 Cherry Tomato - no issues as well.

Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2024-03-12 14:41 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-12 11:51 [PATCH v4] clk: mediatek: Do a runtime PM get on controllers during probe Pin-yen Lin
2024-03-12 11:51 ` Pin-yen Lin
2024-03-12 14:41 ` AngeloGioacchino Del Regno [this message]
2024-03-12 14:41   ` AngeloGioacchino Del Regno
2024-04-11  3:48 ` Stephen Boyd
2024-04-11  3:48   ` Stephen Boyd

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=3ec20339-b176-4d39-8cbe-4577a782aeec@collabora.com \
    --to=angelogioacchino.delregno@collabora.com \
    --cc=drinkcat@chromium.org \
    --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=u.kleine-koenig@pengutronix.de \
    --cc=u201911157@hust.edu.cn \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.