diff options
| author | Antonino Daplas <adaplas@hotpop.com> | 2005-03-30 16:42:48 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-03-30 16:42:48 -0800 |
| commit | 2859de99c8a8f32ee7287d2c01e268b7e64bdd2a (patch) | |
| tree | d0efe20d402194f680f242996a08d03a8ebce062 /include/linux/fb.h | |
| parent | 835b1e211a24ffce3115b25f39882108a1af5386 (diff) | |
[PATCH] fbcon: Stop framebuffer operations before hardware is properly initialized
Accessing the hardware before it is properly initialized can lead to crashes
or screen corruption. This happens when switching to X then back to console.
When console comes back from X, the device is in an undefined state. During
this window, accessing the hardware is disallowed.
A new field in fbcon_par is added (graphics), which will be set to nonzero
just before initialization of the framebuffer and when coming back from
KD_GRAPHICS, then unset when an fb_set_var/fb_set_par is done. While this
field is set, no accesses to the hardware is done. The consequence of this
change is, hopefully, more robust switching between KD_GRAPHICS<-> KD_TEXT.
An added benefit coming from this change is that the MODESWITCHLATE hack is
not needed anymore and thus removed. This hack is used by savagefb, rivafb
and nvidiafb.
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/fb.h')
| -rw-r--r-- | include/linux/fb.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/include/linux/fb.h b/include/linux/fb.h index 9d1507c87cec..b45d3e2d711a 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h @@ -702,9 +702,7 @@ struct fb_tile_ops { #define FBINFO_MISC_USEREVENT 0x10000 /* event request from userspace */ -#define FBINFO_MISC_MODESWITCH 0x20000 /* mode switch */ -#define FBINFO_MISC_MODESWITCHLATE 0x40000 /* init hardware later */ -#define FBINFO_MISC_TILEBLITTING 0x80000 /* use tile blitting */ +#define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */ struct fb_info { int node; |
