From 430743a1e8cbef114f261e2b7ee8d2d07914f5b3 Mon Sep 17 00:00:00 2001 From: "Albecki, Mateusz" Date: Tue, 14 Jan 2020 20:05:30 +0800 Subject: MdeModulePkg/SdMmcPciHcDxe: Add retries for async commands This patch adds retries for async execution for commands that failed due to the CRC errors. Cc: Hao A Wu Cc: Marcin Wojtas Cc: Zhichao Gao Cc: Liming Gao Signed-off-by: Mateusz Albecki Reviewed-by: Hao A Wu --- MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'MdeModulePkg/Bus') diff --git a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c index 193b0f24e2..b18ff3e972 100644 --- a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c +++ b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.c @@ -211,8 +211,10 @@ Done: gBS->SignalEvent (TrbEvent); return; } - } - if ((Trb != NULL) && (Status != EFI_NOT_READY)) { + } else if ((Trb != NULL) && (Status == EFI_CRC_ERROR) && (Trb->Retries > 0)) { + Trb->Retries--; + Trb->Started = FALSE; + } else if ((Trb != NULL)) { RemoveEntryList (Link); Trb->Packet->TransactionStatus = Status; TrbEvent = Trb->Event; -- cgit v1.2.3