MdeModulePkg/Usb: Fix wrong condition judgment to support usb3.1 dev

The bcdUSB value of usb3.1 is 0x0310, we update the condition judgment
to get correct max packet size for usb3.1 dev.

Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
This commit is contained in:
Feng Tian 2016-04-08 13:43:49 +08:00
parent 18b50d66d3
commit b9953b6506
4 changed files with 8 additions and 8 deletions

View File

@ -1,7 +1,7 @@
/** @file /** @file
The XHCI controller driver. The XHCI controller driver.
Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR> Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at which accompanies this distribution. The full text of the license may be found at
@ -955,7 +955,7 @@ XhcControlTransfer (
// Store a copy of device scriptor as hub device need this info to configure endpoint. // Store a copy of device scriptor as hub device need this info to configure endpoint.
// //
CopyMem (&Xhc->UsbDevContext[SlotId].DevDesc, Data, *DataLength); CopyMem (&Xhc->UsbDevContext[SlotId].DevDesc, Data, *DataLength);
if (Xhc->UsbDevContext[SlotId].DevDesc.BcdUSB == 0x0300) { if (Xhc->UsbDevContext[SlotId].DevDesc.BcdUSB >= 0x0300) {
// //
// If it's a usb3.0 device, then its max packet size is a 2^n. // If it's a usb3.0 device, then its max packet size is a 2^n.
// //

View File

@ -2,7 +2,7 @@
PEIM to produce gPeiUsb2HostControllerPpiGuid based on gPeiUsbControllerPpiGuid PEIM to produce gPeiUsb2HostControllerPpiGuid based on gPeiUsbControllerPpiGuid
which is used to enable recovery function from USB Drivers. which is used to enable recovery function from USB Drivers.
Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR> Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions are licensed and made available under the terms and conditions
@ -687,7 +687,7 @@ XhcPeiControlTransfer (
// Store a copy of device scriptor as hub device need this info to configure endpoint. // Store a copy of device scriptor as hub device need this info to configure endpoint.
// //
CopyMem (&Xhc->UsbDevContext[SlotId].DevDesc, Data, *DataLength); CopyMem (&Xhc->UsbDevContext[SlotId].DevDesc, Data, *DataLength);
if (Xhc->UsbDevContext[SlotId].DevDesc.BcdUSB == 0x0300) { if (Xhc->UsbDevContext[SlotId].DevDesc.BcdUSB >= 0x0300) {
// //
// If it's a usb3.0 device, then its max packet size is a 2^n. // If it's a usb3.0 device, then its max packet size is a 2^n.
// //

View File

@ -2,7 +2,7 @@
Manage Usb Descriptor List Manage Usb Descriptor List
Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR> Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at which accompanies this distribution. The full text of the license may be found at
@ -539,7 +539,7 @@ UsbGetMaxPacketSize0 (
Status = UsbCtrlGetDesc (UsbDev, USB_DESC_TYPE_DEVICE, 0, 0, &DevDesc, 8); Status = UsbCtrlGetDesc (UsbDev, USB_DESC_TYPE_DEVICE, 0, 0, &DevDesc, 8);
if (!EFI_ERROR (Status)) { if (!EFI_ERROR (Status)) {
if ((DevDesc.BcdUSB == 0x0300) && (DevDesc.MaxPacketSize0 == 9)) { if ((DevDesc.BcdUSB >= 0x0300) && (DevDesc.MaxPacketSize0 == 9)) {
UsbDev->MaxPacket0 = 1 << 9; UsbDev->MaxPacket0 = 1 << 9;
return EFI_SUCCESS; return EFI_SUCCESS;
} }

View File

@ -1,7 +1,7 @@
/** @file /** @file
The module to produce Usb Bus PPI. The module to produce Usb Bus PPI.
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions are licensed and made available under the terms and conditions
@ -702,7 +702,7 @@ PeiConfigureUsbDevice (
return Status; return Status;
} }
if ((DeviceDescriptor.BcdUSB == 0x0300) && (DeviceDescriptor.MaxPacketSize0 == 9)) { if ((DeviceDescriptor.BcdUSB >= 0x0300) && (DeviceDescriptor.MaxPacketSize0 == 9)) {
PeiUsbDevice->MaxPacketSize0 = 1 << 9; PeiUsbDevice->MaxPacketSize0 = 1 << 9;
} else { } else {
PeiUsbDevice->MaxPacketSize0 = DeviceDescriptor.MaxPacketSize0; PeiUsbDevice->MaxPacketSize0 = DeviceDescriptor.MaxPacketSize0;