Re: HID: is scancode correctly reported after key status change inhidinput_hid_event()?

From: Jiri Kosina
Date: Sat Jan 09 2010 - 10:15:53 EST


On Sat, 9 Jan 2010, Roel Kluin wrote:

> vi drivers/hid/hid-input.c +634 and not in hidinput_hid_event()
>
> /* report the usage code as scancode if the key status has changed */
> if (usage->type == EV_KEY && !!test_bit(usage->code, input->key) != value)
> input_event(input, EV_MSC, MSC_SCAN, usage->hid);
>
> Only if value is 1 or 0 the input_event() can occur, but value doesn't
> seem to be intended to be used as a boolean. are we really doing the
> correct test here?

Hi Roel,

well, value 2 means 'repeated' key, and there is no other possibility for
EV_KEY value than 0,1,2.

For EV_KEY events generated by HID devices, the autorepeat is done by
input core (as the device sends the report only when status is changed),
so there is no easy way how to inject EV_MSC into the 'autorepeat reports'
anyway.

Are you hitting some bug because of this, or have you found this out
solely by code reading?

Thanks,

--
Jiri Kosina
SUSE Labs, Novell Inc.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/