summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey Vlasov <sigprof@gmail.com>2023-08-01 06:14:20 +0300
committerGitHub <noreply@github.com>2023-08-01 04:14:20 +0100
commitd16d87c2f33f66e02861a657f259a9c82307de8f (patch)
tree438f80ee81ba71c5adf76818bede0c9d54fa7bf1
parent14e14e9ab8420bf15929d07da389a08a6d79fe3c (diff)
Keychron Q11 ISO: Fix left Shift breakage due to a wrong matrix mask (#21655)
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.
-rwxr-xr-xkeyboards/keychron/q11/q11.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/keyboards/keychron/q11/q11.c b/keyboards/keychron/q11/q11.c
index eccb5473e1..bf7bab4b53 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,