Messages in this thread | | | Date | Sun, 10 Feb 2019 17:39:30 +0100 | From | Pavel Machek <> | Subject | Re: [PATCH] leds: pwm: fix max_brightness works abnormal when active_low |
| |
On Sun 2019-02-10 20:37:09, Yisheng Xie wrote: > When leds-pwm is active_low, smaller number of duty kept in led_dat > means less brighness, so we should disable pwm when led_dat->duty is > equal to period instead of zero, which means max_brightness.
Will all pwm drivers leave the signal 'low' when pwm is disabled? Not tristate or something?
Plus please use temporary variable. This is really hard to read.
Or maybe
led_dat->active_low * new_duty == led_dat->period
? Pavel
> Signed-off-by: Yisheng Xie <ysxie@foxmail.com> > --- > drivers/leds/leds-pwm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/leds/leds-pwm.c b/drivers/leds/leds-pwm.c > index df80c89..07fb772 100644 > --- a/drivers/leds/leds-pwm.c > +++ b/drivers/leds/leds-pwm.c > @@ -41,7 +41,7 @@ static void __led_pwm_set(struct led_pwm_data *led_dat) > > pwm_config(led_dat->pwm, new_duty, led_dat->period); > > - if (new_duty == 0) > + if (led_dat->active_low ? new_duty == led_dat->period : new_duty == 0) > pwm_disable(led_dat->pwm); > else > pwm_enable(led_dat->pwm);
-- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html [unhandled content-type:application/pgp-signature] | |