From b6f59563c7c57793a3c1ce67b51d9192f750fd27 Mon Sep 17 00:00:00 2001 From: Kristian Sloth Lauszus Date: Sat, 30 Jun 2018 18:25:03 +0200 Subject: [PATCH] Revert cancelling a transfer, as the USB endpoint is still locked up --- right/src/usb_interfaces/usb_interface_basic_keyboard.c | 8 ++------ right/src/usb_report_updater.c | 4 ++-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/right/src/usb_interfaces/usb_interface_basic_keyboard.c b/right/src/usb_interfaces/usb_interface_basic_keyboard.c index 05c2d61..1df3fe9 100644 --- a/right/src/usb_interfaces/usb_interface_basic_keyboard.c +++ b/right/src/usb_interfaces/usb_interface_basic_keyboard.c @@ -26,12 +26,8 @@ usb_status_t UsbBasicKeyboardAction(void) if (!UsbCompositeDevice.attach) return kStatus_USB_Error; // The device is not attached - if (((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy) { - ((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy = 0; - return USB_DeviceCancel(((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->handle, - (USB_BASIC_KEYBOARD_ENDPOINT_INDEX & USB_ENDPOINT_NUMBER_MASK) | - USB_DESCRIPTOR_ENDPOINT_ADDRESS_DIRECTION_IN); - } + if (((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy) + return kStatus_USB_Busy; // The previous report has not been sent yet UsbBasicKeyboardActionCounter++; SwitchActiveUsbBasicKeyboardReport(); // Switch the active report diff --git a/right/src/usb_report_updater.c b/right/src/usb_report_updater.c index 877f235..a296667 100644 --- a/right/src/usb_report_updater.c +++ b/right/src/usb_report_updater.c @@ -407,12 +407,12 @@ static uint32_t lastMouseUpdateTime; void UpdateUsbReports(void) { UsbReportUpdateCounter++; - /*if (((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy || + if (((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy || ((usb_device_hid_struct_t *)UsbCompositeDevice.mediaKeyboardHandle)->interruptInPipeBusy || ((usb_device_hid_struct_t *)UsbCompositeDevice.systemKeyboardHandle)->interruptInPipeBusy || ((usb_device_hid_struct_t *)UsbCompositeDevice.mouseHandle)->interruptInPipeBusy) { return; - } else */if (Timer_GetElapsedTime(&lastMouseUpdateTime) < USB_BASIC_KEYBOARD_INTERRUPT_IN_INTERVAL) { + } else if (Timer_GetElapsedTime(&lastMouseUpdateTime) < USB_BASIC_KEYBOARD_INTERRUPT_IN_INTERVAL) { return; } Timer_SetCurrentTime(&lastMouseUpdateTime);