aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShashank Sharma <shashank.sharma@intel.com>2016-04-21 07:18:32 -0400
committerVille Syrjälä <ville.syrjala@linux.intel.com>2016-04-22 13:24:48 -0400
commit4f4a8185011773f7520d9916c6857db946e7f9d1 (patch)
tree52c5b6595fa3170c7fcbf2ef2acc3713ac60144a
parent47baf2a5332de6cfb21d1e7e0d2e36640362ff48 (diff)
drm/i915: Fake HDMI live status
This patch does the following: - Fakes live status of HDMI as connected (even if that's not). While testing certain (monitor + cable) combinations with various intel platforms, it seems that live status register doesn't work reliably on some older devices. So limit the live_status check for HDMI detection, only for platforms from gen7 onwards. V2: restrict faking live_status to certain platforms V3: (Ville) - keep the debug message for !live_status case - fix indentation of comment - remove "warning" from the debug message (Jani) - Change format of fix details in the commit message Fixes: 237ed86c693d ("drm/i915: Check live status before reading edid") Cc: stable@vger.kernel.org # v4.4 Suggested-by: Ville Syrjala <ville.syrjala@linux.intel.com> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1461237606-16491-1-git-send-email-shashank.sharma@intel.com Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index b199ede08f72..2cdab73046f8 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1412,8 +1412,16 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
1412 hdmi_to_dig_port(intel_hdmi)); 1412 hdmi_to_dig_port(intel_hdmi));
1413 } 1413 }
1414 1414
1415 if (!live_status) 1415 if (!live_status) {
1416 DRM_DEBUG_KMS("Live status not up!"); 1416 DRM_DEBUG_KMS("HDMI live status down\n");
1417 /*
1418 * Live status register is not reliable on all intel platforms.
1419 * So consider live_status only for certain platforms, for
1420 * others, read EDID to determine presence of sink.
1421 */
1422 if (INTEL_INFO(dev_priv)->gen < 7 || IS_IVYBRIDGE(dev_priv))
1423 live_status = true;
1424 }
1417 1425
1418 intel_hdmi_unset_edid(connector); 1426 intel_hdmi_unset_edid(connector);
1419 1427