summaryrefslogtreecommitdiffstats
path: root/drivers/staging/xgifb/XGI_main_26.c
diff options
context:
space:
mode:
authorAaro Koskinen <aaro.koskinen@iki.fi>2011-08-29 23:14:25 +0300
committerGreg Kroah-Hartman <gregkh@suse.de>2011-09-06 11:41:22 -0700
commitdfbdf805798bb56acca75bdf7b1cad7818772dba (patch)
tree9b649df4b65fb9a9c6d65922f348c0c51a0bb7c3 /drivers/staging/xgifb/XGI_main_26.c
parent009adf2d4be9479004e41fd9b49a6136498f256b (diff)
downloadop-kernel-dev-dfbdf805798bb56acca75bdf7b1cad7818772dba.zip
op-kernel-dev-dfbdf805798bb56acca75bdf7b1cad7818772dba.tar.gz
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: Aaro Koskinen <aaro.koskinen@iki.fi> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/xgifb/XGI_main_26.c')
-rw-r--r--drivers/staging/xgifb/XGI_main_26.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/staging/xgifb/XGI_main_26.c b/drivers/staging/xgifb/XGI_main_26.c
index e8bad02..a9dc948 100644
--- a/drivers/staging/xgifb/XGI_main_26.c
+++ b/drivers/staging/xgifb/XGI_main_26.c
@@ -48,6 +48,9 @@
#define XGIFB_ROM_SIZE 65536
+static char *mode;
+static int vesa;
+
/* -------------------- Macro definitions ---------------------------- */
#undef XGIFBDEBUG
@@ -1959,9 +1962,9 @@ static int __init XGIfb_setup(char *options)
continue;
if (!strncmp(this_opt, "mode:", 5)) {
- XGIfb_search_mode(this_opt + 5);
+ mode = this_opt + 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)) {
xgi_video_info.refresh_rate = xgifb_optval(this_opt, 6);
} else if (!strncmp(this_opt, "rate:", 5)) {
@@ -1987,7 +1990,7 @@ static int __init XGIfb_setup(char *options)
} else if (!strncmp(this_opt, "userom:", 7)) {
XGIfb_userom = xgifb_optval(this_opt, 7);
} else {
- XGIfb_search_mode(this_opt);
+ mode = this_opt;
}
}
return 0;
@@ -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)
xgifb_mode_idx = XGIfb_validate_mode(xgifb_mode_idx);
@@ -2513,9 +2521,6 @@ module_init(xgifb_init);
#ifdef MODULE
-static char *mode;
-static int vesa;
-
MODULE_DESCRIPTION("Z7 Z9 Z9S Z11 framebuffer device driver");
MODULE_LICENSE("GPL");
MODULE_AUTHOR("XGITECH , Others");
@@ -2541,10 +2546,6 @@ MODULE_PARM_DESC(filter,
static int __init xgifb_init_module(void)
{
printk("\nXGIfb_init_module");
- if (mode)
- XGIfb_search_mode(mode);
- else if (vesa != -1)
- XGIfb_search_vesamode(vesa);
return xgifb_init();
}
OpenPOWER on IntegriCloud