/** @file\r
Main file of the MMC Dxe driver. The driver entrypoint is defined into this file.\r
\r
- Copyright (c) 2011, ARM Limited. All rights reserved.\r
+ Copyright (c) 2011-2013, ARM Limited. All rights reserved.\r
\r
This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
**/\r
\r
#include <Protocol/DevicePath.h>\r
-#include <Protocol/MmcHost.h>\r
\r
#include <Library/BaseLib.h>\r
#include <Library/BaseMemoryLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
#include <Library/UefiBootServicesTableLib.h>\r
#include <Library/DevicePathLib.h>\r
-#include <Library/DebugLib.h>\r
\r
#include "Mmc.h"\r
\r
MmcHostInstance->MmcHost = MmcHost;\r
\r
// Create DevicePath for the new MMC Host\r
- Status = MmcHost->BuildDevicePath(&NewDevicePathNode);\r
+ Status = MmcHost->BuildDevicePath (MmcHost, &NewDevicePathNode);\r
if (EFI_ERROR (Status)) {\r
goto FREE_MEDIA;\r
}\r
InsertMmcHost (MmcHostInstance);\r
\r
MmcHostInstance->Initialized = FALSE;\r
+\r
+ // Detect card presence now\r
+ CheckCardsCallback (NULL, NULL);\r
}\r
\r
return EFI_SUCCESS;\r
MmcHostInstance = MMC_HOST_INSTANCE_FROM_LINK(CurrentLink);\r
ASSERT(MmcHostInstance != NULL);\r
\r
- if (MmcHostInstance->MmcHost->IsCardPresent() == !MmcHostInstance->Initialized) {\r
+ if (MmcHostInstance->MmcHost->IsCardPresent (MmcHostInstance->MmcHost) == !MmcHostInstance->Initialized) {\r
MmcHostInstance->State = MmcHwInitializationState;\r
MmcHostInstance->BlockIo.Media->MediaPresent = !MmcHostInstance->Initialized;\r
MmcHostInstance->Initialized = !MmcHostInstance->Initialized;\r
\r
+ if (MmcHostInstance->BlockIo.Media->MediaPresent) {\r
+ InitializeMmcDevice (MmcHostInstance);\r
+ }\r
+\r
Status = gBS->ReinstallProtocolInterface (\r
(MmcHostInstance->MmcHandle),\r
&gEfiBlockIoProtocolGuid,\r
}\r
}\r
\r
+\r
EFI_DRIVER_BINDING_PROTOCOL gMmcDriverBinding = {\r
MmcDriverBindingSupported,\r
MmcDriverBindingStart,\r