aboutsummaryrefslogtreecommitdiff
path: root/quantum/split_common
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/split_common')
-rw-r--r--quantum/split_common/split_util.c6
-rw-r--r--quantum/split_common/transactions.c5
-rw-r--r--quantum/split_common/transport.h1
3 files changed, 9 insertions, 3 deletions
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) {
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