diff --git a/firmware/targets/f7/api_symbols.csv b/firmware/targets/f7/api_symbols.csv index 97fae6676..f6e64c374 100644 --- a/firmware/targets/f7/api_symbols.csv +++ b/firmware/targets/f7/api_symbols.csv @@ -136,6 +136,7 @@ Header,+,lib/libusb_stm32/inc/hid_usage_simulation.h,, Header,+,lib/libusb_stm32/inc/hid_usage_sport.h,, Header,+,lib/libusb_stm32/inc/hid_usage_telephony.h,, Header,+,lib/libusb_stm32/inc/hid_usage_vr.h,, +Header,-,lib/libusb_stm32/inc/stm32_compat.h,, Header,+,lib/libusb_stm32/inc/usb.h,, Header,+,lib/libusb_stm32/inc/usb_cdc.h,, Header,+,lib/libusb_stm32/inc/usb_cdca.h,, diff --git a/firmware/targets/f7/furi_hal/furi_hal_usb_u2f.c b/firmware/targets/f7/furi_hal/furi_hal_usb_u2f.c index 60068f3b4..c099aec8a 100644 --- a/firmware/targets/f7/furi_hal/furi_hal_usb_u2f.c +++ b/firmware/targets/f7/furi_hal/furi_hal_usb_u2f.c @@ -34,13 +34,13 @@ static const uint8_t hid_u2f_report_desc[] = { HID_COLLECTION(HID_APPLICATION_COLLECTION), HID_USAGE(HID_FIDO_INPUT), HID_LOGICAL_MINIMUM(0x00), - HID_LOGICAL_MAXIMUM(0xFF), + HID_RI_LOGICAL_MAXIMUM(16, 0xFF), HID_REPORT_SIZE(8), HID_REPORT_COUNT(HID_U2F_PACKET_LEN), HID_INPUT(HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), HID_USAGE(HID_FIDO_OUTPUT), HID_LOGICAL_MINIMUM(0x00), - HID_LOGICAL_MAXIMUM(0xFF), + HID_RI_LOGICAL_MAXIMUM(16, 0xFF), HID_REPORT_SIZE(8), HID_REPORT_COUNT(HID_U2F_PACKET_LEN), HID_OUTPUT(HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), diff --git a/firmware/targets/furi_hal_include/furi_hal_usb_hid.h b/firmware/targets/furi_hal_include/furi_hal_usb_hid.h index f4b40c89d..a9f094814 100644 --- a/firmware/targets/furi_hal_include/furi_hal_usb_hid.h +++ b/firmware/targets/furi_hal_include/furi_hal_usb_hid.h @@ -10,8 +10,6 @@ extern "C" { #endif #define HID_KEYBOARD_NONE 0x00 -// Remapping the colon key which is shift + ; to comma -#define HID_KEYBOARD_COMMA HID_KEYBOARD_COLON /** HID keyboard modifier keys */ enum HidKeyboardMods { diff --git a/lib/libusb_stm32 b/lib/libusb_stm32 index 6a88ec4d7..9168e2a31 160000 --- a/lib/libusb_stm32 +++ b/lib/libusb_stm32 @@ -1 +1 @@ -Subproject commit 6a88ec4d7709ca8605b5ec3e609057c330ca2a70 +Subproject commit 9168e2a31db946326fb84016a74ea2ab5bf87f54 diff --git a/lib/one_wire/ibutton/ibutton_worker.c b/lib/one_wire/ibutton/ibutton_worker.c index 29126d845..9d5ea3897 100644 --- a/lib/one_wire/ibutton/ibutton_worker.c +++ b/lib/one_wire/ibutton/ibutton_worker.c @@ -131,7 +131,9 @@ void ibutton_worker_switch_mode(iButtonWorker* worker, iButtonWorkerMode mode) { void ibutton_worker_notify_emulate(iButtonWorker* worker) { iButtonMessage message = {.type = iButtonMessageNotifyEmulate}; - furi_check(furi_message_queue_put(worker->messages, &message, 0) == FuriStatusOk); + // we're running in an interrupt context, so we can't wait + // and we can drop message if queue is full, that's ok for that message + furi_message_queue_put(worker->messages, &message, 0); } void ibutton_worker_set_key_p(iButtonWorker* worker, iButtonKey* key) { diff --git a/lib/one_wire/ibutton/ibutton_worker_modes.c b/lib/one_wire/ibutton/ibutton_worker_modes.c index 691aea9ee..b1e5904ca 100644 --- a/lib/one_wire/ibutton/ibutton_worker_modes.c +++ b/lib/one_wire/ibutton/ibutton_worker_modes.c @@ -222,8 +222,8 @@ void ibutton_worker_emulate_dallas_start(iButtonWorker* worker) { memcpy(device_id, key_id, key_size); onewire_slave_attach(worker->slave, worker->device); - onewire_slave_start(worker->slave); onewire_slave_set_result_callback(worker->slave, onewire_slave_callback, worker); + onewire_slave_start(worker->slave); } void ibutton_worker_emulate_dallas_stop(iButtonWorker* worker) {