mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-17 22:49:02 +00:00
video: backlight: fix pwm's duty cycle calculation
For levels equal to the maximum value, the duty cycle must be equal to the period. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
f9b94055bd
commit
76c2ff3e5f
2 changed files with 7 additions and 7 deletions
|
@ -63,7 +63,7 @@ static int set_pwm(struct pwm_backlight_priv *priv)
|
|||
int ret;
|
||||
|
||||
duty_cycle = priv->period_ns * (priv->cur_level - priv->min_level) /
|
||||
(priv->max_level - priv->min_level + 1);
|
||||
(priv->max_level - priv->min_level);
|
||||
ret = pwm_set_config(priv->pwm, priv->channel, priv->period_ns,
|
||||
duty_cycle);
|
||||
if (ret)
|
||||
|
|
|
@ -40,7 +40,7 @@ static int dm_test_panel(struct unit_test_state *uts)
|
|||
ut_assertok(sandbox_pwm_get_config(pwm, 0, &period_ns, &duty_ns,
|
||||
&enable, &polarity));
|
||||
ut_asserteq(1000, period_ns);
|
||||
ut_asserteq(170 * 1000 / 256, duty_ns);
|
||||
ut_asserteq(170 * 1000 / 255, duty_ns);
|
||||
ut_asserteq(true, enable);
|
||||
ut_asserteq(false, polarity);
|
||||
ut_asserteq(1, sandbox_gpio_get_value(gpio, 1));
|
||||
|
@ -49,29 +49,29 @@ static int dm_test_panel(struct unit_test_state *uts)
|
|||
ut_assertok(panel_set_backlight(dev, 40));
|
||||
ut_assertok(sandbox_pwm_get_config(pwm, 0, &period_ns, &duty_ns,
|
||||
&enable, &polarity));
|
||||
ut_asserteq(64 * 1000 / 256, duty_ns);
|
||||
ut_asserteq(64 * 1000 / 255, duty_ns);
|
||||
|
||||
ut_assertok(panel_set_backlight(dev, BACKLIGHT_MAX));
|
||||
ut_assertok(sandbox_pwm_get_config(pwm, 0, &period_ns, &duty_ns,
|
||||
&enable, &polarity));
|
||||
ut_asserteq(255 * 1000 / 256, duty_ns);
|
||||
ut_asserteq(255 * 1000 / 255, duty_ns);
|
||||
|
||||
ut_assertok(panel_set_backlight(dev, BACKLIGHT_MIN));
|
||||
ut_assertok(sandbox_pwm_get_config(pwm, 0, &period_ns, &duty_ns,
|
||||
&enable, &polarity));
|
||||
ut_asserteq(0 * 1000 / 256, duty_ns);
|
||||
ut_asserteq(0 * 1000 / 255, duty_ns);
|
||||
ut_asserteq(1, sandbox_gpio_get_value(gpio, 1));
|
||||
|
||||
ut_assertok(panel_set_backlight(dev, BACKLIGHT_DEFAULT));
|
||||
ut_assertok(sandbox_pwm_get_config(pwm, 0, &period_ns, &duty_ns,
|
||||
&enable, &polarity));
|
||||
ut_asserteq(true, enable);
|
||||
ut_asserteq(170 * 1000 / 256, duty_ns);
|
||||
ut_asserteq(170 * 1000 / 255, duty_ns);
|
||||
|
||||
ut_assertok(panel_set_backlight(dev, BACKLIGHT_OFF));
|
||||
ut_assertok(sandbox_pwm_get_config(pwm, 0, &period_ns, &duty_ns,
|
||||
&enable, &polarity));
|
||||
ut_asserteq(0 * 1000 / 256, duty_ns);
|
||||
ut_asserteq(0 * 1000 / 255, duty_ns);
|
||||
ut_asserteq(0, sandbox_gpio_get_value(gpio, 1));
|
||||
ut_asserteq(false, regulator_get_enable(reg));
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue