summaryrefslogtreecommitdiff
path: root/drivers/video/console/vgacon.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/console/vgacon.c')
-rw-r--r--drivers/video/console/vgacon.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c
index ca23d222e029..dc06cb6a15dc 100644
--- a/drivers/video/console/vgacon.c
+++ b/drivers/video/console/vgacon.c
@@ -174,11 +174,11 @@ struct vgacon_scrollback_info {
};
static struct vgacon_scrollback_info *vgacon_scrollback_cur;
-#ifdef CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT
static struct vgacon_scrollback_info vgacon_scrollbacks[MAX_NR_CONSOLES];
-#else
-static struct vgacon_scrollback_info vgacon_scrollbacks[1];
-#endif
+static bool scrollback_persistent = \
+ IS_ENABLED(CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT);
+module_param_named(scrollback_persistent, scrollback_persistent, bool, 0000);
+MODULE_PARM_DESC(scrollback_persistent, "Enable persistent scrollback for all vga consoles");
static void vgacon_scrollback_reset(int vc_num, size_t reset_size)
{
@@ -213,20 +213,19 @@ static void vgacon_scrollback_init(int vc_num)
static void vgacon_scrollback_switch(int vc_num)
{
-#ifndef CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT
- vc_num = 0;
-#endif
+ if (!scrollback_persistent)
+ vc_num = 0;
if (!vgacon_scrollbacks[vc_num].data) {
vgacon_scrollback_init(vc_num);
} else {
-#ifdef CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT
- vgacon_scrollback_cur = &vgacon_scrollbacks[vc_num];
-#else
- size_t size = CONFIG_VGACON_SOFT_SCROLLBACK_SIZE * 1024;
+ if (scrollback_persistent) {
+ vgacon_scrollback_cur = &vgacon_scrollbacks[vc_num];
+ } else {
+ size_t size = CONFIG_VGACON_SOFT_SCROLLBACK_SIZE * 1024;
- vgacon_scrollback_reset(vc_num, size);
-#endif
+ vgacon_scrollback_reset(vc_num, size);
+ }
}
}