* [PATCH 6/8] fbcon: Revise primary device selection
@ 2007-05-31 13:02 Antonino A. Daplas
0 siblings, 0 replies; only message in thread
From: Antonino A. Daplas @ 2007-05-31 13:02 UTC (permalink / raw)
To: Andrew Morton; +Cc: Linux Fbdev development list, David S. Miller
Use set_con2fb_map() to select the primary display driver instead of using
unbind_con_driver() and bind_con_driver(). Using the former is much simpler
and safer than the current one.
Signed-off-by: Antonino Daplas <adaplas@gmail.com>
---
I was forced to use unbind_con_driver/bind_con_driver initially because
set_con2fb_map() is broken. Now that it is fixed, I can move primary device
selection to set_con2fb_map. There is lesser complexity and lesser code, and
it does not depend on the VT layer.
Tony
drivers/video/console/Kconfig | 6 +----
drivers/video/console/fbcon.c | 51 +++++++++++------------------------------
2 files changed, 15 insertions(+), 42 deletions(-)
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
index 1e11d30..449f92c 100644
--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -120,7 +120,7 @@ config FRAMEBUFFER_CONSOLE
config FRAMEBUFFER_CONSOLE_DETECT_PRIMARY
bool "Map the console to the primary display device"
- depends on FRAMEBUFFER_CONSOLE && VT_HW_CONSOLE_BINDING
+ depends on FRAMEBUFFER_CONSOLE
default n
---help---
If this option is selected, the framebuffer console will
@@ -132,10 +132,6 @@ config FRAMEBUFFER_CONSOLE_DETECT_PRIMAR
You can always override the automatic selection of the primary device
by using the fbcon=map: boot option.
- To select this feature, "Support for binding and unbinding console
- drivers", under "Device Drivers"->"Character Devices" must be set to
- y.
-
If unsure, select n.
config FRAMEBUFFER_CONSOLE_ROTATION
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index 13b67ee..51bd430 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -3041,52 +3041,32 @@ static int fbcon_fb_unregistered(struct
}
#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY
-static int fbcon_select_primary(struct fb_info *info)
+static void fbcon_select_primary(struct fb_info *info)
{
- int ret = 0;
-
if (!map_override && primary_device == -1 &&
fb_is_primary_device(info)) {
- int i, err;
+ int i;
- printk(KERN_INFO "fbcon: %s is primary device\n",
- info->fix.id);
+ printk(KERN_INFO "fbcon: %s (fb%i) is primary device\n",
+ info->fix.id, info->node);
primary_device = info->node;
- if (!con_is_bound(&fb_con))
- goto done;
-
- printk(KERN_INFO "fbcon: Unbinding old driver\n");
- unbind_con_driver(&fb_con, first_fb_vc, last_fb_vc,
- fbcon_is_default);
- info_idx = primary_device;
-
- for (i = first_fb_vc; i <= last_fb_vc; i++) {
+ for (i = first_fb_vc; i <= last_fb_vc; i++)
con2fb_map_boot[i] = primary_device;
- con2fb_map[i] = primary_device;
- }
-
- printk(KERN_INFO "fbcon: Selecting new driver\n");
- err = bind_con_driver(&fb_con, first_fb_vc, last_fb_vc,
- fbcon_is_default);
- if (err) {
- for (i = first_fb_vc; i <= last_fb_vc; i++)
- con2fb_map[i] = -1;
-
- info_idx = -1;
+ if (con_is_bound(&fb_con)) {
+ printk(KERN_INFO "fbcon: Remapping primary device, "
+ "fb%i, to tty %i-%i\n", info->node,
+ first_fb_vc + 1, last_fb_vc + 1);
+ info_idx = primary_device;
}
-
- ret = 1;
}
-
-done:
- return ret;
+
}
#else
-static inline int fbcon_select_primary(struct fb_info *info)
+static inline void fbcon_select_primary(struct fb_info *info)
{
- return 0;
+ return;
}
#endif /* CONFIG_FRAMEBUFFER_DETECT_PRIMARY */
@@ -3094,9 +3074,7 @@ static int fbcon_fb_registered(struct fb
{
int ret = 0, i, idx = info->node;
- if (fbcon_select_primary(info))
- goto done;
-
+ fbcon_select_primary(info);
if (info_idx == -1) {
for (i = first_fb_vc; i <= last_fb_vc; i++) {
@@ -3115,7 +3093,6 @@ static int fbcon_fb_registered(struct fb
}
}
-done:
return ret;
}
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2007-05-31 13:10 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-31 13:02 [PATCH 6/8] fbcon: Revise primary device selection Antonino A. Daplas
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).