Message ID | 1614253198.2236755.1344549044631.JavaMail.root@advansee.com |
---|---|
State | Superseded |
Delegated to: | Marek Vasut |
Headers | show |
Dear Benoît Thébaudeau, > Interrupt transfers requiring several transactions are not supported by > submit_int_msg() because bInterval is ignored. This patch returns a failure > code and prints an error message in this case. > > Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> > Cc: Marek Vasut <marex@denx.de> > Cc: Ilya Yanok <ilya.yanok@cogentembedded.com> > Cc: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net> > --- > Changes for v2: N/A. > Changes for v3: > - New patch. > > .../drivers/usb/host/ehci-hcd.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git u-boot-usb-8d5fb14.orig/drivers/usb/host/ehci-hcd.c > u-boot-usb-8d5fb14/drivers/usb/host/ehci-hcd.c index 1977c28..a4c84a3 > 100644 > --- u-boot-usb-8d5fb14.orig/drivers/usb/host/ehci-hcd.c > +++ u-boot-usb-8d5fb14/drivers/usb/host/ehci-hcd.c > @@ -836,8 +836,17 @@ int > submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer, > int length, int interval) > { > - > debug("dev=%p, pipe=%lu, buffer=%p, length=%d, interval=%d", > dev, pipe, buffer, length, interval); > + > + /* > + * Interrupt transfers requiring several transactions are not supported > + * because bInterval is ignored. > + */ > + if (length > usb_maxpacket(dev, pipe)) { > + printf("%s: Interrupt transfers requiring several transactions " > + "are not\nsupported.\n", __func__); Removed the newline before supported and applied. Thanks! > + return -1; > + } > return ehci_submit_async(dev, pipe, buffer, length, NULL); > } Best regards, Marek Vasut
diff --git u-boot-usb-8d5fb14.orig/drivers/usb/host/ehci-hcd.c u-boot-usb-8d5fb14/drivers/usb/host/ehci-hcd.c index 1977c28..a4c84a3 100644 --- u-boot-usb-8d5fb14.orig/drivers/usb/host/ehci-hcd.c +++ u-boot-usb-8d5fb14/drivers/usb/host/ehci-hcd.c @@ -836,8 +836,17 @@ int submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer, int length, int interval) { - debug("dev=%p, pipe=%lu, buffer=%p, length=%d, interval=%d", dev, pipe, buffer, length, interval); + + /* + * Interrupt transfers requiring several transactions are not supported + * because bInterval is ignored. + */ + if (length > usb_maxpacket(dev, pipe)) { + printf("%s: Interrupt transfers requiring several transactions " + "are not\nsupported.\n", __func__); + return -1; + } return ehci_submit_async(dev, pipe, buffer, length, NULL); }
Interrupt transfers requiring several transactions are not supported by submit_int_msg() because bInterval is ignored. This patch returns a failure code and prints an error message in this case. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Cc: Marek Vasut <marex@denx.de> Cc: Ilya Yanok <ilya.yanok@cogentembedded.com> Cc: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net> --- Changes for v2: N/A. Changes for v3: - New patch. .../drivers/usb/host/ehci-hcd.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)