Link to PR passing CI - https://github.com/tianocore/edk2/pull/3353 On Mon, 5 Dec 2022 at 09:18, Sean Rhodes via groups.io wrote: > Adjusts the requirements for the MaxPacketLength to match what is seen on > real world devices that do not follow the USB specification. > > This fixes enumeration on the multiple USB 3 devices made by SanDisk, > Integral, Kingston and other generic brands. > > Cc: Hao A Wu > Cc: Ray Ni > Signed-off-by: Sean Rhodes > --- > MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c > b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c > index 62535cad54..043b7d4cea 100644 > --- a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c > +++ b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c > @@ -906,19 +906,16 @@ XhcControlTransfer ( > return EFI_INVALID_PARAMETER; > } > > - if ((MaximumPacketLength != 8) && (MaximumPacketLength != 16) && > - (MaximumPacketLength != 32) && (MaximumPacketLength != 64) && > - (MaximumPacketLength != 512) > - ) > - { > + // Check for valid maximum packet size > + if ((DeviceSpeed == EFI_USB_SPEED_SUPER) && (MaximumPacketLength > > 1024)) { > return EFI_INVALID_PARAMETER; > } > > - if ((DeviceSpeed == EFI_USB_SPEED_LOW) && (MaximumPacketLength != 8)) { > + if ((DeviceSpeed == EFI_USB_SPEED_HIGH) && (MaximumPacketLength > 512)) > { > return EFI_INVALID_PARAMETER; > } > > - if ((DeviceSpeed == EFI_USB_SPEED_SUPER) && (MaximumPacketLength != > 512)) { > + if ((DeviceSpeed == EFI_USB_SPEED_FULL) && (MaximumPacketLength > 64)) { > return EFI_INVALID_PARAMETER; > } > > -- > 2.37.2 > > > > ------------ > Groups.io Links: You receive all messages sent to this group. > View/Reply Online (#96951): https://edk2.groups.io/g/devel/message/96951 > Mute This Topic: https://groups.io/mt/95465401/6718866 > Group Owner: devel+owner@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub [sean@starlabs.systems] > ------------ > > >