projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed GenericHIDHost demo report write routine incorrect for control type requests...
[pub/USBasp.git]
/
LUFA
/
Drivers
/
USB
/
LowLevel
/
Pipe.c
diff --git
a/LUFA/Drivers/USB/LowLevel/Pipe.c
b/LUFA/Drivers/USB/LowLevel/Pipe.c
index
1218d2f
..
5850fcf
100644
(file)
--- a/
LUFA/Drivers/USB/LowLevel/Pipe.c
+++ b/
LUFA/Drivers/USB/LowLevel/Pipe.c
@@
-74,8
+74,19
@@
uint8_t Pipe_WaitUntilReady(void)
\r
USB_INT_Clear(USB_INT_HSOFI);
\r
\r
\r
USB_INT_Clear(USB_INT_HSOFI);
\r
\r
-
while (!(Pipe_ReadWriteAllowed())
)
\r
+
for (;;
)
\r
{
\r
{
\r
+ if (Pipe_GetPipeToken() == PIPE_TOKEN_IN)
\r
+ {
\r
+ if (Pipe_IsINReceived())
\r
+ return PIPE_READYWAIT_NoError;
\r
+ }
\r
+ else
\r
+ {
\r
+ if (Pipe_IsOUTReady())
\r
+ return PIPE_READYWAIT_NoError;
\r
+ }
\r
+
\r
if (Pipe_IsStalled())
\r
return PIPE_READYWAIT_PipeStalled;
\r
else if (!(USB_IsConnected))
\r
if (Pipe_IsStalled())
\r
return PIPE_READYWAIT_PipeStalled;
\r
else if (!(USB_IsConnected))
\r
@@
-89,8
+100,6
@@
uint8_t Pipe_WaitUntilReady(void)
return PIPE_READYWAIT_Timeout;
\r
}
\r
}
\r
return PIPE_READYWAIT_Timeout;
\r
}
\r
}
\r
-
\r
- return PIPE_READYWAIT_NoError;
\r
}
\r
\r
uint8_t Pipe_Write_Stream_LE(const void* Data, uint16_t Length
\r
}
\r
\r
uint8_t Pipe_Write_Stream_LE(const void* Data, uint16_t Length
\r
@@
-107,9
+116,9
@@
uint8_t Pipe_Write_Stream_LE(const void* Data, uint16_t Length
\r
while (Length--)
\r
{
\r
\r
while (Length--)
\r
{
\r
- if (!(Pipe_ReadWriteAllowed()))
\r
+ if (!(Pipe_
Is
ReadWriteAllowed()))
\r
{
\r
{
\r
- Pipe_Clear
CurrentBank
();
\r
+ Pipe_Clear
OUT
();
\r
\r
#if !defined(NO_STREAM_CALLBACKS)
\r
if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
\r
\r
#if !defined(NO_STREAM_CALLBACKS)
\r
if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
\r
@@
-119,8
+128,10
@@
uint8_t Pipe_Write_Stream_LE(const void* Data, uint16_t Length
if ((ErrorCode = Pipe_WaitUntilReady()))
\r
return ErrorCode;
\r
}
\r
if ((ErrorCode = Pipe_WaitUntilReady()))
\r
return ErrorCode;
\r
}
\r
-
\r
- Pipe_Write_Byte(*(DataStream++));
\r
+ else
\r
+ {
\r
+ Pipe_Write_Byte(*(DataStream++));
\r
+ }
\r
}
\r
\r
return PIPE_RWSTREAM_ERROR_NoError;
\r
}
\r
\r
return PIPE_RWSTREAM_ERROR_NoError;
\r
@@
-140,9
+151,9
@@
uint8_t Pipe_Write_Stream_BE(const void* Data, uint16_t Length
\r
while (Length--)
\r
{
\r
\r
while (Length--)
\r
{
\r
- if (!(Pipe_ReadWriteAllowed()))
\r
+ if (!(Pipe_
Is
ReadWriteAllowed()))
\r
{
\r
{
\r
- Pipe_Clear
CurrentBank
();
\r
+ Pipe_Clear
OUT
();
\r
\r
#if !defined(NO_STREAM_CALLBACKS)
\r
if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
\r
\r
#if !defined(NO_STREAM_CALLBACKS)
\r
if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
\r
@@
-152,8
+163,10
@@
uint8_t Pipe_Write_Stream_BE(const void* Data, uint16_t Length
if ((ErrorCode = Pipe_WaitUntilReady()))
\r
return ErrorCode;
\r
}
\r
if ((ErrorCode = Pipe_WaitUntilReady()))
\r
return ErrorCode;
\r
}
\r
-
\r
- Pipe_Write_Byte(*(DataStream--));
\r
+ else
\r
+ {
\r
+ Pipe_Write_Byte(*(DataStream--));
\r
+ }
\r
}
\r
\r
return PIPE_RWSTREAM_ERROR_NoError;
\r
}
\r
\r
return PIPE_RWSTREAM_ERROR_NoError;
\r
@@
-172,9
+185,9
@@
uint8_t Pipe_Discard_Stream(uint16_t Length
\r
while (Length--)
\r
{
\r
\r
while (Length--)
\r
{
\r
- if (!(Pipe_ReadWriteAllowed()))
\r
+ if (!(Pipe_
Is
ReadWriteAllowed()))
\r
{
\r
{
\r
- Pipe_Clear
CurrentBank
();
\r
+ Pipe_Clear
IN
();
\r
\r
#if !defined(NO_STREAM_CALLBACKS)
\r
if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
\r
\r
#if !defined(NO_STREAM_CALLBACKS)
\r
if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
\r
@@
-184,8
+197,10
@@
uint8_t Pipe_Discard_Stream(uint16_t Length
if ((ErrorCode = Pipe_WaitUntilReady()))
\r
return ErrorCode;
\r
}
\r
if ((ErrorCode = Pipe_WaitUntilReady()))
\r
return ErrorCode;
\r
}
\r
-
\r
- Pipe_Discard_Byte();
\r
+ else
\r
+ {
\r
+ Pipe_Discard_Byte();
\r
+ }
\r
}
\r
\r
return PIPE_RWSTREAM_ERROR_NoError;
\r
}
\r
\r
return PIPE_RWSTREAM_ERROR_NoError;
\r
@@
-205,9
+220,9
@@
uint8_t Pipe_Read_Stream_LE(void* Buffer, uint16_t Length
\r
while (Length--)
\r
{
\r
\r
while (Length--)
\r
{
\r
- if (!(Pipe_ReadWriteAllowed()))
\r
+ if (!(Pipe_
Is
ReadWriteAllowed()))
\r
{
\r
{
\r
- Pipe_Clear
CurrentBank
();
\r
+ Pipe_Clear
IN
();
\r
\r
#if !defined(NO_STREAM_CALLBACKS)
\r
if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
\r
\r
#if !defined(NO_STREAM_CALLBACKS)
\r
if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
\r
@@
-217,8
+232,10
@@
uint8_t Pipe_Read_Stream_LE(void* Buffer, uint16_t Length
if ((ErrorCode = Pipe_WaitUntilReady()))
\r
return ErrorCode;
\r
}
\r
if ((ErrorCode = Pipe_WaitUntilReady()))
\r
return ErrorCode;
\r
}
\r
-
\r
- *(DataStream++) = Pipe_Read_Byte();
\r
+ else
\r
+ {
\r
+ *(DataStream++) = Pipe_Read_Byte();
\r
+ }
\r
}
\r
\r
return PIPE_RWSTREAM_ERROR_NoError;
\r
}
\r
\r
return PIPE_RWSTREAM_ERROR_NoError;
\r
@@
-238,9
+255,9
@@
uint8_t Pipe_Read_Stream_BE(void* Buffer, uint16_t Length
\r
while (Length--)
\r
{
\r
\r
while (Length--)
\r
{
\r
- if (!(Pipe_ReadWriteAllowed()))
\r
+ if (!(Pipe_
Is
ReadWriteAllowed()))
\r
{
\r
{
\r
- Pipe_Clear
CurrentBank
();
\r
+ Pipe_Clear
IN
();
\r
\r
#if !defined(NO_STREAM_CALLBACKS)
\r
if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
\r
\r
#if !defined(NO_STREAM_CALLBACKS)
\r
if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
\r
@@
-250,8
+267,10
@@
uint8_t Pipe_Read_Stream_BE(void* Buffer, uint16_t Length
if ((ErrorCode = Pipe_WaitUntilReady()))
\r
return ErrorCode;
\r
}
\r
if ((ErrorCode = Pipe_WaitUntilReady()))
\r
return ErrorCode;
\r
}
\r
-
\r
- *(DataStream--) = Pipe_Read_Byte();
\r
+ else
\r
+ {
\r
+ *(DataStream--) = Pipe_Read_Byte();
\r
+ }
\r
}
\r
\r
return PIPE_RWSTREAM_ERROR_NoError;
\r
}
\r
\r
return PIPE_RWSTREAM_ERROR_NoError;
\r