From 5e3d08af24b6254cf5308b2a1c19491bcc92c608 Mon Sep 17 00:00:00 2001
From: Sandeep Mistry <s.mistry@arduino.cc>
Date: Thu, 14 Apr 2016 10:06:47 -0400
Subject: Subtract one from USB_EP_SIZE in USB_SendSpace
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This avoids dealing with ZLP’s in USB_Send, because the max packet size
will be EP size - 1.
---
 cores/arduino/USBCore.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

(limited to 'cores/arduino')

diff --git a/cores/arduino/USBCore.cpp b/cores/arduino/USBCore.cpp
index 3c7da86..44dce72 100644
--- a/cores/arduino/USBCore.cpp
+++ b/cores/arduino/USBCore.cpp
@@ -255,7 +255,9 @@ u8 USB_SendSpace(u8 ep)
 	LockEP lock(ep);
 	if (!ReadWriteAllowed())
 		return 0;
-	return USB_EP_SIZE - FifoByteCount();
+	// subtract 1 from the EP size to never send a full packet,
+	// this avoids dealing with ZLP's in USB_Send
+	return USB_EP_SIZE - 1 - FifoByteCount();
 }
 
 //	Blocking Send of data to an endpoint
-- 
cgit v1.2.3-18-g5258