Reverted Endpoint/Pipe non-sequential configuration hack, placed restriction on the...
[pub/USBasp.git] / LUFA / Drivers / USB / LowLevel / Pipe.c
index 748ed0b..e5c30e4 100644 (file)
@@ -44,61 +44,17 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
                         const uint16_t Size,
                         const uint8_t Banks)
 {
-       uint8_t UPCFG0XTemp[PIPE_TOTAL_PIPES];
-       uint8_t UPCFG1XTemp[PIPE_TOTAL_PIPES];
-       uint8_t UPCFG2XTemp[PIPE_TOTAL_PIPES];
-       uint8_t UPCONXTemp[PIPE_TOTAL_PIPES];
-       uint8_t UPINRQXTemp[PIPE_TOTAL_PIPES];
-       uint8_t UPIENXTemp[PIPE_TOTAL_PIPES];
-       
-       for (uint8_t PNum = 0; PNum < PIPE_TOTAL_PIPES; PNum++)
-       {
-               Pipe_SelectPipe(PNum);
-               UPCFG0XTemp[PNum] = UPCFG0X;
-               UPCFG1XTemp[PNum] = UPCFG1X;
-               UPCFG2XTemp[PNum] = UPCFG2X;
-               UPCONXTemp[PNum]  = UPCONX;
-               UPINRQXTemp[PNum] = UPINRQX;
-               UPIENXTemp[PNum]  = UPIENX;
-       }
-       
-       UPCFG0XTemp[Number] = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
-       UPCFG1XTemp[Number] = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));
-       UPCFG2XTemp[Number] = 0;
-       UPCONXTemp[Number]  = (1 << INMODE);
-       UPINRQXTemp[Number] = 0;
-       UPIENXTemp[Number]  = 0;
-       
-       for (uint8_t PNum = 0; PNum < PIPE_TOTAL_PIPES; PNum++)
-       {
-               Pipe_SelectPipe(PNum);
-               UPIENX  = 0;
-               UPINTX  = 0;
-               UPCFG1X = 0;
-               Pipe_DisablePipe();
-       }
+       Pipe_SelectPipe(Number);
+       Pipe_EnablePipe();
 
-       for (uint8_t PNum = 0; PNum < PIPE_TOTAL_PIPES; PNum++)
-       {
-               if (!(UPCFG1XTemp[PNum] & (1 << ALLOC)))
-                 continue;
-               
-               Pipe_SelectPipe(PNum);          
-               Pipe_EnablePipe();
+       UPCFG1X = 0;
+       
+       UPCFG0X = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
+       UPCFG1X = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));
 
-               UPCFG0X  = UPCFG0XTemp[PNum];
-               UPCFG1X  = UPCFG1XTemp[PNum];
-               UPCFG2X  = UPCFG2XTemp[PNum];
-               UPCONX  |= UPCONXTemp[PNum];
-               UPINRQX  = UPINRQXTemp[PNum];
-               UPIENX   = UPIENXTemp[PNum];
+       Pipe_SetInfiniteINRequests();
 
-               if (!(Pipe_IsConfigured()))
-                 return false;
-       }
-               
-       Pipe_SelectPipe(Number);        
-       return true;
+       return Pipe_IsConfigured();
 }
 
 void Pipe_ClearPipes(void)