public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 1/1] SD : Continue setting up sd even if SD_HIGH_SPEED is not supported
@ 2019-02-22  7:58 tien.hock.loh
  2019-03-15  3:27 ` Loh, Tien Hock
  2019-03-15 11:27 ` Ard Biesheuvel
  0 siblings, 2 replies; 5+ messages in thread
From: tien.hock.loh @ 2019-02-22  7:58 UTC (permalink / raw)
  To: edk2-devel, leif.lindholm, ard.biesheuvel, thloh85

From: "Loh, Tien Hock" <tien.hock.loh@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.loh@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



^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [PATCH 1/1] SD : Continue setting up sd even if SD_HIGH_SPEED is not supported
@ 2018-10-25  6:56 tien.hock.loh
  0 siblings, 0 replies; 5+ messages in thread
From: tien.hock.loh @ 2018-10-25  6:56 UTC (permalink / raw)
  To: edk2-devel, thloh85

From: "Loh, Tien Hock" <tien.hock.loh@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.loh@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



^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-03-18  1:53 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-22  7:58 [PATCH 1/1] SD : Continue setting up sd even if SD_HIGH_SPEED is not supported tien.hock.loh
2019-03-15  3:27 ` Loh, Tien Hock
2019-03-15 11:27 ` Ard Biesheuvel
2019-03-18  1:53   ` Loh, Tien Hock
  -- strict thread matches above, loose matches on Subject: below --
2018-10-25  6:56 tien.hock.loh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox