Messages in this thread Patch in this message | | | From | Jiri Slaby <> | Subject | [PATCH 1/2] HID: add hid_type | Date | Sun, 19 Oct 2008 16:15:48 +0200 |
| |
Add type to the hid structure to distinguish to which device type (mouse/kbd) we are talking to. Needed for per device type ignore list support.
Note: this patch leaves the type as unknown for bluetooth devices, there is not support for this in the hidp code.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com> --- drivers/hid/usbhid/hid-core.c | 8 ++++++++ include/linux/hid.h | 7 +++++++ 2 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c index 1d3b8a3..20617d8 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c @@ -972,6 +972,14 @@ static int hid_probe(struct usb_interface *intf, const struct usb_device_id *id) hid->vendor = le16_to_cpu(dev->descriptor.idVendor); hid->product = le16_to_cpu(dev->descriptor.idProduct); hid->name[0] = 0; + switch (intf->cur_altsetting->desc.bInterfaceProtocol) { + case USB_INTERFACE_PROTOCOL_KEYBOARD: + hid->type = HID_TYPE_KEYBOARD; + break; + case USB_INTERFACE_PROTOCOL_MOUSE: + hid->type = HID_TYPE_MOUSE; + break; + } if (dev->manufacturer) strlcpy(hid->name, dev->manufacturer, sizeof(hid->name)); diff --git a/include/linux/hid.h b/include/linux/hid.h index f13bca2..36a3953 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h @@ -417,6 +417,12 @@ struct hid_input { struct input_dev *input; }; +enum hid_type { + HID_TYPE_UNKNOWN = 0, + HID_TYPE_MOUSE, + HID_TYPE_KEYBOARD +}; + struct hid_driver; struct hid_ll_driver; @@ -431,6 +437,7 @@ struct hid_device { /* device report descriptor */ __u32 vendor; /* Vendor ID */ __u32 product; /* Product ID */ __u32 version; /* HID version */ + enum hid_type type; /* device type (mouse, kbd, ...) */ unsigned country; /* HID country */ struct hid_report_enum report_enum[HID_REPORT_TYPES]; -- 1.6.0.2
| |