.vmode = FB_VMODE_NONINTERLACED
};
-static char igs_regs[] __devinitdata = {
+static char igs_regs[] = {
EXT_CRT_IRQ, 0,
EXT_CRT_TEST, 0,
EXT_SYNC_CTL, 0,
cfb->fb.var.accel_flags = FB_ACCELF_TEXT;
cfb->fb.fbops = &cyber2000fb_ops;
- cfb->fb.flags = FBINFO_FLAG_DEFAULT;
+ cfb->fb.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
cfb->fb.pseudo_palette = (void *)(cfb + 1);
fb_alloc_cmap(&cfb->fb.cmap, NR_PALETTE, 0);
return cfb;
}
-static void __devinit
+static void
cyberpro_free_fb_info(struct cfb_info *cfb)
{
if (cfb) {
* I don't think we can use the "module_init" stuff here because
* the fbcon stuff may not be initialised yet. Hence the #ifdef
* around module_init.
+ *
+ * Tony: "module_init" is now required
*/
int __init cyber2000fb_init(void)
{
int ret = -1, err;
+#ifndef MODULE
+ char *option = NULL;
+
+ if (fb_get_options("cyber2000fb", NULL))
+ return -ENODEV;
+ cyber2000fb_setup(option);
+#endif
+
#ifdef CONFIG_ARCH_SHARK
err = cyberpro_vl_probe();
if (!err) {
pci_unregister_driver(&cyberpro_driver);
}
-#ifdef MODULE
module_init(cyber2000fb_init);
-#endif
module_exit(cyberpro_exit);
MODULE_AUTHOR("Russell King");