From 49c995342543882b85e1278cb0098aa21fa52302 Mon Sep 17 00:00:00 2001 From: Marcin Wojtas Date: Sat, 10 Nov 2018 07:01:24 +0800 Subject: [PATCH] MdeModulePkg/SdMmcPciHcDxe: Add an optional parameter in NotifyPhase In order to ensure bigger flexibility in the NotifyPhase routine of the SdMmcOverride protocol, enable using an optional phase-specific data. This will allow to exchange more information between the protocol producer driver and SdMmcPciHcDxe in the newly added callbacks. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas Reviewed-by: Ard Biesheuvel Reviewed-by: Hao Wu --- MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c | 12 ++++++++---- MdeModulePkg/Include/Protocol/SdMmcOverride.h | 4 +++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c index bedc96863c..923c55bbbe 100644 --- a/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c +++ b/MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHci.c @@ -444,7 +444,8 @@ SdMmcHcReset ( Status = mOverride->NotifyPhase ( Private->ControllerHandle, Slot, - EdkiiSdMmcResetPre); + EdkiiSdMmcResetPre, + NULL); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_WARN, "%a: SD/MMC pre reset notifier callback failed - %r\n", @@ -494,7 +495,8 @@ SdMmcHcReset ( Status = mOverride->NotifyPhase ( Private->ControllerHandle, Slot, - EdkiiSdMmcResetPost); + EdkiiSdMmcResetPost, + NULL); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_WARN, "%a: SD/MMC post reset notifier callback failed - %r\n", @@ -1088,7 +1090,8 @@ SdMmcHcInitHost ( Status = mOverride->NotifyPhase ( Private->ControllerHandle, Slot, - EdkiiSdMmcInitHostPre); + EdkiiSdMmcInitHostPre, + NULL); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_WARN, "%a: SD/MMC pre init notifier callback failed - %r\n", @@ -1123,7 +1126,8 @@ SdMmcHcInitHost ( Status = mOverride->NotifyPhase ( Private->ControllerHandle, Slot, - EdkiiSdMmcInitHostPost); + EdkiiSdMmcInitHostPost, + NULL); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_WARN, "%a: SD/MMC post init notifier callback failed - %r\n", diff --git a/MdeModulePkg/Include/Protocol/SdMmcOverride.h b/MdeModulePkg/Include/Protocol/SdMmcOverride.h index 0766252e56..8a7669e310 100644 --- a/MdeModulePkg/Include/Protocol/SdMmcOverride.h +++ b/MdeModulePkg/Include/Protocol/SdMmcOverride.h @@ -63,6 +63,7 @@ EFI_STATUS @param[in] PhaseType The type of operation and whether the hook is invoked right before (pre) or right after (post) + @param[in,out] PhaseData The pointer to a phase-specific data. @retval EFI_SUCCESS The override function completed successfully. @retval EFI_NOT_FOUND The specified controller or slot does not exist. @@ -74,7 +75,8 @@ EFI_STATUS (EFIAPI * EDKII_SD_MMC_NOTIFY_PHASE) ( IN EFI_HANDLE ControllerHandle, IN UINT8 Slot, - IN EDKII_SD_MMC_PHASE_TYPE PhaseType + IN EDKII_SD_MMC_PHASE_TYPE PhaseType, + IN OUT VOID *PhaseData ); struct _EDKII_SD_MMC_OVERRIDE { -- 2.39.2