Revision: 14525
http://sourceforge.net/p/edk2/code/14525
Author: oliviermartin
Date: 2013-08-06 12:10:25 +0000 (Tue, 06 Aug 2013)
Log Message:
-----------
EmbeddedPkg/MmcDxe: Removed redundant CMD12 calls from MMC
Command 12 - Stop transmission (ends read or write).
Normally only needed for streaming transfers or after error.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <[email protected]>
Modified Paths:
--------------
trunk/edk2/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c
Modified: trunk/edk2/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c
===================================================================
--- trunk/edk2/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c 2013-08-06
12:09:33 UTC (rev 14524)
+++ trunk/edk2/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c 2013-08-06
12:10:25 UTC (rev 14525)
@@ -486,6 +486,22 @@
}
}
+EFI_STATUS
+MmcStopTransmission (
+ EFI_MMC_HOST_PROTOCOL *MmcHost
+ )
+{
+ EFI_STATUS Status;
+ UINT32 Response[4];
+ // Command 12 - Stop transmission (ends read or write)
+ // Normally only needed for streaming transfers or after error.
+ Status = MmcHost->SendCommand (MmcHost, MMC_CMD12, 0);
+ if (!EFI_ERROR (Status)) {
+ MmcHost->ReceiveResponse (MmcHost, MMC_RESPONSE_TYPE_R1b, Response);
+ }
+ return Status;
+}
+
#define MMCI0_BLOCKLEN 512
#define MMCI0_TIMEOUT 10000
@@ -598,6 +614,7 @@
Status = MmcHost->ReadBlockData (MmcHost, Lba, This->Media->BlockSize,
Buffer);
if (EFI_ERROR (Status)) {
DEBUG ((EFI_D_BLKIO, "MmcIoBlocks(): Error Read Block Data and Status
= %r\n", Status));
+ MmcStopTransmission (MmcHost);
return Status;
}
Status = MmcNotifyState (MmcHostInstance, MmcProgrammingState);
@@ -610,16 +627,11 @@
Status = MmcHost->WriteBlockData (MmcHost, Lba, This->Media->BlockSize,
Buffer);
if (EFI_ERROR (Status)) {
DEBUG ((EFI_D_BLKIO, "MmcIoBlocks(): Error Write Block Data and Status
= %r\n", Status));
+ MmcStopTransmission (MmcHost);
return Status;
}
}
- // Command 12 - Stop transmission (ends read)
- Status = MmcHost->SendCommand (MmcHost, MMC_CMD12, 0);
- if (!EFI_ERROR (Status)) {
- MmcHost->ReceiveResponse (MmcHost, MMC_RESPONSE_TYPE_R1b, Response);
- }
-
// Command 13 - Read status and wait for programming to complete (return
to tran)
Timeout = MMCI0_TIMEOUT;
CmdArg = MmcHostInstance->CardInfo.RCA << 16;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits