diff options
Diffstat (limited to 'drivers/pcmcia/cs.c')
| -rw-r--r-- | drivers/pcmcia/cs.c | 16 | 
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c index 75ed866e695..c3383750e33 100644 --- a/drivers/pcmcia/cs.c +++ b/drivers/pcmcia/cs.c @@ -671,20 +671,22 @@ static int pccardd(void *__skt)  				socket_remove(skt);  			if (sysfs_events & PCMCIA_UEVENT_INSERT)  				socket_insert(skt); -			if ((sysfs_events & PCMCIA_UEVENT_RESUME) && -				!(skt->state & SOCKET_CARDBUS)) { -				ret = socket_resume(skt); -				if (!ret && skt->callback) -					skt->callback->resume(skt); -			}  			if ((sysfs_events & PCMCIA_UEVENT_SUSPEND) &&  				!(skt->state & SOCKET_CARDBUS)) {  				if (skt->callback)  					ret = skt->callback->suspend(skt);  				else  					ret = 0; -				if (!ret) +				if (!ret) {  					socket_suspend(skt); +					msleep(100); +				} +			} +			if ((sysfs_events & PCMCIA_UEVENT_RESUME) && +				!(skt->state & SOCKET_CARDBUS)) { +				ret = socket_resume(skt); +				if (!ret && skt->callback) +					skt->callback->resume(skt);  			}  			if ((sysfs_events & PCMCIA_UEVENT_REQUERY) &&  				!(skt->state & SOCKET_CARDBUS)) {  |