diff options
| author | akpm@osdl.org <akpm@osdl.org> | 2006-01-04 02:00:10 -0500 |
|---|---|---|
| committer | Dave Jones <davej@redhat.com> | 2006-01-16 23:53:45 -0500 |
| commit | 90be4b49b8b54505772a6a766ac0891ec92b4c2d (patch) | |
| tree | f3d679d5be9a2694b226ac255170b1fb2e06ec37 | |
| parent | 496ebd386439fee838df6b9c7d1306c36e7f6952 (diff) | |
[AGPGART] Suspend/Resume support for AMD64 GART.
This adds support for suspend/resume to the amd64-agp driver. Without
it, X displays garbage after resume from swsusp.
Signed-off-by: Michal Schmidt <xschmi00@stud.feec.vutbr.cz>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dave Jones <davej@redhat.com>
| -rw-r--r-- | drivers/char/agp/amd64-agp.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c index 810679dcbbb0..9964c508c111 100644 --- a/drivers/char/agp/amd64-agp.c +++ b/drivers/char/agp/amd64-agp.c | |||
| @@ -600,6 +600,26 @@ static void __devexit agp_amd64_remove(struct pci_dev *pdev) | |||
| 600 | agp_put_bridge(bridge); | 600 | agp_put_bridge(bridge); |
| 601 | } | 601 | } |
| 602 | 602 | ||
| 603 | #ifdef CONFIG_PM | ||
| 604 | |||
| 605 | static int agp_amd64_suspend(struct pci_dev *pdev, pm_message_t state) | ||
| 606 | { | ||
| 607 | pci_save_state(pdev); | ||
| 608 | pci_set_power_state(pdev, pci_choose_state(pdev, state)); | ||
| 609 | |||
| 610 | return 0; | ||
| 611 | } | ||
| 612 | |||
| 613 | static int agp_amd64_resume(struct pci_dev *pdev) | ||
| 614 | { | ||
| 615 | pci_set_power_state(pdev, PCI_D0); | ||
| 616 | pci_restore_state(pdev); | ||
| 617 | |||
| 618 | return amd_8151_configure(); | ||
| 619 | } | ||
| 620 | |||
| 621 | #endif /* CONFIG_PM */ | ||
| 622 | |||
| 603 | static struct pci_device_id agp_amd64_pci_table[] = { | 623 | static struct pci_device_id agp_amd64_pci_table[] = { |
| 604 | { | 624 | { |
| 605 | .class = (PCI_CLASS_BRIDGE_HOST << 8), | 625 | .class = (PCI_CLASS_BRIDGE_HOST << 8), |
| @@ -718,6 +738,10 @@ static struct pci_driver agp_amd64_pci_driver = { | |||
| 718 | .id_table = agp_amd64_pci_table, | 738 | .id_table = agp_amd64_pci_table, |
| 719 | .probe = agp_amd64_probe, | 739 | .probe = agp_amd64_probe, |
| 720 | .remove = agp_amd64_remove, | 740 | .remove = agp_amd64_remove, |
| 741 | #ifdef CONFIG_PM | ||
| 742 | .suspend = agp_amd64_suspend, | ||
| 743 | .resume = agp_amd64_resume, | ||
| 744 | #endif | ||
| 721 | }; | 745 | }; |
| 722 | 746 | ||
| 723 | 747 | ||
