diff options
author | Haojian Zhuang <haojian.zhuang@linaro.org> | 2018-02-10 15:02:58 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-10 15:02:58 +0800 |
commit | a7098f916f0ce2cd902745c02aec3d4c7e14428f (patch) | |
tree | 5b42cd3f9955294f0a8a92fb1f56321fa6aa7330 | |
parent | 69a8c5fc495a5fd524c7187382c2b82bc253b2ad (diff) | |
parent | b195820461509b3d0ab04674a457a928bdc3a07c (diff) | |
download | OpenPlatformPkg-a7098f916f0ce2cd902745c02aec3d4c7e14428f.tar.gz |
Merge pull request #94 from hzhuang1/fix_sd_2
Fix sd 2
-rw-r--r-- | Drivers/SdMmc/DwMmcHcDxe/DwMmcHcDxe.c | 4 | ||||
-rw-r--r-- | Drivers/SdMmc/DwMmcHcDxe/DwMmcHci.c | 3 | ||||
-rw-r--r-- | Drivers/SdMmc/DwMmcHcDxe/DwMmcHci.h | 7 | ||||
-rw-r--r-- | Include/Protocol/PlatformDwMmc.h | 1 | ||||
-rw-r--r-- | Platforms/Hisilicon/HiKey/HiKeyMmcDxe/HiKeyMmcDxe.c | 8 |
5 files changed, 13 insertions, 10 deletions
diff --git a/Drivers/SdMmc/DwMmcHcDxe/DwMmcHcDxe.c b/Drivers/SdMmc/DwMmcHcDxe/DwMmcHcDxe.c index 55e2fa4..f3c9156 100644 --- a/Drivers/SdMmc/DwMmcHcDxe/DwMmcHcDxe.c +++ b/Drivers/SdMmc/DwMmcHcDxe/DwMmcHcDxe.c @@ -248,7 +248,7 @@ return; for (Slot = 0; Slot < DW_MMC_HC_MAX_SLOT; Slot++) { if ((Private->Slot[Slot].Enable) && (Private->Slot[Slot].SlotType == RemovableSlot)) { - Status = DwMmcHcCardDetect (Private->PciIo, Slot, &MediaPresent); + Status = DwMmcHcCardDetect (Private->PciIo, Private->ControllerHandle, Slot, &MediaPresent); if ((Status == EFI_MEDIA_CHANGED) && !MediaPresent) { DEBUG ((DEBUG_INFO, "DwMmcHcEnumerateDevice: device disconnected at slot %d of pci %p\n", Slot, Private->PciIo)); Private->Slot[Slot].MediaPresent = FALSE; @@ -679,7 +679,7 @@ DwMmcHcDriverBindingStart ( DumpCapabilityReg (Slot, &Private->Capability[Slot]); MediaPresent = FALSE; - Status = DwMmcHcCardDetect (Private->PciIo, Slot, &MediaPresent); + Status = DwMmcHcCardDetect (Private->PciIo, Controller, Slot, &MediaPresent); if (MediaPresent == FALSE) { continue; } diff --git a/Drivers/SdMmc/DwMmcHcDxe/DwMmcHci.c b/Drivers/SdMmc/DwMmcHcDxe/DwMmcHci.c index 533f911..3d03780 100644 --- a/Drivers/SdMmc/DwMmcHcDxe/DwMmcHci.c +++ b/Drivers/SdMmc/DwMmcHcDxe/DwMmcHci.c @@ -524,6 +524,7 @@ DwMmcHcGetMaxCurrent ( EFI_STATUS
DwMmcHcCardDetect (
IN EFI_PCI_IO_PROTOCOL *PciIo,
+ IN EFI_HANDLE Controller,
IN UINT8 Slot,
OUT BOOLEAN *MediaPresent
)
@@ -542,7 +543,7 @@ DwMmcHcCardDetect ( if (EFI_ERROR (Status)) {
return Status;
}
- *MediaPresent = PlatformDwMmc->CardDetect (Slot);
+ *MediaPresent = PlatformDwMmc->CardDetect (Controller, Slot);
return EFI_SUCCESS;
}
diff --git a/Drivers/SdMmc/DwMmcHcDxe/DwMmcHci.h b/Drivers/SdMmc/DwMmcHcDxe/DwMmcHci.h index 228b20f..d9c6211 100644 --- a/Drivers/SdMmc/DwMmcHcDxe/DwMmcHci.h +++ b/Drivers/SdMmc/DwMmcHcDxe/DwMmcHci.h @@ -522,9 +522,10 @@ DwMmcHcGetMaxCurrent ( **/
EFI_STATUS
DwMmcHcCardDetect (
- IN EFI_PCI_IO_PROTOCOL *PciIo,
- IN UINT8 Slot,
- OUT BOOLEAN *MediaPresent
+ IN EFI_PCI_IO_PROTOCOL *PciIo,
+ IN EFI_HANDLE Controller,
+ IN UINT8 Slot,
+ OUT BOOLEAN *MediaPresent
);
/**
diff --git a/Include/Protocol/PlatformDwMmc.h b/Include/Protocol/PlatformDwMmc.h index fe2259b..bf315c4 100644 --- a/Include/Protocol/PlatformDwMmc.h +++ b/Include/Protocol/PlatformDwMmc.h @@ -65,6 +65,7 @@ EFI_STATUS typedef BOOLEAN (EFIAPI *PLATFORM_DW_MMC_CARD_DETECT) ( + IN EFI_HANDLE Controller, IN UINT8 Slot ); diff --git a/Platforms/Hisilicon/HiKey/HiKeyMmcDxe/HiKeyMmcDxe.c b/Platforms/Hisilicon/HiKey/HiKeyMmcDxe/HiKeyMmcDxe.c index 0f58697..e7d3c6c 100644 --- a/Platforms/Hisilicon/HiKey/HiKeyMmcDxe/HiKeyMmcDxe.c +++ b/Platforms/Hisilicon/HiKey/HiKeyMmcDxe/HiKeyMmcDxe.c @@ -79,6 +79,7 @@ HiKeyGetCapability ( BOOLEAN EFIAPI HiKeyCardDetect ( + IN EFI_HANDLE Controller, IN UINT8 Slot ) { @@ -86,9 +87,9 @@ HiKeyCardDetect ( EMBEDDED_GPIO *Gpio; UINTN Value; - if (Slot == 0) { + if (DwMmcCapability[0].Controller == Controller) { return TRUE; - } else if (Slot == 1) { + } else if (DwMmcCapability[1].Controller == Controller) { Status = gBS->LocateProtocol (&gEmbeddedGpioProtocolGuid, NULL, (VOID **)&Gpio); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_ERROR, "Failed to get GPIO protocol: %r\n", Status)); @@ -108,9 +109,8 @@ HiKeyCardDetect ( return TRUE; } return FALSE; - } else { - return FALSE; } + return FALSE; } PLATFORM_DW_MMC_PROTOCOL mDwMmcDevice = { |