The uhidev driver handles all Human Interface Devices. Each
HID device
can have several components, e.g., a keyboard and a mouse.
These components
use different report identifiers (a byte) to distinguish which one
data is coming from. The uhidev driver has other drivers
attached that
handle particular kinds of devices and uhidev only dispatches data to
them based on the report id.