From: Michal Suchanek Date: Sun, 18 Aug 2019 08:55:24 +0000 (+0200) Subject: usb_kdb: only process events successfully received X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=3e816a2424c428f452f2003aff105511dc0cd9d4;p=u-boot.git usb_kdb: only process events successfully received Causes unbound key repeat on error otherwise. Signed-off-by: Michal Suchanek --- diff --git a/common/usb_kbd.c b/common/usb_kbd.c index 3873737461..e0c1e6d2b7 100644 --- a/common/usb_kbd.c +++ b/common/usb_kbd.c @@ -340,10 +340,9 @@ static inline void usb_kbd_poll_for_event(struct usb_device *dev) struct usb_kbd_pdata *data = dev->privptr; /* Submit a interrupt transfer request */ - usb_submit_int_msg(dev, data->intpipe, &data->new[0], data->intpktsize, - data->intinterval); - - usb_kbd_irq_worker(dev); + if (usb_submit_int_msg(dev, data->intpipe, &data->new[0], + data->intpktsize, data->intinterval) >= 0) + usb_kbd_irq_worker(dev); #elif defined(CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP) || \ defined(CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE) #if defined(CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP)