From b2b0eb7418691480cbc9a8da793be9a70f70a9b4 Mon Sep 17 00:00:00 2001
From: NIIBE Yutaka <gniibe@fsij.org>
Date: Thu, 15 Jun 2017 10:48:35 +0900
Subject: Fix MKL27Z USB.

---
 ChangeLog        | 4 ++++
 mcu/usb-mkl27z.c | 8 ++++----
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 23f5027..805c06f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2017-06-16  NIIBE Yutaka  <gniibe@fsij.org>
+
+	* mcu/usb-mkl27z.c (std_get_status): Use staic var, not auto.
+
 2017-05-18  NIIBE Yutaka  <gniibe@fsij.org>
 
 	* chopstx.c (chx_wakeup): Fix access to REG_R0.
diff --git a/mcu/usb-mkl27z.c b/mcu/usb-mkl27z.c
index 72cc175..f5e5b2b 100644
--- a/mcu/usb-mkl27z.c
+++ b/mcu/usb-mkl27z.c
@@ -445,7 +445,7 @@ handle_datastage_in (struct usb_dev *dev, uint8_t stat)
 	{
 	  /* No more data to send, proceed to receive OUT acknowledge.  */
 	  dev->state = WAIT_STATUS_OUT;
-	  kl27z_prepare_ep0_out (&dev->dev_req, 8, DATA1);
+	  kl27z_prepare_ep0_out (&dev->dev_req, 0, DATA1);
 	}
 
       return;
@@ -470,12 +470,13 @@ std_none (struct usb_dev *dev)
   return -1;
 }
 
+static uint16_t status_info;
+
 static int
 std_get_status (struct usb_dev *dev)
 {
   struct device_req *arg = &dev->dev_req;
   uint8_t rcp = arg->type & RECIPIENT;
-  uint16_t status_info = 0;
 
   if (arg->value != 0 || arg->len != 2 || (arg->index >> 8) != 0
       || USB_SETUP_SET (arg->type))
@@ -1000,8 +1001,7 @@ usb_lld_ctrl_send (struct usb_dev *dev, const void *buf, size_t buflen)
       dev->state = IN_DATA;
     }
 
-  if (len)
-    kl27z_prepare_ep0_in (data_p->addr, len, DATA1);
+  kl27z_prepare_ep0_in (data_p->addr, len, DATA1);
 
   data_p->len -= len;
   data_p->addr += len;
-- 
cgit v1.2.3