Re: [PATCH 2/3] drm/panel: panel-dsi-cm: Use backlight helpers

2022-06-10 Thread Stephen Kitt
On Fri, 10 Jun 2022 21:52:36 +0200, Stephen Kitt  wrote:

> On Fri, 10 Jun 2022 21:28:32 +0200, Sam Ravnborg  wrote:
> > Hi Stephen.
> > On Fri, Jun 10, 2022 at 07:47:20PM +0200, Stephen Kitt wrote:  
> > > Hi Sebastian,
> > > 
> > > On Thu, 9 Jun 2022 23:52:36 +0200, Sebastian Reichel
> > >  wrote:
> > > > On Tue, Jun 07, 2022 at 08:20:25PM +0200, Stephen Kitt wrote:
> > > > > diff --git a/drivers/gpu/drm/panel/panel-dsi-cm.c
> > > > > b/drivers/gpu/drm/panel/panel-dsi-cm.c index
> > > > > b58cb064975f..aa36dc6cedd3 100644 ---
> > > > > a/drivers/gpu/drm/panel/panel-dsi-cm.c +++
> > > > > b/drivers/gpu/drm/panel/panel-dsi-cm.c @@ -86,16 +86,10 @@ static
> > > > > void dsicm_bl_power(struct panel_drv_data *ddata, bool enable)
> > > > > 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;
> > > > > + backlight_enable(backlight);
> > > > >   } else {
> > > > > - backlight->props.fb_blank = FB_BLANK_NORMAL;
> > > > > - backlight->props.power = FB_BLANK_POWERDOWN;
> > > > > - backlight->props.state |= BL_CORE_FBBLANK |
> > > > > BL_CORE_SUSPENDED;
> > > > > + backlight_disable(backlight);
> > > > >   }  
> > > > 
> > > > The brackets can be removed now. Otherwise:
> > > 
> > > > 
> > > > Reviewed-by: Sebastian Reichel 
> > > 
> > > Thanks, I’ll wait a little more to see if there are any other reviews of
> > > the patches and then push a v2 with that fix.
> > It would be very nice if you could kill all uses of FB_BLANK in the
> > drivers/gpu/drm/panel/* drivers, and post them as one series.
> > This is long overdue to introduce the backlight helpers.
> > 
> > The three you posted is already a nice step forward, and there may be
> > more panel drivers I have missed.  
> 
> With this series on top of 5.19-rc1, the only remaining .fb_blank reference
> is in acx565akm_backlight_init() in panel-sony-acx565akm.c; I was planning
> on nuking that along with the other .fb_blank initialisers in a series
> removing .fb_blank entirely from backlight_properties. I’ll add it as a
> fourth patch for drm/panel if that makes things easier!

That’s in drivers/gpu/drm/panel of course, there are a few others elsewhere
(I’ve got patches in flight for most of them, I’ve got the rest ready for
submission).

> There will still be references to FB_BLANK constants since they’re used for
> backlight_properties.power values. Would it make sense to rename those?

Just to make sure — I’m cleaning up backlight_properties.fb_blank, not
fb_ops.fb_blank. I wasn’t planning on touching the latter...

Regards,

Stephen


pgp_E4K9KxWEo.pgp
Description: OpenPGP digital signature


Re: [PATCH 2/3] drm/panel: panel-dsi-cm: Use backlight helpers

2022-06-10 Thread Stephen Kitt
On Fri, 10 Jun 2022 21:28:32 +0200, Sam Ravnborg  wrote:
> Hi Stephen.
> On Fri, Jun 10, 2022 at 07:47:20PM +0200, Stephen Kitt wrote:
> > Hi Sebastian,
> > 
> > On Thu, 9 Jun 2022 23:52:36 +0200, Sebastian Reichel
> >  wrote:  
> > > On Tue, Jun 07, 2022 at 08:20:25PM +0200, Stephen Kitt wrote:  
> > > > diff --git a/drivers/gpu/drm/panel/panel-dsi-cm.c
> > > > b/drivers/gpu/drm/panel/panel-dsi-cm.c index
> > > > b58cb064975f..aa36dc6cedd3 100644 ---
> > > > a/drivers/gpu/drm/panel/panel-dsi-cm.c +++
> > > > b/drivers/gpu/drm/panel/panel-dsi-cm.c @@ -86,16 +86,10 @@ static
> > > > void dsicm_bl_power(struct panel_drv_data *ddata, bool enable) 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;
> > > > +   backlight_enable(backlight);
> > > > } else {
> > > > -   backlight->props.fb_blank = FB_BLANK_NORMAL;
> > > > -   backlight->props.power = FB_BLANK_POWERDOWN;
> > > > -   backlight->props.state |= BL_CORE_FBBLANK |
> > > > BL_CORE_SUSPENDED;
> > > > +   backlight_disable(backlight);
> > > > }
> > > 
> > > The brackets can be removed now. Otherwise:  
> >   
> > > 
> > > Reviewed-by: Sebastian Reichel   
> > 
> > Thanks, I’ll wait a little more to see if there are any other reviews of
> > the patches and then push a v2 with that fix.  
> It would be very nice if you could kill all uses of FB_BLANK in the
> drivers/gpu/drm/panel/* drivers, and post them as one series.
> This is long overdue to introduce the backlight helpers.
> 
> The three you posted is already a nice step forward, and there may be
> more panel drivers I have missed.

With this series on top of 5.19-rc1, the only remaining .fb_blank reference is
in acx565akm_backlight_init() in panel-sony-acx565akm.c; I was planning on
nuking that along with the other .fb_blank initialisers in a series removing
.fb_blank entirely from backlight_properties. I’ll add it as a fourth patch
for drm/panel if that makes things easier!

There will still be references to FB_BLANK constants since they’re used for
backlight_properties.power values. Would it make sense to rename those?

Regards,

Stephen


pgpEgPit4twqj.pgp
Description: OpenPGP digital signature


Re: [PATCH 2/3] drm/panel: panel-dsi-cm: Use backlight helpers

2022-06-10 Thread Sam Ravnborg
Hi Stephen,
> > > > 
> > > > Thanks, I’ll wait a little more to see if there are any other reviews of
> > > > the patches and then push a v2 with that fix.
> > > It would be very nice if you could kill all uses of FB_BLANK in the
> > > drivers/gpu/drm/panel/* drivers, and post them as one series.
> > > This is long overdue to introduce the backlight helpers.
> > > 
> > > The three you posted is already a nice step forward, and there may be
> > > more panel drivers I have missed.  
> > 
> > With this series on top of 5.19-rc1, the only remaining .fb_blank reference
> > is in acx565akm_backlight_init() in panel-sony-acx565akm.c; I was planning
> > on nuking that along with the other .fb_blank initialisers in a series
> > removing .fb_blank entirely from backlight_properties. I’ll add it as a
> > fourth patch for drm/panel if that makes things easier!
> 
> That’s in drivers/gpu/drm/panel of course, there are a few others elsewhere
> (I’ve got patches in flight for most of them, I’ve got the rest ready for
> submission).
> 
> > There will still be references to FB_BLANK constants since they’re used for
> > backlight_properties.power values. Would it make sense to rename those?
> 
> Just to make sure — I’m cleaning up backlight_properties.fb_blank, not
> fb_ops.fb_blank. I wasn’t planning on touching the latter...

Nuking props.fb_blank - that a fine goal - so keep focus there.
We can then later revisit the other clean-up possibilities.

Since you do this tree-wide do not do the mistake and try to cover too
much at the same time, because then you never finish.
So forget my comment for now and keep up the good work on removing
props.fb_blank.

Sam


Re: [PATCH 2/3] drm/panel: panel-dsi-cm: Use backlight helpers

2022-06-10 Thread Sam Ravnborg
Hi Stephen.
On Fri, Jun 10, 2022 at 07:47:20PM +0200, Stephen Kitt wrote:
> Hi Sebastian,
> 
> On Thu, 9 Jun 2022 23:52:36 +0200, Sebastian Reichel
>  wrote:
> > On Tue, Jun 07, 2022 at 08:20:25PM +0200, Stephen Kitt wrote:
> > > diff --git a/drivers/gpu/drm/panel/panel-dsi-cm.c
> > > b/drivers/gpu/drm/panel/panel-dsi-cm.c index b58cb064975f..aa36dc6cedd3
> > > 100644 --- a/drivers/gpu/drm/panel/panel-dsi-cm.c
> > > +++ b/drivers/gpu/drm/panel/panel-dsi-cm.c
> > > @@ -86,16 +86,10 @@ static void dsicm_bl_power(struct panel_drv_data
> > > *ddata, bool enable) 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;
> > > + backlight_enable(backlight);
> > >   } else {
> > > - backlight->props.fb_blank = FB_BLANK_NORMAL;
> > > - backlight->props.power = FB_BLANK_POWERDOWN;
> > > - backlight->props.state |= BL_CORE_FBBLANK |
> > > BL_CORE_SUSPENDED;
> > > + backlight_disable(backlight);
> > >   }  
> > 
> > The brackets can be removed now. Otherwise:
> 
> > 
> > Reviewed-by: Sebastian Reichel 
> 
> Thanks, I’ll wait a little more to see if there are any other reviews of the
> patches and then push a v2 with that fix.
It would be very nice if you could kill all uses of FB_BLANK in the
drivers/gpu/drm/panel/* drivers, and post them as one series.
This is long overdue to introduce the backlight helpers.

The three you posted is already a nice step forward, and there may be
more panel drivers I have missed.

Sam


Re: [PATCH 2/3] drm/panel: panel-dsi-cm: Use backlight helpers

2022-06-10 Thread Stephen Kitt
Hi Sebastian,

On Thu, 9 Jun 2022 23:52:36 +0200, Sebastian Reichel
 wrote:
> On Tue, Jun 07, 2022 at 08:20:25PM +0200, Stephen Kitt wrote:
> > diff --git a/drivers/gpu/drm/panel/panel-dsi-cm.c
> > b/drivers/gpu/drm/panel/panel-dsi-cm.c index b58cb064975f..aa36dc6cedd3
> > 100644 --- a/drivers/gpu/drm/panel/panel-dsi-cm.c
> > +++ b/drivers/gpu/drm/panel/panel-dsi-cm.c
> > @@ -86,16 +86,10 @@ static void dsicm_bl_power(struct panel_drv_data
> > *ddata, bool enable) 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;
> > +   backlight_enable(backlight);
> > } else {
> > -   backlight->props.fb_blank = FB_BLANK_NORMAL;
> > -   backlight->props.power = FB_BLANK_POWERDOWN;
> > -   backlight->props.state |= BL_CORE_FBBLANK |
> > BL_CORE_SUSPENDED;
> > +   backlight_disable(backlight);
> > }  
> 
> The brackets can be removed now. Otherwise:

> 
> Reviewed-by: Sebastian Reichel 

Thanks, I’ll wait a little more to see if there are any other reviews of the
patches and then push a v2 with that fix.

Regards,

Stephen


pgpyW8BdT9F89.pgp
Description: OpenPGP digital signature


Re: [PATCH 2/3] drm/panel: panel-dsi-cm: Use backlight helpers

2022-06-09 Thread Sebastian Reichel
Hi,

On Tue, Jun 07, 2022 at 08:20:25PM +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 
> Cc: Thierry Reding 
> Cc: Sam Ravnborg 
> Cc: David Airlie 
> Cc: Daniel Vetter 
> Cc: dri-devel@lists.freedesktop.org
> ---
>
>  drivers/gpu/drm/panel/panel-dsi-cm.c | 24 
>  1 file changed, 4 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panel/panel-dsi-cm.c 
> b/drivers/gpu/drm/panel/panel-dsi-cm.c
> index b58cb064975f..aa36dc6cedd3 100644
> --- a/drivers/gpu/drm/panel/panel-dsi-cm.c
> +++ b/drivers/gpu/drm/panel/panel-dsi-cm.c
> @@ -86,16 +86,10 @@ static void dsicm_bl_power(struct panel_drv_data *ddata, 
> bool enable)
>   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;
> + backlight_enable(backlight);
>   } else {
> - backlight->props.fb_blank = FB_BLANK_NORMAL;
> - backlight->props.power = FB_BLANK_POWERDOWN;
> - backlight->props.state |= BL_CORE_FBBLANK | BL_CORE_SUSPENDED;
> + backlight_disable(backlight);
>   }

The brackets can be removed now. Otherwise:

Reviewed-by: Sebastian Reichel 

-- Sebastian

> -
> - backlight_update_status(backlight);
>  }
>  
>  static void hw_guard_start(struct panel_drv_data *ddata, int guard_msec)
> @@ -196,13 +190,7 @@ static int dsicm_bl_update_status(struct 
> backlight_device *dev)
>  {
>   struct panel_drv_data *ddata = dev_get_drvdata(>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(>dsi->dev, "update brightness to %d\n", level);
>  
> @@ -219,11 +207,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
> 


signature.asc
Description: PGP signature


[PATCH 2/3] drm/panel: panel-dsi-cm: Use backlight helpers

2022-06-07 Thread Stephen Kitt
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 
Cc: Thierry Reding 
Cc: Sam Ravnborg 
Cc: David Airlie 
Cc: Daniel Vetter 
Cc: dri-devel@lists.freedesktop.org
---
 drivers/gpu/drm/panel/panel-dsi-cm.c | 24 
 1 file changed, 4 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-dsi-cm.c 
b/drivers/gpu/drm/panel/panel-dsi-cm.c
index b58cb064975f..aa36dc6cedd3 100644
--- a/drivers/gpu/drm/panel/panel-dsi-cm.c
+++ b/drivers/gpu/drm/panel/panel-dsi-cm.c
@@ -86,16 +86,10 @@ static void dsicm_bl_power(struct panel_drv_data *ddata, 
bool enable)
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;
+   backlight_enable(backlight);
} else {
-   backlight->props.fb_blank = FB_BLANK_NORMAL;
-   backlight->props.power = FB_BLANK_POWERDOWN;
-   backlight->props.state |= BL_CORE_FBBLANK | BL_CORE_SUSPENDED;
+   backlight_disable(backlight);
}
-
-   backlight_update_status(backlight);
 }
 
 static void hw_guard_start(struct panel_drv_data *ddata, int guard_msec)
@@ -196,13 +190,7 @@ static int dsicm_bl_update_status(struct backlight_device 
*dev)
 {
struct panel_drv_data *ddata = dev_get_drvdata(>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(>dsi->dev, "update brightness to %d\n", level);
 
@@ -219,11 +207,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