From 8147fe090fb566f9a1ed8fde24098bbe425026be Mon Sep 17 00:00:00 2001 From: Abner Chang Date: Wed, 11 Jan 2023 11:10:06 +0800 Subject: MdeModulePkg/Xhci: Initial XHCI DCI slot's Context value Initialize XHCI DCI slot's context entries value. Signed-off-by: Jiangang He Cc: Hao A Wu Cc: Ray Ni Cc: Garrett Kirkendall Cc: Abner Chang Cc: Kuei-Hung Lin Reviewed-by: Hao A Wu --- MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c | 7 +++++++ MdeModulePkg/Bus/Pci/XhciPei/XhciSched.c | 7 +++++++ 2 files changed, 14 insertions(+) (limited to 'MdeModulePkg') 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++) { -- cgit v1.2.3