backlight: lp855x: Switch to atomic PWM API
Subsystems (3)
PATCH v6 1/1 backlight: lp855x: Switch to atomic PWM API
Remove legacy PWM interface (pwm_config, pwm_enable, pwm_disable) and replace it for the atomic PWM API.
Signed-off-by Maíra Canal <[email protected]>
---
V1 -> V2: Initialize variable and simplify conditional loop V2 -> V3: Fix assignment of NULL variable
V3 -> V4: Replace division for pwm_set_relative_duty_cycle
V4 -> V5: Fix overwrite of state.period
V5 -> V6: Fix duty cycle rounding and set period outside conditional loop
--- drivers/video/backlight/lp855x_bl.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-)
drivers/video/backlight/lp855x_bl.c +9 -12
@@ -233,9 +233,8 @@ static int lp855x_configure(struct lp855x *lp)static void lp855x_pwm_ctrl (struct lp855x *lp,int br,int max_br) { -unsigned int period = lp->pdata->period_ns; -unsigned int duty = br * period / max_br;struct pwm_device *pwm; +struct pwm_state state;/* request pwm device with the consumer name */ if (!lp->pwm) {
@@ -245,18 +244,16 @@ static void lp855x_pwm_ctrl(struct lp855x *lp, int br, int max_br) lp->pwm = pwm; -/* -* FIXME: pwm_apply_args() should be removed when switching to -* the atomic PWM API. -*/ -pwm_apply_args (pwm); +pwm_init_state (lp->pwm, &state); + }else { +pwm_get_state (lp->pwm, &state); } -pwm_config (lp->pwm, duty, period); -if (duty) -pwm_enable (lp->pwm); -else -pwm_disable (lp->pwm); + state.period = lp->pdata->period_ns; + state.duty_cycle =div_u64 (br * state.period, max_br); + state.enabled = state.duty_cycle; + +pwm_apply_state (lp->pwm, &state); }static int lp855x_bl_update_status (struct backlight_device *bl)
Signature · 1 line
2.31.1
Hello,
Quoted 4 lines · Maíra Canal
Remove legacy PWM interface (
pwm_config,pwm_enable,pwm_disable) and replace it for the atomic PWM API.Signed-off-by Maíra Canal <[email protected]>
LGTM,
Reviewed-by Uwe Kleine-König <[email protected]>
Thanks
Uwe
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ |
Quoted 4 lines · Maíra Canal
Remove legacy PWM interface (
pwm_config,pwm_enable,pwm_disable) and replace it for the atomic PWM API.Signed-off-by Maíra Canal <[email protected]>
Reviewed-by Daniel Thompson <[email protected]>
Daniel.