All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
@ 2023-07-10 14:42 ` Guiting Shen
  0 siblings, 0 replies; 14+ messages in thread
From: Guiting Shen @ 2023-07-10 14:42 UTC (permalink / raw)
  To: claudiu.beznea
  Cc: thierry.reding, u.kleine-koenig, nicolas.ferre,
	alexandre.belloni, linux-arm-kernel, linux-pwm, linux-kernel,
	Guiting Shen

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.

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;
+	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)))
+			continue;
+
+		err = clk_enable(atmel_pwm->clk);
+		if (err) {
+			dev_err(atmel_pwm->chip.dev, "enable clock error\n");
+			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;
+
 	return ret;
 
 unprepare_clk:
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
@ 2023-07-10 14:42 ` Guiting Shen
  0 siblings, 0 replies; 14+ messages in thread
From: Guiting Shen @ 2023-07-10 14:42 UTC (permalink / raw)
  To: claudiu.beznea
  Cc: linux-pwm, alexandre.belloni, Guiting Shen, linux-kernel,
	thierry.reding, u.kleine-koenig, linux-arm-kernel

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.

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;
+	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)))
+			continue;
+
+		err = clk_enable(atmel_pwm->clk);
+		if (err) {
+			dev_err(atmel_pwm->chip.dev, "enable clock error\n");
+			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;
+
 	return ret;
 
 unprepare_clk:
-- 
2.25.1


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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
  2023-07-10 14:42 ` Guiting Shen
@ 2023-07-10 15:00   ` Thierry Reding
  -1 siblings, 0 replies; 14+ messages in thread
From: Thierry Reding @ 2023-07-10 15:00 UTC (permalink / raw)
  To: Guiting Shen
  Cc: claudiu.beznea, u.kleine-koenig, nicolas.ferre,
	alexandre.belloni, linux-arm-kernel, linux-pwm, linux-kernel

[-- Attachment #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 #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
@ 2023-07-10 15:00   ` Thierry Reding
  0 siblings, 0 replies; 14+ messages in thread
From: Thierry Reding @ 2023-07-10 15:00 UTC (permalink / raw)
  To: Guiting Shen
  Cc: linux-pwm, alexandre.belloni, linux-kernel, u.kleine-koenig,
	claudiu.beznea, linux-arm-kernel


[-- 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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
  2023-07-10 15:00   ` Thierry Reding
@ 2023-07-10 19:15     ` Uwe Kleine-König
  -1 siblings, 0 replies; 14+ messages in thread
From: Uwe Kleine-König @ 2023-07-10 19:15 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Guiting Shen, claudiu.beznea, nicolas.ferre, alexandre.belloni,
	linux-arm-kernel, linux-pwm, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 766 bytes --]

Hello,

On Mon, Jul 10, 2023 at 05:00:45PM +0200, Thierry Reding wrote:
> On Mon, Jul 10, 2023 at 10:42:14PM +0800, Guiting Shen wrote:
> > +		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);

Or (IMHO) still better:

 	dev_err(atmel_pwm->chip.dev, "failed to enable clock: %pe\n", ERR_PTR(err));

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
@ 2023-07-10 19:15     ` Uwe Kleine-König
  0 siblings, 0 replies; 14+ messages in thread
From: Uwe Kleine-König @ 2023-07-10 19:15 UTC (permalink / raw)
  To: Thierry Reding
  Cc: linux-pwm, alexandre.belloni, Guiting Shen, linux-kernel,
	claudiu.beznea, linux-arm-kernel


[-- Attachment #1.1: Type: text/plain, Size: 766 bytes --]

Hello,

On Mon, Jul 10, 2023 at 05:00:45PM +0200, Thierry Reding wrote:
> On Mon, Jul 10, 2023 at 10:42:14PM +0800, Guiting Shen wrote:
> > +		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);

Or (IMHO) still better:

 	dev_err(atmel_pwm->chip.dev, "failed to enable clock: %pe\n", ERR_PTR(err));

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
  2023-07-10 15:00   ` Thierry Reding
@ 2023-07-11  2:30     ` Guiting Shen
  -1 siblings, 0 replies; 14+ messages in thread
From: Guiting Shen @ 2023-07-11  2:30 UTC (permalink / raw)
  To: Thierry Reding
  Cc: claudiu.beznea, u.kleine-koenig, nicolas.ferre,
	alexandre.belloni, linux-arm-kernel, linux-pwm, linux-kernel

On Mon, Jul 10, 2023 at 23:00:45PM GMT+8, Thierry Reding wrote:
> 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.

Got it, Thank you. How about this commit message:

The driver would never call clk_enable() if the PWM channel was already
enabled in bootloader which lead to dump the warning message "the pwm
clock already disabled" when turn off the PWM channel.

Add atmel_pwm_enable_clk_if_on() in probe function to enable clk if the
PWM channel was already enabled in bootloader.

>>
>> 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.

Ok, I will correct it in v2 patch.

>> +	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.

Sorry, I will call this before adding the PWM chip in v2 patch.

>> +
>>  	return ret;
>>  
>>  unprepare_clk:
>> -- 
>> 2.25.1
>>

-- 
Regards,
Guiting Shen


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
@ 2023-07-11  2:30     ` Guiting Shen
  0 siblings, 0 replies; 14+ messages in thread
From: Guiting Shen @ 2023-07-11  2:30 UTC (permalink / raw)
  To: Thierry Reding
  Cc: linux-pwm, alexandre.belloni, linux-kernel, u.kleine-koenig,
	claudiu.beznea, linux-arm-kernel

On Mon, Jul 10, 2023 at 23:00:45PM GMT+8, Thierry Reding wrote:
> 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.

Got it, Thank you. How about this commit message:

The driver would never call clk_enable() if the PWM channel was already
enabled in bootloader which lead to dump the warning message "the pwm
clock already disabled" when turn off the PWM channel.

Add atmel_pwm_enable_clk_if_on() in probe function to enable clk if the
PWM channel was already enabled in bootloader.

>>
>> 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.

Ok, I will correct it in v2 patch.

>> +	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.

Sorry, I will call this before adding the PWM chip in v2 patch.

>> +
>>  	return ret;
>>  
>>  unprepare_clk:
>> -- 
>> 2.25.1
>>

-- 
Regards,
Guiting Shen


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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
  2023-07-10 19:15     ` Uwe Kleine-König
@ 2023-07-11  2:37       ` Guiting Shen
  -1 siblings, 0 replies; 14+ messages in thread
From: Guiting Shen @ 2023-07-11  2:37 UTC (permalink / raw)
  To: Uwe Kleine-König, Thierry Reding
  Cc: claudiu.beznea, nicolas.ferre, alexandre.belloni,
	linux-arm-kernel, linux-pwm, linux-kernel

On Tue, Jul 11, 2023 at 03:15:50AM GMT+8, Uwe Kleine-König wrote:
> Hello,
> 
> On Mon, Jul 10, 2023 at 05:00:45PM +0200, Thierry Reding wrote:
>> On Mon, Jul 10, 2023 at 10:42:14PM +0800, Guiting Shen wrote:
>>> +		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);
> 
> Or (IMHO) still better:
> 
>  	dev_err(atmel_pwm->chip.dev, "failed to enable clock: %pe\n", ERR_PTR(err));
> 

Ok, I will add it in v2 patch.

I also found that the clk_enable() of atmel_pwm_apply() do not include
the error code in the error message. Do I also add this in v2 patch or
in separate patch?

-- 
Regards,
Guiting Shen


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
@ 2023-07-11  2:37       ` Guiting Shen
  0 siblings, 0 replies; 14+ messages in thread
From: Guiting Shen @ 2023-07-11  2:37 UTC (permalink / raw)
  To: Uwe Kleine-König, Thierry Reding
  Cc: linux-pwm, alexandre.belloni, linux-kernel, claudiu.beznea,
	linux-arm-kernel

On Tue, Jul 11, 2023 at 03:15:50AM GMT+8, Uwe Kleine-König wrote:
> Hello,
> 
> On Mon, Jul 10, 2023 at 05:00:45PM +0200, Thierry Reding wrote:
>> On Mon, Jul 10, 2023 at 10:42:14PM +0800, Guiting Shen wrote:
>>> +		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);
> 
> Or (IMHO) still better:
> 
>  	dev_err(atmel_pwm->chip.dev, "failed to enable clock: %pe\n", ERR_PTR(err));
> 

Ok, I will add it in v2 patch.

I also found that the clk_enable() of atmel_pwm_apply() do not include
the error code in the error message. Do I also add this in v2 patch or
in separate patch?

-- 
Regards,
Guiting Shen


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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
  2023-07-11  2:37       ` Guiting Shen
@ 2023-07-11  7:30         ` Uwe Kleine-König
  -1 siblings, 0 replies; 14+ messages in thread
From: Uwe Kleine-König @ 2023-07-11  7:30 UTC (permalink / raw)
  To: Guiting Shen
  Cc: Thierry Reding, claudiu.beznea, nicolas.ferre, alexandre.belloni,
	linux-arm-kernel, linux-pwm, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1205 bytes --]

On Tue, Jul 11, 2023 at 10:37:56AM +0800, Guiting Shen wrote:
> On Tue, Jul 11, 2023 at 03:15:50AM GMT+8, Uwe Kleine-König wrote:
> > Hello,
> > 
> > On Mon, Jul 10, 2023 at 05:00:45PM +0200, Thierry Reding wrote:
> >> On Mon, Jul 10, 2023 at 10:42:14PM +0800, Guiting Shen wrote:
> >>> +		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);
> > 
> > Or (IMHO) still better:
> > 
> >  	dev_err(atmel_pwm->chip.dev, "failed to enable clock: %pe\n", ERR_PTR(err));
> > 
> 
> Ok, I will add it in v2 patch.
> 
> I also found that the clk_enable() of atmel_pwm_apply() do not include
> the error code in the error message. Do I also add this in v2 patch or
> in separate patch?

Sounds to me like a separate patch.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
@ 2023-07-11  7:30         ` Uwe Kleine-König
  0 siblings, 0 replies; 14+ messages in thread
From: Uwe Kleine-König @ 2023-07-11  7:30 UTC (permalink / raw)
  To: Guiting Shen
  Cc: linux-pwm, alexandre.belloni, linux-kernel, Thierry Reding,
	claudiu.beznea, linux-arm-kernel


[-- Attachment #1.1: Type: text/plain, Size: 1205 bytes --]

On Tue, Jul 11, 2023 at 10:37:56AM +0800, Guiting Shen wrote:
> On Tue, Jul 11, 2023 at 03:15:50AM GMT+8, Uwe Kleine-König wrote:
> > Hello,
> > 
> > On Mon, Jul 10, 2023 at 05:00:45PM +0200, Thierry Reding wrote:
> >> On Mon, Jul 10, 2023 at 10:42:14PM +0800, Guiting Shen wrote:
> >>> +		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);
> > 
> > Or (IMHO) still better:
> > 
> >  	dev_err(atmel_pwm->chip.dev, "failed to enable clock: %pe\n", ERR_PTR(err));
> > 
> 
> Ok, I will add it in v2 patch.
> 
> I also found that the clk_enable() of atmel_pwm_apply() do not include
> the error code in the error message. Do I also add this in v2 patch or
> in separate patch?

Sounds to me like a separate patch.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
  2023-07-11  2:30     ` Guiting Shen
@ 2023-07-11 15:45       ` Thierry Reding
  -1 siblings, 0 replies; 14+ messages in thread
From: Thierry Reding @ 2023-07-11 15:45 UTC (permalink / raw)
  To: Guiting Shen
  Cc: claudiu.beznea, u.kleine-koenig, nicolas.ferre,
	alexandre.belloni, linux-arm-kernel, linux-pwm, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1298 bytes --]

On Tue, Jul 11, 2023 at 10:30:54AM +0800, Guiting Shen wrote:
> On Mon, Jul 10, 2023 at 23:00:45PM GMT+8, Thierry Reding wrote:
> > 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.
> 
> Got it, Thank you. How about this commit message:
> 
> The driver would never call clk_enable() if the PWM channel was already
> enabled in bootloader which lead to dump the warning message "the pwm
> clock already disabled" when turn off the PWM channel.
> 
> Add atmel_pwm_enable_clk_if_on() in probe function to enable clk if the
> PWM channel was already enabled in bootloader.

s/clk/clock/ but otherwise looks good.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader
@ 2023-07-11 15:45       ` Thierry Reding
  0 siblings, 0 replies; 14+ messages in thread
From: Thierry Reding @ 2023-07-11 15:45 UTC (permalink / raw)
  To: Guiting Shen
  Cc: linux-pwm, alexandre.belloni, linux-kernel, u.kleine-koenig,
	claudiu.beznea, linux-arm-kernel


[-- Attachment #1.1: Type: text/plain, Size: 1298 bytes --]

On Tue, Jul 11, 2023 at 10:30:54AM +0800, Guiting Shen wrote:
> On Mon, Jul 10, 2023 at 23:00:45PM GMT+8, Thierry Reding wrote:
> > 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.
> 
> Got it, Thank you. How about this commit message:
> 
> The driver would never call clk_enable() if the PWM channel was already
> enabled in bootloader which lead to dump the warning message "the pwm
> clock already disabled" when turn off the PWM channel.
> 
> Add atmel_pwm_enable_clk_if_on() in probe function to enable clk if the
> PWM channel was already enabled in bootloader.

s/clk/clock/ but otherwise looks good.

Thierry

[-- 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

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-07-11 15:46 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-10 14:42 [PATCH] pwm: atmel: enable clk when pwm already enabled in bootloader Guiting Shen
2023-07-10 14:42 ` Guiting Shen
2023-07-10 15:00 ` Thierry Reding
2023-07-10 15:00   ` Thierry Reding
2023-07-10 19:15   ` Uwe Kleine-König
2023-07-10 19:15     ` Uwe Kleine-König
2023-07-11  2:37     ` Guiting Shen
2023-07-11  2:37       ` Guiting Shen
2023-07-11  7:30       ` Uwe Kleine-König
2023-07-11  7:30         ` Uwe Kleine-König
2023-07-11  2:30   ` Guiting Shen
2023-07-11  2:30     ` Guiting Shen
2023-07-11 15:45     ` Thierry Reding
2023-07-11 15:45       ` Thierry Reding

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.