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 ?