Commit dfbdf805 authored by Aaro Koskinen's avatar Aaro Koskinen Committed by Greg Kroah-Hartman

staging: xgifb: search video mode later in probe

When searching the video mode, some HW details needs to be
known. Therefore it's not possible to do that reliably before probe().
Signed-off-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 009adf2d
...@@ -48,6 +48,9 @@ ...@@ -48,6 +48,9 @@
#define XGIFB_ROM_SIZE 65536 #define XGIFB_ROM_SIZE 65536
static char *mode;
static int vesa;
/* -------------------- Macro definitions ---------------------------- */ /* -------------------- Macro definitions ---------------------------- */
#undef XGIFBDEBUG #undef XGIFBDEBUG
...@@ -1959,9 +1962,9 @@ static int __init XGIfb_setup(char *options) ...@@ -1959,9 +1962,9 @@ static int __init XGIfb_setup(char *options)
continue; continue;
if (!strncmp(this_opt, "mode:", 5)) { if (!strncmp(this_opt, "mode:", 5)) {
XGIfb_search_mode(this_opt + 5); mode = this_opt + 5;
} else if (!strncmp(this_opt, "vesa:", 5)) { } else if (!strncmp(this_opt, "vesa:", 5)) {
XGIfb_search_vesamode(xgifb_optval(this_opt, 5)); vesa = xgifb_optval(this_opt, 5);
} else if (!strncmp(this_opt, "vrate:", 6)) { } else if (!strncmp(this_opt, "vrate:", 6)) {
xgi_video_info.refresh_rate = xgifb_optval(this_opt, 6); xgi_video_info.refresh_rate = xgifb_optval(this_opt, 6);
} else if (!strncmp(this_opt, "rate:", 5)) { } else if (!strncmp(this_opt, "rate:", 5)) {
...@@ -1987,7 +1990,7 @@ static int __init XGIfb_setup(char *options) ...@@ -1987,7 +1990,7 @@ static int __init XGIfb_setup(char *options)
} else if (!strncmp(this_opt, "userom:", 7)) { } else if (!strncmp(this_opt, "userom:", 7)) {
XGIfb_userom = xgifb_optval(this_opt, 7); XGIfb_userom = xgifb_optval(this_opt, 7);
} else { } else {
XGIfb_search_mode(this_opt); mode = this_opt;
} }
} }
return 0; return 0;
...@@ -2308,6 +2311,11 @@ static int __devinit xgifb_probe(struct pci_dev *pdev, ...@@ -2308,6 +2311,11 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,
} }
if (mode)
XGIfb_search_mode(mode);
else if (vesa != -1)
XGIfb_search_vesamode(vesa);
if (xgifb_mode_idx >= 0) if (xgifb_mode_idx >= 0)
xgifb_mode_idx = XGIfb_validate_mode(xgifb_mode_idx); xgifb_mode_idx = XGIfb_validate_mode(xgifb_mode_idx);
...@@ -2513,9 +2521,6 @@ module_init(xgifb_init); ...@@ -2513,9 +2521,6 @@ module_init(xgifb_init);
#ifdef MODULE #ifdef MODULE
static char *mode;
static int vesa;
MODULE_DESCRIPTION("Z7 Z9 Z9S Z11 framebuffer device driver"); MODULE_DESCRIPTION("Z7 Z9 Z9S Z11 framebuffer device driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("XGITECH , Others"); MODULE_AUTHOR("XGITECH , Others");
...@@ -2541,10 +2546,6 @@ MODULE_PARM_DESC(filter, ...@@ -2541,10 +2546,6 @@ MODULE_PARM_DESC(filter,
static int __init xgifb_init_module(void) static int __init xgifb_init_module(void)
{ {
printk("\nXGIfb_init_module"); printk("\nXGIfb_init_module");
if (mode)
XGIfb_search_mode(mode);
else if (vesa != -1)
XGIfb_search_vesamode(vesa);
return xgifb_init(); return xgifb_init();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment