--- a/kernel/eka/drivers/pbus/mmc/sdcard/sdcard3c/sdcard.cpp Mon Mar 15 12:45:50 2010 +0200
+++ b/kernel/eka/drivers/pbus/mmc/sdcard/sdcard3c/sdcard.cpp Wed Mar 31 23:38:45 2010 +0300
@@ -481,6 +481,12 @@
// Before issueing commands, see if there's actually a card present
if (!CardDetect(iCxCardCount))
SMF_GOTOS(EStMoreCardsCheck)
+
+ // Card Previously Marked as Corrupt do not re-initialise
+ if ((CardArray().CardP(iCxCardCount)->iFlags)& KSDCardIsCorrupt)
+ {
+ SMF_GOTOS(EStMoreCardsCheck)
+ }
m.SetTraps(KMMCErrResponseTimeOut);
SMF_INVOKES(InitialiseMemoryCardSMST, EStSendCIDIssued)
@@ -814,6 +820,7 @@
{
__KTRACE_OPT2(KPBUS1, KPANIC, Kern::Printf("-sd:ocr busy timed out"));
OstTraceFunctionExitExt( DSDSTACK_INITIALISEMEMORYCARDSM_EXIT2, this, (TInt) KMMCErrBusTimeOut );
+ (CardArray().CardP(iCxCardCount)->iFlags)|=KSDCardIsCorrupt;
return KMMCErrBusTimeOut;
}