From b32eb4f2aa6253d51970e1666cb390fd3308e5e6 Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Thu, 27 Sep 2018 18:08:07 -0700 Subject: [PATCH] drm/msm: clear colorimetry block info for HDMI SDE connector stores the information related to the HDMI colorimetry data block. This connector information is retained till the connector is destroyed which does not happen across hotplug. Clear the HDMI colorimetry block related data fields when the bridge is disabled so that across a hotplug stale information is not retained. Change-Id: I2333af8835af98f78934df056301648e1cb6f8be Signed-off-by: Abhinav Kumar --- drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c index ecf93f2c07ac..4df6c0af1707 100644 --- a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c +++ b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c @@ -125,6 +125,15 @@ static void sde_hdmi_clear_hdr_info(struct drm_bridge *bridge) connector->hdr_supported = false; } +static void sde_hdmi_clear_colorimetry(struct drm_bridge *bridge) +{ + struct sde_hdmi_bridge *sde_hdmi_bridge = to_hdmi_bridge(bridge); + struct hdmi *hdmi = sde_hdmi_bridge->hdmi; + struct drm_connector *connector = hdmi->connector; + + connector->color_enc_fmt = 0; +} + static void sde_hdmi_clear_vsdb_info(struct drm_bridge *bridge) { struct sde_hdmi_bridge *sde_hdmi_bridge = to_hdmi_bridge(bridge); @@ -676,6 +685,8 @@ static void _sde_hdmi_bridge_disable(struct drm_bridge *bridge) sde_hdmi_clear_vsdbs(bridge); /* Clear HDMI VCDB block info */ sde_hdmi_clear_vcdb_info(bridge); + /* Clear HDMI colorimetry data block info */ + sde_hdmi_clear_colorimetry(bridge); mutex_unlock(&display->display_lock); }