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>
This commit is contained in:
Antonino A. Daplas
2007-07-17 04:05:28 -07:00
committed by Linus Torvalds
parent 317b3c2167
commit 623e71b035
5 changed files with 102 additions and 14 deletions

View File

@@ -2869,8 +2869,7 @@ int __init vty_init(void)
static struct class *vtconsole_class;
static int bind_con_driver(const struct consw *csw, int first, int last,
int deflt)
int bind_con_driver(const struct consw *csw, int first, int last, int deflt)
{
struct module *owner = csw->owner;
const char *desc = NULL;
@@ -2969,6 +2968,7 @@ err:
module_put(owner);
return retval;
};
EXPORT_SYMBOL(bind_con_driver);
#ifdef CONFIG_VT_HW_CONSOLE_BINDING
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)
return retval;
}
static int unbind_con_driver(const struct consw *csw, int first, int last,
int deflt)
int unbind_con_driver(const struct consw *csw, int first, int last, int deflt)
{
struct module *owner = csw->owner;
const struct consw *defcsw = NULL;
@@ -3073,6 +3072,7 @@ err:
return retval;
}
EXPORT_SYMBOL(unbind_con_driver);
static int vt_bind(struct con_driver *con)
{