Fix USB initialization.
authorNIIBE Yutaka <gniibe@fsij.org>
Thu, 26 Apr 2018 12:08:30 +0000 (21:08 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Thu, 26 Apr 2018 12:22:36 +0000 (21:22 +0900)
After USB RESET, all endpoints registers are being reset.  So,
there is no need to let each endpoint stall (it's disabled).
Actually, it's wrong to call usb_lld_stall_rx or usb_lld_stall_tx
before usb_lld_setup_endpoint, because other fields of endpoint
register are not specified after RESET.

ChangeLog
chopstx
src/usb-ccid.c
src/usb_ctrl.c

index a037ed1..253bba3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,6 @@
 2018-04-26  NIIBE Yutaka  <gniibe@fsij.org>
 
-       * src/usb-ccid.c (usb_event_handle): Ignore sprious "done".
+       * src/usb_ctrl.c (usb_device_reset): Don't stop the endpoints.
 
        * src/configure (MHZ, def_mhz): New.
 
diff --git a/chopstx b/chopstx
index 32d0b82..f781ac9 160000 (submodule)
--- a/chopstx
+++ b/chopstx
@@ -1 +1 @@
-Subproject commit 32d0b8200d2d6eadc00ddfb1e1c2113e148d325a
+Subproject commit f781ac9e6a09d4bf160a21c96a6f1ce96fdacb36
index 90e6959..9875d0f 100644 (file)
@@ -1579,10 +1579,6 @@ usb_event_handle (struct usb_dev *dev)
   /* Transfer to endpoint (not control endpoint) */
   if (ep_num != 0)
     {
-      /* Ignore sprious "Correct Transfer" */
-      if (bDeviceState != USB_DEVICE_STATE_CONFIGURED)
-       return 0;
-
       if (USB_EVENT_TXRX (e))
        usb_tx_done (ep_num, USB_EVENT_LEN (e));
       else
index 496873a..857359a 100644 (file)
@@ -214,10 +214,6 @@ usb_device_reset (struct usb_dev *dev)
                          64);
 #endif
 
-  /* Stop the interface */
-  for (i = 0; i < NUM_INTERFACES; i++)
-    gnuk_setup_endpoints_for_interface (dev, i, 1);
-
   bDeviceState = USB_DEVICE_STATE_DEFAULT;
 }