[PATCH RESEND 1/2] drm/bridge: add connector argument to .hpd_notify callback
Neil Armstrong
neil.armstrong at linaro.org
Mon Aug 18 08:08:12 UTC 2025
On 03/08/2025 13:53, Dmitry Baryshkov wrote:
> Drivers might need to update DRM connector in the
> drm_bridge_funcs.hpd_notify callback (e.g. it might be necessary to
> update EDID before setting ELD). Add corresponding argument to the
> callback.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at oss.qualcomm.com>
> ---
> drivers/gpu/drm/display/drm_bridge_connector.c | 2 +-
> drivers/gpu/drm/meson/meson_encoder_hdmi.c | 1 +
> drivers/gpu/drm/msm/dp/dp_display.c | 3 ++-
> drivers/gpu/drm/msm/dp/dp_drm.h | 3 ++-
> drivers/gpu/drm/omapdrm/dss/hdmi4.c | 1 +
> include/drm/drm_bridge.h | 1 +
> 6 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c b/drivers/gpu/drm/display/drm_bridge_connector.c
> index 5eb7e9bfe36116c9618cd3773f1c01e7ebb573be..f2fd277d694b8c959f913517ff5861b777d8a9dd 100644
> --- a/drivers/gpu/drm/display/drm_bridge_connector.c
> +++ b/drivers/gpu/drm/display/drm_bridge_connector.c
> @@ -141,7 +141,7 @@ static void drm_bridge_connector_hpd_notify(struct drm_connector *connector,
> /* Notify all bridges in the pipeline of hotplug events. */
> drm_for_each_bridge_in_chain(bridge_connector->encoder, bridge) {
> if (bridge->funcs->hpd_notify)
> - bridge->funcs->hpd_notify(bridge, status);
> + bridge->funcs->hpd_notify(bridge, connector, status);
> }
> }
>
> diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/meson/meson_encoder_hdmi.c
> index 8205ee56a691ee7d166b16cfce6932d0308fe6c4..a665c9036878c1e879b7bd88df1d523658fe8849 100644
> --- a/drivers/gpu/drm/meson/meson_encoder_hdmi.c
> +++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.c
> @@ -323,6 +323,7 @@ static int meson_encoder_hdmi_atomic_check(struct drm_bridge *bridge,
> }
>
> static void meson_encoder_hdmi_hpd_notify(struct drm_bridge *bridge,
> + struct drm_connector *connector,
> enum drm_connector_status status)
> {
> struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge);
> diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
> index d87d47cc7ec3eb757ac192c411000bc50b824c59..0676b3423abcb31ac3ea6e6269473764786133ed 100644
> --- a/drivers/gpu/drm/msm/dp/dp_display.c
> +++ b/drivers/gpu/drm/msm/dp/dp_display.c
> @@ -1774,7 +1774,8 @@ void msm_dp_bridge_hpd_disable(struct drm_bridge *bridge)
> }
>
> void msm_dp_bridge_hpd_notify(struct drm_bridge *bridge,
> - enum drm_connector_status status)
> + struct drm_connector *connector,
> + enum drm_connector_status status)
> {
> struct msm_dp_bridge *msm_dp_bridge = to_dp_bridge(bridge);
> struct msm_dp *msm_dp_display = msm_dp_bridge->msm_dp_display;
> diff --git a/drivers/gpu/drm/msm/dp/dp_drm.h b/drivers/gpu/drm/msm/dp/dp_drm.h
> index d8c9b905f8bfb5abe47c1cb26d17bc605e3e1ba6..9eb3431dd93adf096f45b6d981967734bc8a2b0c 100644
> --- a/drivers/gpu/drm/msm/dp/dp_drm.h
> +++ b/drivers/gpu/drm/msm/dp/dp_drm.h
> @@ -40,6 +40,7 @@ void msm_dp_bridge_mode_set(struct drm_bridge *drm_bridge,
> void msm_dp_bridge_hpd_enable(struct drm_bridge *bridge);
> void msm_dp_bridge_hpd_disable(struct drm_bridge *bridge);
> void msm_dp_bridge_hpd_notify(struct drm_bridge *bridge,
> - enum drm_connector_status status);
> + struct drm_connector *connector,
> + enum drm_connector_status status);
>
> #endif /* _DP_DRM_H_ */
> diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
> index 3cd612af24498b057c33eaecb3d43c8df76cd23e..29b2dfb90b5fa3b137d05725d65a1cccb9cd1345 100644
> --- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c
> +++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
> @@ -428,6 +428,7 @@ static void hdmi4_bridge_disable(struct drm_bridge *bridge,
> }
>
> static void hdmi4_bridge_hpd_notify(struct drm_bridge *bridge,
> + struct drm_connector *connector,
> enum drm_connector_status status)
> {
> struct omap_hdmi *hdmi = drm_bridge_to_hdmi(bridge);
> diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h
> index 8ed80cad77ec4b40d0aa6159e802a2839d5b8792..1e73d72c55426ec21905070a13b44aa36b02e023 100644
> --- a/include/drm/drm_bridge.h
> +++ b/include/drm/drm_bridge.h
> @@ -730,6 +730,7 @@ struct drm_bridge_funcs {
> * controllers for HDMI bridges.
> */
> void (*hpd_notify)(struct drm_bridge *bridge,
> + struct drm_connector *connector,
> enum drm_connector_status status);
>
> /**
>
Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>
More information about the Freedreno
mailing list