
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 marcan@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 ?