Message ID | 20220616172316.1355133-3-steve@sk2.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/panel: Use backlight helpers | expand |
Hi, On Thu, Jun 16, 2022 at 07:23:14PM +0200, Stephen Kitt wrote: > Instead of retrieving the backlight brightness in struct > backlight_properties manually, and then checking whether the backlight > should be on at all, use backlight_get_brightness() which does all > this and insulates this from future changes. > > Instead of setting the power state by manually updating fields in > struct backlight_properties, use backlight_enable() and > backlight_disable(). These also call backlight_update_status() so the > separate call is no longer needed. > > Signed-off-by: Stephen Kitt <steve@sk2.org> > Cc: Thierry Reding <thierry.reding@gmail.com> > Cc: Sam Ravnborg <sam@ravnborg.org> > Cc: David Airlie <airlied@linux.ie> > Cc: Daniel Vetter <daniel@ffwll.ch> > Cc: dri-devel@lists.freedesktop.org > --- > Changes since v1: removed unnecessary parentheses > --- Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com> -- Sebastian > drivers/gpu/drm/panel/panel-dsi-cm.c | 29 ++++++---------------------- > 1 file changed, 6 insertions(+), 23 deletions(-) > > diff --git a/drivers/gpu/drm/panel/panel-dsi-cm.c b/drivers/gpu/drm/panel/panel-dsi-cm.c > index b58cb064975f..b0213a518f9d 100644 > --- a/drivers/gpu/drm/panel/panel-dsi-cm.c > +++ b/drivers/gpu/drm/panel/panel-dsi-cm.c > @@ -85,17 +85,10 @@ static void dsicm_bl_power(struct panel_drv_data *ddata, bool enable) > else > return; > > - if (enable) { > - backlight->props.fb_blank = FB_BLANK_UNBLANK; > - backlight->props.state = ~(BL_CORE_FBBLANK | BL_CORE_SUSPENDED); > - backlight->props.power = FB_BLANK_UNBLANK; > - } else { > - backlight->props.fb_blank = FB_BLANK_NORMAL; > - backlight->props.power = FB_BLANK_POWERDOWN; > - backlight->props.state |= BL_CORE_FBBLANK | BL_CORE_SUSPENDED; > - } > - > - backlight_update_status(backlight); > + if (enable) > + backlight_enable(backlight); > + else > + backlight_disable(backlight); > } > > static void hw_guard_start(struct panel_drv_data *ddata, int guard_msec) > @@ -196,13 +189,7 @@ static int dsicm_bl_update_status(struct backlight_device *dev) > { > struct panel_drv_data *ddata = dev_get_drvdata(&dev->dev); > int r = 0; > - int level; > - > - if (dev->props.fb_blank == FB_BLANK_UNBLANK && > - dev->props.power == FB_BLANK_UNBLANK) > - level = dev->props.brightness; > - else > - level = 0; > + int level = backlight_get_brightness(dev); > > dev_dbg(&ddata->dsi->dev, "update brightness to %d\n", level); > > @@ -219,11 +206,7 @@ static int dsicm_bl_update_status(struct backlight_device *dev) > > static int dsicm_bl_get_intensity(struct backlight_device *dev) > { > - if (dev->props.fb_blank == FB_BLANK_UNBLANK && > - dev->props.power == FB_BLANK_UNBLANK) > - return dev->props.brightness; > - > - return 0; > + return backlight_get_brightness(dev); > } > > static const struct backlight_ops dsicm_bl_ops = { > -- > 2.30.2 >
On Thu, Jun 16, 2022 at 07:23:14PM +0200, Stephen Kitt wrote: > Instead of retrieving the backlight brightness in struct > backlight_properties manually, and then checking whether the backlight > should be on at all, use backlight_get_brightness() which does all > this and insulates this from future changes. > > Instead of setting the power state by manually updating fields in > struct backlight_properties, use backlight_enable() and > backlight_disable(). These also call backlight_update_status() so the > separate call is no longer needed. > > Signed-off-by: Stephen Kitt <steve@sk2.org> > Cc: Thierry Reding <thierry.reding@gmail.com> > Cc: Sam Ravnborg <sam@ravnborg.org> > Cc: David Airlie <airlied@linux.ie> > Cc: Daniel Vetter <daniel@ffwll.ch> > Cc: dri-devel@lists.freedesktop.org Thanks, applied to drm-misc (drm-misc-next) Sam
diff --git a/drivers/gpu/drm/panel/panel-dsi-cm.c b/drivers/gpu/drm/panel/panel-dsi-cm.c index b58cb064975f..b0213a518f9d 100644 --- a/drivers/gpu/drm/panel/panel-dsi-cm.c +++ b/drivers/gpu/drm/panel/panel-dsi-cm.c @@ -85,17 +85,10 @@ static void dsicm_bl_power(struct panel_drv_data *ddata, bool enable) else return; - if (enable) { - backlight->props.fb_blank = FB_BLANK_UNBLANK; - backlight->props.state = ~(BL_CORE_FBBLANK | BL_CORE_SUSPENDED); - backlight->props.power = FB_BLANK_UNBLANK; - } else { - backlight->props.fb_blank = FB_BLANK_NORMAL; - backlight->props.power = FB_BLANK_POWERDOWN; - backlight->props.state |= BL_CORE_FBBLANK | BL_CORE_SUSPENDED; - } - - backlight_update_status(backlight); + if (enable) + backlight_enable(backlight); + else + backlight_disable(backlight); } static void hw_guard_start(struct panel_drv_data *ddata, int guard_msec) @@ -196,13 +189,7 @@ static int dsicm_bl_update_status(struct backlight_device *dev) { struct panel_drv_data *ddata = dev_get_drvdata(&dev->dev); int r = 0; - int level; - - if (dev->props.fb_blank == FB_BLANK_UNBLANK && - dev->props.power == FB_BLANK_UNBLANK) - level = dev->props.brightness; - else - level = 0; + int level = backlight_get_brightness(dev); dev_dbg(&ddata->dsi->dev, "update brightness to %d\n", level); @@ -219,11 +206,7 @@ static int dsicm_bl_update_status(struct backlight_device *dev) static int dsicm_bl_get_intensity(struct backlight_device *dev) { - if (dev->props.fb_blank == FB_BLANK_UNBLANK && - dev->props.power == FB_BLANK_UNBLANK) - return dev->props.brightness; - - return 0; + return backlight_get_brightness(dev); } static const struct backlight_ops dsicm_bl_ops = {
Instead of retrieving the backlight brightness in struct backlight_properties manually, and then checking whether the backlight should be on at all, use backlight_get_brightness() which does all this and insulates this from future changes. Instead of setting the power state by manually updating fields in struct backlight_properties, use backlight_enable() and backlight_disable(). These also call backlight_update_status() so the separate call is no longer needed. Signed-off-by: Stephen Kitt <steve@sk2.org> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: dri-devel@lists.freedesktop.org --- Changes since v1: removed unnecessary parentheses --- drivers/gpu/drm/panel/panel-dsi-cm.c | 29 ++++++---------------------- 1 file changed, 6 insertions(+), 23 deletions(-)