diff options
author | Paulo Zanoni <paulo.r.zanoni@intel.com> | 2012-11-20 13:27:40 -0200 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-11-21 17:47:09 +0100 |
commit | 79935fca3f1259e0a6fe203b55008f84ab8f3087 (patch) | |
tree | 34d1c90add43eb0b8f6e996f2565f113f2b3aef3 /drivers/gpu/drm/i915/intel_display.c | |
parent | 17a303ec7cd5a245c621b6d0898eb3ef9fc96329 (diff) | |
download | blackbird-op-linux-79935fca3f1259e0a6fe203b55008f84ab8f3087.tar.gz blackbird-op-linux-79935fca3f1259e0a6fe203b55008f84ab8f3087.zip |
drm/i915: don't intel_crt_init if DDI A has 4 lanes
DDI A and E have 4 lanes to share, so if DDI A is using 4 lanes,
there's nothing left for DDI E, which means there's no CRT port on the
machine.
The bit we're checking here is programmed at system boot and it cannot
be changed afterwards, so we cannot change the amount of lanes
reserved for each DDI port.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 4e303cf7ead6..e233541d4c9f 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -8267,7 +8267,9 @@ static void intel_setup_outputs(struct drm_device *dev) I915_WRITE(PFIT_CONTROL, 0); } - intel_crt_init(dev); + if (!(IS_HASWELL(dev) && + (I915_READ(DDI_BUF_CTL(PORT_A)) & DDI_A_4_LANES))) + intel_crt_init(dev); if (IS_HASWELL(dev)) { int found; |