Message ID | 20231019200658.1754190-10-u.kleine-koenig@pengutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | pwm: stm32: Cleanups, get_state() and proper hw take over | expand |
On 10/19/23 22:07, Uwe Kleine-König wrote: > From: Philipp Zabel <p.zabel@pengutronix.de> > > Use hweight32() to count the CCxE bits in stm32_pwm_detect_channels(). > Since the return value is assigned to chip.npwm, change it to unsigned > int as well. > > Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > --- > drivers/pwm/pwm-stm32.c | 17 ++--------------- > 1 file changed, 2 insertions(+), 15 deletions(-) Hi Uwe, You can add my: Reviewed-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com> Thanks, Fabrice > > diff --git a/drivers/pwm/pwm-stm32.c b/drivers/pwm/pwm-stm32.c > index 009f9c1a5eca..cc6cae07c02c 100644 > --- a/drivers/pwm/pwm-stm32.c > +++ b/drivers/pwm/pwm-stm32.c > @@ -563,10 +563,9 @@ static void stm32_pwm_detect_complementary(struct stm32_pwm *priv) > priv->have_complementary_output = (ccer != 0); > } > > -static int stm32_pwm_detect_channels(struct stm32_pwm *priv) > +static unsigned int stm32_pwm_detect_channels(struct stm32_pwm *priv) > { > u32 ccer; > - int npwm = 0; > > /* > * If channels enable bits don't exist writing 1 will have no > @@ -576,19 +575,7 @@ static int stm32_pwm_detect_channels(struct stm32_pwm *priv) > regmap_read(priv->regmap, TIM_CCER, &ccer); > regmap_clear_bits(priv->regmap, TIM_CCER, TIM_CCER_CCXE); > > - if (ccer & TIM_CCER_CC1E) > - npwm++; > - > - if (ccer & TIM_CCER_CC2E) > - npwm++; > - > - if (ccer & TIM_CCER_CC3E) > - npwm++; > - > - if (ccer & TIM_CCER_CC4E) > - npwm++; > - > - return npwm; > + return hweight32(ccer & TIM_CCER_CCXE); > } > > static int stm32_pwm_probe(struct platform_device *pdev)
diff --git a/drivers/pwm/pwm-stm32.c b/drivers/pwm/pwm-stm32.c index 009f9c1a5eca..cc6cae07c02c 100644 --- a/drivers/pwm/pwm-stm32.c +++ b/drivers/pwm/pwm-stm32.c @@ -563,10 +563,9 @@ static void stm32_pwm_detect_complementary(struct stm32_pwm *priv) priv->have_complementary_output = (ccer != 0); } -static int stm32_pwm_detect_channels(struct stm32_pwm *priv) +static unsigned int stm32_pwm_detect_channels(struct stm32_pwm *priv) { u32 ccer; - int npwm = 0; /* * If channels enable bits don't exist writing 1 will have no @@ -576,19 +575,7 @@ static int stm32_pwm_detect_channels(struct stm32_pwm *priv) regmap_read(priv->regmap, TIM_CCER, &ccer); regmap_clear_bits(priv->regmap, TIM_CCER, TIM_CCER_CCXE); - if (ccer & TIM_CCER_CC1E) - npwm++; - - if (ccer & TIM_CCER_CC2E) - npwm++; - - if (ccer & TIM_CCER_CC3E) - npwm++; - - if (ccer & TIM_CCER_CC4E) - npwm++; - - return npwm; + return hweight32(ccer & TIM_CCER_CCXE); } static int stm32_pwm_probe(struct platform_device *pdev)