X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fvideo%2Fpm2fb.c;h=2c7dccbd52502a94f55771b944368e8410edf075;hb=f1c15f938d810b5eb38c85a28e5e9d2af07d135a;hp=49a203e1591c748f1233d6afbaa36aaa11efd572;hpb=026477c1141b67e98e3bd8bdedb7d4b88a3ecd09;p=linux-2.6 diff --git a/drivers/video/pm2fb.c b/drivers/video/pm2fb.c index 49a203e159..2c7dccbd52 100644 --- a/drivers/video/pm2fb.c +++ b/drivers/video/pm2fb.c @@ -33,7 +33,6 @@ #include #include #include -#include #include #include #include @@ -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, } };