]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/bridge: add connector argument to .hpd_notify callback
authorDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Sun, 3 Aug 2025 11:53:51 +0000 (14:53 +0300)
committerDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Wed, 24 Dec 2025 22:22:13 +0000 (00:22 +0200)
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.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patch.msgid.link/20250803-lt9611uxc-hdmi-v1-1-cb9ce1793acf@oss.qualcomm.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
drivers/gpu/drm/display/drm_bridge_connector.c
drivers/gpu/drm/meson/meson_encoder_hdmi.c
drivers/gpu/drm/msm/dp/dp_display.c
drivers/gpu/drm/msm/dp/dp_drm.h
drivers/gpu/drm/omapdrm/dss/hdmi4.c
include/drm/drm_bridge.h

index a2d30cf9e06df44b89456b5aba8198ee1e5d5601..57a0cceabd34d463eb2f430035fa6b80dc98a8ff 100644 (file)
@@ -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_scoped(bridge_connector->encoder, bridge) {
                if (bridge->funcs->hpd_notify)
-                       bridge->funcs->hpd_notify(bridge, status);
+                       bridge->funcs->hpd_notify(bridge, connector, status);
        }
 }
 
index 8205ee56a691ee7d166b16cfce6932d0308fe6c4..a665c9036878c1e879b7bd88df1d523658fe8849 100644 (file)
@@ -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);
index 9bd9cd5c1e03cc17598b222177b6682bbcd89f0c..c0569229a1d150164f9a04d79b0eda2997170a91 100644 (file)
@@ -1783,7 +1783,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;
index d8c9b905f8bfb5abe47c1cb26d17bc605e3e1ba6..9eb3431dd93adf096f45b6d981967734bc8a2b0c 100644 (file)
@@ -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_ */
index 3cd612af24498b057c33eaecb3d43c8df76cd23e..29b2dfb90b5fa3b137d05725d65a1cccb9cd1345 100644 (file)
@@ -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);
index d2683846cc619007f85a6f605b9d23ce971e04b3..68b9da1eb5425d9aa9e2fd9ac9cf78cdc881c98a 100644 (file)
@@ -731,6 +731,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);
 
        /**