Re: [PATCH] drm/panel-simple: Power the panel when probing DP AUX backlight
From: Lyude Paul
Date: Wed Jul 14 2021 - 14:48:40 EST
Reviewed-by: Lyude Paul <lyude@xxxxxxxxxx>
On Wed, 2021-07-14 at 09:33 -0700, Douglas Anderson wrote:
> When I tried booting up a device that needed the DP AUX backlight, I
> found an error in the logs:
> panel-simple-dp-aux: probe of aux-ti_sn65dsi86.aux.0 failed with error -
> 110
>
> The aux transfers were failing because the panel wasn't powered. Just
> like when reading the EDID we need to power the panel when trying to
> talk to it. Add the needed pm_runtime calls.
>
> After I do this I can successfully probe the panel and adjust the
> backlight on my board.
>
> Fixes: bfd451403d70 ("drm/panel-simple: Support DP AUX backlight")
> Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
> ---
>
> drivers/gpu/drm/panel/panel-simple.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/panel/panel-simple.c
> b/drivers/gpu/drm/panel/panel-simple.c
> index e0a05f366ce6..9b286bd4444f 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -827,7 +827,10 @@ static int panel_simple_probe(struct device *dev, const
> struct panel_desc *desc,
> goto disable_pm_runtime;
>
> if (!panel->base.backlight && panel->aux) {
> + pm_runtime_get_sync(dev);
> err = drm_panel_dp_aux_backlight(&panel->base, panel->aux);
> + pm_runtime_mark_last_busy(dev);
> + pm_runtime_put_autosuspend(dev);
> if (err)
> goto disable_pm_runtime;
> }
--
Cheers,
Lyude Paul (she/her)
Software Engineer at Red Hat