]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c
MdeModulePkg/Sd: update the sd detection logic
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / SdMmcPciHcDxe / SdMmcPciHci.c
index d2bd112c14273aafa5966bb72f6c5b132d85bd0c..baa12f44eeacea52453f5c01ea687f665ad72d2d 100644 (file)
@@ -583,6 +583,20 @@ SdMmcHcCardDetect (
   UINT16                    Data;\r
   UINT32                    PresentState;\r
 \r
+  //\r
+  // Check Present State Register to see if there is a card presented.\r
+  //\r
+  Status = SdMmcHcRwMmio (PciIo, Slot, SD_MMC_HC_PRESENT_STATE, TRUE, sizeof (PresentState), &PresentState);\r
+  if (EFI_ERROR (Status)) {\r
+    return Status;\r
+  }\r
+\r
+  if ((PresentState & BIT16) != 0) {\r
+    *MediaPresent = TRUE;\r
+  } else {\r
+    *MediaPresent = FALSE;\r
+  }\r
+\r
   //\r
   // Check Normal Interrupt Status Register\r
   //\r
@@ -601,19 +615,6 @@ SdMmcHcCardDetect (
       return Status;\r
     }\r
 \r
-    //\r
-    // Check Present State Register to see if there is a card presented.\r
-    //\r
-    Status = SdMmcHcRwMmio (PciIo, Slot, SD_MMC_HC_PRESENT_STATE, TRUE, sizeof (PresentState), &PresentState);\r
-    if (EFI_ERROR (Status)) {\r
-      return Status;\r
-    }\r
-\r
-    if ((PresentState & BIT16) != 0) {\r
-      *MediaPresent = TRUE;\r
-    } else {\r
-      *MediaPresent = FALSE;\r
-    }\r
     return EFI_MEDIA_CHANGED;\r
   }\r
 \r