PCMCIA insert on resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I don't understand why, on resume, the function socket_resume() (in
drivers/pcmcia/cs.c) do:

       if (!(skt->state & SOCKET_PRESENT)) {
               skt->state &= ~SOCKET_SUSPEND;
               return socket_insert(skt);
       }

This cause a powered off socket before suspend to be powered on during
resume.

To avoid such (erroneous?) behaviour I propose this patch:

diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c
index 729e37d..d69de74 100644
--- a/drivers/pcmcia/cs.c
+++ b/drivers/pcmcia/cs.c
@@ -562,10 +562,8 @@ static int socket_resume(struct pcmcia_socket *skt)
        skt->ops->init(skt);
        skt->ops->set_socket(skt, &skt->socket);
 
-       if (!(skt->state & SOCKET_PRESENT)) {
-               skt->state &= ~SOCKET_SUSPEND;
-               return socket_insert(skt);
-       }
+       if (!(skt->state & SOCKET_PRESENT))
+               goto resume_exit;
 
        ret = socket_setup(skt, SS_COMA, resume_delay);
        if (ret == CS_SUCCESS) {
@@ -599,6 +597,7 @@ static int socket_resume(struct pcmcia_socket *skt)
                socket_shutdown(skt);
        }
 
+resume_exit:
        skt->state &= ~SOCKET_SUSPEND;
 
        return CS_SUCCESS;

With this patch if the socket was powered down before the suspend, at
resume time it's not powered on and you need a "pccardctl insert" to
activate the socket.

Ciao,

Rodolfo

-- 

GNU/Linux Solutions                  e-mail:    [email protected]
Linux Device Driver                             [email protected]
Embedded Systems                     		[email protected]
UNIX programming                     phone:     +39 349 2432127
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux