Call USB_USBTask() in the Endpoint stream functions between packets if INTERRUPT_CONT...
authorDean Camera <dean@fourwalledcubicle.com>
Mon, 10 Jan 2011 18:56:34 +0000 (18:56 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Mon, 10 Jan 2011 18:56:34 +0000 (18:56 +0000)
LUFA/Drivers/USB/Class/Device/MassStorage.c
LUFA/Drivers/USB/HighLevel/PipeStream.c
LUFA/Drivers/USB/HighLevel/Template/Template_Endpoint_RW.c
LUFA/Drivers/USB/LowLevel/Endpoint.c
LUFA/Drivers/USB/LowLevel/Pipe.c

index 18f7b8e..4d7cff6 100644 (file)
@@ -166,10 +166,6 @@ static bool MS_Device_ReadInCommandBlock(USB_ClassInfo_MS_Device_t* const MSInte
                                       (sizeof(MS_CommandBlockWrapper_t) - 16), &BytesProcessed) ==
                                       ENDPOINT_RWSTREAM_IncompleteTransfer)
        {
-               #if !defined(INTERRUPT_CONTROL_ENDPOINT)
-               USB_USBTask();
-               #endif
-
                if (MSInterfaceInfo->State.IsMassStoreReset)
                  return false;
        }
@@ -192,10 +188,6 @@ static bool MS_Device_ReadInCommandBlock(USB_ClassInfo_MS_Device_t* const MSInte
                                        MSInterfaceInfo->State.CommandBlock.SCSICommandLength, &BytesProcessed) ==
                                        ENDPOINT_RWSTREAM_IncompleteTransfer)
        {
-               #if !defined(INTERRUPT_CONTROL_ENDPOINT)
-               USB_USBTask();
-               #endif
-
                if (MSInterfaceInfo->State.IsMassStoreReset)
                  return false;
        }
@@ -236,10 +228,6 @@ static void MS_Device_ReturnCommandStatus(USB_ClassInfo_MS_Device_t* const MSInt
                                        sizeof(MS_CommandStatusWrapper_t), &BytesProcessed) ==
                                        ENDPOINT_RWSTREAM_IncompleteTransfer)
        {
-               #if !defined(INTERRUPT_CONTROL_ENDPOINT)
-               USB_USBTask();
-               #endif
-
                if (MSInterfaceInfo->State.IsMassStoreReset)
                  return;
        }
index 9f88981..4465471 100644 (file)
@@ -101,6 +101,8 @@ uint8_t Pipe_Null_Stream(uint16_t Length,
                                *BytesProcessed += BytesInTransfer;\r
                                return PIPE_RWSTREAM_IncompleteTransfer;\r
                        }\r
+                       \r
+                       USB_USBTask();\r
 \r
                        if ((ErrorCode = Pipe_WaitUntilReady()))\r
                          return ErrorCode;\r
index 8a68d65..4077279 100644 (file)
@@ -27,6 +27,10 @@ uint8_t TEMPLATE_FUNC_NAME (TEMPLATE_BUFFER_TYPE Buffer,
                                return ENDPOINT_RWSTREAM_IncompleteTransfer;
                        }
 
+                       #if !defined(INTERRUPT_CONTROL_ENDPOINT)
+                       USB_USBTask();
+                       #endif
+
                        if ((ErrorCode = Endpoint_WaitUntilReady()))
                          return ErrorCode;
                }
index df1e86a..33f5ec9 100644 (file)
@@ -155,10 +155,6 @@ uint8_t Endpoint_WaitUntilReady(void)
                        if (Endpoint_IsOUTReceived())
                          return ENDPOINT_READYWAIT_NoError;
                }
-
-               #if !defined(INTERRUPT_CONTROL_ENDPOINT)
-               USB_USBTask();
-               #endif
                
                uint8_t USB_DeviceState_LCL = USB_DeviceState;
 
index e8ee23f..82a9c1a 100644 (file)
@@ -172,10 +172,6 @@ uint8_t Pipe_WaitUntilReady(void)
                          return PIPE_READYWAIT_NoError;
                }
 
-               #if !defined(INTERRUPT_CONTROL_ENDPOINT)
-               USB_USBTask();
-               #endif
-
                if (Pipe_IsStalled())
                  return PIPE_READYWAIT_PipeStalled;
                else if (USB_HostState == HOST_STATE_Unattached)