diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c index 13247f7b0d..4b7462704a 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.
Copyright (c) Microsoft Corporation.
+Copyright (C) 2022 Advanced Micro Devices, Inc. All rights reserved.
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 cc597a4371..8400c90f7a 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.
+Copyright (C) 2022 Advanced Micro Devices, Inc. All rights reserved.
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++) {