]> Pileus Git - ~andy/linux/blobdiff - drivers/pcmcia/cs.c
Merge 'drm-3264' branch of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/airlied...
[~andy/linux] / drivers / pcmcia / cs.c
index 03fc885db1c57e9325915640dacc023eef3c829f..48e4f04530d886d14d1ad9e3fa0f92a762b40614 100644 (file)
@@ -508,6 +508,10 @@ static int socket_setup(struct pcmcia_socket *skt, int initial_delay)
                cs_err(skt, "unsupported voltage key.\n");
                return CS_BAD_TYPE;
        }
+
+       if (skt->power_hook)
+               skt->power_hook(skt, HOOK_POWER_PRE);
+
        skt->socket.flags = 0;
        skt->ops->set_socket(skt, &skt->socket);
 
@@ -522,7 +526,12 @@ static int socket_setup(struct pcmcia_socket *skt, int initial_delay)
                return CS_BAD_TYPE;
        }
 
-       return socket_reset(skt);
+       status = socket_reset(skt);
+
+       if (skt->power_hook)
+               skt->power_hook(skt, HOOK_POWER_POST);
+
+       return status;
 }
 
 /*
@@ -709,7 +718,7 @@ static int pccardd(void *__skt)
                }
 
                schedule();
-               try_to_freeze(PF_FREEZE);
+               try_to_freeze();
 
                if (!skt->thread)
                        break;