From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: None (no SPF record) identity=mailfrom; client-ip=2a00:1450:4864:20::242; helo=mail-lj1-x242.google.com; envelope-from=mw@semihalf.com; receiver=edk2-devel@lists.01.org Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B50D321106C8E for ; Sun, 2 Sep 2018 21:54:25 -0700 (PDT) Received: by mail-lj1-x242.google.com with SMTP id 203-v6so14237569ljj.13 for ; Sun, 02 Sep 2018 21:54:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=UW1FYBDoC7AY2Xkn8wbFDMRX/rYJKpLrIX23pJOj7cU=; b=rjUNJbCbSDvR9pfgvG1vqx7J90weEYKQ9QHhlsiRclnvtOSFzuA1sTvVUfysJPs5P+ v+CJJFkM2PWLHWyQz9FFF62DuitD5BbG1qHuG5ogYXTKv9PRWug4BWZhSzlstlRECqg7 8oHTE5Nk0H+49nQoInbme8jScLLCqbMZds5lE1LOUt8nnV707e5ePaz7fhVzjSdzYIQ+ M+lJcFRPPUe9vWcoNEhCDKClRyvcjL+b3jQQGp3v5KLrQ8xkQwLZ4xALjqKeViTEp+Qu nfdgJQzzToxtU/FDqeRvpFyRVMbxwQH0kBTbdY0eqVKRJAfsxn3FChP/O8JNoJBfxPuu KABw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=UW1FYBDoC7AY2Xkn8wbFDMRX/rYJKpLrIX23pJOj7cU=; b=IsJfslFk8W3ZCq4iBpiKMhofnkH5Mq0VnFYeVzuUGNr2YKK1M7y33dhkD0WiBNj9h9 i54lsDGPK3HnO9doV1opObIib5+hqxu6thBjyyu1SPmq28QSh3qoLleO9nuG20Y4mm62 lwOfeU+SppXzfa2ZHW1CpwsOZDUDOJ1k8VjjHtNVFur9Wbe365IVzXtipuDiw+A2rYDU YLlXKVp1LRCUgEhJrgH/7rLD03xw/KCDSKqjzSpbFXp4B+kh5Om8Uk5/pTs7QEe8Nuq0 dN0sTYxASeouuXz4vYsxw+Nx0ItkTxHN3KPLiijWTAoMg6ljkI0FPx/1es44XIEqgA3Z DnzQ== X-Gm-Message-State: APzg51A1kz8ofIvQ+IkzOAFMoiu5dc9oxgw309KGZS/ESlDaQzF35ITz jaKMOhiDhgTSb3yCB5CZuNs5apK8y3Q= X-Google-Smtp-Source: ANB0VdYvleWdTKX65BezjRYzZtoMpozFqtMTW14uAWOw8hWmt9wYKSfdNZnzLRmk6EBm1U+faYMfrA== X-Received: by 2002:a2e:8652:: with SMTP id i18-v6mr12975644ljj.43.1535950462988; Sun, 02 Sep 2018 21:54:22 -0700 (PDT) Received: from gilgamesh.semihalf.com (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id i22-v6sm3311445lfh.2.2018.09.02.21.54.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 02 Sep 2018 21:54:22 -0700 (PDT) From: Marcin Wojtas To: edk2-devel@lists.01.org Cc: leif.lindholm@linaro.org, ard.biesheuvel@linaro.org, nadavh@marvell.com, mw@semihalf.com, jsd@semihalf.com, jaz@semihalf.com, Tomasz Michalec Date: Mon, 3 Sep 2018 06:53:57 +0200 Message-Id: <1535950443-27106-2-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1535950443-27106-1-git-send-email-mw@semihalf.com> References: <1535950443-27106-1-git-send-email-mw@semihalf.com> Subject: [platforms: PATCH 1/7] Silicon/SynQuacer/PlatformDxe: Modify initialization of SdMmcOverride X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Sep 2018 04:54:26 -0000 From: Tomasz Michalec This patch changes way the EDKII_SD_MMC_OVERRIDE protocol sturcture is allocated. Using AllocateZeroPool and then seting callbacks in the structure allow driver to be immune to adding new callbacks in SdMmcOveride protocol in future. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas --- Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Emmc.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Emmc.c b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Emmc.c index e0987c9..1ad8b88 100644 --- a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Emmc.c +++ b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Emmc.c @@ -59,6 +59,8 @@ STATIC EFI_HANDLE mSdMmcControllerHandle; +STATIC EDKII_SD_MMC_OVERRIDE *mSdMmcOverride; + STATIC EFI_ACPI_DESCRIPTION_HEADER *mSsdt; STATIC UINTN mSsdtSize; STATIC VOID *mEventRegistration; @@ -180,12 +182,6 @@ SynQuacerSdMmcNotifyPhase ( return EFI_SUCCESS; } -STATIC EDKII_SD_MMC_OVERRIDE mSdMmcOverride = { - EDKII_SD_MMC_OVERRIDE_PROTOCOL_VERSION, - SynQuacerSdMmcCapability, - SynQuacerSdMmcNotifyPhase, -}; - STATIC VOID EFIAPI @@ -255,10 +251,20 @@ RegisterEmmc ( SYNQUACER_EMMC_BASE, SYNQUACER_EMMC_BASE_SZ); ASSERT_EFI_ERROR (Status); + mSdMmcOverride = AllocateZeroPool (sizeof (EDKII_SD_MMC_OVERRIDE)); + if (mSdMmcOverride == NULL) { + DEBUG ((DEBUG_ERROR, "%a: Cannot allocate memory\n", __FUNCTION__)); + return EFI_OUT_OF_RESOURCES; + } + + mSdMmcOverride->Version = EDKII_SD_MMC_OVERRIDE_PROTOCOL_VERSION; + mSdMmcOverride->Capability = SynQuacerSdMmcCapability; + mSdMmcOverride->NotifyPhase = SynQuacerSdMmcNotifyPhase; + Handle = NULL; Status = gBS->InstallProtocolInterface (&Handle, &gEdkiiSdMmcOverrideProtocolGuid, - EFI_NATIVE_INTERFACE, (VOID **)&mSdMmcOverride); + EFI_NATIVE_INTERFACE, mSdMmcOverride); ASSERT_EFI_ERROR (Status); return EFI_SUCCESS; -- 2.7.4