Thread (3 messages) 3 messages, 3 authors, 2021-07-27

Re: BUG: cannot enable iso_layout with apple keyboard

From: José Expósito <hidden>
Date: 2021-07-14 07:57:28
Also in: lkml

quoted hunk ↗ jump to hunk
Hi,

I have an apple keyboard model A1644 EMC 2815 with Finnish/Swedish ISO layout. When I connect it via 
cable it works fine. But when I connect it via bluetooth, then the buttons >/< and §/° are swapped.
It seems to make no difference if I set iso_layout to 0 or to 1. I checked and it turns out that
hid->country below equals 0, and removing the check
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
index 6b8f0d004d34..8a764ce4e518 100644
--- a/drivers/hid/hid-apple.c
+++ b/drivers/hid/hid-apple.c
@@ -267,13 +267,11 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input,
        }

        if (iso_layout) {
-               if (hid->country == HID_COUNTRY_INTERNATIONAL_ISO) {
                        trans = apple_find_translation(apple_iso_keyboard, usage->code);
                        if (trans) {
                                input_event(input, usage->type, trans->to, value);
                                return 1;
                        }
-               }
        }

        if (swap_opt_cmd) {
makes the buttons act correctly. Please let me know how I can help fixing this.

Best regards,
Julian Weigt
Hi Julian,

I can confirm I can reproduce the issue with a Spanish/Spain keyboard.

The problem seems to be that the field "bCountryCode" is not present when the keyboard is connected over bluetooth.

CCing Alex Henrie, hopefully he can add useful information about the issue.

Best wishes,
Jose
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help