By default disable VT switch, but allow it to be overridden via the
'vt_switch' module arg.
Signed-off-by: Andres Salomon <[email protected]>
---
Documentation/fb/lxfb.txt | 2 ++
drivers/video/geode/lxfb_core.c | 7 +++++++
2 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/Documentation/fb/lxfb.txt b/Documentation/fb/lxfb.txt
index dc501da..379d9c6 100644
--- a/Documentation/fb/lxfb.txt
+++ b/Documentation/fb/lxfb.txt
@@ -45,6 +45,8 @@ Accepted options:
mode_option - specify the video mode. Of the form
<x>x<y>[-<bpp>][@<refresh>]
vram - size of video ram (normally auto-detected)
+vt_switch - enable vt switching during suspend/resume. The vt
+ switch is slow, but harmless.
--
Andres Salomon <[email protected]>
diff --git a/drivers/video/geode/lxfb_core.c b/drivers/video/geode/lxfb_core.c
index d0502a5..e290981 100644
--- a/drivers/video/geode/lxfb_core.c
+++ b/drivers/video/geode/lxfb_core.c
@@ -17,6 +17,7 @@
#include <linux/console.h>
#include <linux/mm.h>
#include <linux/slab.h>
+#include <linux/suspend.h>
#include <linux/delay.h>
#include <linux/fb.h>
#include <linux/init.h>
@@ -28,6 +29,7 @@
static char *mode_option;
static int noclear, nopanel, nocrt;
static int vram;
+static int vt_switch;
/* Most of these modes are sorted in ascending order, but
* since the first entry in this table is the "default" mode,
@@ -526,6 +528,8 @@ static int __init lxfb_probe(struct pci_dev *pdev,
lxfb_check_var(&info->var, info);
lxfb_set_par(info);
+ pm_set_vt_switch(vt_switch);
+
if (register_framebuffer(info) < 0) {
ret = -EINVAL;
goto err;
@@ -653,5 +657,8 @@ MODULE_PARM_DESC(mode_option, "video mode (<x>x<y>[-<bpp>][@<refr>])");
module_param(vram, int, 0);
MODULE_PARM_DESC(vram, "video memory size");
+module_param(vt_switch, int, 0);
+MODULE_PARM_DESC(vt_switch, "enable VT switch during suspend/resume");
+
MODULE_DESCRIPTION("Framebuffer driver for the AMD Geode LX");
MODULE_LICENSE("GPL");
--
1.5.3.7