summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2013-11-11 02:53:27 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2013-11-11 02:53:27 +0000
commit0b007895b644baacb08de716b5d29716f1e94b70 (patch)
tree0514a2e7be57c707b746c2c8d70ccfae39eb7630 /sys
parente2cbf6dffa4c7896883b41451887480bb817102d (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.c8
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;
}