diff options
author | Antonino A. Daplas <adaplas@gmail.com> | 2007-07-17 07:05:28 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-17 13:23:11 -0400 |
commit | 623e71b035cb5271028500720b3622ba76db42bb (patch) | |
tree | 651cd606c57b1e1322f92e0406d744a2b341da7e /drivers/char | |
parent | 317b3c2167f5326a7de30a1abe50c9897da7a0e3 (diff) |
fbcon: allow fbcon to use the primary display driver
Allow fbcon to select the primary display adapter using the
fb_is_primary_device() arch-specific helper. If a a primary adapter is
detected, fbcon will unbind the old adapter from the VT layer, then rebind
using the new adapter. This requires that bind_/unbind_con_driver() be made
public.
Because this feature may produce unexpected behavior (from the user's POV),
this must be explicitly enabled in Kconfig.
[akpm@linux-foundation.org: export unbind_con_driver]
Signed-off-by: Antonino Daplas <adaplas@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/vt.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/char/vt.c b/drivers/char/vt.c index 349673d432f1..8a389b314624 100644 --- a/drivers/char/vt.c +++ b/drivers/char/vt.c | |||
@@ -2869,8 +2869,7 @@ int __init vty_init(void) | |||
2869 | 2869 | ||
2870 | static struct class *vtconsole_class; | 2870 | static struct class *vtconsole_class; |
2871 | 2871 | ||
2872 | static int bind_con_driver(const struct consw *csw, int first, int last, | 2872 | int bind_con_driver(const struct consw *csw, int first, int last, int deflt) |
2873 | int deflt) | ||
2874 | { | 2873 | { |
2875 | struct module *owner = csw->owner; | 2874 | struct module *owner = csw->owner; |
2876 | const char *desc = NULL; | 2875 | const char *desc = NULL; |
@@ -2969,6 +2968,7 @@ err: | |||
2969 | module_put(owner); | 2968 | module_put(owner); |
2970 | return retval; | 2969 | return retval; |
2971 | }; | 2970 | }; |
2971 | EXPORT_SYMBOL(bind_con_driver); | ||
2972 | 2972 | ||
2973 | #ifdef CONFIG_VT_HW_CONSOLE_BINDING | 2973 | #ifdef CONFIG_VT_HW_CONSOLE_BINDING |
2974 | static int con_is_graphics(const struct consw *csw, int first, int last) | 2974 | static int con_is_graphics(const struct consw *csw, int first, int last) |
@@ -2987,8 +2987,7 @@ static int con_is_graphics(const struct consw *csw, int first, int last) | |||
2987 | return retval; | 2987 | return retval; |
2988 | } | 2988 | } |
2989 | 2989 | ||
2990 | static int unbind_con_driver(const struct consw *csw, int first, int last, | 2990 | int unbind_con_driver(const struct consw *csw, int first, int last, int deflt) |
2991 | int deflt) | ||
2992 | { | 2991 | { |
2993 | struct module *owner = csw->owner; | 2992 | struct module *owner = csw->owner; |
2994 | const struct consw *defcsw = NULL; | 2993 | const struct consw *defcsw = NULL; |
@@ -3073,6 +3072,7 @@ err: | |||
3073 | return retval; | 3072 | return retval; |
3074 | 3073 | ||
3075 | } | 3074 | } |
3075 | EXPORT_SYMBOL(unbind_con_driver); | ||
3076 | 3076 | ||
3077 | static int vt_bind(struct con_driver *con) | 3077 | static int vt_bind(struct con_driver *con) |
3078 | { | 3078 | { |