staging: ozwpan: Add debounce time before unregistering.
authorRupesh Gujare <rupesh.gujare@atmel.com>
Tue, 27 Aug 2013 15:53:42 +0000 (16:53 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 28 Aug 2013 00:00:00 +0000 (17:00 -0700)
Fixes following error caused during unloading driver.

[ 1127.542888] usb 5-1: USB disconnect, device number 2
[ 1127.542909] ozwpan ozwpan: remove, state 1
[ 1127.542933] usb usb5: USB disconnect, device number 1
[ 1127.618634] hub 5-0:1.0: hub_port_status failed (err = -19)
[ 1127.618647] hub_port_connect_change: 45 callbacks suppressed
[ 1127.618657] hub 5-0:1.0: connect-debounce failed, port 1 disabled
[ 1127.618668] hub 5-0:1.0: cannot disable port 1 (err = -19)

Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/ozwpan/ozhcd.c

index 35488608df7a31ef08fd5ed75d84a2a39d843528..4eb2f539f3355d31f5458fcb761559a56e15fc16 100644 (file)
  */
 #define EP0_TIMEOUT_COUNTER 13
 
+/* Debounce time HCD driver should wait before unregistering.
+ */
+#define OZ_HUB_DEBOUNCE_TIMEOUT 1500
+
 /*
  * Used to link urbs together and also store some status information for each
  * urb.
@@ -2355,6 +2359,7 @@ error:
  */
 void oz_hcd_term(void)
 {
+       msleep(OZ_HUB_DEBOUNCE_TIMEOUT);
        tasklet_kill(&g_urb_process_tasklet);
        tasklet_kill(&g_urb_cancel_tasklet);
        platform_device_unregister(g_plat_dev);