Create and attach the 'link bpc' DRM property for every HDMI connector
that's created through drmm_connector_hdmi_init.

Then, set the connector state's link_bpc member in the HDMI atomic check
state helper to the connector state's HDMI output bpc.

Acked-by: Maxime Ripard <[email protected]>
Signed-off-by: Nicolas Frattaroli <[email protected]>
---
 drivers/gpu/drm/display/drm_hdmi_state_helper.c | 2 ++
 drivers/gpu/drm/drm_connector.c                 | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/display/drm_hdmi_state_helper.c 
b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
index 9f3b696aceeb..b670bcdbd3c6 100644
--- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c
+++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
@@ -887,6 +887,8 @@ int drm_atomic_helper_connector_hdmi_check(struct 
drm_connector *connector,
                struct drm_crtc *crtc = new_conn_state->crtc;
                struct drm_crtc_state *crtc_state;
 
+               new_conn_state->link_bpc = new_conn_state->hdmi.output_bpc;
+
                crtc_state = drm_atomic_get_crtc_state(state, crtc);
                if (IS_ERR(crtc_state))
                        return PTR_ERR(crtc_state);
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index 85557106218b..2a2e56bf062d 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -693,6 +693,10 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
        drm_connector_attach_max_bpc_property(connector, 8, max_bpc);
        connector->max_bpc = max_bpc;
 
+       ret = drm_connector_attach_link_bpc_property(connector, max_bpc);
+       if (ret)
+               return ret;
+
        if (max_bpc > 8)
                drm_connector_attach_hdr_output_metadata_property(connector);
 

-- 
2.53.0

Reply via email to