|
@@ -2861,13 +2861,16 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1,
|
|
|
else
|
|
|
i = udev->descriptor.bMaxPacketSize0;
|
|
|
if (le16_to_cpu(udev->ep0.desc.wMaxPacketSize) != i) {
|
|
|
- if (udev->speed != USB_SPEED_FULL ||
|
|
|
+ if (udev->speed == USB_SPEED_LOW ||
|
|
|
!(i == 8 || i == 16 || i == 32 || i == 64)) {
|
|
|
- dev_err(&udev->dev, "ep0 maxpacket = %d\n", i);
|
|
|
+ dev_err(&udev->dev, "Invalid ep0 maxpacket: %d\n", i);
|
|
|
retval = -EMSGSIZE;
|
|
|
goto fail;
|
|
|
}
|
|
|
- dev_dbg(&udev->dev, "ep0 maxpacket = %d\n", i);
|
|
|
+ if (udev->speed == USB_SPEED_FULL)
|
|
|
+ dev_dbg(&udev->dev, "ep0 maxpacket = %d\n", i);
|
|
|
+ else
|
|
|
+ dev_warn(&udev->dev, "Using ep0 maxpacket: %d\n", i);
|
|
|
udev->ep0.desc.wMaxPacketSize = cpu_to_le16(i);
|
|
|
usb_ep0_reinit(udev);
|
|
|
}
|