[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LNX.2.00.1203122316420.18356@pobox.suse.cz>
Date: Mon, 12 Mar 2012 23:21:57 +0100 (CET)
From: Jiri Kosina <jkosina@...e.cz>
To: Stéphane Chatty <chatty@...c.fr>
Cc: Marcel Holtmann <marcel@...tmann.org>,
Henrik Rydberg <rydberg@...omail.se>,
"benjamin.tissoires" <benjamin.tissoires@...il.com>,
Dmitry Torokhov <dmitry.torokhov@...il.com>,
linux-input@...r.kernel.org, linux-kernel@...r.kernel.org,
"Gustavo F. Padovan" <padovan@...fusion.mobi>,
linux-bluetooth@...r.kernel.org
Subject: Re: [PATCH 4/5] HID: autoload hid-multitouch as needed
On Mon, 12 Mar 2012, Stéphane Chatty wrote:
> Just in case it makes a difference, I knew nothing about HIDP when I
> wrote the message above. My point was rather that hid looks like a bus
> to which several transport layers can connect (USB, Bluetooth, ZigBee,
> etc), and that having USB-specific code in hid/ (as opposed to having it
> in usb/) seems biased towards USB. I was (and am still) wondering how
> much it limits future uses of the hid core by making it USB-dependent.
>
> In other words: is the hid core generic enough or are there steps to
> take to make it more generic wrt transport layers? If we are talking
> about restructuring parts of it, this seems like the right time to ask
> :-)
Let me answer by a bit of history here. Originally, there have been two
copies of HID code in the kernel -- one for USB HID devices, one for
Bluetooth HID devices.
The parsers were not kept in sync, and there was a lot of code
duplication, creating quite some mess.
What I did back then in 2006 was that I have extracted the abstract HID
parts into HID core, and made it transport-independent in principle, so
that both USB HID and Bluetooth HID shared the common infrastructure,
while implementing different transport protocols.
Then we extended it a little bit further, making HID core a proper bus, to
which individual drivers (independently on underlying transport protocol
used) can register.
Currently there are just Bluetooth (hidp) and USB (usbhid) transport
implementations, with HID core being transport independent.
Hope this helps,
--
Jiri Kosina
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists