Prevent the CDC Device Class driver from sending empty IN packets on every service...
[pub/USBasp.git] / LUFA / Drivers / USB / LowLevel / Template / Template_Endpoint_Control_R.c
index f6afb69..a2a0c3b 100644 (file)
@@ -1,12 +1,8 @@
 uint8_t TEMPLATE_FUNC_NAME (void* Buffer, uint16_t Length)\r
 {\r
-       uint8_t* DataStream     = (uint8_t*)(Buffer + TEMPLATE_BUFFER_OFFSET(Length));\r
-       bool     LastPacketFull = false;\r
+       uint8_t* DataStream = (uint8_t*)(Buffer + TEMPLATE_BUFFER_OFFSET(Length));\r
        \r
-       if (Length > USB_ControlRequest.wLength)\r
-         Length = USB_ControlRequest.wLength;\r
-\r
-       while (Length || LastPacketFull)\r
+       while (Length)\r
        {\r
                if (Endpoint_IsSETUPReceived())\r
                  return ENDPOINT_RWCSTREAM_HostAborted;\r
@@ -16,8 +12,6 @@ uint8_t TEMPLATE_FUNC_NAME (void* Buffer, uint16_t Length)
                  \r
                if (Endpoint_IsOUTReceived())\r
                {\r
-                       LastPacketFull = (Endpoint_BytesInEndpoint() == USB_ControlEndpointSize);\r
-               \r
                        while (Length && Endpoint_BytesInEndpoint())\r
                        {\r
                                TEMPLATE_TRANSFER_BYTE(DataStream);\r
@@ -25,9 +19,6 @@ uint8_t TEMPLATE_FUNC_NAME (void* Buffer, uint16_t Length)
                        }\r
                        \r
                        Endpoint_ClearOUT();\r
-                       \r
-                       if (!(LastPacketFull))\r
-                         Length = 0;\r
                }                 \r
        }\r
        \r