Make HID device class driver reselect the correct endpoint after the user callbacks...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Device / HID.c
index a99c264..403d494 100644 (file)
@@ -56,6 +56,7 @@ void HID_Device_ProcessControlRequest(USB_ClassInfo_HID_Device_t* const HIDInter
                                CALLBACK_HID_Device_CreateHIDReport(HIDInterfaceInfo, &ReportID,\r
                                                                    HIDInterfaceInfo->Config.PrevReportINBuffer, &ReportINSize);\r
 \r
+                               Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);\r
                                Endpoint_Write_Control_Stream_LE(HIDInterfaceInfo->Config.PrevReportINBuffer, ReportINSize);\r
                                Endpoint_ClearOUT();\r
                        }\r
@@ -167,6 +168,8 @@ void HID_Device_USBTask(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo)
                {\r
                        HIDInterfaceInfo->State.IdleMSRemaining = HIDInterfaceInfo->State.IdleCount;\r
 \r
+                       Endpoint_SelectEndpoint(HIDInterfaceInfo->Config.ReportINEndpointNumber);\r
+\r
                        if (ReportID)\r
                          Endpoint_Write_Byte(ReportID);\r
 \r