[PATCH 7/7] pwm: sifive: Shut down hardware only after pwmchip_remove() completed

Emil Renner Berthing emil.renner.berthing at canonical.com
Fri Jul 22 10:45:32 PDT 2022


On Thu, 21 Jul 2022 at 12:32, Uwe Kleine-König
<u.kleine-koenig at pengutronix.de> wrote:
> The PWMs are expected to be functional until pwmchip_remove() is called.
> So disable the clks only afterwards.
>
> Fixes: 9e37a53eb051 ("pwm: sifive: Add a driver for SiFive SoC PWM")
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>

Hi Uwe,

You didn't send a cover letter so unsure which mail to respond to, but
I tested this series with

https://lore.kernel.org/linux-riscv/20220705210143.315151-1-emil.renner.berthing@canonical.com/

..and everything keeps working, so

Tested-by: Emil Renner Berhing <emil.renner.berthing at canonical.com>

/Emil
> ---
>  drivers/pwm/pwm-sifive.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pwm/pwm-sifive.c b/drivers/pwm/pwm-sifive.c
> index da40ade0ebdf..2d4fa5e5fdd4 100644
> --- a/drivers/pwm/pwm-sifive.c
> +++ b/drivers/pwm/pwm-sifive.c
> @@ -308,6 +308,9 @@ static int pwm_sifive_remove(struct platform_device *dev)
>         struct pwm_device *pwm;
>         int ch;
>
> +       pwmchip_remove(&ddata->chip);
> +       clk_notifier_unregister(ddata->clk, &ddata->notifier);
> +
>         for (ch = 0; ch < ddata->chip.npwm; ch++) {
>                 pwm = &ddata->chip.pwms[ch];
>                 if (pwm->state.enabled)
> @@ -315,8 +318,6 @@ static int pwm_sifive_remove(struct platform_device *dev)
>         }
>
>         clk_unprepare(ddata->clk);
> -       pwmchip_remove(&ddata->chip);
> -       clk_notifier_unregister(ddata->clk, &ddata->notifier);
>
>         return 0;
>  }
> --
> 2.36.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv



More information about the linux-riscv mailing list