diff options
| author | Jeff Epler <jepler@gmail.com> | 2019-08-10 09:33:45 -0500 |
|---|---|---|
| committer | Jeff Epler <jepler@gmail.com> | 2019-08-10 09:33:45 -0500 |
| commit | be5205d02081771e7aea51285f94fee83ef4fb77 (patch) | |
| tree | 943516c4334c14f46d79c27249339bcad683bbdc /shared-module/usb_hid | |
| parent | 47a0b7cba141efb0909d74db3401ae902f6e9a96 (diff) | |
usb_hid: Allow USB work to progress while waiting for tud_hid_ready
Otherwise, examples like the one attached to the related issue fail
because tud_hid_ready never returns true.
Testing performed: Adapted the example to nrf particle xenon (it was
handy), removed dependency on IR, verified that the problem occurred
before this change, and that it was fixed after this change.
Closes: #2048
Diffstat (limited to 'shared-module/usb_hid')
| -rw-r--r-- | shared-module/usb_hid/Device.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/shared-module/usb_hid/Device.c b/shared-module/usb_hid/Device.c index a5a57419c..26d70cb82 100644 --- a/shared-module/usb_hid/Device.c +++ b/shared-module/usb_hid/Device.c @@ -47,7 +47,11 @@ void common_hal_usb_hid_device_send_report(usb_hid_device_obj_t *self, uint8_t* // Wait until interface is ready, timeout = 2 seconds uint64_t end_ticks = ticks_ms + 2000; - while ( (ticks_ms < end_ticks) && !tud_hid_ready() ) { } + while ( (ticks_ms < end_ticks) && !tud_hid_ready() ) { +#ifdef MICROPY_VM_HOOK_LOOP + MICROPY_VM_HOOK_LOOP; +#endif + } if ( !tud_hid_ready() ) { mp_raise_msg(&mp_type_OSError, translate("USB Busy")); |
