The colorimetry signalled to the sink is part of the AVI infoframe, which is only updated on a modeset. A change of the colorspace property therefore never reaches the sink.
Treat a colorspace change like a change of the Broadcast RGB, output bpc or output format, and force a modeset. Signed-off-by: Jan Claußen <[email protected]> --- drivers/gpu/drm/display/drm_hdmi_state_helper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/display/drm_hdmi_state_helper.c b/drivers/gpu/drm/display/drm_hdmi_state_helper.c index 7cdb7ca3dc12..9368e53c5945 100644 --- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c +++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c @@ -925,7 +925,8 @@ int drm_atomic_helper_connector_hdmi_check(struct drm_connector *connector, if (old_conn_state->hdmi.broadcast_rgb != new_conn_state->hdmi.broadcast_rgb || old_conn_state->hdmi.output_bpc != new_conn_state->hdmi.output_bpc || - old_conn_state->hdmi.output_format != new_conn_state->hdmi.output_format) { + old_conn_state->hdmi.output_format != new_conn_state->hdmi.output_format || + old_conn_state->colorspace != new_conn_state->colorspace) { struct drm_crtc *crtc = new_conn_state->crtc; struct drm_crtc_state *crtc_state; -- 2.56.0
