Messages in this thread Patch in this message | | | Date | Wed, 24 Oct 2007 16:34:45 +0200 | From | Rodolfo Giometti <> | Subject | PCMCIA insert on resume |
| |
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: giometti@enneenne.com Linux Device Driver giometti@gnudd.com Embedded Systems giometti@linux.it UNIX programming phone: +39 349 2432127 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |