Fixed incorrect/missing control status stage transfers on demos, bootloaders and...
[pub/USBasp.git] / Projects / AVRISP_Programmer / AVRISP_Programmer.c
index 4bc4f9c..5859367 100644 (file)
@@ -267,7 +267,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
                case REQ_GetLineEncoding:\r
                        if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))\r
                        {       \r
-                               /* Acknowedge the SETUP packet, ready for data transfer */\r
+                               /* Acknowledge the SETUP packet, ready for data transfer */\r
                                Endpoint_ClearSetupReceived();\r
 \r
                                /* Write the line coding data to the control endpoint */\r
@@ -281,7 +281,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
                case REQ_SetLineEncoding:\r
                        if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))\r
                        {\r
-                               /* Acknowedge the SETUP packet, ready for data transfer */\r
+                               /* Acknowledge the SETUP packet, ready for data transfer */\r
                                Endpoint_ClearSetupReceived();\r
 \r
                                /* Read the line coding data in from the host into the global struct */\r
@@ -298,10 +298,11 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
                case REQ_SetControlLineState:\r
                        if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))\r
                        {\r
-                               /* Acknowedge the SETUP packet, ready for data transfer */\r
+                               /* Acknowledge the SETUP packet, ready for data transfer */\r
                                Endpoint_ClearSetupReceived();\r
                                \r
-                               /* Send an empty packet to acknowedge the command */\r
+                               /* Acknowledge status stage */\r
+                               while (!(Endpoint_IsSetupINReady()));\r
                                Endpoint_ClearSetupIN();\r
                        }\r
        \r