projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Oops - serial stream driver should return _FDEV_EOF when no data has been received...
[pub/USBasp.git]
/
LUFA
/
Drivers
/
USB
/
Class
/
Host
/
CDC.c
diff --git
a/LUFA/Drivers/USB/Class/Host/CDC.c
b/LUFA/Drivers/USB/Class/Host/CDC.c
index
8ad37de
..
227ab94
100644
(file)
--- a/
LUFA/Drivers/USB/Class/Host/CDC.c
+++ b/
LUFA/Drivers/USB/Class/Host/CDC.c
@@
-182,7
+182,8
@@
static uint8_t DComp_CDC_Host_NextCDCInterfaceEndpoint(void* const CurrentDescri
\r
uint8_t EndpointType = (CurrentEndpoint->Attributes & EP_TYPE_MASK);
\r
\r
\r
uint8_t EndpointType = (CurrentEndpoint->Attributes & EP_TYPE_MASK);
\r
\r
- if ((EndpointType == EP_TYPE_BULK) || (EndpointType == EP_TYPE_INTERRUPT))
\r
+ if (((EndpointType == EP_TYPE_BULK) || (EndpointType == EP_TYPE_INTERRUPT)) &&
\r
+ !(Pipe_IsEndpointBound(CurrentEndpoint->EndpointAddress)))
\r
{
\r
return DESCRIPTOR_SEARCH_Found;
\r
}
\r
{
\r
return DESCRIPTOR_SEARCH_Found;
\r
}
\r
@@
-309,13
+310,22
@@
uint16_t CDC_Host_BytesReceived(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo
Pipe_SetPipeToken(PIPE_TOKEN_IN);
\r
Pipe_Unfreeze();
\r
\r
Pipe_SetPipeToken(PIPE_TOKEN_IN);
\r
Pipe_Unfreeze();
\r
\r
- if (Pipe_IsINReceived() && !(Pipe_BytesInPipe()))
\r
- Pipe_ClearIN();
\r
-
\r
- BytesInPipe = Pipe_BytesInPipe();
\r
- Pipe_Freeze();
\r
-
\r
- return 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
+ else
\r
+ {
\r
+ Pipe_Freeze();
\r
+
\r
+ return 0;
\r
+ }
\r
}
\r
\r
uint8_t CDC_Host_ReceiveByte(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo)
\r
}
\r
\r
uint8_t CDC_Host_ReceiveByte(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo)
\r