diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2013-11-11 02:53:27 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2013-11-11 02:53:27 +0000 |
commit | 0b007895b644baacb08de716b5d29716f1e94b70 (patch) | |
tree | 0514a2e7be57c707b746c2c8d70ccfae39eb7630 /sys | |
parent | e2cbf6dffa4c7896883b41451887480bb817102d (diff) |
drm/i915: Don't enable the cursor on a disable pipe
On HSW enabling a plane on a disabled pipe may hang the entire system.
And there's no good reason for doing it ever, so just don't.
v2: Move the crtc active checks to intel_crtc_cursor_{set,move} to
avoid confusing people during modeset
From Ville Syrjala
f6c0873963a9b8ea1d94541e0e219e6ea090012b in ubuntu 3.8
f2f5f771c5fc0fa252cde3d0d0452dcc785cc17a in mainline linux
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/pci/drm/i915/intel_display.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/dev/pci/drm/i915/intel_display.c b/sys/dev/pci/drm/i915/intel_display.c index 7da9b668756..a61479075db 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.16 2013/11/11 02:48:04 jsg Exp $ */ +/* $OpenBSD: intel_display.c,v 1.17 2013/11/11 02:53:26 jsg Exp $ */ /* * Copyright © 2006-2007 Intel Corporation * @@ -6633,7 +6633,8 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc, intel_crtc->cursor_width = width; intel_crtc->cursor_height = height; - intel_crtc_update_cursor(crtc, true); + if (intel_crtc->active) + intel_crtc_update_cursor(crtc, true); return 0; fail_unpin: @@ -6652,7 +6653,8 @@ static int intel_crtc_cursor_move(struct drm_crtc *crtc, int x, int y) intel_crtc->cursor_x = x; intel_crtc->cursor_y = y; - intel_crtc_update_cursor(crtc, true); + if (intel_crtc->active) + intel_crtc_update_cursor(crtc, true); return 0; } |