提交 a424d761 编写于 作者: C Chris Ball 提交者: Dave Airlie

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: NFrancisco Jerez <currojerez@riseup.net>
Signed-off-by: NChris Ball <cjb@laptop.org>
Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
Signed-off-by: NDave Airlie <airlied@redhat.com>
上级 ff773714
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "nouveau_fb.h" #include "nouveau_fb.h"
#include "nouveau_hw.h" #include "nouveau_hw.h"
#include "nvreg.h" #include "nvreg.h"
#include "nouveau_fbcon.h"
static int static int
nv04_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, nv04_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,6 +861,14 @@ nv04_crtc_mode_set_base_atomic(struct drm_crtc *crtc,
struct drm_framebuffer *fb, struct drm_framebuffer *fb,
int x, int y, int enter) int x, int y, int enter)
{ {
struct drm_nouveau_private *dev_priv = crtc->dev->dev_private;
struct drm_device *dev = dev_priv->dev;
if (enter)
nouveau_fbcon_save_disable_accel(dev);
else
nouveau_fbcon_restore_accel(dev);
return nv04_crtc_do_mode_set_base(crtc, fb, x, y, true); return nv04_crtc_do_mode_set_base(crtc, fb, x, y, true);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册