diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2014-02-02 13:55:32 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2014-02-02 13:55:32 +0000 |
commit | 54026a71fcf84ee1bd83ed11b058fd6c8f8c6517 (patch) | |
tree | d14774c5e94d231461fc42f3980ee7020d60fb4a /sys | |
parent | c2cebc16383f29a4d3ead1ca6d6529cc0dd9cd46 (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.c | 6 |
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... */ |