From: oliviermartin Date: Thu, 2 Aug 2012 10:14:52 +0000 (+0000) Subject: EmbeddedPkg/MmcDxe: Avoid nanosecond delay when command succeeds X-Git-Tag: edk2-stable201903~13196 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=699e34adeb63496bba9956e46a98b393ad68b94b EmbeddedPkg/MmcDxe: Avoid nanosecond delay when command succeeds Check response just after receiving it to avoid the delay. Signed-off-by: Olivier Martin git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13584 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c b/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c index 32a85196ad..7452b55391 100644 --- a/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c +++ b/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c @@ -628,7 +628,10 @@ MmcIoBlocks ( while(!(Response[0] & MMC_R0_READY_FOR_DATA) && (MMC_R0_CURRENTSTATE(Response) != MMC_R0_STATE_TRAN) && Timeout--) { Status = MmcHost->SendCommand (MmcHost, MMC_CMD13, CmdArg); if (!EFI_ERROR(Status)) { - MmcHost->ReceiveResponse (MmcHost, MMC_RESPONSE_TYPE_R1,Response); + MmcHost->ReceiveResponse (MmcHost, MMC_RESPONSE_TYPE_R1, Response); + if ((Response[0] & MMC_R0_READY_FOR_DATA)) { + break; // Prevents delay once finished + } } NanoSecondDelay(100); Timeout--;