| From: |
| Dmitry Torokhov <dtor_core@ameritech.net> |
| To: |
| linux-usb-devel@lists.sourceforge.net |
| Subject: |
| [RFC] Introduce usb_to_input_id |
| Date: |
| Sat, 4 Jun 2005 02:26:18 -0500 |
| Cc: |
| Greg Kroah-Hartman <greg@kroah.com>,
Vojtech Pavlik <vojtech@suse.cz> |
| Archive-link: |
| Article,
Thread
|
Hi,
I have noticed that all USB input devices use the exact same
sequence to initialize input_id from usb device. Would anyone
object to the patch below?
The patch is RFC only since it is on top of some local changes
and may not apply to other trees...
--
Dmitry
Input: introduce usb_to_input_id() to uniformly produce
struct input_id for USB input devices.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---
drivers/usb/input/acecad.c | 7 +++----
drivers/usb/input/aiptek.c | 7 +++----
drivers/usb/input/ati_remote.c | 7 +++----
drivers/usb/input/hid-input.c | 6 ++----
drivers/usb/input/itmtouch.c | 7 +++----
drivers/usb/input/kbtab.c | 7 +++----
drivers/usb/input/mtouchusb.c | 7 +++----
drivers/usb/input/powermate.c | 7 +++----
drivers/usb/input/touchkitusb.c | 6 ++----
drivers/usb/input/usb-input.h | 25 +++++++++++++++++++++++++
drivers/usb/input/usbkbd.c | 7 +++----
drivers/usb/input/usbmouse.c | 7 +++----
drivers/usb/input/wacom.c | 7 +++----
drivers/usb/input/xpad.c | 7 +++----
14 files changed, 62 insertions(+), 52 deletions(-)
Index: work/drivers/usb/input/acecad.c
===================================================================
--- work.orig/drivers/usb/input/acecad.c
+++ work/drivers/usb/input/acecad.c
@@ -32,6 +32,8 @@
#include <linux/init.h>
#include <linux/usb.h>
+#include "usb-input.h"
+
/*
* Version Information
*/
@@ -212,10 +214,7 @@ static int usb_acecad_probe(struct usb_i
acecad->dev.name = acecad->name;
acecad->dev.phys = acecad->phys;
- acecad->dev.id.bustype = BUS_USB;
- acecad->dev.id.vendor = le16_to_cpu(dev->descriptor.idVendor);
- acecad->dev.id.product = le16_to_cpu(dev->descriptor.idProduct);
- acecad->dev.id.version = le16_to_cpu(dev->descriptor.bcdDevice);
+ usb_to_input_id(dev, &acecad->dev.id);
acecad->dev.dev = &intf->dev;
usb_fill_int_urb(acecad->irq, dev, pipe,
Index: work/drivers/usb/input/aiptek.c
===================================================================
--- work.orig/drivers/usb/input/aiptek.c
+++ work/drivers/usb/input/aiptek.c
@@ -81,6 +81,8 @@
#include <asm/uaccess.h>
#include <asm/unaligned.h>
+#include "usb-input.h"
+
/*
* Version Information
*/
@@ -2125,10 +2127,7 @@ aiptek_probe(struct usb_interface *intf,
aiptek->inputdev.absflat[ABS_WHEEL] = 0;
aiptek->inputdev.name = "Aiptek";
aiptek->inputdev.phys = aiptek->features.usbPath;
- aiptek->inputdev.id.bustype = BUS_USB;
- aiptek->inputdev.id.vendor = le16_to_cpu(usbdev->descriptor.idVendor);
- aiptek->inputdev.id.product = le16_to_cpu(usbdev->descriptor.idProduct);
- aiptek->inputdev.id.version = le16_to_cpu(usbdev->descriptor.bcdDevice);
+ usb_to_input_id(usbdev, &aiptek->inputdev.id);
aiptek->inputdev.dev = &intf->dev;
aiptek->usbdev = usbdev;
Index: work/drivers/usb/input/usb-input.h
===================================================================
--- /dev/null
+++ work/drivers/usb/input/usb-input.h
@@ -0,0 +1,25 @@
+#ifndef __USB_INPUT_H
+#define __USB_INPUT_H
+
+/*
+ * Copyright (C) 2005 Dmitry Torokhov
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ */
+
+#include <linux/usb.h>
+#include <linux/input.h>
+#include <asm/byteorder.h>
+
+static inline void
+usb_to_input_id(const struct usb_device *dev, struct input_id *id)
+{
+ id->bustype = BUS_USB;
+ id->vendor = le16_to_cpu(dev->descriptor.idVendor);
+ id->product = le16_to_cpu(dev->descriptor.idProduct);
+ id->version = le16_to_cpu(dev->descriptor.bcdDevice);
+}
+
+#endif
Index: work/drivers/usb/input/usbkbd.c
===================================================================
--- work.orig/drivers/usb/input/usbkbd.c
+++ work/drivers/usb/input/usbkbd.c
@@ -33,6 +33,8 @@
#include <linux/init.h>
#include <linux/usb.h>
+#include "usb-input.h"
+
/*
* Version Information
*/
@@ -288,10 +290,7 @@ static int usb_kbd_probe(struct usb_inte
kbd->dev.name = kbd->name;
kbd->dev.phys = kbd->phys;
- kbd->dev.id.bustype = BUS_USB;
- kbd->dev.id.vendor = le16_to_cpu(dev->descriptor.idVendor);
- kbd->dev.id.product = le16_to_cpu(dev->descriptor.idProduct);
- kbd->dev.id.version = le16_to_cpu(dev->descriptor.bcdDevice);
+ usb_to_input_id(dev, &kbd->dev.id);
kbd->dev.dev = &iface->dev;
if (dev->manufacturer)
Index: work/drivers/usb/input/usbmouse.c
===================================================================
--- work.orig/drivers/usb/input/usbmouse.c
+++ work/drivers/usb/input/usbmouse.c
@@ -33,6 +33,8 @@
#include <linux/init.h>
#include <linux/usb.h>
+#include "usb-input.h"
+
/*
* Version Information
*/
@@ -171,10 +173,7 @@ static int usb_mouse_probe(struct usb_in
mouse->dev.name = mouse->name;
mouse->dev.phys = mouse->phys;
- mouse->dev.id.bustype = BUS_USB;
- mouse->dev.id.vendor = le16_to_cpu(dev->descriptor.idVendor);
- mouse->dev.id.product = le16_to_cpu(dev->descriptor.idProduct);
- mouse->dev.id.version = le16_to_cpu(dev->descriptor.bcdDevice);
+ usb_to_input_id(dev, &mouse->dev.id);
mouse->dev.dev = &intf->dev;
if (dev->manufacturer)
Index: work/drivers/usb/input/wacom.c
===================================================================
--- work.orig/drivers/usb/input/wacom.c
+++ work/drivers/usb/input/wacom.c
@@ -72,6 +72,8 @@
#include <asm/unaligned.h>
#include <asm/byteorder.h>
+#include "usb-input.h"
+
/*
* Version Information
*/
@@ -823,10 +825,7 @@ static int wacom_probe(struct usb_interf
wacom->dev.name = wacom->features->name;
wacom->dev.phys = wacom->phys;
- wacom->dev.id.bustype = BUS_USB;
- wacom->dev.id.vendor = le16_to_cpu(dev->descriptor.idVendor);
- wacom->dev.id.product = le16_to_cpu(dev->descriptor.idProduct);
- wacom->dev.id.version = le16_to_cpu(dev->descriptor.bcdDevice);
+ usb_to_input_id(dev, &wacom->dev.id);
wacom->dev.dev = &intf->dev;
wacom->usbdev = dev;
Index: work/drivers/usb/input/ati_remote.c
===================================================================
--- work.orig/drivers/usb/input/ati_remote.c
+++ work/drivers/usb/input/ati_remote.c
@@ -96,6 +96,8 @@
#include <linux/usb.h>
#include <linux/wait.h>
+#include "usb-input.h"
+
/*
* Module and Version Information, Module Parameters
*/
@@ -635,10 +637,7 @@ static void ati_remote_input_init(struct
idev->name = ati_remote->name;
idev->phys = ati_remote->phys;
- idev->id.bustype = BUS_USB;
- idev->id.vendor = le16_to_cpu(ati_remote->udev->descriptor.idVendor);
- idev->id.product = le16_to_cpu(ati_remote->udev->descriptor.idProduct);
- idev->id.version = le16_to_cpu(ati_remote->udev->descriptor.bcdDevice);
+ usb_to_input_id(ati_remote->udev, &idev->id);
}
static int ati_remote_initialize(struct ati_remote *ati_remote)
Index: work/drivers/usb/input/hid-input.c
===================================================================
--- work.orig/drivers/usb/input/hid-input.c
+++ work/drivers/usb/input/hid-input.c
@@ -34,6 +34,7 @@
#undef DEBUG
+#include "usb-input.h"
#include "hid.h"
#define unk KEY_UNKNOWN
@@ -581,10 +582,7 @@ int hidinput_connect(struct hid_device *
hidinput->input.name = hid->name;
hidinput->input.phys = hid->phys;
hidinput->input.uniq = hid->uniq;
- hidinput->input.id.bustype = BUS_USB;
- hidinput->input.id.vendor = le16_to_cpu(dev->descriptor.idVendor);
- hidinput->input.id.product = le16_to_cpu(dev->descriptor.idProduct);
- hidinput->input.id.version = le16_to_cpu(dev->descriptor.bcdDevice);
+ usb_to_input_id(dev, &hidinput->input.id);
hidinput->input.dev = &hid->intf->dev;
}
Index: work/drivers/usb/input/itmtouch.c
===================================================================
--- work.orig/drivers/usb/input/itmtouch.c
+++ work/drivers/usb/input/itmtouch.c
@@ -54,6 +54,8 @@
#include <linux/init.h>
#include <linux/usb.h>
+#include "usb-input.h"
+
/* only an 8 byte buffer necessary for a single packet */
#define ITM_BUFSIZE 8
#define PATH_SIZE 64
@@ -184,10 +186,7 @@ static int itmtouch_probe(struct usb_int
itmtouch->inputdev.name = itmtouch->name;
itmtouch->inputdev.phys = itmtouch->phys;
- itmtouch->inputdev.id.bustype = BUS_USB;
- itmtouch->inputdev.id.vendor = udev->descriptor.idVendor;
- itmtouch->inputdev.id.product = udev->descriptor.idProduct;
- itmtouch->inputdev.id.version = udev->descriptor.bcdDevice;
+ usb_to_input_id(udev, &itmtouch->inputdev.id);
itmtouch->inputdev.dev = &intf->dev;
if (!strlen(itmtouch->name))
Index: work/drivers/usb/input/kbtab.c
===================================================================
--- work.orig/drivers/usb/input/kbtab.c
+++ work/drivers/usb/input/kbtab.c
@@ -7,6 +7,8 @@
#include <asm/unaligned.h>
#include <asm/byteorder.h>
+#include "usb-input.h"
+
/*
* Version Information
* v0.0.1 - Original, extremely basic version, 2.4.xx only
@@ -167,10 +169,7 @@ static int kbtab_probe(struct usb_interf
kbtab->dev.name = "KB Gear Tablet";
kbtab->dev.phys = kbtab->phys;
- kbtab->dev.id.bustype = BUS_USB;
- kbtab->dev.id.vendor = le16_to_cpu(dev->descriptor.idVendor);
- kbtab->dev.id.product = le16_to_cpu(dev->descriptor.idProduct);
- kbtab->dev.id.version = le16_to_cpu(dev->descriptor.bcdDevice);
+ usb_to_input_id(dev, &kbtab->dev.id);
kbtab->dev.dev = &intf->dev;
kbtab->usbdev = dev;
Index: work/drivers/usb/input/mtouchusb.c
===================================================================
--- work.orig/drivers/usb/input/mtouchusb.c
+++ work/drivers/usb/input/mtouchusb.c
@@ -54,6 +54,8 @@
#include <linux/init.h>
#include <linux/usb.h>
+#include "usb-input.h"
+
#define MTOUCHUSB_MIN_XC 0x0
#define MTOUCHUSB_MAX_RAW_XC 0x4000
#define MTOUCHUSB_MAX_CALIB_XC 0xffff
@@ -232,10 +234,7 @@ static int mtouchusb_probe(struct usb_in
mtouch->input.name = mtouch->name;
mtouch->input.phys = mtouch->phys;
- mtouch->input.id.bustype = BUS_USB;
- mtouch->input.id.vendor = le16_to_cpu(udev->descriptor.idVendor);
- mtouch->input.id.product = le16_to_cpu(udev->descriptor.idProduct);
- mtouch->input.id.version = le16_to_cpu(udev->descriptor.bcdDevice);
+ usb_to_input_id(udev, &mtouch->input.id);
mtouch->input.dev = &intf->dev;
mtouch->input.evbit[0] = BIT(EV_KEY) | BIT(EV_ABS);
Index: work/drivers/usb/input/powermate.c
===================================================================
--- work.orig/drivers/usb/input/powermate.c
+++ work/drivers/usb/input/powermate.c
@@ -36,6 +36,8 @@
#include <linux/spinlock.h>
#include <linux/usb.h>
+#include "usb-input.h"
+
#define POWERMATE_VENDOR 0x077d /* Griffin Technology, Inc. */
#define POWERMATE_PRODUCT_NEW 0x0410 /* Griffin PowerMate */
#define POWERMATE_PRODUCT_OLD 0x04AA /* Griffin soundKnob */
@@ -389,10 +391,7 @@ static int powermate_probe(struct usb_in
pm->input.keybit[LONG(BTN_0)] = BIT(BTN_0);
pm->input.relbit[LONG(REL_DIAL)] = BIT(REL_DIAL);
pm->input.mscbit[LONG(MSC_PULSELED)] = BIT(MSC_PULSELED);
- pm->input.id.bustype = BUS_USB;
- pm->input.id.vendor = le16_to_cpu(udev->descriptor.idVendor);
- pm->input.id.product = le16_to_cpu(udev->descriptor.idProduct);
- pm->input.id.version = le16_to_cpu(udev->descriptor.bcdDevice);
+ usb_to_input_id(udev, &pm->input.id);
pm->input.event = powermate_input_event;
pm->input.dev = &intf->dev;
pm->input.phys = pm->phys;
Index: work/drivers/usb/input/touchkitusb.c
===================================================================
--- work.orig/drivers/usb/input/touchkitusb.c
+++ work/drivers/usb/input/touchkitusb.c
@@ -36,6 +36,7 @@
#endif
#include <linux/usb.h>
+#include "usb-input.h"
#define TOUCHKIT_MIN_XC 0x0
#define TOUCHKIT_MAX_XC 0x07ff
@@ -202,10 +203,7 @@ static int touchkit_probe(struct usb_int
touchkit->input.name = touchkit->name;
touchkit->input.phys = touchkit->phys;
- touchkit->input.id.bustype = BUS_USB;
- touchkit->input.id.vendor = le16_to_cpu(udev->descriptor.idVendor);
- touchkit->input.id.product = le16_to_cpu(udev->descriptor.idProduct);
- touchkit->input.id.version = le16_to_cpu(udev->descriptor.bcdDevice);
+ usb_to_input_id(udev, &touchkit->input.id);
touchkit->input.dev = &intf->dev;
touchkit->input.evbit[0] = BIT(EV_KEY) | BIT(EV_ABS);
Index: work/drivers/usb/input/xpad.c
===================================================================
--- work.orig/drivers/usb/input/xpad.c
+++ work/drivers/usb/input/xpad.c
@@ -63,6 +63,8 @@
#include <linux/smp_lock.h>
#include <linux/usb.h>
+#include "usb-input.h"
+
#define DRIVER_VERSION "v0.0.5"
#define DRIVER_AUTHOR "Marko Friedemann <mfr@bmx-chemnitz.de>"
#define DRIVER_DESC "X-Box pad driver"
@@ -256,10 +258,7 @@ static int xpad_probe(struct usb_interfa
xpad->udev = udev;
- xpad->dev.id.bustype = BUS_USB;
- xpad->dev.id.vendor = le16_to_cpu(udev->descriptor.idVendor);
- xpad->dev.id.product = le16_to_cpu(udev->descriptor.idProduct);
- xpad->dev.id.version = le16_to_cpu(udev->descriptor.bcdDevice);
+ usb_to_input_id(udev, &xpad->dev.id);
xpad->dev.dev = &intf->dev;
xpad->dev.private = xpad;
xpad->dev.name = xpad_device[i].name;
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel