Message ID | alpine.LNX.2.11.1502271911380.4248@localhost (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, 27 Feb 2015, Scot Doyle wrote: > Add an escape sequence to specify the current console's cursor blink > interval. The interval is specified as a number of milliseconds until > the next cursor display state toggle, from 50 to 65535. /proc/loadavg > did not show a difference with a one msec interval, but the lower > bound is set to 50 msecs since slower hardware wasn't tested. > > Store the interval in the vc_data structure for later access by fbcon, > initializing the value to fbcon's current hardcoded value of 200 msecs. > > Signed-off-by: Scot Doyle <lkml14@scotdoyle.com> > Acked-by: Pavel Machek <pavel@ucw.cz> Hi Greg, sorry about your backlog. Is it too soon for a ping? > --- > drivers/tty/vt/vt.c | 9 +++++++++ > include/linux/console_struct.h | 1 + > 2 files changed, 10 insertions(+) > > diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c > index 6e00572..ab1f173 100644 > --- a/drivers/tty/vt/vt.c > +++ b/drivers/tty/vt/vt.c > @@ -135,6 +135,7 @@ const struct consw *conswitchp; > */ > #define DEFAULT_BELL_PITCH 750 > #define DEFAULT_BELL_DURATION (HZ/8) > +#define DEFAULT_CURSOR_BLINK_MS 200 > > struct vc vc_cons [MAX_NR_CONSOLES]; > > @@ -1590,6 +1591,13 @@ static void setterm_command(struct vc_data *vc) > case 15: /* activate the previous console */ > set_console(last_console); > break; > + case 16: /* set cursor blink duration in msec */ > + if (vc->vc_npar >= 1 && vc->vc_par[1] >= 50 && > + vc->vc_par[1] <= USHRT_MAX) > + vc->vc_cur_blink_ms = vc->vc_par[1]; > + else > + vc->vc_cur_blink_ms = DEFAULT_CURSOR_BLINK_MS; > + break; > } > } > > @@ -1717,6 +1725,7 @@ static void reset_terminal(struct vc_data *vc, int do_clear) > > vc->vc_bell_pitch = DEFAULT_BELL_PITCH; > vc->vc_bell_duration = DEFAULT_BELL_DURATION; > + vc->vc_cur_blink_ms = DEFAULT_CURSOR_BLINK_MS; > > gotoxy(vc, 0, 0); > save_cur(vc); > diff --git a/include/linux/console_struct.h b/include/linux/console_struct.h > index e859c98..e329ee2 100644 > --- a/include/linux/console_struct.h > +++ b/include/linux/console_struct.h > @@ -104,6 +104,7 @@ struct vc_data { > unsigned int vc_resize_user; /* resize request from user */ > unsigned int vc_bell_pitch; /* Console bell pitch */ > unsigned int vc_bell_duration; /* Console bell duration */ > + unsigned short vc_cur_blink_ms; /* Cursor blink duration */ > struct vc_data **vc_display_fg; /* [!] Ptr to var holding fg console for this display */ > struct uni_pagedir *vc_uni_pagedir; > struct uni_pagedir **vc_uni_pagedir_loc; /* [!] Location of uni_pagedir variable for this console */ > -- > 2.3.0 > -- To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Feb 27, 2015 at 07:13:48PM +0000, Scot Doyle wrote: > Add an escape sequence to specify the current console's cursor blink > interval. The interval is specified as a number of milliseconds until > the next cursor display state toggle, from 50 to 65535. /proc/loadavg > did not show a difference with a one msec interval, but the lower > bound is set to 50 msecs since slower hardware wasn't tested. > > Store the interval in the vc_data structure for later access by fbcon, > initializing the value to fbcon's current hardcoded value of 200 msecs. > > Signed-off-by: Scot Doyle <lkml14@scotdoyle.com> > Acked-by: Pavel Machek <pavel@ucw.cz> > --- > drivers/tty/vt/vt.c | 9 +++++++++ > include/linux/console_struct.h | 1 + > 2 files changed, 10 insertions(+) > > diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c > index 6e00572..ab1f173 100644 > --- a/drivers/tty/vt/vt.c > +++ b/drivers/tty/vt/vt.c > @@ -135,6 +135,7 @@ const struct consw *conswitchp; > */ > #define DEFAULT_BELL_PITCH 750 > #define DEFAULT_BELL_DURATION (HZ/8) > +#define DEFAULT_CURSOR_BLINK_MS 200 > > struct vc vc_cons [MAX_NR_CONSOLES]; > > @@ -1590,6 +1591,13 @@ static void setterm_command(struct vc_data *vc) > case 15: /* activate the previous console */ > set_console(last_console); > break; > + case 16: /* set cursor blink duration in msec */ Where is this now documented? Is this a "standard" ASCII command somewhere? Adding new userspace apis have to be documented properly. Without that, I can't take this series, sorry. greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
v2: Add documentation to console_codes man page (man-pages repo) This patch series adds an escape sequence to specify the current console's cursor blink interval. The default interval is set to fbcon's currently hardcoded 200 msecs. Scot Doyle (3): vt: add cursor blink interval escape sequence fbcon: use the cursor blink interval provided by vt console_codes.4: Add CSI sequence for cursor blink interval drivers/tty/vt/vt.c | 9 +++++++++ drivers/video/console/fbcon.c | 10 +++++----- drivers/video/console/fbcon.h | 1 + include/linux/console_struct.h | 1 + man4/console_codes.4 | 1 + 5 files changed, 17 insertions(+), 5 deletions(-)
On Thu 2015-03-26 13:51:04, Scot Doyle wrote: > v2: Add documentation to console_codes man page (man-pages repo) > > This patch series adds an escape sequence to specify the current console's > cursor blink interval. The default interval is set to fbcon's currently > hardcoded 200 msecs. Actually... Greg, can you import console_codes.4 into kernel tree somehow? This will bring documentation for a bunch of currently undocumented kernel interfaces into the kernel tree... where it belongs. Thanks, Pavel
On Sat, Mar 28, 2015 at 08:54:43AM +0100, Pavel Machek wrote: > On Thu 2015-03-26 13:51:04, Scot Doyle wrote: > > v2: Add documentation to console_codes man page (man-pages repo) > > > > This patch series adds an escape sequence to specify the current console's > > cursor blink interval. The default interval is set to fbcon's currently > > hardcoded 200 msecs. > > Actually... Greg, can you import console_codes.4 into kernel tree somehow? Is that file part of the manpages project? If so, it's fine where it is, otherwise feel free to send a patch. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c index 6e00572..ab1f173 100644 --- a/drivers/tty/vt/vt.c +++ b/drivers/tty/vt/vt.c @@ -135,6 +135,7 @@ const struct consw *conswitchp; */ #define DEFAULT_BELL_PITCH 750 #define DEFAULT_BELL_DURATION (HZ/8) +#define DEFAULT_CURSOR_BLINK_MS 200 struct vc vc_cons [MAX_NR_CONSOLES]; @@ -1590,6 +1591,13 @@ static void setterm_command(struct vc_data *vc) case 15: /* activate the previous console */ set_console(last_console); break; + case 16: /* set cursor blink duration in msec */ + if (vc->vc_npar >= 1 && vc->vc_par[1] >= 50 && + vc->vc_par[1] <= USHRT_MAX) + vc->vc_cur_blink_ms = vc->vc_par[1]; + else + vc->vc_cur_blink_ms = DEFAULT_CURSOR_BLINK_MS; + break; } } @@ -1717,6 +1725,7 @@ static void reset_terminal(struct vc_data *vc, int do_clear) vc->vc_bell_pitch = DEFAULT_BELL_PITCH; vc->vc_bell_duration = DEFAULT_BELL_DURATION; + vc->vc_cur_blink_ms = DEFAULT_CURSOR_BLINK_MS; gotoxy(vc, 0, 0); save_cur(vc); diff --git a/include/linux/console_struct.h b/include/linux/console_struct.h index e859c98..e329ee2 100644 --- a/include/linux/console_struct.h +++ b/include/linux/console_struct.h @@ -104,6 +104,7 @@ struct vc_data { unsigned int vc_resize_user; /* resize request from user */ unsigned int vc_bell_pitch; /* Console bell pitch */ unsigned int vc_bell_duration; /* Console bell duration */ + unsigned short vc_cur_blink_ms; /* Cursor blink duration */ struct vc_data **vc_display_fg; /* [!] Ptr to var holding fg console for this display */ struct uni_pagedir *vc_uni_pagedir; struct uni_pagedir **vc_uni_pagedir_loc; /* [!] Location of uni_pagedir variable for this console */