summaryrefslogtreecommitdiffstats
path: root/EmbeddedPkg/Universal/MmcDxe/Mmc.c
diff options
context:
space:
mode:
Diffstat (limited to 'EmbeddedPkg/Universal/MmcDxe/Mmc.c')
-rw-r--r--EmbeddedPkg/Universal/MmcDxe/Mmc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/EmbeddedPkg/Universal/MmcDxe/Mmc.c b/EmbeddedPkg/Universal/MmcDxe/Mmc.c
index cfa9a51f50..48d32513d4 100644
--- a/EmbeddedPkg/Universal/MmcDxe/Mmc.c
+++ b/EmbeddedPkg/Universal/MmcDxe/Mmc.c
@@ -299,6 +299,9 @@ MmcDriverBindingStart (
InsertMmcHost (MmcHostInstance);
MmcHostInstance->Initialized = FALSE;
+
+ // Detect card presence now
+ CheckCardsCallback (NULL, NULL);
}
return EFI_SUCCESS;
@@ -366,6 +369,10 @@ CheckCardsCallback (
MmcHostInstance->BlockIo.Media->MediaPresent = !MmcHostInstance->Initialized;
MmcHostInstance->Initialized = !MmcHostInstance->Initialized;
+ if(MmcHostInstance->BlockIo.Media->MediaPresent) {
+ InitializeMmcDevice(MmcHostInstance);
+ }
+
Status = gBS->ReinstallProtocolInterface (
(MmcHostInstance->MmcHandle),
&gEfiBlockIoProtocolGuid,
@@ -382,6 +389,7 @@ CheckCardsCallback (
}
}
+
EFI_DRIVER_BINDING_PROTOCOL gMmcDriverBinding = {
MmcDriverBindingSupported,
MmcDriverBindingStart,