aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_dma.c
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2010-03-26 13:35:20 -0400
committerEric Anholt <eric@anholt.net>2010-06-18 20:59:53 -0400
commit1afe3e9d4335bf3bc5615e37243dc8fef65dac8f (patch)
treeddf1bc38a43a1f2cd6b289efe8837173a8bdca24 /drivers/gpu/drm/i915/i915_dma.c
parent83f7fd055eb3f1e843803cd906179d309553967b (diff)
drm/i915: gen3 page flipping fixes
Gen3 chips have slightly different flip commands, and also contain a bit that indicates whether a "flip pending" interrupt means the flip has been queued or has been completed. So implement support for the gen3 flip command, and make sure we use the flip pending interrupt correctly depending on the value of ECOSKPD bit 0. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_dma.c')
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 84ce95602f00..4d59710c717e 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1408,6 +1408,10 @@ static int i915_load_modeset_init(struct drm_device *dev,
1408 if (ret) 1408 if (ret)
1409 goto destroy_ringbuffer; 1409 goto destroy_ringbuffer;
1410 1410
1411 /* IIR "flip pending" bit means done if this bit is set */
1412 if (IS_GEN3(dev) && (I915_READ(ECOSKPD) & ECO_FLIP_DONE))
1413 dev_priv->flip_pending_is_done = true;
1414
1411 intel_modeset_init(dev); 1415 intel_modeset_init(dev);
1412 1416
1413 ret = drm_irq_install(dev); 1417 ret = drm_irq_install(dev);