HID: Allow drivers to be their own listener
authorDavid Herrmann <dh.herrmann@googlemail.com>
Fri, 20 Jul 2012 09:49:09 +0000 (11:49 +0200)
committerJiri Kosina <jkosina@suse.cz>
Fri, 20 Jul 2012 12:32:00 +0000 (14:32 +0200)
commit4bc19f62c57b8ccdd1c48e875752bd59abfb7aae
treef33e717433f165fc7d69b5a71ba726c7f6ef859b
parentff9bf5a2eff6e726406bcc097e8a578822d38859
HID: Allow drivers to be their own listener

hid-picolcd and hid-wiimote do not allow any of hidinput, hiddev or hidraw
to claim the device but still want to remain on the bus. Hence, if a
driver uses the raw_event callback but no other listener claimed the
device, we still leave it on the bus as the driver handles everything by
itself. It thus becomes its own listener.

Under some circumstances (eg., hidinput_connect() fails and raw_event set)
a device may be left on the bus even though it requires external
listeners. But then if hidinput_connect() fails there are bigger issues
than a device that is left unhandled. So we can safely use this heuristic
to avoid adding another flag for special devices like hid-picolcd and
hid-wiimote.

This also removes the ugly hack from hid-picolcd as this is no longer
required.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Acked-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-core.c
drivers/hid/hid-picolcd.c