[PATCH] drm/bridge: ps8640: Use constant sleep time for polling hpd

Pin-yen Lin posted 1 patch 2 years, 10 months ago
drivers/gpu/drm/bridge/parade-ps8640.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] drm/bridge: ps8640: Use constant sleep time for polling hpd
Posted by Pin-yen Lin 2 years, 10 months ago
The default hpd_wait_us in panel_edp.c is 2 seconds. This makes the
sleep time in the polling of _ps8640_wait_hpd_asserted become 200ms.
Change it to a constant 20ms to speed up the function.

Signed-off-by: Pin-yen Lin <treapking@chromium.org>
---

 drivers/gpu/drm/bridge/parade-ps8640.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c
index b823e55650b1..c3eb45179405 100644
--- a/drivers/gpu/drm/bridge/parade-ps8640.c
+++ b/drivers/gpu/drm/bridge/parade-ps8640.c
@@ -184,7 +184,7 @@ static int _ps8640_wait_hpd_asserted(struct ps8640 *ps_bridge, unsigned long wai
 	 * actually connected to GPIO9).
 	 */
 	ret = regmap_read_poll_timeout(map, PAGE2_GPIO_H, status,
-				       status & PS_GPIO9, wait_us / 10, wait_us);
+				       status & PS_GPIO9, 20000, wait_us);
 
 	/*
 	 * The first time we see HPD go high after a reset we delay an extra
-- 
2.40.0.348.gf938b09366-goog
Re: [PATCH] drm/bridge: ps8640: Use constant sleep time for polling hpd
Posted by rfoss@kernel.org 2 years, 10 months ago
From: Robert Foss <rfoss@kernel.org>

On Fri, 31 Mar 2023 11:02:04 +0800, Pin-yen Lin wrote:
> The default hpd_wait_us in panel_edp.c is 2 seconds. This makes the
> sleep time in the polling of _ps8640_wait_hpd_asserted become 200ms.
> Change it to a constant 20ms to speed up the function.
> 
> 

Applied, thanks!

[1/1] drm/bridge: ps8640: Use constant sleep time for polling hpd
      https://cgit.freedesktop.org/drm/drm-misc/commit/?id=4224011374d1



Rob
Re: [PATCH] drm/bridge: ps8640: Use constant sleep time for polling hpd
Posted by Doug Anderson 2 years, 10 months ago
Hi,

On Thu, Mar 30, 2023 at 8:02 PM Pin-yen Lin <treapking@chromium.org> wrote:
>
> The default hpd_wait_us in panel_edp.c is 2 seconds. This makes the
> sleep time in the polling of _ps8640_wait_hpd_asserted become 200ms.
> Change it to a constant 20ms to speed up the function.

Ah, I see why I never ran into this. All the panels I worked with
specified "hpd_absent" of 200 and thus I've always been using 20.


> Signed-off-by: Pin-yen Lin <treapking@chromium.org>
> ---
>
>  drivers/gpu/drm/bridge/parade-ps8640.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c
> index b823e55650b1..c3eb45179405 100644
> --- a/drivers/gpu/drm/bridge/parade-ps8640.c
> +++ b/drivers/gpu/drm/bridge/parade-ps8640.c
> @@ -184,7 +184,7 @@ static int _ps8640_wait_hpd_asserted(struct ps8640 *ps_bridge, unsigned long wai
>          * actually connected to GPIO9).
>          */
>         ret = regmap_read_poll_timeout(map, PAGE2_GPIO_H, status,
> -                                      status & PS_GPIO9, wait_us / 10, wait_us);
> +                                      status & PS_GPIO9, 20000, wait_us);

I'd have been tempted to go even lower at 10ms. Waiting for HPD isn't
something that we do all the time during a normal running system and
thus it's not something we have to optimize every last bit of power
out of. The user would generally rather have the system boot up or
switch modes 10ms faster. ;-)

In any case, either at 10ms or 20ms:

Reviewed-by: Douglas Anderson <dianders@chromium.org>

-Doug
Re: [PATCH] drm/bridge: ps8640: Use constant sleep time for polling hpd
Posted by Robert Foss 2 years, 10 months ago
On Fri, Mar 31, 2023 at 5:02 AM Pin-yen Lin <treapking@chromium.org> wrote:
>
> The default hpd_wait_us in panel_edp.c is 2 seconds. This makes the
> sleep time in the polling of _ps8640_wait_hpd_asserted become 200ms.
> Change it to a constant 20ms to speed up the function.
>
> Signed-off-by: Pin-yen Lin <treapking@chromium.org>
> ---
>
>  drivers/gpu/drm/bridge/parade-ps8640.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c
> index b823e55650b1..c3eb45179405 100644
> --- a/drivers/gpu/drm/bridge/parade-ps8640.c
> +++ b/drivers/gpu/drm/bridge/parade-ps8640.c
> @@ -184,7 +184,7 @@ static int _ps8640_wait_hpd_asserted(struct ps8640 *ps_bridge, unsigned long wai
>          * actually connected to GPIO9).
>          */
>         ret = regmap_read_poll_timeout(map, PAGE2_GPIO_H, status,
> -                                      status & PS_GPIO9, wait_us / 10, wait_us);
> +                                      status & PS_GPIO9, 20000, wait_us);
>
>         /*
>          * The first time we see HPD go high after a reset we delay an extra
> --
> 2.40.0.348.gf938b09366-goog
>

Snoozing for a few days before applying.

Reviewed-by: Robert Foss <rfoss@kernel.org>