Fixed CDCHost demo unfreezing IN pipes during configuration, rather than during use.
[pub/USBasp.git] / LUFA / Drivers / USB / LowLevel / Pipe.c
index 3c493fe..35ba480 100644 (file)
@@ -45,7 +45,7 @@ bool Pipe_ConfigurePipe(const uint8_t Number, const uint8_t Type, const uint8_t
 \r
        UPCFG1X = 0;\r
        \r
-       UPCFG0X = ((Type << EPTYPE0) | Token | (EndpointNumber << PEPNUM0));\r
+       UPCFG0X = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));\r
        UPCFG1X = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));\r
 \r
        return Pipe_IsConfigured();\r
@@ -113,6 +113,8 @@ uint8_t Pipe_Write_Stream_LE(const void* Data, uint16_t Length
        uint8_t* DataStream = (uint8_t*)Data;\r
        uint8_t  ErrorCode;\r
        \r
+       Pipe_SetToken(PIPE_TOKEN_OUT);\r
+\r
        if ((ErrorCode = Pipe_WaitUntilReady()))\r
          return ErrorCode;\r
 \r
@@ -149,6 +151,8 @@ uint8_t Pipe_Write_Stream_BE(const void* Data, uint16_t Length
        uint8_t* DataStream = (uint8_t*)(Data + Length - 1);\r
        uint8_t  ErrorCode;\r
        \r
+       Pipe_SetToken(PIPE_TOKEN_OUT);\r
+\r
        if ((ErrorCode = Pipe_WaitUntilReady()))\r
          return ErrorCode;\r
 \r
@@ -184,6 +188,8 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
 {\r
        uint8_t  ErrorCode;\r
        \r
+       Pipe_SetToken(PIPE_TOKEN_IN);\r
+\r
        if ((ErrorCode = Pipe_WaitUntilReady()))\r
          return ErrorCode;\r
 \r
@@ -220,6 +226,8 @@ uint8_t Pipe_Read_Stream_LE(void* Buffer, uint16_t Length
        uint8_t* DataStream = (uint8_t*)Buffer;\r
        uint8_t  ErrorCode;\r
        \r
+       Pipe_SetToken(PIPE_TOKEN_IN);\r
+\r
        if ((ErrorCode = Pipe_WaitUntilReady()))\r
          return ErrorCode;\r
 \r
@@ -256,6 +264,8 @@ uint8_t Pipe_Read_Stream_BE(void* Buffer, uint16_t Length
        uint8_t* DataStream = (uint8_t*)(Buffer + Length - 1);\r
        uint8_t  ErrorCode;\r
        \r
+       Pipe_SetToken(PIPE_TOKEN_IN);\r
+\r
        if ((ErrorCode = Pipe_WaitUntilReady()))\r
          return ErrorCode;\r
 \r