aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/pm2fb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/pm2fb.c')
-rw-r--r--drivers/video/pm2fb.c33
1 files changed, 23 insertions, 10 deletions
diff --git a/drivers/video/pm2fb.c b/drivers/video/pm2fb.c
index a560a2223825..2c7dccbd5250 100644
--- a/drivers/video/pm2fb.c
+++ b/drivers/video/pm2fb.c
@@ -1117,20 +1117,31 @@ static int __devinit pm2fb_probe(struct pci_dev *pdev,
1117 default_par->mem_control, default_par->boot_address, 1117 default_par->mem_control, default_par->boot_address,
1118 default_par->mem_config); 1118 default_par->mem_config);
1119 1119
1120 default_par->memclock = CVPPC_MEMCLOCK;
1120 if(default_par->mem_control == 0 && 1121 if(default_par->mem_control == 0 &&
1121 default_par->boot_address == 0x31 && 1122 default_par->boot_address == 0x31 &&
1122 default_par->mem_config == 0x259fffff && 1123 default_par->mem_config == 0x259fffff) {
1123 pdev->subsystem_vendor == 0x1048 &&
1124 pdev->subsystem_device == 0x0a31) {
1125 DPRINTK("subsystem_vendor: %04x, subsystem_device: %04x\n",
1126 pdev->subsystem_vendor, pdev->subsystem_device);
1127 DPRINTK("We have not been initialized by VGA BIOS "
1128 "and are running on an Elsa Winner 2000 Office\n");
1129 DPRINTK("Initializing card timings manually...\n");
1130 default_par->mem_control=0; 1124 default_par->mem_control=0;
1131 default_par->boot_address=0x20; 1125 default_par->boot_address=0x20;
1132 default_par->mem_config=0xe6002021; 1126 default_par->mem_config=0xe6002021;
1133 default_par->memclock=100000; 1127 if (pdev->subsystem_vendor == 0x1048 &&
1128 pdev->subsystem_device == 0x0a31) {
1129 DPRINTK("subsystem_vendor: %04x, subsystem_device: %04x\n",
1130 pdev->subsystem_vendor, pdev->subsystem_device);
1131 DPRINTK("We have not been initialized by VGA BIOS "
1132 "and are running on an Elsa Winner 2000 Office\n");
1133 DPRINTK("Initializing card timings manually...\n");
1134 default_par->memclock=70000;
1135 }
1136 if (pdev->subsystem_vendor == 0x3d3d &&
1137 pdev->subsystem_device == 0x0100) {
1138 DPRINTK("subsystem_vendor: %04x, subsystem_device: %04x\n",
1139 pdev->subsystem_vendor, pdev->subsystem_device);
1140 DPRINTK("We have not been initialized by VGA BIOS "
1141 "and are running on an 3dlabs reference board\n");
1142 DPRINTK("Initializing card timings manually...\n");
1143 default_par->memclock=70000;
1144 }
1134 } 1145 }
1135 1146
1136 /* Now work out how big lfb is going to be. */ 1147 /* Now work out how big lfb is going to be. */
@@ -1148,7 +1159,6 @@ static int __devinit pm2fb_probe(struct pci_dev *pdev,
1148 default_par->fb_size=0x800000; 1159 default_par->fb_size=0x800000;
1149 break; 1160 break;
1150 } 1161 }
1151 default_par->memclock = CVPPC_MEMCLOCK;
1152 pm2fb_fix.smem_start = pci_resource_start(pdev, 1); 1162 pm2fb_fix.smem_start = pci_resource_start(pdev, 1);
1153 pm2fb_fix.smem_len = default_par->fb_size; 1163 pm2fb_fix.smem_len = default_par->fb_size;
1154 1164
@@ -1242,6 +1252,9 @@ static struct pci_device_id pm2fb_id_table[] = {
1242 { PCI_VENDOR_ID_3DLABS, PCI_DEVICE_ID_3DLABS_PERMEDIA2V, 1252 { PCI_VENDOR_ID_3DLABS, PCI_DEVICE_ID_3DLABS_PERMEDIA2V,
1243 PCI_ANY_ID, PCI_ANY_ID, PCI_BASE_CLASS_DISPLAY << 16, 1253 PCI_ANY_ID, PCI_ANY_ID, PCI_BASE_CLASS_DISPLAY << 16,
1244 0xff0000, 0 }, 1254 0xff0000, 0 },
1255 { PCI_VENDOR_ID_3DLABS, PCI_DEVICE_ID_3DLABS_PERMEDIA2V,
1256 PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_NOT_DEFINED_VGA << 8,
1257 0xff00, 0 },
1245 { 0, } 1258 { 0, }
1246}; 1259};
1247 1260