|
@@ -161,6 +161,8 @@ static void set_palette(struct vc_data *vc);
|
|
|
static int printable; /* Is console ready for printing? */
|
|
|
int default_utf8 = true;
|
|
|
module_param(default_utf8, int, S_IRUGO | S_IWUSR);
|
|
|
+int global_cursor_default = -1;
|
|
|
+module_param(global_cursor_default, int, S_IRUGO | S_IWUSR);
|
|
|
|
|
|
/*
|
|
|
* ignore_poke: don't unblank the screen when things are typed. This is
|
|
@@ -775,6 +777,12 @@ int vc_allocate(unsigned int currcons) /* return 0 on success */
|
|
|
vc_cons[currcons].d = NULL;
|
|
|
return -ENOMEM;
|
|
|
}
|
|
|
+
|
|
|
+ /* If no drivers have overridden us and the user didn't pass a
|
|
|
+ boot option, default to displaying the cursor */
|
|
|
+ if (global_cursor_default == -1)
|
|
|
+ global_cursor_default = 1;
|
|
|
+
|
|
|
vc_init(vc, vc->vc_rows, vc->vc_cols, 1);
|
|
|
vcs_make_sysfs(currcons);
|
|
|
atomic_notifier_call_chain(&vt_notifier_list, VT_ALLOCATE, ¶m);
|
|
@@ -1616,7 +1624,7 @@ static void reset_terminal(struct vc_data *vc, int do_clear)
|
|
|
vc->vc_decscnm = 0;
|
|
|
vc->vc_decom = 0;
|
|
|
vc->vc_decawm = 1;
|
|
|
- vc->vc_deccm = 1;
|
|
|
+ vc->vc_deccm = global_cursor_default;
|
|
|
vc->vc_decim = 0;
|
|
|
|
|
|
set_kbd(vc, decarm);
|
|
@@ -4078,6 +4086,7 @@ EXPORT_SYMBOL(fg_console);
|
|
|
EXPORT_SYMBOL(console_blank_hook);
|
|
|
EXPORT_SYMBOL(console_blanked);
|
|
|
EXPORT_SYMBOL(vc_cons);
|
|
|
+EXPORT_SYMBOL(global_cursor_default);
|
|
|
#ifndef VT_SINGLE_DRIVER
|
|
|
EXPORT_SYMBOL(take_over_console);
|
|
|
EXPORT_SYMBOL(give_up_console);
|