From a4aec2622340e356e7dcd0e8fd05378dacb71c89 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Tue, 20 Jun 2006 00:42:04 -0400 Subject: [PATCH] [AGPGART] Suspend/Resume improvements for ATI AGP Based on patches in the Ubuntu kernel. Signed-off-by: Ben Collins Signed-off-by: Dave Jones --- drivers/char/agp/ati-agp.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/char/agp/ati-agp.c b/drivers/char/agp/ati-agp.c index 6db9b7f436aa..34bbd41f062a 100644 --- a/drivers/char/agp/ati-agp.c +++ b/drivers/char/agp/ati-agp.c @@ -245,19 +245,21 @@ static int ati_configure(void) #ifdef CONFIG_PM -static int agp_ati_resume(struct pci_dev *dev) -{ - pci_restore_state(dev); - - return ati_configure(); -} - static int agp_ati_suspend(struct pci_dev *dev, pm_message_t state) { pci_save_state(dev); + pci_set_power_state (pdev, 3); return 0; } + +static int agp_ati_resume(struct pci_dev *dev) +{ + pci_set_power_state (pdev, 0); + pci_restore_state(dev); + + return ati_configure(); +} #endif /* @@ -545,8 +547,8 @@ static struct pci_driver agp_ati_pci_driver = { .probe = agp_ati_probe, .remove = agp_ati_remove, #ifdef CONFIG_PM - .resume = agp_ati_resume, .suspend = agp_ati_suspend, + .resume = agp_ati_resume, #endif };