From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) by mx.groups.io with SMTP id smtpd.web11.27839.1647272333274262389 for ; Mon, 14 Mar 2022 08:38:53 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@semihalf-com.20210112.gappssmtp.com header.s=20210112 header.b=F6ck8ja4; spf=none, err=SPF record not found (domain: semihalf.com, ip: 209.85.167.51, mailfrom: mw@semihalf.com) Received: by mail-lf1-f51.google.com with SMTP id bu29so28020448lfb.0 for ; Mon, 14 Mar 2022 08:38:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mO0zoV2jd9oO5sZ5ZmtqLgI6/oURIGauaHkbIYb5yCg=; b=F6ck8ja45S/pJvMSaxKQ+98iSBgXpCSN5eTPFf+QXNiqPDUqO6k3iLzQDc0HgpBUK5 22//usZkWWXEa/SFoRTRBU7yq/cmQWSyCFHdk3IwItldMg39pthae0tjjgWbuP7V//Li BHfu7m+dIxqi/o7SUEYwUgxu56CSXhxqPJgkGn9vVgzuJhroBGRN/aZuwGz4GZI9Yfwi AH6VYBl4ETlgUa7mDHwod380xj1PICK9Yks7m4KjrU/JB7YhWLFLnks40ohlrbnmusQl PlcZc09B73lIrYOCAUXeqLFBhSuxPwJSQJ7ifuKhdZjHBX7OwS9bY+tGZyPHAeYr939n mhZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mO0zoV2jd9oO5sZ5ZmtqLgI6/oURIGauaHkbIYb5yCg=; b=gj/wBXCanFXbH50FL6rDJ1orhriJ5jHhwjyQxooVgXb/h9RvWtB7RMgiR3/yw5WjHg ic58+iFlzxdGM7xQbuCnueIVw5gR+VKwfsCgYa0tvCpcOhD539v/ZgnRkXWZ4RPTP2ds Wbo74EeyYu/hBE798XYHaTnpvaoBGPR2AmH0EBgYuD/ahKX8SQL0sb56VTAkdenwDLj1 Nz2k0/d51FZnqpXgHSt5im5JlsQgo8ptw0vsTssiMyKpmvZVIqa2fR4AS8zRXuPAfSWu PJYxXigpn1LAIIpAcNeUZn27jsdeCntcdtSPNJNOBEOjsE7WMilijo31kQ6aDx0My5H2 SD4Q== X-Gm-Message-State: AOAM532+06ejJ1EuZCV7kxqLS4dqS/RlWwRJZ6dzwLIpPE5as4PUet70 A2qXFiD8FCXUJKPPhu0cUU8D5Ed82+Z7Lw== X-Google-Smtp-Source: ABdhPJzKHQJDqj4OW+S26CjniU4SNLM5biTM5+55QmWl1pPcwsVE+uMgZrEBZEo+QdUYtHMKphzFFA== X-Received: by 2002:a05:6512:104a:b0:448:67ce:d718 with SMTP id c10-20020a056512104a00b0044867ced718mr12408608lfb.26.1647272331556; Mon, 14 Mar 2022 08:38:51 -0700 (PDT) Return-Path: Received: from gilgamesh.lab.semihalf.net ([83.142.187.85]) by smtp.gmail.com with ESMTPSA id b8-20020ac25628000000b004484bd1be5esm3325401lff.256.2022.03.14.08.38.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Mar 2022 08:38:51 -0700 (PDT) From: "Marcin Wojtas" To: devel@edk2.groups.io Cc: quic_llindhol@quicinc.com, ardb+tianocore@kernel.org, mw@semihalf.com, jaz@semihalf.com, gjb@semihalf.com, upstream@semihalf.com, sunny.Wang@arm.com Subject: [edk2-platforms PATCH 1/8] Marvell/Drivers: Pp2Dxe: Fix Pp2SnpShutdown Date: Mon, 14 Mar 2022 16:38:30 +0100 Message-Id: <20220314153837.1885852-2-mw@semihalf.com> X-Mailer: git-send-email 2.29.0 In-Reply-To: <20220314153837.1885852-1-mw@semihalf.com> References: <20220314153837.1885852-1-mw@semihalf.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable The SnpShutdown callback requires updating the instance state and also disabling hardware interfaces. For that purpose reuse Pp2Halt routine. Signed-off-by: Marcin Wojtas --- Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c | 50 +++++++++++++++----- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c b/Silicon/Marvell/= Drivers/Net/Pp2Dxe/Pp2Dxe.c index 0872f17889..30e091f807 100644 --- a/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c +++ b/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c @@ -633,14 +633,12 @@ Pp2SnpReset ( return EFI_SUCCESS;=0D }=0D =0D +STATIC=0D VOID=0D -EFIAPI=0D Pp2DxeHalt (=0D - IN EFI_EVENT Event,=0D - IN VOID *Context=0D + IN PP2DXE_CONTEXT *Pp2Context=0D )=0D {=0D - PP2DXE_CONTEXT *Pp2Context =3D Context;=0D PP2DXE_PORT *Port =3D &Pp2Context->Port;=0D MVPP2_SHARED *Mvpp2Shared =3D Pp2Context->Port.Priv;=0D INTN Index;=0D @@ -661,30 +659,58 @@ Pp2DxeHalt ( MvGop110PortDisable(Port);=0D }=0D =0D +VOID=0D +EFIAPI=0D +Pp2DxeHaltEvent (=0D + IN EFI_EVENT Event,=0D + IN VOID *Context=0D + )=0D +{=0D + PP2DXE_CONTEXT *Pp2Context =3D Context;=0D +=0D + Pp2DxeHalt (Pp2Context);=0D +}=0D +=0D EFI_STATUS=0D EFIAPI=0D Pp2SnpShutdown (=0D IN EFI_SIMPLE_NETWORK_PROTOCOL *This=0D )=0D {=0D + PP2DXE_CONTEXT *Pp2Context;=0D EFI_TPL SavedTpl;=0D +=0D + /* Check Snp Instance. */=0D + if (This =3D=3D NULL) {=0D + return EFI_INVALID_PARAMETER;=0D + }=0D +=0D SavedTpl =3D gBS->RaiseTPL (TPL_CALLBACK);=0D - PP2DXE_CONTEXT *Pp2Context =3D INSTANCE_FROM_SNP(This);=0D - UINT32 State =3D This->Mode->State;=0D =0D - if (State !=3D EfiSimpleNetworkInitialized) {=0D - switch (State) {=0D + Pp2Context =3D INSTANCE_FROM_SNP (This);=0D +=0D + /* Check whether the driver was started and initialized. */=0D + if (This->Mode->State !=3D EfiSimpleNetworkInitialized) {=0D + switch (This->Mode->State) {=0D case EfiSimpleNetworkStopped:=0D - DEBUG((DEBUG_WARN, "Pp2Dxe%d: not started\n", Pp2Context->Instance))= ;=0D + DEBUG ((DEBUG_WARN, "Pp2Dxe%d: not started\n", Pp2Context->Instance)= );=0D ReturnUnlock (SavedTpl, EFI_NOT_STARTED);=0D case EfiSimpleNetworkStarted:=0D - /* Fall through */=0D + DEBUG ((DEBUG_WARN, "Pp2Dxe%d: not initialized\n", Pp2Context->Insta= nce));=0D + ReturnUnlock (SavedTpl, EFI_DEVICE_ERROR);=0D default:=0D - DEBUG((DEBUG_ERROR, "Pp2Dxe%d: wrong state\n", Pp2Context->Instance)= );=0D + DEBUG ((DEBUG_WARN,=0D + "Pp2Dxe%d: wrong state: %u\n",=0D + Pp2Context->Instance,=0D + This->Mode->State));=0D ReturnUnlock (SavedTpl, EFI_DEVICE_ERROR);=0D }=0D }=0D =0D + Pp2DxeHalt (Pp2Context);=0D +=0D + This->Mode->State =3D EfiSimpleNetworkStarted;=0D +=0D ReturnUnlock (SavedTpl, EFI_SUCCESS);=0D }=0D =0D @@ -1458,7 +1484,7 @@ Pp2DxeInitialiseController ( Status =3D gBS->CreateEvent (=0D EVT_SIGNAL_EXIT_BOOT_SERVICES,=0D TPL_NOTIFY,=0D - Pp2DxeHalt,=0D + Pp2DxeHaltEvent,=0D Pp2Context,=0D &Pp2Context->EfiExitBootServicesEvent=0D );=0D --=20 2.29.0