patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / drivers / char / agp / intel-mch-agp.c
index f40942e..dff4d99 100644 (file)
@@ -491,10 +491,9 @@ static int __devinit agp_intelmch_probe(struct pci_dev *pdev,
        char *name = "(unknown)";
        u8 cap_ptr = 0;
 
-       if (!boot_cpu_has(X86_FEATURE_LM))
-               return -ENODEV;
-
        cap_ptr = pci_find_capability(pdev, PCI_CAP_ID_AGP);
+       if (!cap_ptr) 
+               return -ENODEV;
 
        bridge = agp_alloc_bridge();
        if (!bridge)
@@ -570,14 +569,11 @@ static void __devexit agp_intelmch_remove(struct pci_dev *pdev)
        agp_put_bridge(bridge);
 }
 
-static int agp_intelmch_suspend(struct pci_dev *dev, u32 state)
-{
-       return 0;
-}
-
 static int agp_intelmch_resume(struct pci_dev *pdev)
 {
        struct agp_bridge_data *bridge = pci_get_drvdata(pdev);
+       
+       pci_restore_state(pdev, pdev->saved_config_space);
 
        if (bridge->driver == &intel_845_driver)
                intel_845_configure();
@@ -590,7 +586,15 @@ static struct pci_device_id agp_intelmch_pci_table[] = {
        .class          = (PCI_CLASS_BRIDGE_HOST << 8),
        .class_mask     = ~0,
        .vendor         = PCI_VENDOR_ID_INTEL,
-       .device         = PCI_ANY_ID,
+       .device         = PCI_DEVICE_ID_INTEL_82865_HB,
+       .subvendor      = PCI_ANY_ID,
+       .subdevice      = PCI_ANY_ID,
+       },
+       {
+       .class          = (PCI_CLASS_BRIDGE_HOST << 8),
+       .class_mask     = ~0,
+       .vendor         = PCI_VENDOR_ID_INTEL,
+       .device         = PCI_DEVICE_ID_INTEL_82875_HB,
        .subvendor      = PCI_ANY_ID,
        .subdevice      = PCI_ANY_ID,
        },
@@ -604,7 +608,6 @@ static struct pci_driver agp_intelmch_pci_driver = {
        .id_table       = agp_intelmch_pci_table,
        .probe          = agp_intelmch_probe,
        .remove         = agp_intelmch_remove,
-       .suspend        = agp_intelmch_suspend,
        .resume         = agp_intelmch_resume,
 };