From b99143fdd2637f573bb8c2632a38b84acc1945a0 Mon Sep 17 00:00:00 2001 From: NoOne2246 Date: Tue, 9 Apr 2024 04:55:42 +1000 Subject: Oneshot locked mods split transaction (#23434) --- quantum/split_common/transactions.c | 5 +++++ quantum/split_common/transport.h | 1 + 2 files changed, 6 insertions(+) (limited to 'quantum/split_common') diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c index 33bc9e9f57..decf5e5ede 100644 --- a/quantum/split_common/transactions.c +++ b/quantum/split_common/transactions.c @@ -419,6 +419,10 @@ static bool mods_handlers_master(matrix_row_t master_matrix[], matrix_row_t slav if (!mods_need_sync && new_mods.oneshot_mods != split_shmem->mods.oneshot_mods) { mods_need_sync = true; } + new_mods.oneshot_locked_mods = get_oneshot_locked_mods(); + if (!mods_need_sync && new_mods.oneshot_locked_mods != split_shmem->mods.oneshot_locked_mods) { + mods_need_sync = true; + } # endif // NO_ACTION_ONESHOT bool okay = true; @@ -442,6 +446,7 @@ static void mods_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave set_weak_mods(mods.weak_mods); # ifndef NO_ACTION_ONESHOT set_oneshot_mods(mods.oneshot_mods); + set_oneshot_locked_mods(mods.oneshot_locked_mods); # endif } diff --git a/quantum/split_common/transport.h b/quantum/split_common/transport.h index 4f6b968fa8..fbd87ca312 100644 --- a/quantum/split_common/transport.h +++ b/quantum/split_common/transport.h @@ -101,6 +101,7 @@ typedef struct _split_mods_sync_t { uint8_t weak_mods; # ifndef NO_ACTION_ONESHOT uint8_t oneshot_mods; + uint8_t oneshot_locked_mods; # endif // NO_ACTION_ONESHOT } split_mods_sync_t; #endif // SPLIT_MODS_ENABLE -- cgit v1.2.3 From 5daae4bee9622c58d13a901981540c7d95d5bbca Mon Sep 17 00:00:00 2001 From: Stefan Kerkmann Date: Sun, 5 May 2024 09:17:22 +0200 Subject: split_util: rename `usbIsActive` to `usb_bus_detected` (#23657) split_util: rename usbIsActive to usb_bus_detected This follows the style rules and better reflects the intent. Signed-off-by: Stefan Kerkmann --- quantum/split_common/split_util.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'quantum/split_common') diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c index 96f19bfd84..9af3c29d75 100644 --- a/quantum/split_common/split_util.c +++ b/quantum/split_common/split_util.c @@ -63,7 +63,7 @@ static struct { #if defined(SPLIT_USB_DETECT) _Static_assert((SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL) <= UINT16_MAX, "Please lower SPLIT_USB_TIMEOUT and/or increase SPLIT_USB_TIMEOUT_POLL."); -static bool usbIsActive(void) { +static bool usb_bus_detected(void) { for (uint16_t i = 0; i < (SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL); i++) { // This will return true if a USB connection has been established if (usb_connected_state()) { @@ -74,7 +74,7 @@ static bool usbIsActive(void) { return false; } #else -static inline bool usbIsActive(void) { +static inline bool usb_bus_detected(void) { return usb_vbus_state(); } #endif @@ -179,7 +179,7 @@ __attribute__((weak)) bool is_keyboard_left_impl(void) { } __attribute__((weak)) bool is_keyboard_master_impl(void) { - bool is_master = usbIsActive(); + bool is_master = usb_bus_detected(); // Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow if (!is_master) { -- cgit v1.2.3