diff -r 2a0ada0a1bf8 -r 95847726fe57 kernel/eka/drivers/pbus/mmc/stack.cpp --- a/kernel/eka/drivers/pbus/mmc/stack.cpp Wed May 12 10:34:10 2010 +0100 +++ b/kernel/eka/drivers/pbus/mmc/stack.cpp Mon May 24 18:38:55 2010 +0100 @@ -6408,6 +6408,9 @@ { EStBegin=0, EStNextIndex, + EStSendStatus, + EStGetStatus, + EStUnlock, EStInitStackAfterUnlock, EStIssuedLockUnlock, EStDone, @@ -6470,6 +6473,25 @@ // // Upon completion, test the next card before performing further initialisation. // + + SMF_STATE(EStSendStatus) + + s.FillCommandDesc(ECmdSendStatus, 0); + + SMF_INVOKES(ExecCommandSMST,EStGetStatus) + + SMF_STATE(EStGetStatus) + + const TMMCStatus st = s.LastStatus(); + if((st & KMMCStatCardIsLocked) == 0) + { + SMF_RETURN(err) + } + + SMF_STATE(EStUnlock) + + const TMapping *mp = NULL; + mp = iSocket->iPasswordStore->FindMappingInStore(iCardArray->CardP(iAutoUnlockIndex)->CID()); TMMCard &cd = *(iCardArray->CardP(iAutoUnlockIndex++)); OstTrace1( TRACE_INTERNALS, DMMCSTACK_CIMAUTOUNLOCKSM4, "Attempting to unlock card %d", cd.Number() );