From b92ea1f985de8f014974920fe982027b3d82b2e0 Mon Sep 17 00:00:00 2001
From: tmk <nobody@nowhere>
Date: Thu, 22 Nov 2012 10:06:02 +0900
Subject: [PATCH] Fix endpoint buffer setting for AT90USB82/162.

---
 protocol/pjrc/MEMO.txt    | 25 +++++++++++++++++++++++++
 protocol/pjrc/usb.h       |  2 +-
 protocol/pjrc/usb_mouse.h |  2 +-
 3 files changed, 27 insertions(+), 2 deletions(-)
 create mode 100644 protocol/pjrc/MEMO.txt

diff --git a/protocol/pjrc/MEMO.txt b/protocol/pjrc/MEMO.txt
new file mode 100644
index 0000000000..b0f0598313
--- /dev/null
+++ b/protocol/pjrc/MEMO.txt
@@ -0,0 +1,25 @@
+Endpoint configuration
+----------------------
+0   Control endpoint
+1   keyboard
+2   mouse
+3   debug
+4   extra key(consumer/system)
+5   nkro keyboard(supported only on ATmega32U4/16U4 and AT90USB64/128)
+
+
+ATmega32U4/16U4, AT90USB64/128
+• Endpoint 0:programmable size FIFO up to 64 bytes, default control endpoint
+• Endpoints 1 programmable size FIFO up to 256 bytes in ping-pong mode.
+• Endpoints 2 to 6: programmable size FIFO up to 64 bytes in ping-pong mode.
+
+AT90USB82/162, ATmega8U2/16U2/32U2
+• Endpoint 0:programmable size FIFO up to 64 bytes, default control endpoint
+• Endpoints 1 and 2: programmable size FIFO up to 64 bytes.
+• Endpoints 3 and 4: programmable size FIFO up to 64 bytes with ping-pong mode.
+
+ping-pong mode means double buffer feature.
+
+
+NOTE: ATmega8U2/16U2/32U2 is not supported with PJRC stack at this time.
+TODO: Macro definition for ATmega8U2/16U2/32U2 in usb.h
diff --git a/protocol/pjrc/usb.h b/protocol/pjrc/usb.h
index 0eb58fc395..a195b671d0 100644
--- a/protocol/pjrc/usb.h
+++ b/protocol/pjrc/usb.h
@@ -122,7 +122,7 @@ void usb_remote_wakeup(void);
 #define KBD_INTERFACE		0
 #define KBD_ENDPOINT		1
 #define KBD_SIZE		8
-#define KBD_BUFFER		EP_DOUBLE_BUFFER
+#define KBD_BUFFER		EP_SINGLE_BUFFER
 #define KBD_REPORT_KEYS		(KBD_SIZE - 2)
 
 // secondary keyboard
diff --git a/protocol/pjrc/usb_mouse.h b/protocol/pjrc/usb_mouse.h
index eb3056126d..ce26887c9b 100644
--- a/protocol/pjrc/usb_mouse.h
+++ b/protocol/pjrc/usb_mouse.h
@@ -32,7 +32,7 @@
 #define MOUSE_INTERFACE		1
 #define MOUSE_ENDPOINT		2
 #define MOUSE_SIZE		8
-#define MOUSE_BUFFER		EP_DOUBLE_BUFFER
+#define MOUSE_BUFFER		EP_SINGLE_BUFFER
 
 #define MOUSE_BTN1 (1<<0)
 #define MOUSE_BTN2 (1<<1)