diff --git a/drivers/mmcsd/mmcsd_sdio.c b/drivers/mmcsd/mmcsd_sdio.c
index c7f168b408cf849fe77c11af5c69a0ab0cf4672d..cab079556c64994c30bb0d8c8dd7d3867bf33433 100644
--- a/drivers/mmcsd/mmcsd_sdio.c
+++ b/drivers/mmcsd/mmcsd_sdio.c
@@ -312,11 +312,11 @@ static inline int mmcsd_sendcmd4(struct mmcsd_state_s *priv)
 
 static int mmcsd_recvR1(struct mmcsd_state_s *priv, uint32 cmd)
 {
-  uint32 r1;
-  int ret;
+  uint32 r1;
+  int ret;
 
   /* Get the R1 response from the hardware */
-
+
   ret = SDIO_RECVR1(priv->dev, cmd, &r1);
   if (ret == OK)
     {
@@ -344,41 +344,41 @@ static int mmcsd_recvR1(struct mmcsd_state_s *priv, uint32 cmd)
 static int mmcsd_getSCR(struct mmcsd_state_s *priv, uint32 scr[2])
 {
   int ret;
-
-  /* Set Block Size To 8 Bytes */
-  /* Send CMD55 APP_CMD with argument as card's RCA */
-
-  mmcsd_sendcmdpoll(priv, MMCSD_CMD16, 8);
-  ret = mmcsd_recvR1(priv, MMCSD_CMD16);
-  if (ret != OK)
+
+  /* Set Block Size To 8 Bytes */
+  /* Send CMD55 APP_CMD with argument as card's RCA */
+
+  mmcsd_sendcmdpoll(priv, MMCSD_CMD16, 8);
+  ret = mmcsd_recvR1(priv, MMCSD_CMD16);
+  if (ret != OK)
+    {
+      fdbg("ERROR: RECVR1 for CMD16 failed: %d\n", ret);
+      return ret;
+    }
+
+  /* Send CMD55 APP_CMD with argument as card's RCA */
+
+  mmcsd_sendcmdpoll(priv, SD_CMD55, (uint32)priv->rca << 16);
+  ret = mmcsd_recvR1(priv, SD_CMD55);
+  if (ret != OK)
     {
-      fdbg("ERROR: RECVR1 for CMD16 failed: %d\n", ret);
-      return ret;
-    }
-
-  /* Send CMD55 APP_CMD with argument as card's RCA */
-
-  mmcsd_sendcmdpoll(priv, SD_CMD55, (uint32)priv->rca << 16);
-  ret = mmcsd_recvR1(priv, SD_CMD55);
-  if (ret != OK)
-    {
       fdbg("ERROR: RECVR1 for CMD55 failed: %d\n", ret);
-      return ret;
-    }
+      return ret;
+    }
 
   /* Setup up to receive data */
 
-  SDIO_RECVSETUP(priv->dev, 8);
-
-  /* Send ACMD51 SD_APP_SEND_SCR with argument as 0 to start data receipt */
-
+  SDIO_RECVSETUP(priv->dev, 8);
+
+  /* Send ACMD51 SD_APP_SEND_SCR with argument as 0 to start data receipt */
+
   (void)SDIO_EVENTENABLE(priv->dev, SDIOEVENT_READDATADONE);
-  mmcsd_sendcmdpoll(priv, SD_ACMD51, 0);
-  ret = mmcsd_recvR1(priv, SD_ACMD51);
-  if (ret != OK)
-    {
+  mmcsd_sendcmdpoll(priv, SD_ACMD51, 0);
+  ret = mmcsd_recvR1(priv, SD_ACMD51);
+  if (ret != OK)
+    {
       fdbg("ERROR: RECVR1 for ACMD51 failed: %d\n", ret);
-      return ret;
+      return ret;
     }
 
   /* Wait for data available */
@@ -388,7 +388,7 @@ static int mmcsd_getSCR(struct mmcsd_state_s *priv, uint32 scr[2])
     {
       fdbg("ERROR: WAITEVENT for READ DATA failed: %d\n", ret);
       return ret;
-    }
+    }
 
   /* Receive the SCR data from the SD card.  Card data is sent big-endian;
    * if we are running on a little-endian machine, then we need to swap
@@ -503,7 +503,7 @@ static void mmcsd_decodeCSD(struct mmcsd_state_s *priv, uint32 csd[4])
    *   MMC_WP_GRP_SIZE    36:32 Write protect group size
    */
 
-  if (IS_BLOCK(priv->type))
+  if (IS_BLOCK(priv->type))
     {
       /* C_SIZE: 69:64 from Word 2 and 63:48 from Word 3
        *
@@ -515,7 +515,7 @@ static void mmcsd_decodeCSD(struct mmcsd_state_s *priv, uint32 csd[4])
       uint32 csize                   = ((csd[1] & 0x3f) << 16) | (csd[2] >> 16);
       priv->capacity                 = (csize + 1) << 19;
       priv->blocksize                = 1 << 9;
-      priv->nblocks                  = priv->capacity >> 9;
+      priv->nblocks                  = priv->capacity >> 9;
 
 #if defined(CONFIG_DEBUG) && defined (CONFIG_DEBUG_VERBOSE) && defined(CONFIG_DEBUG_FS)
       decoded.u.sdblock.csize        = csize; 
@@ -523,7 +523,7 @@ static void mmcsd_decodeCSD(struct mmcsd_state_s *priv, uint32 csd[4])
       decoded.u.sdblock.sdsectorsize = (csd[2] >> 7) & 0x7f;
       decoded.u.sdblock.sdwpgrpsize  =  csd[2] & 0x7f;
 #endif
-    }
+    }
   else
     {
       /* C_SIZE: 73:64 from Word 2 and 63:62 from Word 3 */
@@ -533,11 +533,11 @@ static void mmcsd_decodeCSD(struct mmcsd_state_s *priv, uint32 csd[4])
 
       priv->nblocks                  = ((uint32)csize + 1) * (1 << (csizemult + 2));
       priv->blocksize                = (1 << readbllen);
-      priv->capacity                 = priv->nblocks * priv->blocksize;
+      priv->capacity                 = priv->nblocks * priv->blocksize;
 
 #if defined(CONFIG_DEBUG) && defined (CONFIG_DEBUG_VERBOSE) && defined(CONFIG_DEBUG_FS)
-      if (IS_SD(priv->type))
-        {
+      if (IS_SD(priv->type))
+        {
           decoded.u.sdbyte.csize            = csize; 
           decoded.u.sdbyte.vddrcurrmin      = (csd[2] >> 27) & 7;
           decoded.u.sdbyte.vddrcurrmax      = (csd[2] >> 24) & 7;
@@ -610,14 +610,14 @@ static void mmcsd_decodeCSD(struct mmcsd_state_s *priv, uint32 csd[4])
   fvdbg("  DSR_IMP: %d\n",
         decoded.dsrimp);
 
-  if (IS_BLOCK(priv->type))
+  if (IS_BLOCK(priv->type))
     {
       fvdbg("  SD Block Addressing:\n");
       fvdbg("    C_SIZE: %d SD_ER_BLK_EN: %d\n",
             decoded.u.sdblock.csize, decoded.u.sdblock.sderblen);
       fvdbg("    SD_SECTOR_SIZE: %d SD_WP_GRP_SIZE: %d\n",
             decoded.u.sdblock.sdsectorsize, decoded.u.sdblock.sdwpgrpsize);
-    }
+    }
   else if (IS_SD(priv->type))
     {
       fvdbg("  SD Byte Addressing:\n");
@@ -975,12 +975,12 @@ static int mmcsd_geometry(FAR struct inode *inode, struct geometry *geometry)
   fvdbg("Entry\n");
   DEBUGASSERT(inode && inode->i_private);
 
-  mmcsd_takesem(priv);
   if (geometry)
     {
       /* Is there a (supported) card inserted in the slot? */
 
       priv = (struct mmcsd_state_s *)inode->i_private;
+      mmcsd_takesem(priv);
       if (IS_EMPTY(priv))
         {
           /* No.. return ENODEV */
@@ -1011,9 +1011,9 @@ static int mmcsd_geometry(FAR struct inode *inode, struct geometry *geometry)
           priv->mediachanged = FALSE;
           ret = OK;
         }
+      mmcsd_givesem(priv);
     }
 
-  mmcsd_givesem(priv);
   return ret;
 }
 
@@ -1142,62 +1142,62 @@ static int mmcsd_widebus(struct mmcsd_state_s *priv)
 
   /* Check if the SD card supports this feature (as reported in the SCR) */
 
-  if ((priv->buswidth & MMCSD_SCR_BUSWIDTH_4BIT) != 0)
+  if ((priv->buswidth & MMCSD_SCR_BUSWIDTH_4BIT) != 0)
     {
        /* Disconnect any CD/DAT3 pull up using ACMD42.  ACMD42 is optional and
         * need not be supported by all SD calls.
         *
         * First end CMD55 APP_CMD with argument as card's RCA.
-        */
+        */
 
-        mmcsd_sendcmdpoll(priv, SD_CMD55, (uint32)priv->rca << 16);
-        ret = mmcsd_recvR1(priv, SD_CMD55);
-        if (ret != OK)
+        mmcsd_sendcmdpoll(priv, SD_CMD55, (uint32)priv->rca << 16);
+        ret = mmcsd_recvR1(priv, SD_CMD55);
+        if (ret != OK)
           {
-            fdbg("ERROR: RECVR1 for CMD55 of ACMD42: %d\n", ret);
-            return ret;
-          }
+            fdbg("ERROR: RECVR1 for CMD55 of ACMD42: %d\n", ret);
+            return ret;
+          }
 
         /* Then send ACMD42 with the argument to disconnect the CD/DAT3
          * pullup
          */
 
-        mmcsd_sendcmdpoll(priv, SD_ACMD42, MMCSD_ACMD42_CD_DISCONNECT);
-        ret = mmcsd_recvR1(priv, SD_ACMD42);
-        if (ret != OK)
+        mmcsd_sendcmdpoll(priv, SD_ACMD42, MMCSD_ACMD42_CD_DISCONNECT);
+        ret = mmcsd_recvR1(priv, SD_ACMD42);
+        if (ret != OK)
           {
-            fvdbg("WARNING: SD card does not support ACMD42: %d\n", ret);
-            return ret;
+            fvdbg("WARNING: SD card does not support ACMD42: %d\n", ret);
+            return ret;
           }
 
         /* Now send ACMD6 to select wide, 4-bit bus operation, beginning
          * with CMD55, APP_CMD:
          */
-
-        mmcsd_sendcmdpoll(priv, SD_CMD55, (uint32)priv->rca << 16);
-        ret = mmcsd_recvR1(priv, SD_CMD55);
-        if (ret != OK)
+
+        mmcsd_sendcmdpoll(priv, SD_CMD55, (uint32)priv->rca << 16);
+        ret = mmcsd_recvR1(priv, SD_CMD55);
+        if (ret != OK)
           {
-            fdbg("ERROR: RECVR1 for CMD55 of ACMD6: %d\n", ret);
-            return ret;
+            fdbg("ERROR: RECVR1 for CMD55 of ACMD6: %d\n", ret);
+            return ret;
           }
 
         /* Then send ACMD6 */
 
-        mmcsd_sendcmdpoll(priv, SD_ACMD6, MMCSD_ACMD6_BUSWIDTH_4);
-        ret = mmcsd_recvR1(priv, SD_ACMD6);
-        if (ret != OK)
-          {
-            return ret;
-          }
-
-      /* Configure the SDIO peripheral */
+        mmcsd_sendcmdpoll(priv, SD_ACMD6, MMCSD_ACMD6_BUSWIDTH_4);
+        ret = mmcsd_recvR1(priv, SD_ACMD6);
+        if (ret != OK)
+          {
+            return ret;
+          }
+
+      /* Configure the SDIO peripheral */
 
       fvdbg("Wide bus operation selected\n");
       SDIO_WIDEBUS(priv->dev, TRUE);
       priv->widebus = TRUE;
 
-      SDIO_CLOCK(priv->dev, CLOCK_SD_TRANSFER_4BIT);
+      SDIO_CLOCK(priv->dev, CLOCK_SD_TRANSFER_4BIT);
       up_udelay(MMCSD_CLK_DELAY);
       return OK;
     }
@@ -1353,11 +1353,11 @@ static int mmcsd_sdinitialize(struct mmcsd_state_s *priv)
    * Send CMD3 with argument 0, SD card publishes its RCA in the response.
    */
 
-  mmcsd_sendcmdpoll(priv, SD_CMD3, 0);
-  ret = SDIO_RECVR6(priv->dev, SD_CMD3, &rca);
-  if (ret != OK)
-  {
-    return ret;
+  mmcsd_sendcmdpoll(priv, SD_CMD3, 0);
+  ret = SDIO_RECVR6(priv->dev, SD_CMD3, &rca);
+  if (ret != OK)
+  {
+    return ret;
   }
 
   /* R6  Published RCA Response (48-bit, SD card only)
@@ -1372,7 +1372,7 @@ static int mmcsd_sdinitialize(struct mmcsd_state_s *priv)
    */
 
   priv->rca = (uint16)(rca >> 16);
-  fvdbg("RCA: %04x\n", priv->rca);
+  fvdbg("RCA: %04x\n", priv->rca);
 
   /* This should have caused a transition to standby state. However, this will
    * not be reflected in the present R1 status.  R1/6 contains the state of 
@@ -1471,7 +1471,7 @@ static int mmcsd_cardidentify(struct mmcsd_state_s *priv)
     }
 
   /* Initialize device state structure */
-
+
   priv->type = MMCSD_CARDTYPE_SDV1;
   priv->mode = MMCSDMODE_POLLED;
 
@@ -1495,14 +1495,14 @@ static int mmcsd_cardidentify(struct mmcsd_state_s *priv)
    * operating condition. CMD 8 is reserved on SD version 1.0 and MMC.
    *
    * CMD8 Argument:
-   *    [31:12]: Reserved (shall be set to '0')
   *    [11:8]: Supply Voltage (VHS) 0x1 (Range: 2.7-3.6 V)
-   *    [7:0]: Check Pattern (recommended 0xaa)
+   *    [31:12]: Reserved (shall be set to '0')
   *    [11:8]: Supply Voltage (VHS) 0x1 (Range: 2.7-3.6 V)
+   *    [7:0]: Check Pattern (recommended 0xaa)
    * CMD8 Response: R7
-   */
-
-  mmcsd_sendcmdpoll(priv, SD_CMD8, MMCSD_CMD8CHECKPATTERN|MMCSD_CMD8VOLTAGE_27);
-  ret = SDIO_RECVR7(priv->dev, SD_CMD8, &response);
-  if (ret == OK)
+   */
+
+  mmcsd_sendcmdpoll(priv, SD_CMD8, MMCSD_CMD8CHECKPATTERN|MMCSD_CMD8VOLTAGE_27);
+  ret = SDIO_RECVR7(priv->dev, SD_CMD8, &response);
+  if (ret == OK)
   {
     /* CMD8 succeeded this is probably a SDHC card. Verify the operating
      * voltage and that the check pattern was correctly echoed
@@ -1510,17 +1510,17 @@ static int mmcsd_cardidentify(struct mmcsd_state_s *priv)
 
     if (((response & MMCSD_R7VOLTAGE_MASK) == MMCSD_R7VOLTAGE_27) &&
         ((response & MMCSD_R7ECHO_MASK) ==  MMCSD_R7CHECKPATTERN))
-      {
+      {
         fvdbg("SD V2.x card\n");
-        priv->type = MMCSD_CARDTYPE_SDV2;
+        priv->type = MMCSD_CARDTYPE_SDV2;
         sdcapacity = MMCSD_ACMD41_HIGHCAPACITY;
       }
     else
       {
         fdbg("ERROR: R7: %08x\n", response);
         return -EIO;
-      }
-  }
+      }
+  }
 
   /* At this point, type is either UNKNOWN or SDV2.  Try sending
    * CMD55 and (maybe) ACMD41 for up to 1 second or until the card
@@ -1543,7 +1543,7 @@ static int mmcsd_cardidentify(struct mmcsd_state_s *priv)
         {
           /* Send CMD55 */
 
-          mmcsd_sendcmdpoll(priv, SD_CMD55, 0);
+          mmcsd_sendcmdpoll(priv, SD_CMD55, 0);
           ret = mmcsd_recvR1(priv, SD_CMD55);
           if (ret != OK)
             {
@@ -1578,7 +1578,7 @@ static int mmcsd_cardidentify(struct mmcsd_state_s *priv)
                   if (priv->type == MMCSD_CARDTYPE_UNKNOWN)
                     {
                       fvdbg("SD V1.x card\n");
-                      priv->type = MMCSD_CARDTYPE_SDV1;
+                      priv->type = MMCSD_CARDTYPE_SDV1;
                     }
 
                   /* Check if the card is busy */
@@ -1604,7 +1604,7 @@ static int mmcsd_cardidentify(struct mmcsd_state_s *priv)
                       /* And break out of the loop with an SD card identified */
 
                       break;
-                    }
+                    }
                 }
             }
         }
@@ -1660,14 +1660,14 @@ static int mmcsd_cardidentify(struct mmcsd_state_s *priv)
 
                   break;
                 }
-            }
+            }
         }
 #endif
       /* Check the elapsed time.  We won't keep trying this forever! */
 
       elapsed = g_system_timer - start;
     }
-  while (elapsed < TICK_PER_SEC && ret != OK);
+  while (elapsed < TICK_PER_SEC && ret != OK);
 
   /* We get here when the above loop completes, either (1) we could not
    * communicate properly with the card due to errors (and the loop times
@@ -1794,6 +1794,7 @@ static int mmcsd_probe(struct mmcsd_state_s *priv)
 
       fvdbg("No card\n");
       SDIO_EVENTENABLE(priv->dev, SDIOEVENT_INSERTED);
+      ret = -ENODEV;
     }
 
   return ret;