On 03/19/2013 10:25 PM, Henrik Rydberg wrote: > Hi Benjamin, > >> There is no need to register an input device containing no events. >> This allows drivers using the quirk MULTI_INPUT to register one input >> per report effectively used. >> >> For backward compatibility, we need to add a quirk to request >> this behavior. >> >> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx> >> --- >> drivers/hid/hid-input.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++ >> include/linux/hid.h | 1 + >> 2 files changed, 78 insertions(+) >> >> diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c >> index 21b196c..7aaf7d3 100644 >> --- a/drivers/hid/hid-input.c >> +++ b/drivers/hid/hid-input.c >> @@ -1198,6 +1198,67 @@ static struct hid_input *hidinput_allocate(struct hid_device *hid) >> return hidinput; >> } >> >> +static bool hidinput_has_been_populated(struct hid_input *hidinput) >> +{ >> + int i; >> + bool r = 0; >> + >> + for (i = 0; i < BITS_TO_LONGS(EV_CNT); i++) >> + r = r || hidinput->input->evbit[i]; > > I believe there is a bit count method that will do this for you (weight). > Actually, weight does not work here. evbit[] is an array of long, and we still need to check if each field of this array is not null. Thus, the following can be used (r being a long here): r |= hidinput->input->evbit[i]; Cheers, Benjamin -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html