diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-03-01 18:02:33 -0500 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-03-31 10:15:52 -0500 |
commit | 8661bb5b4af1849c1f5a4e80c4e275fd13c155d6 (patch) | |
tree | ad99d85ea8d6f5c4c99b93f869bfd412994fb4ee /drivers/char/pcmcia | |
parent | 50db3fdbbc98260fb538c1cc3f8cc597ba7bffe7 (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.c | 9 | ||||
-rw-r--r-- | drivers/char/pcmcia/cm4040_cs.c | 24 | ||||
-rw-r--r-- | drivers/char/pcmcia/synclink_cs.c | 6 |
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 | ||
632 | static 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 | |||
643 | static 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 | |||
654 | static void reader_release(dev_link_t *link) | 632 | static 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; |