I can confirm that the patch breaks things when not using n key
rollover. If using the Corsair K70 in "BIOS mode" or just using a
plain USB-keyboard keys repeat forever as reported.
David, I noticed that in the first version of your patch, where the
ignore check was done in hid-core.c, you only checked events that had
the HID_MAIN_ITEM_VARIABLE flag set. I can see that "plain" keyboards
don't have this bit set on the release event so if I keep this check
in the new patch it works in both cases.
So, the if-clause now looks like this:
...
if (!(field->flags & (HID_MAIN_ITEM_RELATIVE |
HID_MAIN_ITEM_BUFFERED_BYTE)) &&
(field->flags & HID_MAIN_ITEM_VARIABLE) &&
usage->usage_index < field->maxusage &&
value == field->value[usage->usage_index]) {
...
On Wed, Dec 31, 2014 at 1:57 AM, Christopher Head <[email protected]> wrote:
> Hi,
> I tried your patch on my North American Das Keyboard 4. In N-key
> rollover mode the patch fixes the backslash problem. Unfortunately,
> with the patch applied, when in 6-key rollover mode (which, if I
> remember correctly, uses a one-byte DATA VAR ABS for modifiers and a
> six-byte DATA ARRAY ABS for other keys, as usual for keyboards), the
> last typed key repeats forever even after being released.
>
> (Apologies for the lack of In-Reply-To header; I am not subscribed to
> the list so had no message to reply to. Please CC me in replies if
> necessary.)
> --
> Christopher Head
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html