summaryrefslogtreecommitdiff
path: root/drivers/gpu
diff options
context:
space:
mode:
authorAbhinav Kumar <abhinavk@codeaurora.org>2017-10-24 18:41:01 -0700
committerAbhinav Kumar <abhinavk@codeaurora.org>2017-10-24 18:45:29 -0700
commita005a1e9544deb0b58eff013469dbb238813b972 (patch)
tree6af51f17d343b550a93dafb627f73e003c84a151 /drivers/gpu
parent9551e129dd2625ea2ab4fa5620820849b069ce2f (diff)
drm/msm: reset sink hdr capabilities during bridge disable
Reset the HDR capabilities during the bridge disable. The capabilities are re-programmed the next time the userspace issues the call to populate the modes. Change-Id: I04dbaa99c291de13b81e12cb9742cc97d9b02593 Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c15
-rw-r--r--drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_util.h3
2 files changed, 18 insertions, 0 deletions
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 0d93edb9201f..0f01cf1fca15 100644
--- a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c
+++ b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_bridge.c
@@ -110,6 +110,20 @@ void _sde_hdmi_bridge_destroy(struct drm_bridge *bridge)
{
}
+static void sde_hdmi_clear_hdr_info(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->hdr_eotf = SDE_HDMI_HDR_EOTF_NONE;
+ connector->hdr_metadata_type_one = false;
+ connector->hdr_max_luminance = SDE_HDMI_HDR_LUMINANCE_NONE;
+ connector->hdr_avg_luminance = SDE_HDMI_HDR_LUMINANCE_NONE;
+ connector->hdr_min_luminance = SDE_HDMI_HDR_LUMINANCE_NONE;
+ connector->hdr_supported = false;
+}
+
static void _sde_hdmi_bridge_power_on(struct drm_bridge *bridge)
{
struct sde_hdmi_bridge *sde_hdmi_bridge = to_hdmi_bridge(bridge);
@@ -551,6 +565,7 @@ static void _sde_hdmi_bridge_disable(struct drm_bridge *bridge)
display->sink_hdcp_ver = SDE_HDMI_HDCP_NONE;
display->sink_hdcp22_support = false;
+ sde_hdmi_clear_hdr_info(bridge);
mutex_unlock(&display->display_lock);
}
diff --git a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_util.h b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_util.h
index 421bdf7643ca..3cef7e6aca39 100644
--- a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_util.h
+++ b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_util.h
@@ -109,6 +109,9 @@
#define SDE_HDMI_HDCP_14 0x14
#define SDE_HDMI_HDCP_NONE 0x0
+#define SDE_HDMI_HDR_LUMINANCE_NONE 0x0
+#define SDE_HDMI_HDR_EOTF_NONE 0x0
+
/*
* Bits 1:0 in HDMI_HW_DDC_CTRL that dictate how the HDCP 2.2 RxStatus will be
* read by the hardware