diff options
Diffstat (limited to 'EmbeddedPkg/Universal/MmcDxe/Mmc.c')
-rw-r--r-- | EmbeddedPkg/Universal/MmcDxe/Mmc.c | 8 |
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,
|