diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-06-25 13:06:12 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-06-25 13:10:36 -0400 |
commit | 7b0cfee1a24efdfe0235bac62e53f686fe8a8e24 (patch) | |
tree | eeeb8cc3bf7be5ec0e54b7c4f3808ef88ecca012 /drivers/gpu/drm/i915/intel_display.c | |
parent | 9756fe38d10b2bf90c81dc4d2f17d5632e135364 (diff) | |
parent | 6b16351acbd415e66ba16bf7d473ece1574cf0bc (diff) |
Merge tag 'v3.5-rc4' into drm-intel-next-queued
I want to merge the "no more fake agp on gen6+" patches into
drm-intel-next (well, the last pieces). But a patch in 3.5-rc4 also
adds a new use of dev->agp. Hence the backmarge to sort this out, for
otherwise drm-intel-next merged into Linus' tree would conflict in the
relevant code, things would compile but nicely OOPS at driver load :(
Conflicts in this merge are just simple cases of "both branches
changed/added lines at the same place". The only tricky part is to
keep the order correct wrt the unwind code in case of errors in
intel_ringbuffer.c (and the MI_DISPLAY_FLIP #defines in i915_reg.h
together, obviously).
Conflicts:
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_ringbuffer.c
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 | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 06721c0e9f98..b3052ef70d16 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -6377,17 +6377,34 @@ static int intel_gen7_queue_flip(struct drm_device *dev, | |||
6377 | struct drm_i915_private *dev_priv = dev->dev_private; | 6377 | struct drm_i915_private *dev_priv = dev->dev_private; |
6378 | struct intel_crtc *intel_crtc = to_intel_crtc(crtc); | 6378 | struct intel_crtc *intel_crtc = to_intel_crtc(crtc); |
6379 | struct intel_ring_buffer *ring = &dev_priv->ring[BCS]; | 6379 | struct intel_ring_buffer *ring = &dev_priv->ring[BCS]; |
6380 | uint32_t plane_bit = 0; | ||
6380 | int ret; | 6381 | int ret; |
6381 | 6382 | ||
6382 | ret = intel_pin_and_fence_fb_obj(dev, obj, ring); | 6383 | ret = intel_pin_and_fence_fb_obj(dev, obj, ring); |
6383 | if (ret) | 6384 | if (ret) |
6384 | goto err; | 6385 | goto err; |
6385 | 6386 | ||
6387 | switch(intel_crtc->plane) { | ||
6388 | case PLANE_A: | ||
6389 | plane_bit = MI_DISPLAY_FLIP_IVB_PLANE_A; | ||
6390 | break; | ||
6391 | case PLANE_B: | ||
6392 | plane_bit = MI_DISPLAY_FLIP_IVB_PLANE_B; | ||
6393 | break; | ||
6394 | case PLANE_C: | ||
6395 | plane_bit = MI_DISPLAY_FLIP_IVB_PLANE_C; | ||
6396 | break; | ||
6397 | default: | ||
6398 | WARN_ONCE(1, "unknown plane in flip command\n"); | ||
6399 | ret = -ENODEV; | ||
6400 | goto err; | ||
6401 | } | ||
6402 | |||
6386 | ret = intel_ring_begin(ring, 4); | 6403 | ret = intel_ring_begin(ring, 4); |
6387 | if (ret) | 6404 | if (ret) |
6388 | goto err_unpin; | 6405 | goto err_unpin; |
6389 | 6406 | ||
6390 | intel_ring_emit(ring, MI_DISPLAY_FLIP_I915 | (intel_crtc->plane << 19)); | 6407 | intel_ring_emit(ring, MI_DISPLAY_FLIP_I915 | plane_bit); |
6391 | intel_ring_emit(ring, (fb->pitches[0] | obj->tiling_mode)); | 6408 | intel_ring_emit(ring, (fb->pitches[0] | obj->tiling_mode)); |
6392 | intel_ring_emit(ring, (obj->gtt_offset)); | 6409 | intel_ring_emit(ring, (obj->gtt_offset)); |
6393 | intel_ring_emit(ring, (MI_NOOP)); | 6410 | intel_ring_emit(ring, (MI_NOOP)); |
@@ -6760,7 +6777,7 @@ static void intel_setup_outputs(struct drm_device *dev) | |||
6760 | if (I915_READ(HDMIC) & PORT_DETECTED) | 6777 | if (I915_READ(HDMIC) & PORT_DETECTED) |
6761 | intel_hdmi_init(dev, HDMIC); | 6778 | intel_hdmi_init(dev, HDMIC); |
6762 | 6779 | ||
6763 | if (I915_READ(HDMID) & PORT_DETECTED) | 6780 | if (!dpd_is_edp && I915_READ(HDMID) & PORT_DETECTED) |
6764 | intel_hdmi_init(dev, HDMID); | 6781 | intel_hdmi_init(dev, HDMID); |
6765 | 6782 | ||
6766 | if (I915_READ(PCH_DP_C) & DP_DETECTED) | 6783 | if (I915_READ(PCH_DP_C) & DP_DETECTED) |