* [PATCH] usb: Fix initial max packet size
@ 2020-10-27 9:42 Sascha Hauer
2020-10-27 12:10 ` Gavin Schenk
0 siblings, 1 reply; 2+ messages in thread
From: Sascha Hauer @ 2020-10-27 9:42 UTC (permalink / raw)
To: Barebox List; +Cc: ukl
In case the USB device is a full speed device we have to set
dev->epmaxpacketin[0] and dev->epmaxpacketout[0] before doing a
get_descriptor_len() because otherwise it's unset during that call.
Fixes: 6d1d95a386 ("usb: factor out a usb_setup_descriptor() function")
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
drivers/usb/core/usb.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index c068c64c6b..ea244d4bcf 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -332,6 +332,8 @@ static int usb_setup_descriptor(struct usb_device *dev, bool do_read)
dev->descriptor->bMaxPacketSize0 = 64;
dev->maxpacketsize = PACKET_SIZE_64;
}
+ dev->epmaxpacketin[0] = dev->descriptor->bMaxPacketSize0;
+ dev->epmaxpacketout[0] = dev->descriptor->bMaxPacketSize0;
if (do_read && dev->speed == USB_SPEED_FULL) {
int err;
@@ -355,10 +357,10 @@ static int usb_setup_descriptor(struct usb_device *dev, bool do_read)
err = get_descriptor_len(dev, 64, 8);
if (err)
return err;
- }
- dev->epmaxpacketin[0] = dev->descriptor->bMaxPacketSize0;
- dev->epmaxpacketout[0] = dev->descriptor->bMaxPacketSize0;
+ dev->epmaxpacketin[0] = dev->descriptor->bMaxPacketSize0;
+ dev->epmaxpacketout[0] = dev->descriptor->bMaxPacketSize0;
+ }
switch (dev->descriptor->bMaxPacketSize0) {
case 8:
--
2.20.1
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] usb: Fix initial max packet size
2020-10-27 9:42 [PATCH] usb: Fix initial max packet size Sascha Hauer
@ 2020-10-27 12:10 ` Gavin Schenk
0 siblings, 0 replies; 2+ messages in thread
From: Gavin Schenk @ 2020-10-27 12:10 UTC (permalink / raw)
To: Sascha Hauer; +Cc: Barebox List, ukl
Hi,
thanks a lot, that's great.
On Tue, Oct 27, 2020 at 10:42:42AM +0100, Sascha Hauer wrote:
> In case the USB device is a full speed device we have to set
> dev->epmaxpacketin[0] and dev->epmaxpacketout[0] before doing a
> get_descriptor_len() because otherwise it's unset during that call.
>
> Fixes: 6d1d95a386 ("usb: factor out a usb_setup_descriptor() function")
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Tested-by: Gavin Schenk <g.schenk@eckelmann.de>
On one of our i.MX25 based platforms there are currently four revert commits to
make USB work on barebox 2020.06.
(Reverted commits are:)
62d565ba0 (usb: hub: When no connection came up remove from scanning list)
1f8c8af48 (usb: Add super speed support)
bb2cbfb2b (usb: hub: Translate USB 3.0 hub port status into old version)
6d1d95a38 (usb: factor out a usb_setup_descriptor() function)
Without reverting the behaviour is:
usb: USB: scanning bus for devices...
usb1: Bus 001 Device 001: ID 0000:0000 EHCI Host Controller
ERROR: usb1-0: unable to get device descriptor (error=-110)
ERROR: usb1-0: USB device not accepting new address (error=80000000)
usb: 1 USB Device(s) found
With this patch applied USB is working again:
usb: USB: scanning bus for devices...
usb1: Bus 001 Device 001: ID 0000:0000 EHCI Host Controller
usb1-0: Bus 001 Device 002: ID 0951:161a DataTraveler 410
Using index 0 for the new disk
usb: 2 USB Device(s) found
barebox@Eckelmann AG ECU02:/ ls /mnt/usbstorage/
. ..
.Trash-1000 2016-barebox-eag-ecu02.img
2020-barebox-eckelmann-ecu02.img barebox-eag-ecu02.img
Regards
Gavin Schenk
Eckelmann AG
Vorstand: Dipl.-Ing. Peter Frankenbach (Sprecher) Dipl.-Wi.-Ing. Philipp Eckelmann
Dr.-Ing. Marco Münchhof Dr.-Ing. Frank Uhlemann
Vorsitzender des Aufsichtsrats: Hubertus G. Krossa Stv. Vorsitzender des Aufsichtsrats: Dr.-Ing. Gerd Eckelmann
Sitz der Gesellschaft: Berliner Str. 161, 65205 Wiesbaden, Amtsgericht Wiesbaden HRB 12636
www.eckelmann.de
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-10-27 12:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-27 9:42 [PATCH] usb: Fix initial max packet size Sascha Hauer
2020-10-27 12:10 ` Gavin Schenk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox