Fix RAMDAC detection on some IMS TwinTurbo video cards ("Mac" cards only),

without this, you get no display on machines with those cards
parent b0531fdc
...@@ -1461,6 +1461,15 @@ imsttfb_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -1461,6 +1461,15 @@ imsttfb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
unsigned long addr, size; unsigned long addr, size;
struct imstt_par *par; struct imstt_par *par;
struct fb_info *info; struct fb_info *info;
#ifdef CONFIG_PPC_OF
struct device_node *dp;
dp = pci_device_to_OF_node(pdev);
if(dp)
printk(KERN_INFO "%s: OF name %s\n",__FUNCTION__, dp->name);
else
printk(KERN_ERR "imsttfb: no OF node for pci device\n");
#endif /* CONFIG_PPC_OF */
size = sizeof(struct fb_info) + sizeof(struct imstt_par) + size = sizeof(struct fb_info) + sizeof(struct imstt_par) +
sizeof(u32) * 16; sizeof(u32) * 16;
...@@ -1488,6 +1497,11 @@ imsttfb_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -1488,6 +1497,11 @@ imsttfb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
switch (pdev->device) { switch (pdev->device) {
case PCI_DEVICE_ID_IMS_TT128: /* IMS,tt128mbA */ case PCI_DEVICE_ID_IMS_TT128: /* IMS,tt128mbA */
par->ramdac = IBM; par->ramdac = IBM;
#ifdef CONFIG_PPC_OF
if (dp && ((strcmp(dp->name, "IMS,tt128mb8") == 0) ||
(strcmp(dp->name, "IMS,tt128mb8A") == 0)))
par->ramdac = TVP;
#endif /* CONFIG_PPC_OF */
break; break;
case PCI_DEVICE_ID_IMS_TT3D: /* IMS,tt3d */ case PCI_DEVICE_ID_IMS_TT3D: /* IMS,tt3d */
par->ramdac = TVP; par->ramdac = TVP;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment