linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: James Simmons <jsimmons@infradead.org>
To: Sven Schnelle <schnelle@kabelleipzig.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Framebuffer Console
Date: Tue, 29 Jul 2003 18:46:18 +0100 (BST)	[thread overview]
Message-ID: <Pine.LNX.4.44.0307291827090.5874-100000@phoenix.infradead.org> (raw)
In-Reply-To: <20030728201006.GA349@apollo.sven.bitebene.org>


> while testing linux-2.6.0-test2 I have some strange framebuffer(rivafb,
> but maybe this appears on other card's too)
> behaviour:
> 
> 1) Screen is not restored after switching from X11 back to textmode

Try adding UseFBDev "true" to your XF86Config file. 

> 2) Cursor shows wrong characters

> This patch solve the problems for me:
> 
> -------------------------------------8<--------------------------------
> diff -ur linux-2.6.0-test2/drivers/video/console/fbcon.c linux-2.6.0-test2-sv/drivers/video/console/fbcon.c
> --- linux-2.6.0-test2/drivers/video/console/fbcon.c	2003-07-27 19:05:15.000000000 +0200
> +++ linux-2.6.0-test2-sv/drivers/video/console/fbcon.c	2003-07-28 10:40:38.000000000 +0200
> @@ -1056,7 +1056,7 @@
>  			cursor.set |= FB_CUR_SETHOT;
>  		}
>  
> -		if ((cursor.set & FB_CUR_SETSIZE) || ((vc->vc_cursor_type & 0x0f) != p->cursor_shape)) {
> +		if ((cursor.set & FB_CUR_SETSIZE) || (cursor.set & FB_CUR_SETCUR) || ((vc->vc_cursor_type & 0x0f) != p->cursor_shape)) {
>  			char *mask = kmalloc(w*vc->vc_font.height, GFP_ATOMIC);
>  			int cur_height, size, i = 0;

This is wrong. FB_CUR_SETCUR is used only by the userland cursor 
interface. We use it to turn the cursor on and off via userland this way.
Internal to the kernel we just toggle the enable flag.

> @@ -1704,8 +1704,13 @@
>  	if (blank < 0)		/* Entering graphics mode */
>  		return 0;
>  
> +	/* FIXME: Dirty Hack */
> +	info->cursor.image.height = 0;	/* Need to set cursor size */
> +	info->cursor.image.width = 0;
>  	fbcon_cursor(vc, blank ? CM_ERASE : CM_DRAW);
>  
> +	fbcon_clear(vc, 0, 0, vc->vc_rows, vc->vc_cols);
> +	update_screen(vc->vc_num);
>  	if (!info->fbops->fb_blank) {
>  		if (blank) {
>  			unsigned short oldc;

This is a fluke that it helps. The cursor shows wrong characters because
the code logic is wrong. I'm working on the new code.



      parent reply	other threads:[~2003-07-29 17:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-28 20:10 Framebuffer Console Sven Schnelle
2003-07-29  7:19 ` Gábor Lénárt
2003-07-29 17:46 ` James Simmons [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.44.0307291827090.5874-100000@phoenix.infradead.org \
    --to=jsimmons@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=schnelle@kabelleipzig.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).