Re: [PATCH AUTOSEL 4.9 08/24] drm/bridge/analogix/anx78xx: Setup encoder before registering connector

From: Lyude Paul
Date: Thu May 06 2021 - 13:14:29 EST


I would drop this patch for all of the stable kernel versions, it doesn't
really fix any user reported issues.

The other patches CC'd to me look fine for stable though

On Mon, 2021-05-03 at 12:42 -0400, Sasha Levin wrote:
> From: Lyude Paul <lyude@xxxxxxxxxx>
>
> [ Upstream commit 9962849d0871f5e53d0e3b3d84561f8f2847fbf4 ]
>
> Since encoder mappings for connectors are exposed to userspace, we should
> be attaching the encoder before exposing the connector to userspace. Just a
> drive-by fix for an issue I noticed while fixing up usages of
> drm_dp_aux_init()/drm_dp_aux_register() across the tree.
>
> Signed-off-by: Lyude Paul <lyude@xxxxxxxxxx>
> Reviewed-by: Robert Foss <robert.foss@xxxxxxxxxx>
> Link:
> https://patchwork.freedesktop.org/patch/msgid/20210219215326.2227596-9-lyude@xxxxxxxxxx
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
> ---
>  drivers/gpu/drm/bridge/analogix-anx78xx.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix-anx78xx.c
> b/drivers/gpu/drm/bridge/analogix-anx78xx.c
> index eb97e88a103c..16babacb7cf0 100644
> --- a/drivers/gpu/drm/bridge/analogix-anx78xx.c
> +++ b/drivers/gpu/drm/bridge/analogix-anx78xx.c
> @@ -1045,12 +1045,6 @@ static int anx78xx_bridge_attach(struct drm_bridge
> *bridge)
>         drm_connector_helper_add(&anx78xx->connector,
>                                  &anx78xx_connector_helper_funcs);
>  
> -       err = drm_connector_register(&anx78xx->connector);
> -       if (err) {
> -               DRM_ERROR("Failed to register connector: %d\n", err);
> -               return err;
> -       }
> -
>         anx78xx->connector.polled = DRM_CONNECTOR_POLL_HPD;
>  
>         err = drm_mode_connector_attach_encoder(&anx78xx->connector,
> @@ -1060,6 +1054,12 @@ static int anx78xx_bridge_attach(struct drm_bridge
> *bridge)
>                 return err;
>         }
>  
> +       err = drm_connector_register(&anx78xx->connector);
> +       if (err) {
> +               DRM_ERROR("Failed to register connector: %d\n", err);
> +               return err;
> +       }
> +
>         return 0;
>  }
>  

--
Cheers,
Lyude Paul (she/her)
Software Engineer at Red Hat