diff options
author | Shashank Sharma <shashank.sharma@intel.com> | 2016-04-21 07:18:32 -0400 |
---|---|---|
committer | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2016-04-22 13:24:48 -0400 |
commit | 4f4a8185011773f7520d9916c6857db946e7f9d1 (patch) | |
tree | 52c5b6595fa3170c7fcbf2ef2acc3713ac60144a | |
parent | 47baf2a5332de6cfb21d1e7e0d2e36640362ff48 (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.c | 12 |
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 | ||