diff mbox series

[U-Boot,v5,1/5] usb_kdb: only process events successfully received

Message ID ad5268eb81a361c820f71b8de0494eb83b86827b.1566118415.git.msuchanek@suse.de
State Accepted
Commit 3e816a2424c428f452f2003aff105511dc0cd9d4
Delegated to: Marek Vasut
Headers show
Series [U-Boot,v5,1/5] usb_kdb: only process events successfully received | expand

Commit Message

Michal Suchánek Aug. 18, 2019, 8:55 a.m. UTC
Causes unbound key repeat on error otherwise.

Signed-off-by: Michal Suchanek <msuchanek@suse.de>
---
v2: fix indentation
v4: fix ! condition to >= 0
v5: fix commit message typo
---
 common/usb_kbd.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

Comments

Marek Vasut Aug. 18, 2019, 10:53 a.m. UTC | #1
On 8/18/19 10:55 AM, Michal Suchanek wrote:
> Causes unbound key repeat on error otherwise.
> 
> Signed-off-by: Michal Suchanek <msuchanek@suse.de>
> ---
> v2: fix indentation
> v4: fix ! condition to >= 0
> v5: fix commit message typo

Applied all, thanks.
Marek Vasut Aug. 23, 2019, 6:27 p.m. UTC | #2
On 8/18/19 10:55 AM, Michal Suchanek wrote:
> Causes unbound key repeat on error otherwise.
> 
> Signed-off-by: Michal Suchanek <msuchanek@suse.de>
> ---
> v2: fix indentation
> v4: fix ! condition to >= 0
> v5: fix commit message typo

The series still fails to build:
https://travis-ci.org/marex/u-boot-usb/jobs/575422882
diff mbox series

Patch

diff --git a/common/usb_kbd.c b/common/usb_kbd.c
index 387373746147..e0c1e6d2b796 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)