From f22ceed4a093745b4b66829d1be72a3a55e03ec5 Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Mon, 31 Jul 2023 22:01:21 +0300 Subject: [PATCH] Keychron Q11 ISO: Fix left Shift breakage due to a wrong matrix mask Keychron Q11 uses `matrix_mask` to mask away the matrix location used for `SPLIT_HAND_MATRIX_GRID` (otherwise the keyboard will constantly generate a wakeup request whenever the host enters suspend). However, the value of `matrix_mask` is actually chosen to mask away all unused locations, but it was apparently generated for the ANSI board and therefore masks away the left Shift key on the ISO board, breaking the functionality of that key. Fix `matrix_mask` to make the masking work as intended: - Set the `[4, 1]` bit to 1; this is the matrix location for the ISO left Shift. - Set the `[2, 5]` bit to 0; this is actually the matrix location which corresponds to `#define SPLIT_HAND_MATRIX_GRID A2, A15` on the left side, which was intended to be masked; apparently the wakeup problem does not happen due to `SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT`, so the left half actually has that matrix location open. On the right side `A2, A15` is `[9, 6]`, which was masked off correctly. --- keyboards/keychron/q11/q11.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/keychron/q11/q11.c b/keyboards/keychron/q11/q11.c index eccb5473e15c..bf7bab4b5397 100755 --- a/keyboards/keychron/q11/q11.c +++ b/keyboards/keychron/q11/q11.c @@ -23,9 +23,9 @@ const matrix_row_t matrix_mask[] = { 0b011111111, 0b011111111, - 0b011111111, + 0b011011111, 0b001111111, - 0b011111101, + 0b011111111, 0b001011111, 0b111111111, 0b101111111,