]> err.no Git - linux-2.6/blobdiff - drivers/video/pm2fb.c
pm2fb: 3dlabs Permedia 2V reference board added
[linux-2.6] / drivers / video / pm2fb.c
index 49a203e1591c748f1233d6afbaa36aaa11efd572..2c7dccbd52502a94f55771b944368e8410edf075 100644 (file)
@@ -33,7 +33,6 @@
 #include <linux/errno.h>
 #include <linux/string.h>
 #include <linux/mm.h>
-#include <linux/tty.h>
 #include <linux/slab.h>
 #include <linux/delay.h>
 #include <linux/fb.h>
@@ -1118,20 +1117,31 @@ static int __devinit pm2fb_probe(struct pci_dev *pdev,
                default_par->mem_control, default_par->boot_address,
                default_par->mem_config);
 
+       default_par->memclock = CVPPC_MEMCLOCK;
        if(default_par->mem_control == 0 &&
                default_par->boot_address == 0x31 &&
-               default_par->mem_config == 0x259fffff &&
-               pdev->subsystem_vendor == 0x1048 &&
-               pdev->subsystem_device == 0x0a31) {
-               DPRINTK("subsystem_vendor: %04x, subsystem_device: %04x\n",
-                       pdev->subsystem_vendor, pdev->subsystem_device);
-               DPRINTK("We have not been initialized by VGA BIOS "
-                       "and are running on an Elsa Winner 2000 Office\n");
-               DPRINTK("Initializing card timings manually...\n");
+               default_par->mem_config == 0x259fffff) {
                default_par->mem_control=0;
                default_par->boot_address=0x20;
                default_par->mem_config=0xe6002021;
-               default_par->memclock=100000;
+               if (pdev->subsystem_vendor == 0x1048 &&
+                       pdev->subsystem_device == 0x0a31) {
+                       DPRINTK("subsystem_vendor: %04x, subsystem_device: %04x\n",
+                               pdev->subsystem_vendor, pdev->subsystem_device);
+                       DPRINTK("We have not been initialized by VGA BIOS "
+                               "and are running on an Elsa Winner 2000 Office\n");
+                       DPRINTK("Initializing card timings manually...\n");
+                       default_par->memclock=70000;
+               }
+               if (pdev->subsystem_vendor == 0x3d3d &&
+                       pdev->subsystem_device == 0x0100) {
+                       DPRINTK("subsystem_vendor: %04x, subsystem_device: %04x\n",
+                               pdev->subsystem_vendor, pdev->subsystem_device);
+                       DPRINTK("We have not been initialized by VGA BIOS "
+                               "and are running on an 3dlabs reference board\n");
+                       DPRINTK("Initializing card timings manually...\n");
+                       default_par->memclock=70000;
+               }
        }
 
        /* Now work out how big lfb is going to be. */
@@ -1149,7 +1159,6 @@ static int __devinit pm2fb_probe(struct pci_dev *pdev,
                default_par->fb_size=0x800000;
                break;
        }
-       default_par->memclock = CVPPC_MEMCLOCK;
        pm2fb_fix.smem_start = pci_resource_start(pdev, 1);
        pm2fb_fix.smem_len = default_par->fb_size;
 
@@ -1243,6 +1252,9 @@ static struct pci_device_id pm2fb_id_table[] = {
        { PCI_VENDOR_ID_3DLABS, PCI_DEVICE_ID_3DLABS_PERMEDIA2V,
          PCI_ANY_ID, PCI_ANY_ID, PCI_BASE_CLASS_DISPLAY << 16,
          0xff0000, 0 },
+       { PCI_VENDOR_ID_3DLABS, PCI_DEVICE_ID_3DLABS_PERMEDIA2V,
+         PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_NOT_DEFINED_VGA << 8,
+         0xff00, 0 },
        { 0, }
 };