pm2fb: 3dlabs Permedia 2V reference board added

This patch adds support for 3dlabs Permedia reference board.

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Antonino Daplas <adaplas@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Krzysztof Helt 2007-05-08 00:39:30 -07:00 committed by Linus Torvalds
parent d37363409b
commit f1c15f938d

View File

@ -1117,20 +1117,31 @@ static int __devinit pm2fb_probe(struct pci_dev *pdev,
default_par->mem_control, default_par->boot_address, default_par->mem_control, default_par->boot_address,
default_par->mem_config); default_par->mem_config);
default_par->memclock = CVPPC_MEMCLOCK;
if(default_par->mem_control == 0 && if(default_par->mem_control == 0 &&
default_par->boot_address == 0x31 && default_par->boot_address == 0x31 &&
default_par->mem_config == 0x259fffff && 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_control=0; default_par->mem_control=0;
default_par->boot_address=0x20; default_par->boot_address=0x20;
default_par->mem_config=0xe6002021; 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. */ /* Now work out how big lfb is going to be. */
@ -1148,7 +1159,6 @@ static int __devinit pm2fb_probe(struct pci_dev *pdev,
default_par->fb_size=0x800000; default_par->fb_size=0x800000;
break; break;
} }
default_par->memclock = CVPPC_MEMCLOCK;
pm2fb_fix.smem_start = pci_resource_start(pdev, 1); pm2fb_fix.smem_start = pci_resource_start(pdev, 1);
pm2fb_fix.smem_len = default_par->fb_size; pm2fb_fix.smem_len = default_par->fb_size;
@ -1242,6 +1252,9 @@ static struct pci_device_id pm2fb_id_table[] = {
{ PCI_VENDOR_ID_3DLABS, PCI_DEVICE_ID_3DLABS_PERMEDIA2V, { PCI_VENDOR_ID_3DLABS, PCI_DEVICE_ID_3DLABS_PERMEDIA2V,
PCI_ANY_ID, PCI_ANY_ID, PCI_BASE_CLASS_DISPLAY << 16, PCI_ANY_ID, PCI_ANY_ID, PCI_BASE_CLASS_DISPLAY << 16,
0xff0000, 0 }, 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, } { 0, }
}; };