aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau
diff options
context:
space:
mode:
authorChris Ball <cjb@laptop.org>2010-09-26 07:47:27 -0400
committerDave Airlie <airlied@redhat.com>2010-10-05 21:50:42 -0400
commita424d761a00c0233cb7734a8cd572ecd6d0362aa (patch)
treec08b4f9d14abf1a57608cc1a112587cf5437627a /drivers/gpu/drm/nouveau
parentff773714dd30b802c336064109c535d8b2774e2f (diff)
drm/nouveau/kms: Avoid a hang entering KDB with VT accel on.
Francisco Jerez advises that pre-nv20 cards would hang if we entered kdb with accel on and IRQs disabled, so we now disable accel before entering kdb and re-enable it on the way back out. Reported-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau')
-rw-r--r--drivers/gpu/drm/nouveau/nv04_crtc.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nv04_crtc.c b/drivers/gpu/drm/nouveau/nv04_crtc.c
index fb669dd39c3c..427f90e17b9d 100644
--- a/drivers/gpu/drm/nouveau/nv04_crtc.c
+++ b/drivers/gpu/drm/nouveau/nv04_crtc.c
@@ -33,6 +33,7 @@
33#include "nouveau_fb.h" 33#include "nouveau_fb.h"
34#include "nouveau_hw.h" 34#include "nouveau_hw.h"
35#include "nvreg.h" 35#include "nvreg.h"
36#include "nouveau_fbcon.h"
36 37
37static int 38static int
38nv04_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, 39nv04_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
@@ -860,6 +861,14 @@ nv04_crtc_mode_set_base_atomic(struct drm_crtc *crtc,
860 struct drm_framebuffer *fb, 861 struct drm_framebuffer *fb,
861 int x, int y, int enter) 862 int x, int y, int enter)
862{ 863{
864 struct drm_nouveau_private *dev_priv = crtc->dev->dev_private;
865 struct drm_device *dev = dev_priv->dev;
866
867 if (enter)
868 nouveau_fbcon_save_disable_accel(dev);
869 else
870 nouveau_fbcon_restore_accel(dev);
871
863 return nv04_crtc_do_mode_set_base(crtc, fb, x, y, true); 872 return nv04_crtc_do_mode_set_base(crtc, fb, x, y, true);
864} 873}
865 874