diff options
author | Alexey Dobriyan <[email protected]> | 2007-02-12 00:55:02 -0800 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2007-02-12 09:48:42 -0800 |
commit | c7b54477d36fc5d6bd3c4e2e025a39ad9ccb5188 (patch) | |
tree | a971c3c918e883558c733b664f1663cbab86daaf | |
parent | f9506a53b446bc942c79584d3ce442d6334de697 (diff) |
[PATCH] Recognize video=gx1fb:... option
Juergen Beisert reported that the following option doesn't work for him
video=gx1fb:1024x768-16@60
though sisfb was able to parse similar option correctly.
Signed-off-by: Alexey Dobriyan <[email protected]>
Cc: Jordan Crouse <[email protected]>
Cc: "Antonino A. Daplas" <[email protected]>
Cc: James Simmons <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r-- | drivers/video/geode/gx1fb_core.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/drivers/video/geode/gx1fb_core.c b/drivers/video/geode/gx1fb_core.c index bcf9cea54d8b..bb20a2289760 100644 --- a/drivers/video/geode/gx1fb_core.c +++ b/drivers/video/geode/gx1fb_core.c @@ -401,6 +401,30 @@ static void gx1fb_remove(struct pci_dev *pdev) framebuffer_release(info); } +#ifndef MODULE +static void __init gx1fb_setup(char *options) +{ + char *this_opt; + + if (!options || !*options) + return; + + while ((this_opt = strsep(&options, ","))) { + if (!*this_opt) + continue; + + if (!strncmp(this_opt, "mode:", 5)) + strlcpy(mode_option, this_opt + 5, sizeof(mode_option)); + else if (!strncmp(this_opt, "crt:", 4)) + crt_option = !!simple_strtoul(this_opt + 4, NULL, 0); + else if (!strncmp(this_opt, "panel:", 6)) + strlcpy(panel_option, this_opt + 6, sizeof(panel_option)); + else + strlcpy(mode_option, this_opt, sizeof(mode_option)); + } +} +#endif + static struct pci_device_id gx1fb_id_table[] = { { PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_5530_VIDEO, PCI_ANY_ID, PCI_ANY_ID, PCI_BASE_CLASS_DISPLAY << 16, @@ -420,8 +444,11 @@ static struct pci_driver gx1fb_driver = { static int __init gx1fb_init(void) { #ifndef MODULE - if (fb_get_options("gx1fb", NULL)) + char *option = NULL; + + if (fb_get_options("gx1fb", &option)) return -ENODEV; + gx1fb_setup(option); #endif return pci_register_driver(&gx1fb_driver); } |