X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdeModulePkg%2FBus%2FUsb%2FUsbBusDxe%2FUsbDesc.c;h=529b136188ace95104d6dfb9e069e0c9b202c165;hp=55fe5c873c7ea9cca1473fab0abc5ad8a499b739;hb=92870c983c6d99d31f449d8dcd729090255dda49;hpb=da910a42c0421a9895898537026276acf0935099 diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c index 55fe5c873c..529b136188 100644 --- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c +++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c @@ -527,12 +527,14 @@ UsbGetMaxPacketSize0 ( // Get the first 8 bytes of the device descriptor which contains // max packet size for endpoint 0, which is at least 8. // - UsbDev->MaxPacket0 = 8; - for (Index = 0; Index < 3; Index++) { Status = UsbCtrlGetDesc (UsbDev, USB_DESC_TYPE_DEVICE, 0, 0, &DevDesc, 8); if (!EFI_ERROR (Status)) { + if ((DevDesc.BcdUSB == 0x0300) && (DevDesc.MaxPacketSize0 == 9)) { + UsbDev->MaxPacket0 = 1 << 9; + return EFI_SUCCESS; + } UsbDev->MaxPacket0 = DevDesc.MaxPacketSize0; return EFI_SUCCESS; }