From: "Loh, Tien Hock" <tien.hock....@intel.com>

If SD doesn't support SD_HIGH_SPEED, function should still continue to
setup SD to go into 4 bits more if it is supported.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Loh Tien Hock <tien.hock....@intel.com>
---
 EmbeddedPkg/Universal/MmcDxe/MmcIdentification.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/EmbeddedPkg/Universal/MmcDxe/MmcIdentification.c 
b/EmbeddedPkg/Universal/MmcDxe/MmcIdentification.c
index f661a0c..8fd5c31 100755
--- a/EmbeddedPkg/Universal/MmcDxe/MmcIdentification.c
+++ b/EmbeddedPkg/Universal/MmcDxe/MmcIdentification.c
@@ -474,18 +474,17 @@ InitializeSdMmcDevice (
 
     if (!(Buffer[3] & SD_HIGH_SPEED_SUPPORTED)) {
       DEBUG ((DEBUG_ERROR, "%a : High Speed not supported by Card %r\n", 
__FUNCTION__, Status));
-      return Status;
     }
+    else {
+      Speed = SD_HIGH_SPEED;
 
-    Speed = SD_HIGH_SPEED;
-
-    /* SD Switch, Mode:1, Group:0, Value:1 */
-    CmdArg = CreateSwitchCmdArgument(1, 0, 1);
-    Status = MmcHost->SendCommand (MmcHost, MMC_CMD6, CmdArg);
-    if (EFI_ERROR (Status)) {
-      DEBUG ((DEBUG_ERROR, "%a (MMC_CMD6): Error and Status = %r\n", 
__FUNCTION__, Status));
-       return Status;
-    } else {
+      /* SD Switch, Mode:1, Group:0, Value:1 */
+      CmdArg = CreateSwitchCmdArgument(1, 0, 1);
+      Status = MmcHost->SendCommand (MmcHost, MMC_CMD6, CmdArg);
+      if (EFI_ERROR (Status)) {
+        DEBUG ((DEBUG_ERROR, "%a (MMC_CMD6): Error and Status = %r\n", 
__FUNCTION__, Status));
+        return Status;
+      } else {
       Status = MmcHost->ReadBlockData (MmcHost, 0, SWITCH_CMD_DATA_LENGTH, 
Buffer);
       if (EFI_ERROR (Status)) {
         DEBUG ((DEBUG_ERROR, "%a (MMC_CMD6): ReadBlockData Error and Status = 
%r\n", __FUNCTION__, Status));
@@ -495,6 +494,7 @@ InitializeSdMmcDevice (
       if ((Buffer[4] & SWITCH_CMD_SUCCESS_MASK) != 0x01000000) {
         DEBUG((DEBUG_ERROR, "Problem switching SD card into high-speed 
mode\n"));
         return Status;
+        }
       }
     }
   }
-- 
2.2.2

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to