aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2013-11-01 14:32:08 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-11-05 01:59:40 -0500
commitf02586dfedf1dfae4f5ff7eb1990a2c4c56e1425 (patch)
treeb2979d81d4b40e0baf2fcfcffd3fdc845082bdd2
parent78eb06c394da002aa7e059e84aa6aa58880b4bba (diff)
drm/i915: Make intel_dp_is_edp() less specific
All the bits in the VBT child device type have some speciifc meaning, so looking for an exact match isn't always the right thing. On some VLVs for example the device type for eDP panels is 0x1806. If we mask out the bits that could concievably change between different eDP panels, we are left with the set of bits that should still tell us if the port is eDP or not. v2: Use the named bits for VBT child device type Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71051 Tested-by: Robert Hooker <robert.hooker@canonical.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_bios.h18
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c3
2 files changed, 20 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h
index f439c147368a..f580a2b0ddd3 100644
--- a/drivers/gpu/drm/i915/intel_bios.h
+++ b/drivers/gpu/drm/i915/intel_bios.h
@@ -654,6 +654,24 @@ int intel_parse_bios(struct drm_device *dev);
654#define DEVICE_TYPE_DIGITAL_OUTPUT (1 << 1) 654#define DEVICE_TYPE_DIGITAL_OUTPUT (1 << 1)
655#define DEVICE_TYPE_ANALOG_OUTPUT (1 << 0) 655#define DEVICE_TYPE_ANALOG_OUTPUT (1 << 0)
656 656
657/*
658 * Bits we care about when checking for DEVICE_TYPE_eDP
659 * Depending on the system, the other bits may or may not
660 * be set for eDP outputs.
661 */
662#define DEVICE_TYPE_eDP_BITS \
663 (DEVICE_TYPE_INTERNAL_CONNECTOR | \
664 DEVICE_TYPE_NOT_HDMI_OUTPUT | \
665 DEVICE_TYPE_MIPI_OUTPUT | \
666 DEVICE_TYPE_COMPOSITE_OUTPUT | \
667 DEVICE_TYPE_DUAL_CHANNEL | \
668 DEVICE_TYPE_LVDS_SINGALING | \
669 DEVICE_TYPE_TMDS_DVI_SIGNALING | \
670 DEVICE_TYPE_VIDEO_SIGNALING | \
671 DEVICE_TYPE_DISPLAYPORT_OUTPUT | \
672 DEVICE_TYPE_DIGITAL_OUTPUT | \
673 DEVICE_TYPE_ANALOG_OUTPUT)
674
657/* define the DVO port for HDMI output type */ 675/* define the DVO port for HDMI output type */
658#define DVO_B 1 676#define DVO_B 1
659#define DVO_C 2 677#define DVO_C 2
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 7619eae35b25..d58fbb6b5ffd 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -3284,7 +3284,8 @@ bool intel_dpd_is_edp(struct drm_device *dev)
3284 p_child = dev_priv->vbt.child_dev + i; 3284 p_child = dev_priv->vbt.child_dev + i;
3285 3285
3286 if (p_child->common.dvo_port == PORT_IDPD && 3286 if (p_child->common.dvo_port == PORT_IDPD &&
3287 p_child->common.device_type == DEVICE_TYPE_eDP) 3287 (p_child->common.device_type & DEVICE_TYPE_eDP_BITS) ==
3288 (DEVICE_TYPE_eDP & DEVICE_TYPE_eDP_BITS))
3288 return true; 3289 return true;
3289 } 3290 }
3290 return false; 3291 return false;