aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia/pd6729.c
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2010-03-15 16:46:34 -0400
committerDominik Brodowski <linux@dominikbrodowski.net>2010-03-24 06:00:11 -0400
commitd7646f7632549124fe70fec8af834c7c1246f365 (patch)
treed69cf32f089d84f7a1d7813f7c8dd8b980170b25 /drivers/pcmcia/pd6729.c
parente7176a37d436a214f6a7727ea7986c654cbee8f0 (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.c16
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
768static int pd6729_socket_suspend(struct pci_dev *dev, pm_message_t state)
769{
770 return pcmcia_socket_dev_suspend(&dev->dev);
771}
772
773static int pd6729_socket_resume(struct pci_dev *dev)
774{
775 return pcmcia_socket_dev_resume(&dev->dev);
776}
777#endif
778
779static struct pci_device_id pd6729_pci_ids[] = { 767static 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
801static int pd6729_module_init(void) 785static int pd6729_module_init(void)