2009-01-22 18:23:25

by Risto Suominen

[permalink] [raw]
Subject: [PATCH] vt - fb: hide cursor in graphics mode

Xserver Xfbdev (kdrive) uses linux framebuffer in graphics mode. It doesn't
need the text mode cursor, it's a bit annoying to have it there sitting in a
corner. This patch disables the cursor when switching to graphics mode.

Signed-off-by: Risto Suominen <[email protected]>
---
The testing is done on kernel version 2.6.18.

--- a/drivers/char/vt_ioctl.c.org 2006-09-20 06:42:06.000000000 +0300
+++ b/drivers/char/vt_ioctl.c 2009-01-22 12:42:38.000000000 +0200
@@ -491,6 +491,10 @@ int vt_ioctl(struct tty_struct *tty, str
return -EPERM;
switch (arg) {
case KD_GRAPHICS:
+ /*
+ * hide H/W (text) cursor in graphics mode
+ */
+ vc->vc_sw->con_cursor(vc, CM_ERASE);
break;
case KD_TEXT0:
case KD_TEXT1:


Attachments:
vt_ioctl-graphics-nocursor.diff (740.00 B)

2009-01-22 19:04:27

by Alan

[permalink] [raw]
Subject: Re: [PATCH] vt - fb: hide cursor in graphics mode

On Thu, 22 Jan 2009 20:23:05 +0200
Risto Suominen <[email protected]> wrote:

> Xserver Xfbdev (kdrive) uses linux framebuffer in graphics mode. It doesn't
> need the text mode cursor, it's a bit annoying to have it there sitting in a
> corner. This patch disables the cursor when switching to graphics mode.
>
> Signed-off-by: Risto Suominen <[email protected]>

NAK. You need to work out what your real problem is I think. When we
enter graphics mode we hide the cursor automatically and always have done.

See set_cursor() and also do_blank_screen(1)


2009-01-22 19:53:58

by Risto Suominen

[permalink] [raw]
Subject: Re: [PATCH] vt - fb: hide cursor in graphics mode

2009/1/22 Alan Cox <[email protected]>:
>
> NAK. You need to work out what your real problem is I think. When we
> enter graphics mode we hide the cursor automatically and always have done.
>
> See set_cursor() and also do_blank_screen(1)
>
Could it be that console != fg_console, and we never reach do_blank_screen?

Risto

2009-01-22 20:24:13

by Risto Suominen

[permalink] [raw]
Subject: Re: [PATCH] vt - fb: hide cursor in graphics mode

2009/1/22 Risto Suominen <[email protected]>:
> 2009/1/22 Alan Cox <[email protected]>:
>>
>> NAK. You need to work out what your real problem is I think. When we
>> enter graphics mode we hide the cursor automatically and always have done.
>>
>> See set_cursor() and also do_blank_screen(1)
>>
> Could it be that console != fg_console, and we never reach do_blank_screen?
>
> Risto
>
Wait, I have a better theory: fbcon_is_inactive() hinders
fbcon_cursor() from doing anything, if the vc is already in graphics
mode.

Risto

2009-01-22 20:54:23

by Alan

[permalink] [raw]
Subject: Re: [PATCH] vt - fb: hide cursor in graphics mode

On Thu, 22 Jan 2009 21:53:45 +0200
Risto Suominen <[email protected]> wrote:

> 2009/1/22 Alan Cox <[email protected]>:
> >
> > NAK. You need to work out what your real problem is I think. When we
> > enter graphics mode we hide the cursor automatically and always have done.
> >
> > See set_cursor() and also do_blank_screen(1)
> >
> Could it be that console != fg_console, and we never reach do_blank_screen?

console != fg_console means that the console you are updating is not the
one displayed - so won't have the cursor on it anyway

2009-01-23 12:22:28

by Risto Suominen

[permalink] [raw]
Subject: Re: [PATCH] vt - fb: hide cursor in graphics mode

2009/1/22 Risto Suominen <[email protected]>:
> 2009/1/22 Risto Suominen <[email protected]>:
>> 2009/1/22 Alan Cox <[email protected]>:
>>>
>>> NAK. You need to work out what your real problem is I think. When we
>>> enter graphics mode we hide the cursor automatically and always have done.
>>>
>>> See set_cursor() and also do_blank_screen(1)
>>>
>> Could it be that console != fg_console, and we never reach do_blank_screen?
>>
>> Risto
>>
> Wait, I have a better theory: fbcon_is_inactive() hinders
> fbcon_cursor() from doing anything, if the vc is already in graphics
> mode.
>
> Risto
>
Well, looks like this theory holds. I'll send another patch, this time
for fbcon.c, that demonstrates this by fixing the problem.

Risto