mirror of https://lore.kernel.org/lkml/
 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-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
	linux-kernel@vger.kernel.org, Weiyi Lu <weiyi.lu@mediatek.com>,
	linux-mediatek@lists.infradead.org,
	Eugen Hristev <eugen.hristev@collabora.com>
Subject: Re: [PATCH v2 1/2] clk: mediatek: Introduce need_pm_runtime to mtk_clk_desc
Date: Wed, 3 Jan 2024 13:19:26 +0100	[thread overview]
Message-ID: <eed88b36-ae56-40d3-8588-0d5d75da71a6@collabora.com> (raw)
In-Reply-To: <20240102081402.1226795-1-treapking@chromium.org>

Il 02/01/24 09:12, Pin-yen Lin ha scritto:
> Introduce a new need_pm_runtime variable to mtk_clk_desc to indicate
> this clock needs a runtime PM get on the clock controller during the
> probing stage.
> 
> Signed-off-by: Pin-yen Lin <treapking@chromium.org>

Hello Pin-yen,

We have experienced something similar, but it was really hard to reproduce after
some changes.

In an effort to try to solve this issue (but again, reproducing is really hard),
Eugen has sent a commit in the hope that someone else found a way to easily
reproduce. Please look at [1].

I'm also adding Eugen to the Cc's of this email.

Cheers,
Angelo

[1]: 
https://patchwork.kernel.org/project/linux-pm/patch/20231225133615.78993-1-eugen.hristev@collabora.com/

> ---
> 
> Changes in v2:
> - Fix the order of error handling
> - Update the commit message and add a comment before the runtime PM call
> 
>   drivers/clk/mediatek/clk-mtk.c | 15 +++++++++++++++
>   drivers/clk/mediatek/clk-mtk.h |  2 ++
>   2 files changed, 17 insertions(+)
> 
> diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
> index 2e55368dc4d8..c31e535909c8 100644
> --- a/drivers/clk/mediatek/clk-mtk.c
> +++ b/drivers/clk/mediatek/clk-mtk.c
> @@ -13,6 +13,7 @@
>   #include <linux/of.h>
>   #include <linux/of_address.h>
>   #include <linux/platform_device.h>
> +#include <linux/pm_runtime.h>
>   #include <linux/slab.h>
>   
>   #include "clk-mtk.h"
> @@ -494,6 +495,14 @@ static int __mtk_clk_simple_probe(struct platform_device *pdev,
>   			return IS_ERR(base) ? PTR_ERR(base) : -ENOMEM;
>   	}
>   
> +
> +	if (mcd->need_runtime_pm) {
> +		devm_pm_runtime_enable(&pdev->dev);
> +		r = pm_runtime_resume_and_get(&pdev->dev);
> +		if (r)
> +			return r;
> +	}
> +
>   	/* Calculate how many clk_hw_onecell_data entries to allocate */
>   	num_clks = mcd->num_clks + mcd->num_composite_clks;
>   	num_clks += mcd->num_fixed_clks + mcd->num_factor_clks;
> @@ -574,6 +583,9 @@ static int __mtk_clk_simple_probe(struct platform_device *pdev,
>   			goto unregister_clks;
>   	}
>   
> +	if (mcd->need_runtime_pm)
> +		pm_runtime_put(&pdev->dev);
> +
>   	return r;
>   
>   unregister_clks:
> @@ -604,6 +616,9 @@ static int __mtk_clk_simple_probe(struct platform_device *pdev,
>   free_base:
>   	if (mcd->shared_io && base)
>   		iounmap(base);
> +
> +	if (mcd->need_runtime_pm)
> +		pm_runtime_put(&pdev->dev);
>   	return r;
>   }
>   
> diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h
> index 22096501a60a..c17fe1c2d732 100644
> --- a/drivers/clk/mediatek/clk-mtk.h
> +++ b/drivers/clk/mediatek/clk-mtk.h
> @@ -237,6 +237,8 @@ struct mtk_clk_desc {
>   
>   	int (*clk_notifier_func)(struct device *dev, struct clk *clk);
>   	unsigned int mfg_clk_idx;
> +
> +	bool need_runtime_pm;
>   };
>   
>   int mtk_clk_pdev_probe(struct platform_device *pdev);




  parent reply	other threads:[~2024-01-03 12:19 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-02  8:12 Pin-yen Lin
2024-01-02  8:12 ` [PATCH v2 2/2] clk: mediatek: mt8183: Enable need_runtime_pm on mt8183-mfgcfg Pin-yen Lin
2024-01-03  7:45 ` [PATCH v2 1/2] clk: mediatek: Introduce need_pm_runtime to mtk_clk_desc Chen-Yu Tsai
2024-01-03 12:19 ` AngeloGioacchino Del Regno [this message]
2024-01-03 13:20   ` Eugen Hristev
2024-01-04 14:51     ` Pin-yen Lin
2024-01-05  8:39       ` Pin-yen Lin

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=eed88b36-ae56-40d3-8588-0d5d75da71a6@collabora.com \
    --to=angelogioacchino.delregno@collabora.com \
    --cc=eugen.hristev@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

all inboxes | Powered by JetHome®