[PATCH] pcmcia: new suspend core
[deliverable/linux.git] / drivers / bluetooth / bluecard_cs.c
index f36c563d72c4f49f8334ee8e6a9ee3c8793f51a9..5b24131e5430ab429780ec48e9d15ddee7610634 100644 (file)
@@ -1045,6 +1045,27 @@ static void bluecard_release(dev_link_t *link)
        link->state &= ~DEV_CONFIG;
 }
 
+static int bluecard_suspend(struct pcmcia_device *dev)
+{
+       dev_link_t *link = dev_to_instance(dev);
+
+       link->state |= DEV_SUSPEND;
+       if (link->state & DEV_CONFIG)
+               pcmcia_release_configuration(link->handle);
+
+       return 0;
+}
+
+static int bluecard_resume(struct pcmcia_device *dev)
+{
+       dev_link_t *link = dev_to_instance(dev);
+
+       link->state &= ~DEV_SUSPEND;
+       if (DEV_OK(link))
+               pcmcia_request_configuration(link->handle, &link->conf);
+
+       return 0;
+}
 
 static int bluecard_event(event_t event, int priority, event_callback_args_t *args)
 {
@@ -1063,20 +1084,6 @@ static int bluecard_event(event_t event, int priority, event_callback_args_t *ar
                link->state |= DEV_PRESENT | DEV_CONFIG_PENDING;
                bluecard_config(link);
                break;
-       case CS_EVENT_PM_SUSPEND:
-               link->state |= DEV_SUSPEND;
-               /* Fall through... */
-       case CS_EVENT_RESET_PHYSICAL:
-               if (link->state & DEV_CONFIG)
-                       pcmcia_release_configuration(link->handle);
-               break;
-       case CS_EVENT_PM_RESUME:
-               link->state &= ~DEV_SUSPEND;
-               /* Fall through... */
-       case CS_EVENT_CARD_RESET:
-               if (DEV_OK(link))
-                       pcmcia_request_configuration(link->handle, &link->conf);
-               break;
        }
 
        return 0;
@@ -1099,6 +1106,8 @@ static struct pcmcia_driver bluecard_driver = {
        .event          = bluecard_event,
        .detach         = bluecard_detach,
        .id_table       = bluecard_ids,
+       .suspend        = bluecard_suspend,
+       .resume         = bluecard_resume,
 };
 
 static int __init init_bluecard_cs(void)
This page took 0.025465 seconds and 5 git commands to generate.