From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=DA2KItqd; spf=pass (domain: linaro.org, ip: 209.85.221.67, mailfrom: leif.lindholm@linaro.org) Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by groups.io with SMTP; Tue, 08 Oct 2019 07:53:56 -0700 Received: by mail-wr1-f67.google.com with SMTP id p14so18841375wro.4 for ; Tue, 08 Oct 2019 07:53:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=3yDNgkblXHilwRH1+zrePl9Bga33aVp00p+ElKbD9zU=; b=DA2KItqdMEBk1/HdugHtS5PkINTRzdr3OKfVNf9uxGohZL3dUu4C3qh6iPFHus3Rfj K50PXGQ5Zvd82V5kh9cog7T3bJCstDtxecRSNIfKIc42o+hvyYx33JhSlljcEztN5QcN viUY7c4CV6UwoJ08YupGs74GqPSuGLO3anR7Rn7V4SyqnhI1jjvIW1B5zHe6nduwq+gK eURWtlzFRKTzCN5ANU6GaecXexTXLv+GvVZhqgDI8VJh/VIQyZ9h7o0oVNivxQmgA8NR yTpA1xnMcd0Ag/Hs8sPjOm7YtKAIt1IR4Fh4Te8aip9bQL66m7cLLnMEIi+hOuh4CIEv OUZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=3yDNgkblXHilwRH1+zrePl9Bga33aVp00p+ElKbD9zU=; b=QXwLjuiSnuyohNJyYCq62nQUSgvgMuZakssP45PqtWJTCsqNpn5n6iV9ym17yYrEAu yEBF4zHbqKV7KupUKxes7OSgXMw5n+2rOioJFqfb42HjKP300u3ILn4LZEyGf7zX9aNX 1M73Q2oLNBwSZsuaL8ilxTPuOGx9FdZne3K4koH0RAMfkRnA+6WXNATFBCqx6z70WjWM 73fLhsoAhn3RofC7mxjgww5sm/dY/yWOjK7W26mH5AxoHGSamt0mS2mDvvP5C/nKT1Dg jn6VigMH6kpm7LYVjPCPFegEDDfE1SZjMBd7dPfLyBv7A6BDk2HUSlSygRUmFW56mF3h 1aow== X-Gm-Message-State: APjAAAVBix/OrDmw5oGO9QJL0W27Nl+b1bsw+n5e52XJoYEgDx6euHzG u9Fg8FiPP7gHS+Ozn4sfbFhLkw== X-Google-Smtp-Source: APXvYqwSFVTA6Alr4pAoBHUNOtGjOtGuzrjcqP6ZEhNZF2XkxiF+c3IEp9CcZ2xPmbB/2H1SEhnaQA== X-Received: by 2002:adf:aa87:: with SMTP id h7mr15301878wrc.112.1570546434710; Tue, 08 Oct 2019 07:53:54 -0700 (PDT) Return-Path: Received: from bivouac.eciton.net (bivouac.eciton.net. [2a00:1098:0:86:1000:23:0:2]) by smtp.gmail.com with ESMTPSA id z142sm4839956wmc.24.2019.10.08.07.53.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Oct 2019 07:53:53 -0700 (PDT) Date: Tue, 8 Oct 2019 15:53:52 +0100 From: "Leif Lindholm" To: Marcin Wojtas Cc: devel@edk2.groups.io, ard.biesheuvel@linaro.org, jsd@semihalf.com, jaz@semihalf.com Subject: Re: [edk2-platforms: PATCH] Marvell/Drivers: MvPhyDxe: Execute proper initialization callback Message-ID: <20191008145352.GF25504@bivouac.eciton.net> References: <1570406546-15715-1-git-send-email-mw@semihalf.com> MIME-Version: 1.0 In-Reply-To: <1570406546-15715-1-git-send-email-mw@semihalf.com> User-Agent: Mutt/1.10.1 (2018-07-13) Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Oct 07, 2019 at 02:02:26AM +0200, Marcin Wojtas wrote: > Hitherto code was executing by mistake the first > possible initialization routine (valid for 88E1512 PHY), > regardless the setting in gMarvellTokenSpaceGuid.PcdPhyDeviceIds. > Fix this. > > Signed-off-by: Marcin Wojtas Reviewed-by: Leif Lindholm Pushed as 16eb2d4e9c7b. Thanks! > --- > Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.h | 3 ++- > Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c | 28 +++++++++----------- > 2 files changed, 15 insertions(+), 16 deletions(-) > > diff --git a/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.h b/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.h > index 908b768..4d8aacf 100644 > --- a/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.h > +++ b/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.h > @@ -49,7 +49,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > > typedef enum { > MV_PHY_DEVICE_1512, > - MV_PHY_DEVICE_1112 > + MV_PHY_DEVICE_1112, > + MV_PHY_DEVICE_ID_MAX > } MV_PHY_DEVICE_ID; > > typedef > diff --git a/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c b/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c > index 2d2aad7..6e4a715 100644 > --- a/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c > +++ b/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c > @@ -396,7 +396,7 @@ MvPhyInit ( > PHY_DEVICE *PhyDev; > UINT8 *DeviceIds; > UINT8 MdioIndex; > - INTN i; > + UINT8 PhyId; > > Status = gBS->LocateProtocol ( > &gMarvellMdioProtocolGuid, > @@ -415,6 +415,17 @@ MvPhyInit ( > return EFI_INVALID_PARAMETER; > } > > + DeviceIds = PcdGetPtr (PcdPhyDeviceIds); > + PhyId = DeviceIds[PhyIndex]; > + if (PhyId >= MV_PHY_DEVICE_ID_MAX) { > + DEBUG ((DEBUG_ERROR, > + "%a, Incorrect PHY ID (0x%x) for PHY#%d\n", > + __FUNCTION__, > + PhyId, > + PhyIndex)); > + return EFI_INVALID_PARAMETER; > + } > + > /* perform setup common for all PHYs */ > PhyDev = AllocateZeroPool (sizeof (PHY_DEVICE)); > PhyDev->Addr = PhySmiAddresses[PhyIndex]; > @@ -427,20 +438,7 @@ MvPhyInit ( > PhyConnection)); > *OutPhyDev = PhyDev; > > - DeviceIds = PcdGetPtr (PcdPhyDeviceIds); > - for (i = 0; i < PcdGetSize (PcdPhyDeviceIds); i++) { > - /* find MvPhyDevices fitting entry */ > - if (MvPhyDevices[i].DevId == DeviceIds[i]) { > - ASSERT (MvPhyDevices[i].DevInit != NULL); > - /* proceed with PHY-specific initialization */ > - return MvPhyDevices[i].DevInit (Snp, PhyDev); > - } > - } > - > - /* if we are here, no matching DevId was found */ > - Status = EFI_INVALID_PARAMETER; > - FreePool (PhyDev); > - return Status; > + return MvPhyDevices[PhyId].DevInit (Snp, PhyDev); > } > > EFI_STATUS > -- > 2.7.4 >