On 10/29/23 08:36, Hector Martin wrote:
The old USB code was interrupt-driven and just polled at the top level.
This has been obsolete since interrupts were removed, which means the
timeout support has been completely broken.

Rip out the top-level polling and just pass through the timeout
parameter to host controller drivers. Right now this is ignored in the
individual drivers.

Signed-off-by: Hector Martin <mar...@marcan.st>
---
  common/usb.c                    | 21 ++-------------------
  drivers/usb/host/ehci-hcd.c     |  5 +++--
  drivers/usb/host/ohci-hcd.c     |  5 +++--
  drivers/usb/host/r8a66597-hcd.c |  5 +++--
  drivers/usb/host/usb-sandbox.c  |  6 ++++--
  drivers/usb/host/usb-uclass.c   |  9 +++++----
  drivers/usb/host/xhci.c         |  5 +++--
  include/usb.h                   | 10 ++++++----
  8 files changed, 29 insertions(+), 37 deletions(-)


[...]

        int (*bulk)(struct udevice *bus, struct usb_device *udev,
-                   unsigned long pipe, void *buffer, int length);
+                   unsigned long pipe, void *buffer, int length,
+                   int timeout);
        /**
         * interrupt() - Send an interrupt message
         *

Can timeout ever be negative value ?

Reply via email to