diff options
Diffstat (limited to 'drivers/video/pm2fb.c')
-rw-r--r-- | drivers/video/pm2fb.c | 33 |
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 | ||