diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-03-15 16:46:34 -0400 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-03-24 06:00:11 -0400 |
commit | d7646f7632549124fe70fec8af834c7c1246f365 (patch) | |
tree | d69cf32f089d84f7a1d7813f7c8dd8b980170b25 /drivers/pcmcia/pd6729.c | |
parent | e7176a37d436a214f6a7727ea7986c654cbee8f0 (diff) |
pcmcia: use dev_pm_ops for class pcmcia_socket_class
Instead of requiring PCMCIA socket drivers to call various functions
during their (bus) resume and suspend functions, register an own
dev_pm_ops for this class. This fixes several suspend/resume bugs
seen on db1xxx-ss, and probably on some other socket drivers, too.
With regard to the asymmetry with only _noirq suspend, but split up
resume, please see bug 14334 and commit 9905d1b411946fb3 .
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/pcmcia/pd6729.c')
-rw-r--r-- | drivers/pcmcia/pd6729.c | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/drivers/pcmcia/pd6729.c b/drivers/pcmcia/pd6729.c index 47f342f1b0fc..4a34268cc512 100644 --- a/drivers/pcmcia/pd6729.c +++ b/drivers/pcmcia/pd6729.c | |||
@@ -764,18 +764,6 @@ static void __devexit pd6729_pci_remove(struct pci_dev *dev) | |||
764 | kfree(socket); | 764 | kfree(socket); |
765 | } | 765 | } |
766 | 766 | ||
767 | #ifdef CONFIG_PM | ||
768 | static int pd6729_socket_suspend(struct pci_dev *dev, pm_message_t state) | ||
769 | { | ||
770 | return pcmcia_socket_dev_suspend(&dev->dev); | ||
771 | } | ||
772 | |||
773 | static int pd6729_socket_resume(struct pci_dev *dev) | ||
774 | { | ||
775 | return pcmcia_socket_dev_resume(&dev->dev); | ||
776 | } | ||
777 | #endif | ||
778 | |||
779 | static struct pci_device_id pd6729_pci_ids[] = { | 767 | static struct pci_device_id pd6729_pci_ids[] = { |
780 | { | 768 | { |
781 | .vendor = PCI_VENDOR_ID_CIRRUS, | 769 | .vendor = PCI_VENDOR_ID_CIRRUS, |
@@ -792,10 +780,6 @@ static struct pci_driver pd6729_pci_driver = { | |||
792 | .id_table = pd6729_pci_ids, | 780 | .id_table = pd6729_pci_ids, |
793 | .probe = pd6729_pci_probe, | 781 | .probe = pd6729_pci_probe, |
794 | .remove = __devexit_p(pd6729_pci_remove), | 782 | .remove = __devexit_p(pd6729_pci_remove), |
795 | #ifdef CONFIG_PM | ||
796 | .suspend = pd6729_socket_suspend, | ||
797 | .resume = pd6729_socket_resume, | ||
798 | #endif | ||
799 | }; | 783 | }; |
800 | 784 | ||
801 | static int pd6729_module_init(void) | 785 | static int pd6729_module_init(void) |