From: Arjan van de Ven Improves the resume functions for Intel AGP bridges by restoring config space (the bios might not have done that). Signed-off-by: Andrew Morton --- 25-akpm/drivers/char/agp/intel-agp.c | 8 ++------ 25-akpm/drivers/char/agp/intel-mch-agp.c | 8 ++------ 2 files changed, 4 insertions(+), 12 deletions(-) diff -puN drivers/char/agp/intel-agp.c~agp-resume-fixups drivers/char/agp/intel-agp.c --- 25/drivers/char/agp/intel-agp.c~agp-resume-fixups 2004-05-31 16:43:11.717039936 -0700 +++ 25-akpm/drivers/char/agp/intel-agp.c 2004-05-31 16:43:11.724038872 -0700 @@ -1445,15 +1445,12 @@ static void __devexit agp_intel_remove(s agp_put_bridge(bridge); } -static int agp_intel_suspend(struct pci_dev *dev, u32 state) -{ - return 0; -} - static int agp_intel_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_generic_driver) intel_configure(); else if (bridge->driver == &intel_845_driver) @@ -1506,7 +1503,6 @@ static struct pci_driver agp_intel_pci_d .id_table = agp_intel_pci_table, .probe = agp_intel_probe, .remove = agp_intel_remove, - .suspend = agp_intel_suspend, .resume = agp_intel_resume, }; diff -puN drivers/char/agp/intel-mch-agp.c~agp-resume-fixups drivers/char/agp/intel-mch-agp.c --- 25/drivers/char/agp/intel-mch-agp.c~agp-resume-fixups 2004-05-31 16:43:11.719039632 -0700 +++ 25-akpm/drivers/char/agp/intel-mch-agp.c 2004-05-31 16:43:11.723039024 -0700 @@ -569,15 +569,12 @@ static void __devexit agp_intelmch_remov 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(); @@ -611,7 +608,6 @@ static struct pci_driver agp_intelmch_pc .id_table = agp_intelmch_pci_table, .probe = agp_intelmch_probe, .remove = agp_intelmch_remove, - .suspend = agp_intelmch_suspend, .resume = agp_intelmch_resume, }; _