Hello Sjoerd, On 03/05/2015 09:14 AM, Sjoerd Simons wrote: > When disabling the samsung PWM the output state remains at the level it > was in the end of a pwm cycle. In other words, calling pwm_disable when > at 100% duty will keep the output active, while at all other setting the > output will go/stay inactive. On top of that the samsung PWM settings are > double-buffered, which means the new settings only get applied at the > start of a new PWM cycle. > > This results in a race if the PWM is at 100% duty and a driver calls: > pwm_config (pwm, 0, period); > pwm_disable (pwm); > > In this case the PWMs output will unexpectedly stay active, unless a new > PWM cycle happened to start between the register writes in _config and > _disable. As far as i can tell this is a regression introduced by 3bdf878, > before that a call to pwm_config would call pwm_samsung_enable which, > while heavy-handed, made sure the expected settings were live. > > To resolve this, while not re-introducing the issues 3bdf878 (flickering > as the PWM got reset while in a PWM cycle). Only force an update of the > settings when at 100% duty, which shouldn't have a noticeable effect on > the output but is enough to ensure the behaviour is as expected on > disable. > > Signed-off-by: Sjoerd Simons <sjoerd.simons@xxxxxxxxxxxxxxx> > The patch looks good to me. Reviewed-by: Javier Martinez Canillas <javier.martinez@xxxxxxxxxxxxxxx> Best regards, Javier -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html