[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHp75Vdw_-nKUdNm0TNRnMFLhUEoFAtTpt4ApVNmeHFOi_16Xg@mail.gmail.com>
Date: Thu, 20 Jul 2023 19:28:26 +0300
From: Andy Shevchenko <andy.shevchenko@...il.com>
To: Daniel Thompson <daniel.thompson@...aro.org>
Cc: Ying Liu <victor.liu@....com>,
"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
"linux-fbdev@...r.kernel.org" <linux-fbdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"lee@...nel.org" <lee@...nel.org>,
"jingoohan1@...il.com" <jingoohan1@...il.com>,
"deller@....de" <deller@....de>,
Linus Walleij <linus.walleij@...aro.org>,
Bartosz Golaszewski <brgl@...ev.pl>,
Andy Shevchenko <andy@...nel.org>
Subject: Re: [PATCH] backlight: gpio_backlight: Drop output gpio direction
check for initial power state
On Thu, Jul 20, 2023 at 2:27 PM Daniel Thompson
<daniel.thompson@...aro.org> wrote:
>
> On Thu, Jul 20, 2023 at 06:06:27AM +0000, Ying Liu wrote:
> > Bootloader may leave gpio direction as input and gpio value as logical low.
> > It hints that initial backlight power state should be FB_BLANK_POWERDOWN
> > since the gpio value is literally logical low.
>
> To be honest this probably "hints" that the bootloader simply didn't
> consider the backlight at all :-) . I'd rather the patch description
> focus on what circumstances lead to the current code making a bad
> decision. More like:
>
> If the GPIO pin is in the input state but the backlight is currently
> off due to default pull downs then ...
>
> > So, let's drop output gpio
> > direction check and only check gpio value to set the initial power state.
>
> This check was specifically added by Bartosz so I'd be interested in his
> opinion of this change (especially since he is now a GPIO maintainer)!
>
> What motivates (or motivated) the need to check the direction rather
> than just read that current logic level on the pin?
...
> > - 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;
The code before this patch needs a bit of elaboration. There is no
prohibition on reading value for the pin that is in any direction.
I.o.w. if the direction here is a problem it should have been
configured beforehand.
--
With Best Regards,
Andy Shevchenko
Powered by blists - more mailing lists