summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2014-02-02 13:55:32 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2014-02-02 13:55:32 +0000
commit54026a71fcf84ee1bd83ed11b058fd6c8f8c6517 (patch)
treed14774c5e94d231461fc42f3980ee7020d60fb4a /sys
parentc2cebc16383f29a4d3ead1ca6d6529cc0dd9cd46 (diff)
drm/i915: flush cursors harder
From Daniel Vetter ca5667eaca18b0267511728c97e3759d01a348cc in ubuntu 3.8 b2ea8ef559b4d94190009f3651b5b3ab7c05afd3 in mainline linux
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/pci/drm/i915/intel_display.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/pci/drm/i915/intel_display.c b/sys/dev/pci/drm/i915/intel_display.c
index e9225ffccb1..d247e7ffaef 100644
--- a/sys/dev/pci/drm/i915/intel_display.c
+++ b/sys/dev/pci/drm/i915/intel_display.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: intel_display.c,v 1.27 2014/02/02 04:02:04 jsg Exp $ */
+/* $OpenBSD: intel_display.c,v 1.28 2014/02/02 13:55:31 jsg Exp $ */
/*
* Copyright © 2006-2007 Intel Corporation
*
@@ -6458,7 +6458,9 @@ static void i9xx_update_cursor(struct drm_crtc *crtc, u32 base)
intel_crtc->cursor_visible = visible;
}
/* and commit changes on next vblank */
+ POSTING_READ(CURCNTR(pipe));
I915_WRITE(CURBASE(pipe), base);
+ POSTING_READ(CURBASE(pipe));
}
static void ivb_update_cursor(struct drm_crtc *crtc, u32 base)
@@ -6483,7 +6485,9 @@ static void ivb_update_cursor(struct drm_crtc *crtc, u32 base)
intel_crtc->cursor_visible = visible;
}
/* and commit changes on next vblank */
+ POSTING_READ(CURCNTR_IVB(pipe));
I915_WRITE(CURBASE_IVB(pipe), base);
+ POSTING_READ(CURBASE_IVB(pipe));
}
/* If no-part of the cursor is visible on the framebuffer, then the GPU may hang... */