From: Abner Chang <abner.ch...@amd.com> Initialize XHCI DCI slot's context entries value.
Signed-off-by: Jiangang He <jiangang...@amd.com> Cc: Hao A Wu <hao.a...@intel.com> Cc: Ray Ni <ray...@intel.com> Cc: Garrett Kirkendall <garrett.kirkend...@amd.com> Cc: Abner Chang <abner.ch...@amd.com> Cc: Kuei-Hung Lin <kuei-hung....@amd.com> Reviewed-by: Hao A Wu <hao.a...@intel.com> --- MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c | 7 +++++++ MdeModulePkg/Bus/Pci/XhciPei/XhciSched.c | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c index 13247f7b0df..4b7462704a8 100644 --- a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c +++ b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c @@ -4,6 +4,7 @@ Copyright (c) 2011 - 2020, Intel Corporation. All rights reserved.<BR> Copyright (c) Microsoft Corporation.<BR> +Copyright (C) 2022 Advanced Micro Devices, Inc. All rights reserved.<BR> SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -2807,6 +2808,9 @@ XhcInitializeEndpointContext ( MaxDci = 0; NumEp = IfDesc->NumEndpoints; + if (NumEp == 0) { + MaxDci = 1; + } EpDesc = (USB_ENDPOINT_DESCRIPTOR *)(IfDesc + 1); for (EpIndex = 0; EpIndex < NumEp; EpIndex++) { @@ -3006,6 +3010,9 @@ XhcInitializeEndpointContext64 ( MaxDci = 0; NumEp = IfDesc->NumEndpoints; + if (NumEp == 0) { + MaxDci = 1; + } EpDesc = (USB_ENDPOINT_DESCRIPTOR *)(IfDesc + 1); for (EpIndex = 0; EpIndex < NumEp; EpIndex++) { diff --git a/MdeModulePkg/Bus/Pci/XhciPei/XhciSched.c b/MdeModulePkg/Bus/Pci/XhciPei/XhciSched.c index cc597a43717..8400c90f7ad 100644 --- a/MdeModulePkg/Bus/Pci/XhciPei/XhciSched.c +++ b/MdeModulePkg/Bus/Pci/XhciPei/XhciSched.c @@ -3,6 +3,7 @@ PEIM to produce gPeiUsb2HostControllerPpiGuid based on gPeiUsbControllerPpiGuid which is used to enable recovery function from USB Drivers. Copyright (c) 2014 - 2017, Intel Corporation. All rights reserved.<BR> +Copyright (C) 2022 Advanced Micro Devices, Inc. All rights reserved.<BR> SPDX-License-Identifier: BSD-2-Clause-Patent @@ -1752,6 +1753,9 @@ XhcPeiSetConfigCmd ( } NumEp = IfDesc->NumEndpoints; + if ((NumEp == 0) && (MaxDci == 0)) { + MaxDci = 1; + } EpDesc = (USB_ENDPOINT_DESCRIPTOR *)(IfDesc + 1); for (EpIndex = 0; EpIndex < NumEp; EpIndex++) { @@ -1974,6 +1978,9 @@ XhcPeiSetConfigCmd64 ( } NumEp = IfDesc->NumEndpoints; + if ((NumEp == 0) && (MaxDci == 0)) { + MaxDci = 1; + } EpDesc = (USB_ENDPOINT_DESCRIPTOR *)(IfDesc + 1); for (EpIndex = 0; EpIndex < NumEp; EpIndex++) { -- 2.37.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#98267): https://edk2.groups.io/g/devel/message/98267 Mute This Topic: https://groups.io/mt/96193248/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-