public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Knut Petersen <Knut_Petersen@t-online.de>
To: Knut Petersen <Knut_Petersen@t-online.de>
Cc: linux-kernel@vger.kernel.org,
	linux-fbdev-devel@lists.sourceforge.net,
	Andrew Morton <akpm@osdl.org>,
	"Antonino A. Daplas" <adaplas@gmail.com>
Subject: Re: [PATCH 1/1 2.6.15-rc4-git1] Fix switching to KD_TEXT
Date: Sat, 10 Dec 2005 07:28:21 +0100	[thread overview]
Message-ID: <439A7585.6050600@t-online.de> (raw)
In-Reply-To: <4398B888.50005@t-online.de>

Please do forget about that patch I sent to you some days ago. An 
enhanced version
will follow soon.

cu,
 knut

Knut Petersen schrieb:

>  Every framebuffer driver relies on the assumption that the set_par() 
> function
> of the driver is called before drawing functions and other functions 
> dependent
> on the hardware state are executed.
>
> This assumption is false in two cases, and one is a genuine linux
> bug:
>
>    1: Whenever you switch from X to a framebuffer console for the very
>        first time, there is a chance that a broken X system has _not_ set
>        the mode to KD_GRAPHICS, thus the vt and framebuffer code
>        executes a screen redraw and several other functions before a
>        set_par() is executed. This is believed to be not a bug of linux
>        but a bug of X/xdm.
>
>    2: Whenever a switch from X to a framebuffer console occures,
>         the pan_display() function of the driver is called once before
>         the set_par() function of the driver is called. Code path:
>         complete_change_console -> redraw_screen -> fbcon_switch ->
>         bit_update_start-> fb_pan_display -> xyz_pan_display.
>         This is clearly a bug of linux.
>
> Although our primary goal must be to fix linux bugs and not to work
> around bugs of X, the patch fixes both of the cases.
>
> The advantage and correctness of this patch should be obvious. Yes, it
> does add a possibly slow call to the fb_set_par() function, but at this
> point it is necessary.
>
> Signed-off-by: Knut Petersen <Knut_Petersen@t-online.de>
>
>
> diff -uprN -X linux/Documentation/dontdiff -x '*.bak' -x '*.ctx' 
> linuxorig/drivers/video/console/fbcon.c 
> linux/drivers/video/console/fbcon.c
> --- linuxorig/drivers/video/console/fbcon.c    2005-12-02 
> 12:18:04.000000000 +0100
> +++ linux/drivers/video/console/fbcon.c    2005-12-06 
> 09:06:56.000000000 +0100
> @@ -2103,10 +2103,11 @@ static int fbcon_switch(struct vc_data *
>     fb_set_var(info, &var);
>     ops->var = info->var;
>
> -    if (old_info != NULL && old_info != info) {
> -        if (info->fbops->fb_set_par)
> -            info->fbops->fb_set_par(info);
> +    if (old_info != NULL && old_info != info)
>         fbcon_del_cursor_timer(old_info);
> +
> +    if (info->fbops->fb_set_par) {
> +        info->fbops->fb_set_par(info);
>         fbcon_add_cursor_timer(info);
>     }
>
>
>


      parent reply	other threads:[~2005-12-10  6:27 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-08 22:49 [PATCH 1/1 2.6.15-rc4-git1] Fix switching to KD_TEXT Knut Petersen
2005-12-09  0:24 ` Antonino A. Daplas
2005-12-09 11:53   ` Knut Petersen
2005-12-09 14:14     ` [Linux-fbdev-devel] " Ville Syrjälä
2005-12-09 14:33     ` Antonino A. Daplas
2005-12-09 16:38     ` Antonino A. Daplas
2005-12-10  6:28 ` Knut Petersen [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=439A7585.6050600@t-online.de \
    --to=knut_petersen@t-online.de \
    --cc=adaplas@gmail.com \
    --cc=akpm@osdl.org \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    /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