From: Thierry Reding <thierry.reding@gmail.com>
To: Guiting Shen <aarongt.shen@gmail.com>
Cc: linux-pwm@vger.kernel.org, alexandre.belloni@bootlin.com,
linux-kernel@vger.kernel.org, u.kleine-koenig@pengutronix.de,
claudiu.beznea@microchip.com,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
Date: Mon, 10 Jul 2023 17:00:45 +0200 [thread overview]
Message-ID: <ZKwdHUWzXujfVk0R@orome> (raw)
In-Reply-To: <20230710144214.63343-1-aarongt.shen@gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 2706 bytes --]
On Mon, Jul 10, 2023 at 10:42:14PM +0800, Guiting Shen wrote:
> The driver would never call clk_eanble() if the pwm channel already
> enable in bootloader which lead to dump the warning message of "the pwm
> clk already disabled" when poweroff the pwm channel.
>
> Add atmel_pwm_enanle_clk_if_on() in probe function to enable clk if the
> pwm channel already enabled in bootloader.
You've got multiple spelling errors in the commit message. Also, PWM is
an abbreviation and so should be all uppercase (except for the subject
prefix). I also prefer spelling out terms like "clock" in the commit
message. This is text that is supposed to be readable. It's not code.
>
> Signed-off-by: Guiting Shen <aarongt.shen@gmail.com>
> ---
> drivers/pwm/pwm-atmel.c | 27 +++++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/drivers/pwm/pwm-atmel.c b/drivers/pwm/pwm-atmel.c
> index cdbc23649032..385f12eb604c 100644
> --- a/drivers/pwm/pwm-atmel.c
> +++ b/drivers/pwm/pwm-atmel.c
> @@ -464,6 +464,29 @@ static const struct of_device_id atmel_pwm_dt_ids[] = {
> };
> MODULE_DEVICE_TABLE(of, atmel_pwm_dt_ids);
>
> +static int atmel_pwm_enable_clk_if_on(struct atmel_pwm_chip *atmel_pwm)
> +{
> + u32 sr, i;
Maybe make i an unsigned int since you use it to iterate over npwm,
which is unsigned int as well.
> + int err;
> +
> + sr = atmel_pwm_readl(atmel_pwm, PWM_SR);
> + if (!sr)
> + return 0;
> +
> + for (i = 0; i < atmel_pwm->chip.npwm; i++) {
> + if (!(sr & (1 << i)))
We would usually write this as BIT(i), but I see that the rest of the
driver uses this notation, so it's fine to keep this as-is.
> + continue;
> +
> + err = clk_enable(atmel_pwm->clk);
> + if (err) {
> + dev_err(atmel_pwm->chip.dev, "enable clock error\n");
Might be worth to include the error code in the error message to make it
easier to diagnose where the issue is. Something like:
dev_err(atmel_pwm->chip.dev, "failed to enable clock: %d\n", err);
> + return err;
> + }
> + }
> +
> + return 0;
> +}
> +
> static int atmel_pwm_probe(struct platform_device *pdev)
> {
> struct atmel_pwm_chip *atmel_pwm;
> @@ -504,6 +527,10 @@ static int atmel_pwm_probe(struct platform_device *pdev)
>
> platform_set_drvdata(pdev, atmel_pwm);
>
> + ret = atmel_pwm_enable_clk_if_on(atmel_pwm);
> + if (ret < 0)
> + goto unprepare_clk;
This is not correct. You call this after pwmchip_add(), so you need to
make sure to also remove the PWM chip on error. Preferably, though, you
should call this before adding the PWM chip in the first place.
> +
> return ret;
>
> unprepare_clk:
> --
> 2.25.1
>
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-07-10 15:01 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-10 14:42 [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader Guiting Shen
2023-07-10 15:00 ` Thierry Reding [this message]
2023-07-10 19:15 ` Uwe Kleine-König
2023-07-11 2:37 ` Guiting Shen
2023-07-11 7:30 ` Uwe Kleine-König
2023-07-11 2:30 ` Guiting Shen
2023-07-11 15:45 ` Thierry Reding
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=ZKwdHUWzXujfVk0R@orome \
--to=thierry.reding@gmail.com \
--cc=aarongt.shen@gmail.com \
--cc=alexandre.belloni@bootlin.com \
--cc=claudiu.beznea@microchip.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=u.kleine-koenig@pengutronix.de \
/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