diff options
Diffstat (limited to 'LUFA/Drivers/USB/Class/Host')
-rw-r--r-- | LUFA/Drivers/USB/Class/Host/CDC.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/LUFA/Drivers/USB/Class/Host/CDC.c b/LUFA/Drivers/USB/Class/Host/CDC.c index 8ad37de73..85864b05c 100644 --- a/LUFA/Drivers/USB/Class/Host/CDC.c +++ b/LUFA/Drivers/USB/Class/Host/CDC.c @@ -309,13 +309,22 @@ uint16_t CDC_Host_BytesReceived(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo Pipe_SetPipeToken(PIPE_TOKEN_IN);
Pipe_Unfreeze();
- if (Pipe_IsINReceived() && !(Pipe_BytesInPipe()))
- Pipe_ClearIN();
-
- BytesInPipe = Pipe_BytesInPipe();
- Pipe_Freeze();
-
- return BytesInPipe;
+ if (Pipe_IsINReceived())
+ {
+ if (!(Pipe_BytesInPipe()))
+ Pipe_ClearIN();
+
+ BytesInPipe = Pipe_BytesInPipe();
+ Pipe_Freeze();
+
+ return BytesInPipe;
+ }
+ else
+ {
+ Pipe_Freeze();
+
+ return 0;
+ }
}
uint8_t CDC_Host_ReceiveByte(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo)
|