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]

Reply via email to