Added new EEPROM and FLASH buffer versions of the Endpoint and Pipe stream functions...
[pub/lufa.git] / LUFA / Drivers / USB / LowLevel / DevChapter9.c
index feaabce..f49f5b3 100644 (file)
@@ -241,47 +241,12 @@ static void USB_Device_GetDescriptor(void)
 \r
        #if defined(USE_RAM_DESCRIPTORS)\r
        Endpoint_Write_Control_Stream_LE(DescriptorPointer, DescriptorSize);\r
+       #elif defined(USE_EEPROM_DESCRIPTORS)\r
+       Endpoint_Write_Control_EStream_LE(DescriptorPointer, DescriptorSize);\r
        #else\r
-       bool SendZLP;\r
-       \r
-       if (USB_ControlRequest.wLength > DescriptorSize)\r
-         USB_ControlRequest.wLength = DescriptorSize;\r
-       \r
-       while (USB_ControlRequest.wLength)\r
-       {\r
-               while (!(Endpoint_IsINReady()))\r
-               {\r
-                       if (Endpoint_IsOUTReceived())\r
-                       {\r
-                               Endpoint_ClearOUT();\r
-                               return;\r
-                       }               \r
-               }\r
-               \r
-               while (USB_ControlRequest.wLength && (Endpoint_BytesInEndpoint() < USB_ControlEndpointSize))\r
-               {\r
-                       #if defined (USE_EEPROM_DESCRIPTORS)\r
-                       Endpoint_Write_Byte(eeprom_read_byte(DescriptorPointer++));             \r
-                       #else\r
-                       Endpoint_Write_Byte(pgm_read_byte(DescriptorPointer++));\r
-                       #endif\r
-                       \r
-                       USB_ControlRequest.wLength--;\r
-               }\r
-               \r
-               SendZLP = (Endpoint_BytesInEndpoint() == USB_ControlEndpointSize);\r
-               Endpoint_ClearIN();\r
-       }\r
-       \r
-       if (SendZLP)\r
-       {\r
-               while (!(Endpoint_IsINReady()));\r
-               Endpoint_ClearIN();\r
-       }\r
-\r
-       while (!(Endpoint_IsOUTReceived()));\r
+       Endpoint_Write_Control_PStream_LE(DescriptorPointer, DescriptorSize);   \r
        #endif\r
-       \r
+\r
        Endpoint_ClearOUT();\r
 }\r
 \r