Steve Langasek wrote: > On Fri, Dec 23, 2005 at 11:02:26AM -0600, Bob Tracy wrote: > > The subject driver will not compile as a built-in. I have a patch > > available for the interested... (Yes, I'll post this through > > "reportbug" when I can come up for air). > > I'd be interested to know what problems you're running into as well, since > it's been suggested that building tgafb into the kernel image is the way to > get support for these cards into debian-installer.
Well, I've got relatives in town for the holidays and not much time to spend on Linux-related things :-). Here's the patch: if anyone wants to scan it / rework it / whatever and then submit it through proper channels, please feel free to do so. The original problem with not being able to build tgafb.o as a built-in was an undefined tgafb_pci_unregister() function. I simply removed a "#if MODULE" constraint that was inconsistent with the way other drivers in the video driver directory were implemented. The type of the function had to change as well: I was getting a weird vmlinux link error that pointed to built-in.o and exit-related issues. I also relocated the function to do away with an otherwise unneeded forward declaration. As for whether tga2 is supported by this driver, I would speculate the answer is "no". The following blurb from linux/Documentation/fb/tgafb.txt pretty much says it all: "This driver does not (yet) support the TGA2 family of framebuffers, so the PowerStorm 3D30/4D20 (also known as PBXGB) cards are not supported. These can however be used with the standard VGA Text Console driver." Someone else mentioned the Cirrus fb driver as a possibility for the tga2. Can anyone confirm whether this works? ====--CUT HERE--==== --- linux/drivers/video/tgafb.c~ 2005-12-23 10:37:31.000000000 -0600 +++ linux/drivers/video/tgafb.c 2005-12-23 10:51:55.000000000 -0600 @@ -45,9 +45,6 @@ static void tgafb_copyarea(struct fb_info *, const struct fb_copyarea *); static int tgafb_pci_register(struct pci_dev *, const struct pci_device_id *); -#ifdef MODULE -static void tgafb_pci_unregister(struct pci_dev *); -#endif static const char *mode_option = "[EMAIL PROTECTED]"; @@ -78,6 +75,21 @@ 0, 0, 0 } }; +void __devexit +tgafb_pci_unregister(struct pci_dev *pdev) +{ + struct fb_info *info = pci_get_drvdata(pdev); + struct tga_par *par = info->par; + + if (!info) + return; + unregister_framebuffer(info); + iounmap(par->tga_mem_base); + release_mem_region(pci_resource_start(pdev, 0), + pci_resource_len(pdev, 0)); + kfree(info); +} + static struct pci_driver tgafb_driver = { .name = "tgafb", .id_table = tgafb_pci_table, @@ -1482,28 +1494,11 @@ return pci_module_init(&tgafb_driver); } -#ifdef MODULE -static void __exit -tgafb_pci_unregister(struct pci_dev *pdev) -{ - struct fb_info *info = pci_get_drvdata(pdev); - struct tga_par *par = info->par; - - if (!info) - return; - unregister_framebuffer(info); - iounmap(par->tga_mem_base); - release_mem_region(pci_resource_start(pdev, 0), - pci_resource_len(pdev, 0)); - kfree(info); -} - -static void __exit +void __exit tgafb_exit(void) { pci_unregister_driver(&tgafb_driver); } -#endif /* MODULE */ #ifndef MODULE int __init ====--CUT HERE--==== -- ----------------------------------------------------------------------- Bob Tracy WTO + WIPO = DMCA? http://www.anti-dmca.org [EMAIL PROTECTED] ----------------------------------------------------------------------- -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]