VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / drivers / char / agp / sworks-agp.c
index d3f3e80..44e11ac 100644 (file)
@@ -447,6 +447,7 @@ static int __devinit agp_serverworks_probe(struct pci_dev *pdev,
        struct agp_bridge_data *bridge;
        struct pci_dev *bridge_dev;
        u32 temp, temp2;
+       u8 cap_ptr = 0;
 
        /* Everything is on func 1 here so we are hardcoding function one */
        bridge_dev = pci_find_slot((unsigned int)pdev->bus->number,
@@ -457,6 +458,8 @@ static int __devinit agp_serverworks_probe(struct pci_dev *pdev,
                return -ENODEV;
        }
 
+       cap_ptr = pci_find_capability(pdev, PCI_CAP_ID_AGP);
+
        switch (pdev->device) {
        case 0x0006:
                /* ServerWorks CNB20HE
@@ -470,14 +473,15 @@ static int __devinit agp_serverworks_probe(struct pci_dev *pdev,
                break;
 
        default:
-               printk(KERN_ERR PFX "Unsupported Serverworks chipset "
-                               "(device id: %04x)\n", pdev->device);
+               if (cap_ptr)
+                       printk(KERN_ERR PFX "Unsupported Serverworks chipset "
+                                       "(device id: %04x)\n", pdev->device);
                return -ENODEV;
        }
 
        serverworks_private.svrwrks_dev = bridge_dev;
        serverworks_private.gart_addr_ofs = 0x10;
-       
+
        pci_read_config_dword(pdev, SVWRKS_APSIZE, &temp);
        if (temp & PCI_BASE_ADDRESS_MEM_TYPE_64) {
                pci_read_config_dword(pdev, SVWRKS_APSIZE + 4, &temp2);