diff mbox series

[v4] backlight: gpio_backlight: Drop output GPIO direction check for initial power state

Message ID 20230721093342.1532531-1-victor.liu@nxp.com (mailing list archive)
State Not Applicable
Headers show
Series [v4] backlight: gpio_backlight: Drop output GPIO direction check for initial power state | expand

Commit Message

Liu Ying July 21, 2023, 9:29 a.m. UTC
If GPIO pin is in input state but backlight is currently off due to
default pull downs, then initial power state is set to FB_BLANK_UNBLANK
in DT boot mode with phandle link and the backlight is effectively
turned on in gpio_backlight_probe(), which is undesirable according to
patch description of commit ec665b756e6f ("backlight: gpio-backlight:
Correct initial power state handling").

Quote:
---8<---
If in DT boot we have phandle link then leave the GPIO in a state which the
bootloader left it and let the user of the backlight to configure it further.
---8<---

So, let's drop output GPIO direction check and only check GPIO value to set
the initial power state.

Fixes: 706dc68102bc ("backlight: gpio: Explicitly set the direction of the GPIO")
Signed-off-by: Liu Ying <victor.liu@nxp.com>
---
v3->v4:
* Capitalize words 'gpio' in patch description. (Andy)
* Capitalize word 'gpio' in patch title.
* Quote appropriately in patch description. (Andy)

v2->v3:
* Add Fixes tag. (Daniel)

v1->v2:
* Improve patch description. (Daniel, Bartosz, Andy)

 drivers/video/backlight/gpio_backlight.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Andy Shevchenko July 21, 2023, 10:38 a.m. UTC | #1
On Fri, Jul 21, 2023 at 09:29:03AM +0000, Ying Liu wrote:
> If GPIO pin is in input state but backlight is currently off due to
> default pull downs, then initial power state is set to FB_BLANK_UNBLANK
> in DT boot mode with phandle link and the backlight is effectively
> turned on in gpio_backlight_probe(), which is undesirable according to
> patch description of commit ec665b756e6f ("backlight: gpio-backlight:
> Correct initial power state handling").
> 
> Quote:
> ---8<---
> If in DT boot we have phandle link then leave the GPIO in a state which the
> bootloader left it and let the user of the backlight to configure it further.
> ---8<---
> 
> So, let's drop output GPIO direction check and only check GPIO value to set
> the initial power state.

LGTM,
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Bartosz Golaszewski July 21, 2023, 11:07 a.m. UTC | #2
On Fri, Jul 21, 2023 at 11:29 AM Ying Liu <victor.liu@nxp.com> wrote:
>
> If GPIO pin is in input state but backlight is currently off due to
> default pull downs, then initial power state is set to FB_BLANK_UNBLANK
> in DT boot mode with phandle link and the backlight is effectively
> turned on in gpio_backlight_probe(), which is undesirable according to
> patch description of commit ec665b756e6f ("backlight: gpio-backlight:
> Correct initial power state handling").
>
> Quote:
> ---8<---
> If in DT boot we have phandle link then leave the GPIO in a state which the
> bootloader left it and let the user of the backlight to configure it further.
> ---8<---
>
> So, let's drop output GPIO direction check and only check GPIO value to set
> the initial power state.
>
> Fixes: 706dc68102bc ("backlight: gpio: Explicitly set the direction of the GPIO")
> Signed-off-by: Liu Ying <victor.liu@nxp.com>
> ---
> v3->v4:
> * Capitalize words 'gpio' in patch description. (Andy)
> * Capitalize word 'gpio' in patch title.
> * Quote appropriately in patch description. (Andy)
>
> v2->v3:
> * Add Fixes tag. (Daniel)
>
> v1->v2:
> * Improve patch description. (Daniel, Bartosz, Andy)
>
>  drivers/video/backlight/gpio_backlight.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/video/backlight/gpio_backlight.c b/drivers/video/backlight/gpio_backlight.c
> index 6f78d928f054..38c46936fdcd 100644
> --- a/drivers/video/backlight/gpio_backlight.c
> +++ b/drivers/video/backlight/gpio_backlight.c
> @@ -87,8 +87,7 @@ static int gpio_backlight_probe(struct platform_device *pdev)
>                 /* Not booted with device tree or no phandle link to the node */
>                 bl->props.power = def_value ? FB_BLANK_UNBLANK
>                                             : FB_BLANK_POWERDOWN;
> -       else if (gpiod_get_direction(gbl->gpiod) == 0 &&
> -                gpiod_get_value_cansleep(gbl->gpiod) == 0)
> +       else if (gpiod_get_value_cansleep(gbl->gpiod) == 0)
>                 bl->props.power = FB_BLANK_POWERDOWN;
>         else
>                 bl->props.power = FB_BLANK_UNBLANK;
> --
> 2.37.1
>

Acked-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Linus Walleij July 24, 2023, 5:46 p.m. UTC | #3
On Fri, Jul 21, 2023 at 11:29 AM Ying Liu <victor.liu@nxp.com> wrote:

> If GPIO pin is in input state but backlight is currently off due to
> default pull downs,

Oh what an interesting corner case!

> then initial power state is set to FB_BLANK_UNBLANK
> in DT boot mode with phandle link and the backlight is effectively
> turned on in gpio_backlight_probe(), which is undesirable according to
> patch description of commit ec665b756e6f ("backlight: gpio-backlight:
> Correct initial power state handling").
>
> Quote:
> ---8<---
> If in DT boot we have phandle link then leave the GPIO in a state which the
> bootloader left it and let the user of the backlight to configure it further.
> ---8<---
>
> So, let's drop output GPIO direction check and only check GPIO value to set
> the initial power state.
>
> Fixes: 706dc68102bc ("backlight: gpio: Explicitly set the direction of the GPIO")
> Signed-off-by: Liu Ying <victor.liu@nxp.com>

The solutions seems fine.
Acked-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij
Lee Jones July 28, 2023, 11:14 a.m. UTC | #4
On Fri, 21 Jul 2023 09:29:03 +0000, Ying Liu wrote:
> So, let's drop output GPIO direction check and only check GPIO value to set
> the initial power state.
> 
> 

Applied, thanks!

[1/1] backlight: gpio_backlight: Drop output GPIO direction check for initial power state
      commit: fe1328b5b2a087221e31da77e617f4c2b70f3b7f

--
Lee Jones [李琼斯]
diff mbox series

Patch

diff --git a/drivers/video/backlight/gpio_backlight.c b/drivers/video/backlight/gpio_backlight.c
index 6f78d928f054..38c46936fdcd 100644
--- a/drivers/video/backlight/gpio_backlight.c
+++ b/drivers/video/backlight/gpio_backlight.c
@@ -87,8 +87,7 @@  static int gpio_backlight_probe(struct platform_device *pdev)
 		/* Not booted with device tree or no phandle link to the node */
 		bl->props.power = def_value ? FB_BLANK_UNBLANK
 					    : FB_BLANK_POWERDOWN;
-	else if (gpiod_get_direction(gbl->gpiod) == 0 &&
-		 gpiod_get_value_cansleep(gbl->gpiod) == 0)
+	else if (gpiod_get_value_cansleep(gbl->gpiod) == 0)
 		bl->props.power = FB_BLANK_POWERDOWN;
 	else
 		bl->props.power = FB_BLANK_UNBLANK;