Message ID | 20231109104748.2746839-1-m.szyprowski@samsung.com (mailing list archive) |
---|---|
State | Accepted |
Commit | a2da597ff6f5504fc99163de4f15b7f3a129894e |
Headers | show |
Series | [1/2] pwm: samsung: Fix broken resume after putting per-channel data into driver data | expand |
On Thu, Nov 9, 2023 at 4:48 AM Marek Szyprowski <m.szyprowski@samsung.com> wrote: > > PWMF_EXPORTED is misleadingly used as a bit numer in the pwm->flags, not > as a flag value, so the proper test for it must use test_bit() helper. > This fixes broken resume after putting per-channel data into driver data. > > Fixes: e3fe982b2e4e ("pwm: samsung: Put per-channel data into driver data") > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> > --- Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> > drivers/pwm/pwm-samsung.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/pwm/pwm-samsung.c b/drivers/pwm/pwm-samsung.c > index 568491ed6829..69d9f4577b34 100644 > --- a/drivers/pwm/pwm-samsung.c > +++ b/drivers/pwm/pwm-samsung.c > @@ -631,7 +631,7 @@ static int pwm_samsung_resume(struct device *dev) > struct pwm_device *pwm = &chip->pwms[i]; > struct samsung_pwm_channel *chan = &our_chip->channel[i]; > > - if (!(pwm->flags & PWMF_REQUESTED)) > + if (!test_bit(PWMF_REQUESTED, &pwm->flags)) > continue; > > if (our_chip->variant.output_mask & BIT(i)) > -- > 2.34.1 >
Hello, On Thu, Nov 09, 2023 at 11:47:47AM +0100, Marek Szyprowski wrote: > PWMF_EXPORTED is misleadingly used as a bit numer in the pwm->flags, not > as a flag value, so the proper test for it must use test_bit() helper. > This fixes broken resume after putting per-channel data into driver data. > > Fixes: e3fe982b2e4e ("pwm: samsung: Put per-channel data into driver data") > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> > --- > drivers/pwm/pwm-samsung.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/pwm/pwm-samsung.c b/drivers/pwm/pwm-samsung.c > index 568491ed6829..69d9f4577b34 100644 > --- a/drivers/pwm/pwm-samsung.c > +++ b/drivers/pwm/pwm-samsung.c > @@ -631,7 +631,7 @@ static int pwm_samsung_resume(struct device *dev) > struct pwm_device *pwm = &chip->pwms[i]; > struct samsung_pwm_channel *chan = &our_chip->channel[i]; > > - if (!(pwm->flags & PWMF_REQUESTED)) > + if (!test_bit(PWMF_REQUESTED, &pwm->flags)) > continue; This is prior art: https://lore.kernel.org/linux-pwm/e031db45-add0-4da7-97fa-dee95ee936ad@moroto.mountain/ unfortunately this was missed to be included in Thierry's PR for v6.7-rc1 :-\ Best regards Uwe
diff --git a/drivers/pwm/pwm-samsung.c b/drivers/pwm/pwm-samsung.c index 568491ed6829..69d9f4577b34 100644 --- a/drivers/pwm/pwm-samsung.c +++ b/drivers/pwm/pwm-samsung.c @@ -631,7 +631,7 @@ static int pwm_samsung_resume(struct device *dev) struct pwm_device *pwm = &chip->pwms[i]; struct samsung_pwm_channel *chan = &our_chip->channel[i]; - if (!(pwm->flags & PWMF_REQUESTED)) + if (!test_bit(PWMF_REQUESTED, &pwm->flags)) continue; if (our_chip->variant.output_mask & BIT(i))
PWMF_EXPORTED is misleadingly used as a bit numer in the pwm->flags, not as a flag value, so the proper test for it must use test_bit() helper. This fixes broken resume after putting per-channel data into driver data. Fixes: e3fe982b2e4e ("pwm: samsung: Put per-channel data into driver data") Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> --- drivers/pwm/pwm-samsung.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)