From ba7ce6daec155bc3deac4e0c48d470afa024ab94 Mon Sep 17 00:00:00 2001 From: Patrick Rudolph <patrick.rudolph@9elements.com> Date: Sun, 15 Nov 2020 19:48:03 +0100 Subject: [PATCH 16/22] usbtrans: Set default maximum packet size Set the maximum packet size to 512 for SuperSpeed devices. Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> --- grub-core/bus/usb/usbtrans.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/grub-core/bus/usb/usbtrans.c b/grub-core/bus/usb/usbtrans.c index c5680b33a..c1080bb33 100644 --- a/grub-core/bus/usb/usbtrans.c +++ b/grub-core/bus/usb/usbtrans.c @@ -128,8 +128,12 @@ grub_usb_control_msg (grub_usb_device_t dev, setupdata_addr = grub_dma_get_phys (setupdata_chunk); /* Determine the maximum packet size. */ - if (dev->descdev.maxsize0) + if (dev->descdev.maxsize0 && dev->speed != GRUB_USB_SPEED_SUPER) max = dev->descdev.maxsize0; + else if (dev->descdev.maxsize0 && dev->speed == GRUB_USB_SPEED_SUPER) + max = 1UL << dev->descdev.maxsize0; + else if (dev->speed == GRUB_USB_SPEED_SUPER) + max = 512; else max = 64; -- 2.39.2