Re: [PATCH 1/2] HID: add hid_type

From: Justin Mattock
Date: Sun Oct 19 2008 - 15:08:38 EST


On Sun, Oct 19, 2008 at 7:15 AM, Jiri Slaby <jirislaby@xxxxxxxxx> wrote:
> 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@xxxxxxxxx>
> ---
> 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
>
>

O.k. reverted the old patch and
applied the two new ones.
appletouchpad is working;
I didn't use patch -p1,
just manually applied the two.

--
Justin P. Mattock
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/