Hello Baruch, On Thu, Jan 14, 2021 at 08:57:37PM +0200, Baruch Siach wrote: > Add a comment on why the code never sets on/off registers to zero. > > Reported-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > Analyzed-by: Russell King <linux@xxxxxxxxxxxxxxx> > Signed-off-by: Baruch Siach <baruch@xxxxxxxxxx> > --- > drivers/gpio/gpio-mvebu.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c > index 6b017854ce61..09780944bef9 100644 > --- a/drivers/gpio/gpio-mvebu.c > +++ b/drivers/gpio/gpio-mvebu.c > @@ -706,6 +706,10 @@ static int mvebu_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, > do_div(val, NSEC_PER_SEC); > if (val > UINT_MAX) > return -EINVAL; > + /* > + * Zero on/off values don't work as expected. Experimentation shows > + * that zero value is treated as 2^32. This behavior is not documented. > + */ This is too easy. The right thing to do is to adapt .apply and .get_state to use this new information. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ |
Attachment:
signature.asc
Description: PGP signature