Merge branch 'hid'
authorNIIBE Yutaka <gniibe@fsij.org>
Tue, 26 Nov 2013 06:15:45 +0000 (15:15 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Tue, 26 Nov 2013 06:15:45 +0000 (15:15 +0900)
1  2 
ChangeLog
src/usb-icc.c
src/usb_ctrl.c
src/usb_desc.c

diff --cc ChangeLog
+++ b/ChangeLog
@@@ -1,55 -1,3 +1,78 @@@
++2013-11-26  Niibe Yutaka  <gniibe@fsij.org>
++
++      * src/usb_desc.c (hid_report_desc): New.
++      (ICC_TOTAL_LENGTH): Update.
++      (HID_TOTAL_LENGTH, HID_NUM_INTERFACES): New.
++      (W_TOTAL_LENGTH, NUM_INTERFACES): Update.
++      (gnukConfigDescriptor): Add IN2 interrupt endpoint descriptor.
++      Add HID interface descriptor.
++      (usb_cb_get_descriptor): Handle HID.
++
++      * src/usb_ctrl.c (NUM_INTERFACES, MSC_INTERFACE_NO): Add 1.
++      (USB_HID_REQ_*, HID_LED_STATUS_NUMLOCK): New.
++      (gnuk_setup_endpoints_for_interface): Add ENDP2 interrupt
++      endpoint.
++      (usb_cb_setup): Handle HID requests.
++      (usb_cb_ctrl_write_finish): Likewise.
++
++      * src/usb-icc.c (ccid_card_change_signal): New.
++      (ccid_thread): Handle card change.
++      (icc_error, icc_send_status): Handle ICC_STATE_NOCARD state.
++      (icc_handle_data): Add the case of ICC_STATE_NOCARD.
++      (EP2_IN_Callback): New.
++
 +2013-11-26  Niibe Yutaka  <gniibe@fsij.org>
 +
 +      * src/pin-dial.c: Remove.
 +      * src/configure: Remove pin-dial suppot.
 +
 +2013-11-25  Niibe Yutaka  <gniibe@fsij.org>
 +
 +      * src/Makefile.in (HEXOUTPUT_MAKE_OPTION): New.
 +      * src/configure (HEXOUTPUT_MAKE_OPTION): New.
 +      * src/main.c: Include board.h.
 +      * src/stm32f103.h (EXTI0_IRQ, EXTI1_IRQ): New.
 +
 +2013-11-18  Niibe Yutaka  <gniibe@fsij.org>
 +
 +      * regnual/sys.c (entry): Bug fix of clearing BSS.
 +
 +      * src/usb_stm32f103.c: Update from NeuG.
 +      (usb_handle_transfer): Add argument ISTR_VALUE.
 +
 +      * src/openpgp.c (card_thread): Add noinline attribute.
 +
 +      * src/usb-icc.c (ccid_thread): Join the OpenPGP thread.
 +      Add noinline attribute.
 +
 +2013-11-15  Niibe Yutaka  <gniibe@fsij.org>
 +
 +      * src/configure (options): Add --enable-sys1-compat.
 +
 +2013-11-12  Niibe Yutaka  <gniibe@fsij.org>
 +
 +      * chopstx: Upgrade to 0.03.
 +
 +      * src/usb_desc.c (usb_initial_feature): Remove.
 +      (USB_SELF_POWERED): Move to ...
 +      * src/usb_conf.h (USB_SELF_POWERED): ... here.
 +      * src/usb_ctrl.c (usb_cb_device_reset, usb_intr): Follow the
 +      change.
 +
 +2013-11-11  Niibe Yutaka  <gniibe@fsij.org>
 +
 +      * src/adc_stm32f103.c (adc_wait_completion): Update from NeuG 1.0.
 +
 +2013-11-03  Niibe Yutaka  <gniibe@fsij.org>
 +
 +      * regnual/regnual.c (usb_cb_get_descriptor): Update to new API.
 +
 +      * src/usb_lld.h (usb_initial_feature): Remove.
 +
 +      * chopstx: Update to 0.01.
 +      * src/pin-cir.c: Chatter fix to 200ms.
 +      * src/main.c: Fix bDeviceState.
 +
  2013-11-02  Niibe Yutaka  <gniibe@fsij.org>
  
        * src/usb_lld.h, src/usb_stm32f103.c (std_get_descriptor): Change
diff --cc src/usb-icc.c
@@@ -1307,7 -1323,16 +1324,16 @@@ USBthread (void *arg
    return ccid_thread (thd);
  }
  
 -static void *
+ void
+ ccid_card_change_signal (void)
+ {
+   struct ccid *c = &ccid;
+   eventflag_signal (&c->ccid_comm, EV_CARD_CHANGE);
+ }
 +static void * __attribute__ ((noinline))
  ccid_thread (chopstx_t thd)
  {
    struct ep_in *epi = &endpoint_in;
            icc_prepare_receive (c);
        }
        else                    /* Timeout */
-       c->icc_state = icc_handle_timeout (c);
+       {
+         c->icc_state = icc_handle_timeout (c);
+         card_change_requested = 0;
+       }
      }
  
 +  if (c->application)
 +    {
 +      chopstx_join (c->application, NULL);
 +      c->application = 0;
 +    }
 +
    return NULL;
  }
diff --cc src/usb_ctrl.c
@@@ -399,8 -470,6 +468,8 @@@ int usb_cb_handle_event (uint8_t event_
  
  int usb_cb_interface (uint8_t cmd, uint16_t interface, uint16_t alt)
  {
-   static uint8_t zero = 0;
++  static const uint8_t zero = 0;
 +
    if (interface >= NUM_INTERFACES)
      return USB_UNSUPPORT;
  
diff --cc src/usb_desc.c
Simple merge