Ensure that the CDC class drivers return 0 if the number of unread bytes is queried...
authorDean Camera <dean@fourwalledcubicle.com>
Thu, 6 May 2010 11:13:24 +0000 (11:13 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Thu, 6 May 2010 11:13:24 +0000 (11:13 +0000)
Bootloaders/TeensyHID/makefile
LUFA/Drivers/USB/Class/Device/CDC.c
LUFA/Drivers/USB/Class/Host/CDC.c

index 9a9f5ff..404b55f 100644 (file)
@@ -68,7 +68,7 @@ BOARD  =
 #     does not *change* the processor frequency - it should merely be updated to\r
 #     reflect the processor speed set externally so that the code can use accurate\r
 #     software delays.\r
 #     does not *change* the processor frequency - it should merely be updated to\r
 #     reflect the processor speed set externally so that the code can use accurate\r
 #     software delays.\r
-F_CPU = 8000000\r
+F_CPU = 16000000\r
 \r
 \r
 # Input clock frequency.\r
 \r
 \r
 # Input clock frequency.\r
index 4cdea94..ade2a1b 100644 (file)
@@ -195,9 +195,14 @@ uint16_t CDC_Device_BytesReceived(USB_ClassInfo_CDC_Device_t* const CDCInterface
        if (Endpoint_IsOUTReceived())\r
        {\r
                if (!(Endpoint_BytesInEndpoint()))\r
        if (Endpoint_IsOUTReceived())\r
        {\r
                if (!(Endpoint_BytesInEndpoint()))\r
-                 Endpoint_ClearOUT();\r
-\r
-               return Endpoint_BytesInEndpoint();\r
+               {\r
+                       Endpoint_ClearOUT();\r
+                       return 0;\r
+               }\r
+               else\r
+               {\r
+                       return Endpoint_BytesInEndpoint();\r
+               }\r
        }\r
        else\r
        {\r
        }\r
        else\r
        {\r
index cc1ff8a..bc8e089 100644 (file)
@@ -315,12 +315,16 @@ uint16_t CDC_Host_BytesReceived(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo
        if (Pipe_IsINReceived())\r
        {\r
                if (!(Pipe_BytesInPipe()))\r
        if (Pipe_IsINReceived())\r
        {\r
                if (!(Pipe_BytesInPipe()))\r
-                 Pipe_ClearIN();\r
-               \r
-               BytesInPipe = Pipe_BytesInPipe();\r
-               Pipe_Freeze();\r
-               \r
-               return BytesInPipe;\r
+               {\r
+                       Pipe_ClearIN();\r
+                       Pipe_Freeze();\r
+                       return 0;\r
+               }\r
+               else\r
+               {\r
+                       Pipe_Freeze();\r
+                       return Pipe_BytesInPipe();\r
+               }\r
        }\r
        else\r
        {\r
        }\r
        else\r
        {\r