aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/pcmcia
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2006-03-01 18:02:33 -0500
committerDominik Brodowski <linux@dominikbrodowski.net>2006-03-31 10:15:52 -0500
commit8661bb5b4af1849c1f5a4e80c4e275fd13c155d6 (patch)
treead99d85ea8d6f5c4c99b93f869bfd412994fb4ee /drivers/char/pcmcia
parent50db3fdbbc98260fb538c1cc3f8cc597ba7bffe7 (diff)
[PATCH] pcmcia: default suspend and resume handling
In all but one case, the suspend and resume functions of PCMCIA drivers contain mostly of calls to pcmcia_release_configuration() and pcmcia_request_configuration(). Therefore, move this code out of the drivers and into the core. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/char/pcmcia')
-rw-r--r--drivers/char/pcmcia/cm4000_cs.c9
-rw-r--r--drivers/char/pcmcia/cm4040_cs.c24
-rw-r--r--drivers/char/pcmcia/synclink_cs.c6
3 files changed, 0 insertions, 39 deletions
diff --git a/drivers/char/pcmcia/cm4000_cs.c b/drivers/char/pcmcia/cm4000_cs.c
index 3ddd3da9e720..870decbdf7ca 100644
--- a/drivers/char/pcmcia/cm4000_cs.c
+++ b/drivers/char/pcmcia/cm4000_cs.c
@@ -1870,10 +1870,6 @@ static int cm4000_suspend(struct pcmcia_device *p_dev)
1870 struct cm4000_dev *dev; 1870 struct cm4000_dev *dev;
1871 1871
1872 dev = link->priv; 1872 dev = link->priv;
1873
1874 link->state |= DEV_SUSPEND;
1875 if (link->state & DEV_CONFIG)
1876 pcmcia_release_configuration(link->handle);
1877 stop_monitor(dev); 1873 stop_monitor(dev);
1878 1874
1879 return 0; 1875 return 0;
@@ -1885,11 +1881,6 @@ static int cm4000_resume(struct pcmcia_device *p_dev)
1885 struct cm4000_dev *dev; 1881 struct cm4000_dev *dev;
1886 1882
1887 dev = link->priv; 1883 dev = link->priv;
1888
1889 link->state &= ~DEV_SUSPEND;
1890 if (link->state & DEV_CONFIG)
1891 pcmcia_request_configuration(link->handle, &link->conf);
1892
1893 if (link->open) 1884 if (link->open)
1894 start_monitor(dev); 1885 start_monitor(dev);
1895 1886
diff --git a/drivers/char/pcmcia/cm4040_cs.c b/drivers/char/pcmcia/cm4040_cs.c
index 1c355bd2be88..47f10c8b8886 100644
--- a/drivers/char/pcmcia/cm4040_cs.c
+++ b/drivers/char/pcmcia/cm4040_cs.c
@@ -629,28 +629,6 @@ cs_release:
629 link->state &= ~DEV_CONFIG_PENDING; 629 link->state &= ~DEV_CONFIG_PENDING;
630} 630}
631 631
632static int reader_suspend(struct pcmcia_device *p_dev)
633{
634 dev_link_t *link = dev_to_instance(p_dev);
635
636 link->state |= DEV_SUSPEND;
637 if (link->state & DEV_CONFIG)
638 pcmcia_release_configuration(link->handle);
639
640 return 0;
641}
642
643static int reader_resume(struct pcmcia_device *p_dev)
644{
645 dev_link_t *link = dev_to_instance(p_dev);
646
647 link->state &= ~DEV_SUSPEND;
648 if (link->state & DEV_CONFIG)
649 pcmcia_request_configuration(link->handle, &link->conf);
650
651 return 0;
652}
653
654static void reader_release(dev_link_t *link) 632static void reader_release(dev_link_t *link)
655{ 633{
656 cm4040_reader_release(link->priv); 634 cm4040_reader_release(link->priv);
@@ -754,8 +732,6 @@ static struct pcmcia_driver reader_driver = {
754 }, 732 },
755 .probe = reader_attach, 733 .probe = reader_attach,
756 .remove = reader_detach, 734 .remove = reader_detach,
757 .suspend = reader_suspend,
758 .resume = reader_resume,
759 .id_table = cm4040_ids, 735 .id_table = cm4040_ids,
760}; 736};
761 737
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
index 371d10b78004..d3ea53a5a50f 100644
--- a/drivers/char/pcmcia/synclink_cs.c
+++ b/drivers/char/pcmcia/synclink_cs.c
@@ -733,10 +733,7 @@ static int mgslpc_suspend(struct pcmcia_device *dev)
733 dev_link_t *link = dev_to_instance(dev); 733 dev_link_t *link = dev_to_instance(dev);
734 MGSLPC_INFO *info = link->priv; 734 MGSLPC_INFO *info = link->priv;
735 735
736 link->state |= DEV_SUSPEND;
737 info->stop = 1; 736 info->stop = 1;
738 if (link->state & DEV_CONFIG)
739 pcmcia_release_configuration(link->handle);
740 737
741 return 0; 738 return 0;
742} 739}
@@ -746,9 +743,6 @@ static int mgslpc_resume(struct pcmcia_device *dev)
746 dev_link_t *link = dev_to_instance(dev); 743 dev_link_t *link = dev_to_instance(dev);
747 MGSLPC_INFO *info = link->priv; 744 MGSLPC_INFO *info = link->priv;
748 745
749 link->state &= ~DEV_SUSPEND;
750 if (link->state & DEV_CONFIG)
751 pcmcia_request_configuration(link->handle, &link->conf);
752 info->stop = 0; 746 info->stop = 0;
753 747
754 return 0; 748 return 0;