From 31d3984d8d8afeed7b1e064428b01e42fe27f2f9 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sat, 23 Mar 2013 12:01:25 +0000 Subject: Fixed Low Speed USB devices broken when using the library HID Class driver (thanks to Michael). --- LUFA/Drivers/USB/Class/Device/HIDClassDevice.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'LUFA/Drivers/USB/Class') diff --git a/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c b/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c index f6b665917..6ca4c1f2d 100644 --- a/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c +++ b/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c @@ -144,8 +144,8 @@ bool HID_Device_ConfigureEndpoints(USB_ClassInfo_HID_Device_t* const HIDInterfac HIDInterfaceInfo->Config.ReportINEndpoint.Type = EP_TYPE_INTERRUPT; if (!(Endpoint_ConfigureEndpointTable(&HIDInterfaceInfo->Config.ReportINEndpoint, 1))) - return false; - + return false; + return true; } @@ -155,8 +155,15 @@ void HID_Device_USBTask(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo) return; if (HIDInterfaceInfo->State.PrevFrameNum == USB_Device_GetFrameNumber()) - return; - + { + #if defined(USB_DEVICE_OPT_LOWSPEED) + if (!(USB_Options & USB_DEVICE_OPT_LOWSPEED)) + return; + #else + return; + #endif + } + Endpoint_SelectEndpoint(HIDInterfaceInfo->Config.ReportINEndpoint.Address); if (Endpoint_IsReadWriteAllowed()) @@ -191,7 +198,7 @@ void HID_Device_USBTask(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo) Endpoint_ClearIN(); } - + HIDInterfaceInfo->State.PrevFrameNum = USB_Device_GetFrameNumber(); } } -- cgit v1.2.3