On Wed, Jun 14, 2017 at 6:16 AM, Tony Lindgren <tony@xxxxxxxxxxx> wrote: > * Adam Ford <aford173@xxxxxxxxx> [170614 03:53]: >> I have a DM3730 with the dmtimer (timer10) controlling the pwm >> backlight for my LCD. >> >> pwms = <&pwm10 0 5000000 0>; >> brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; >> default-brightness-level = <7>; >> >> If I cat /dev/urandom > /dev/fb0 to setup a test pattern then start to >> change the brightness in user-space, there is a momentary flicker on >> the backlight when the backlight changes intensity. Screens that are >> predominantly black are not as noticeable. >> >> We also have a Win CE implementation on the same board which does not >> do this, so I believe it to be software related and not hardware. Has >> anyone else noticed this? If so, might you have any suggestions to >> reducing this? I checked 4.9.y and 4.11.y and both seem to exhibit >> the same behavior. I don't have other pwm options, so I cannot >> determine if this is a problem with dmtimer or the pwm-bl driver. > > Maybe some issue changing the timer rate? Could it be that we're > missing stopping of the dmtimer in the pwm driver during the rate > change? > I think we do stop the timer during the chage. Looking at the code in pwm_omap_dmtimer_config: /* * We MUST stop the associated dual-mode timer before attempting to * write its registers, but calls to omap_dm_timer_start/stop must * be balanced so check if timer is active before calling timer_stop. */ timer_active = pm_runtime_active(&omap->dm_timer_pdev->dev); if (timer_active) omap->pdata->stop(omap->dm_timer); [ Change a bunch of stuff] /* If config was called while timer was running it must be reenabled. */ if (timer_active) pwm_omap_dmtimer_start(omap); I am wondering if we need to somehow sync the stop with the pwm when the duty cycle is in the off position so it doesn't stay on while we change the registers. I am not really sure how to go about that. Some LED's may be active high while others are active low. adam > Regards, > > Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html