2022-04-08 14:12:19

by Uwe Kleine-König

[permalink] [raw]
Subject: Re: [PATCH] pwm: sifive: simplify if-if to if-else

On Fri, Apr 08, 2022 at 04:30:07PM +0800, Wan Jiabing wrote:
> use if and else instead of if(A) and if (!A).
>
> Signed-off-by: Wan Jiabing <[email protected]>
> ---
> drivers/pwm/pwm-sifive.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/pwm/pwm-sifive.c b/drivers/pwm/pwm-sifive.c
> index 253c4a17d255..e6d05a329002 100644
> --- a/drivers/pwm/pwm-sifive.c
> +++ b/drivers/pwm/pwm-sifive.c
> @@ -138,10 +138,9 @@ static int pwm_sifive_enable(struct pwm_chip *chip, bool enable)
> dev_err(ddata->chip.dev, "Enable clk failed\n");
> return ret;
> }
> - }
> -
> - if (!enable)
> + } else {
> clk_disable(ddata->clk);
> + }
>
> return 0;
> }

The patch looks fine. I wonder if it would be sensible to clean up even
more: pwm_sifive_apply() is only a single caller of
pwm_sifive_enable(). If this is optimized to skip the duty_cycle and
period calculation for the state->enabled = false case and just disables
the clock this should still work.

Also I wonder if there is a clk mismatch issue in this driver: .probe
enables the clk and if the PWM is off (i.e. .get_state diagnoses that)
the clock will never be disabled while the driver is bound, will it?

Best regards
Uwe

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


Attachments:
(No filename) (1.40 kB)
signature.asc (499.00 B)
Download all attachments