diff options
author | Hans de Goede <hdegoede@redhat.com> | 2016-04-03 09:18:53 +0200 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2016-04-10 17:18:42 +0200 |
commit | 9a80e714350a959caadfd6e2405cd1f7e8ea86d3 (patch) | |
tree | a72b2511810053681941ed63be213f326f507220 | |
parent | cfb3f1cd0e022711d69ff040884357b8410865ef (diff) |
usb: kbd: Do not deregister usbkbd twice when using dm
The dm usb_kbd_remove function() will deregister the usb keyboard for
us on a "usb reset" / "usb stop" so there is no need to manually call
usb_kbd_deregister() in the dm case.
This commit removes usb_kbd_deregister() in the dm case fixing the
following "usb reset" errors:
usb_kbd_remove: warning, ret=-6
device_remove: Device 'usb_kbd' failed to remove, but children are gone
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r-- | cmd/usb.c | 2 | ||||
-rw-r--r-- | common/usb_kbd.c | 3 |
2 files changed, 3 insertions, 2 deletions
@@ -541,7 +541,7 @@ static int do_usbboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) static int do_usb_stop_keyboard(int force) { -#ifdef CONFIG_USB_KEYBOARD +#if !defined CONFIG_DM_USB && defined CONFIG_USB_KEYBOARD if (usb_kbd_deregister(force) != 0) { printf("USB not stopped: usbkbd still using USB\n"); return 1; diff --git a/common/usb_kbd.c b/common/usb_kbd.c index d84865fbbe..97f79f8eb8 100644 --- a/common/usb_kbd.c +++ b/common/usb_kbd.c @@ -566,7 +566,6 @@ int drv_usb_kbd_init(void) /* No USB Keyboard found */ return -1; } -#endif /* Deregister the keyboard. */ int usb_kbd_deregister(int force) @@ -599,6 +598,8 @@ int usb_kbd_deregister(int force) #endif } +#endif + #ifdef CONFIG_DM_USB static int usb_kbd_probe(struct udevice *dev) |