diff mbox

[U-Boot,06/17] usb: Fix usb_kbd_deregister when console-muxing is used

Message ID 1421004895-10896-7-git-send-email-hdegoede@redhat.com
State Accepted
Delegated to: Marek Vasut
Headers show

Commit Message

Hans de Goede Jan. 11, 2015, 7:34 p.m. UTC
When iomuxing is used we must not only deregister the device with stdio.c,
but also remove the reference to the device in the console_devices array
used by console-muxing. Add a call to iomux_doenv to usb_kbd_deregister to
update console_devices, which will drop the reference.

This fixes the console filling with "Failed to enqueue URB to controller"
messages after a "usb stop force", or when the USB keyboard is gone after a
"usb reset".

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 common/usb_kbd.c | 4 ++++
 1 file changed, 4 insertions(+)
diff mbox

Patch

diff --git a/common/usb_kbd.c b/common/usb_kbd.c
index bc7145e..732136e 100644
--- a/common/usb_kbd.c
+++ b/common/usb_kbd.c
@@ -542,6 +542,10 @@  int usb_kbd_deregister(int force)
 		data = usb_kbd_dev->privptr;
 		if (stdio_deregister_dev(dev, force) != 0)
 			return 1;
+#ifdef CONFIG_CONSOLE_MUX
+		if (iomux_doenv(stdin, getenv("stdin")) != 0)
+			return 1;
+#endif
 #ifdef CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE
 		destroy_int_queue(usb_kbd_dev, data->intq);
 #endif