Revert cancelling a transfer, as the USB endpoint is still locked up

This commit is contained in:
Kristian Sloth Lauszus
2018-06-30 18:25:03 +02:00
parent 409bd01af6
commit b6f59563c7
2 changed files with 4 additions and 8 deletions

View File

@@ -26,12 +26,8 @@ usb_status_t UsbBasicKeyboardAction(void)
if (!UsbCompositeDevice.attach) if (!UsbCompositeDevice.attach)
return kStatus_USB_Error; // The device is not attached return kStatus_USB_Error; // The device is not attached
if (((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy) { if (((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy)
((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy = 0; return kStatus_USB_Busy; // The previous report has not been sent yet
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);
}
UsbBasicKeyboardActionCounter++; UsbBasicKeyboardActionCounter++;
SwitchActiveUsbBasicKeyboardReport(); // Switch the active report SwitchActiveUsbBasicKeyboardReport(); // Switch the active report

View File

@@ -407,12 +407,12 @@ static uint32_t lastMouseUpdateTime;
void UpdateUsbReports(void) void UpdateUsbReports(void)
{ {
UsbReportUpdateCounter++; 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.mediaKeyboardHandle)->interruptInPipeBusy ||
((usb_device_hid_struct_t *)UsbCompositeDevice.systemKeyboardHandle)->interruptInPipeBusy || ((usb_device_hid_struct_t *)UsbCompositeDevice.systemKeyboardHandle)->interruptInPipeBusy ||
((usb_device_hid_struct_t *)UsbCompositeDevice.mouseHandle)->interruptInPipeBusy) { ((usb_device_hid_struct_t *)UsbCompositeDevice.mouseHandle)->interruptInPipeBusy) {
return; return;
} else */if (Timer_GetElapsedTime(&lastMouseUpdateTime) < USB_BASIC_KEYBOARD_INTERRUPT_IN_INTERVAL) { } else if (Timer_GetElapsedTime(&lastMouseUpdateTime) < USB_BASIC_KEYBOARD_INTERRUPT_IN_INTERVAL) {
return; return;
} }
Timer_SetCurrentTime(&lastMouseUpdateTime); Timer_SetCurrentTime(&lastMouseUpdateTime);