diff options
Diffstat (limited to 'drivers/usb/input')
-rw-r--r-- | drivers/usb/input/acecad.c | 4 | ||||
-rw-r--r-- | drivers/usb/input/aiptek.c | 4 | ||||
-rw-r--r-- | drivers/usb/input/appletouch.c | 117 | ||||
-rw-r--r-- | drivers/usb/input/ati_remote.c | 4 | ||||
-rw-r--r-- | drivers/usb/input/ati_remote2.c | 2 | ||||
-rw-r--r-- | drivers/usb/input/hid-core.c | 83 | ||||
-rw-r--r-- | drivers/usb/input/hid-input.c | 36 | ||||
-rw-r--r-- | drivers/usb/input/hid.h | 11 | ||||
-rw-r--r-- | drivers/usb/input/itmtouch.c | 4 | ||||
-rw-r--r-- | drivers/usb/input/kbtab.c | 5 | ||||
-rw-r--r-- | drivers/usb/input/keyspan_remote.c | 4 | ||||
-rw-r--r-- | drivers/usb/input/mtouchusb.c | 4 | ||||
-rw-r--r-- | drivers/usb/input/powermate.c | 4 | ||||
-rw-r--r-- | drivers/usb/input/touchkitusb.c | 4 | ||||
-rw-r--r-- | drivers/usb/input/usbkbd.c | 4 | ||||
-rw-r--r-- | drivers/usb/input/usbmouse.c | 4 | ||||
-rw-r--r-- | drivers/usb/input/usbtouchscreen.c | 2 | ||||
-rw-r--r-- | drivers/usb/input/wacom.c | 5 | ||||
-rw-r--r-- | drivers/usb/input/xpad.c | 4 | ||||
-rw-r--r-- | drivers/usb/input/yealink.c | 4 |
20 files changed, 205 insertions, 104 deletions
diff --git a/drivers/usb/input/acecad.c b/drivers/usb/input/acecad.c index df29b8078b54..18c10e150ef3 100644 --- a/drivers/usb/input/acecad.c +++ b/drivers/usb/input/acecad.c | |||
@@ -27,11 +27,9 @@ | |||
27 | 27 | ||
28 | #include <linux/kernel.h> | 28 | #include <linux/kernel.h> |
29 | #include <linux/slab.h> | 29 | #include <linux/slab.h> |
30 | #include <linux/input.h> | ||
31 | #include <linux/module.h> | 30 | #include <linux/module.h> |
32 | #include <linux/init.h> | 31 | #include <linux/init.h> |
33 | #include <linux/usb.h> | 32 | #include <linux/usb/input.h> |
34 | #include <linux/usb_input.h> | ||
35 | 33 | ||
36 | /* | 34 | /* |
37 | * Version Information | 35 | * Version Information |
diff --git a/drivers/usb/input/aiptek.c b/drivers/usb/input/aiptek.c index a6693b0d1c4c..b138dae2b055 100644 --- a/drivers/usb/input/aiptek.c +++ b/drivers/usb/input/aiptek.c | |||
@@ -73,11 +73,9 @@ | |||
73 | #include <linux/jiffies.h> | 73 | #include <linux/jiffies.h> |
74 | #include <linux/kernel.h> | 74 | #include <linux/kernel.h> |
75 | #include <linux/slab.h> | 75 | #include <linux/slab.h> |
76 | #include <linux/input.h> | ||
77 | #include <linux/module.h> | 76 | #include <linux/module.h> |
78 | #include <linux/init.h> | 77 | #include <linux/init.h> |
79 | #include <linux/usb.h> | 78 | #include <linux/usb/input.h> |
80 | #include <linux/usb_input.h> | ||
81 | #include <linux/sched.h> | 79 | #include <linux/sched.h> |
82 | #include <asm/uaccess.h> | 80 | #include <asm/uaccess.h> |
83 | #include <asm/unaligned.h> | 81 | #include <asm/unaligned.h> |
diff --git a/drivers/usb/input/appletouch.c b/drivers/usb/input/appletouch.c index c222ed13deab..36855062eacc 100644 --- a/drivers/usb/input/appletouch.c +++ b/drivers/usb/input/appletouch.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Apple USB Touchpad (for post-February 2005 PowerBooks) driver | 2 | * Apple USB Touchpad (for post-February 2005 PowerBooks and MacBooks) driver |
3 | * | 3 | * |
4 | * Copyright (C) 2001-2004 Greg Kroah-Hartman (greg@kroah.com) | 4 | * Copyright (C) 2001-2004 Greg Kroah-Hartman (greg@kroah.com) |
5 | * Copyright (C) 2005 Johannes Berg (johannes@sipsolutions.net) | 5 | * Copyright (C) 2005 Johannes Berg (johannes@sipsolutions.net) |
@@ -7,6 +7,7 @@ | |||
7 | * Copyright (C) 2005 Frank Arnold (frank@scirocco-5v-turbo.de) | 7 | * Copyright (C) 2005 Frank Arnold (frank@scirocco-5v-turbo.de) |
8 | * Copyright (C) 2005 Peter Osterlund (petero2@telia.com) | 8 | * Copyright (C) 2005 Peter Osterlund (petero2@telia.com) |
9 | * Copyright (C) 2005 Michael Hanselmann (linux-kernel@hansmi.ch) | 9 | * Copyright (C) 2005 Michael Hanselmann (linux-kernel@hansmi.ch) |
10 | * Copyright (C) 2006 Nicolas Boichat (nicolas@boichat.ch) | ||
10 | * | 11 | * |
11 | * Thanks to Alex Harper <basilisk@foobox.net> for his inputs. | 12 | * Thanks to Alex Harper <basilisk@foobox.net> for his inputs. |
12 | * | 13 | * |
@@ -32,9 +33,7 @@ | |||
32 | #include <linux/init.h> | 33 | #include <linux/init.h> |
33 | #include <linux/slab.h> | 34 | #include <linux/slab.h> |
34 | #include <linux/module.h> | 35 | #include <linux/module.h> |
35 | #include <linux/usb.h> | 36 | #include <linux/usb/input.h> |
36 | #include <linux/input.h> | ||
37 | #include <linux/usb_input.h> | ||
38 | 37 | ||
39 | /* Apple has powerbooks which have the keyboard with different Product IDs */ | 38 | /* Apple has powerbooks which have the keyboard with different Product IDs */ |
40 | #define APPLE_VENDOR_ID 0x05AC | 39 | #define APPLE_VENDOR_ID 0x05AC |
@@ -44,6 +43,11 @@ | |||
44 | #define GEYSER_ISO_PRODUCT_ID 0x0215 | 43 | #define GEYSER_ISO_PRODUCT_ID 0x0215 |
45 | #define GEYSER_JIS_PRODUCT_ID 0x0216 | 44 | #define GEYSER_JIS_PRODUCT_ID 0x0216 |
46 | 45 | ||
46 | /* MacBook devices */ | ||
47 | #define GEYSER3_ANSI_PRODUCT_ID 0x0217 | ||
48 | #define GEYSER3_ISO_PRODUCT_ID 0x0218 | ||
49 | #define GEYSER3_JIS_PRODUCT_ID 0x0219 | ||
50 | |||
47 | #define ATP_DEVICE(prod) \ | 51 | #define ATP_DEVICE(prod) \ |
48 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE | \ | 52 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE | \ |
49 | USB_DEVICE_ID_MATCH_INT_CLASS | \ | 53 | USB_DEVICE_ID_MATCH_INT_CLASS | \ |
@@ -65,6 +69,10 @@ static struct usb_device_id atp_table [] = { | |||
65 | { ATP_DEVICE(GEYSER_ISO_PRODUCT_ID) }, | 69 | { ATP_DEVICE(GEYSER_ISO_PRODUCT_ID) }, |
66 | { ATP_DEVICE(GEYSER_JIS_PRODUCT_ID) }, | 70 | { ATP_DEVICE(GEYSER_JIS_PRODUCT_ID) }, |
67 | 71 | ||
72 | { ATP_DEVICE(GEYSER3_ANSI_PRODUCT_ID) }, | ||
73 | { ATP_DEVICE(GEYSER3_ISO_PRODUCT_ID) }, | ||
74 | { ATP_DEVICE(GEYSER3_JIS_PRODUCT_ID) }, | ||
75 | |||
68 | /* Terminating entry */ | 76 | /* Terminating entry */ |
69 | { } | 77 | { } |
70 | }; | 78 | }; |
@@ -101,6 +109,13 @@ MODULE_DEVICE_TABLE (usb, atp_table); | |||
101 | */ | 109 | */ |
102 | #define ATP_THRESHOLD 5 | 110 | #define ATP_THRESHOLD 5 |
103 | 111 | ||
112 | /* MacBook Pro (Geyser 3) initialization constants */ | ||
113 | #define ATP_GEYSER3_MODE_READ_REQUEST_ID 1 | ||
114 | #define ATP_GEYSER3_MODE_WRITE_REQUEST_ID 9 | ||
115 | #define ATP_GEYSER3_MODE_REQUEST_VALUE 0x300 | ||
116 | #define ATP_GEYSER3_MODE_REQUEST_INDEX 0 | ||
117 | #define ATP_GEYSER3_MODE_VENDOR_VALUE 0x04 | ||
118 | |||
104 | /* Structure to hold all of our device specific stuff */ | 119 | /* Structure to hold all of our device specific stuff */ |
105 | struct atp { | 120 | struct atp { |
106 | char phys[64]; | 121 | char phys[64]; |
@@ -147,13 +162,22 @@ MODULE_PARM_DESC(debug, "Activate debugging output"); | |||
147 | /* Checks if the device a Geyser 2 (ANSI, ISO, JIS) */ | 162 | /* Checks if the device a Geyser 2 (ANSI, ISO, JIS) */ |
148 | static inline int atp_is_geyser_2(struct atp *dev) | 163 | static inline int atp_is_geyser_2(struct atp *dev) |
149 | { | 164 | { |
150 | int16_t productId = le16_to_cpu(dev->udev->descriptor.idProduct); | 165 | u16 productId = le16_to_cpu(dev->udev->descriptor.idProduct); |
151 | 166 | ||
152 | return (productId == GEYSER_ANSI_PRODUCT_ID) || | 167 | return (productId == GEYSER_ANSI_PRODUCT_ID) || |
153 | (productId == GEYSER_ISO_PRODUCT_ID) || | 168 | (productId == GEYSER_ISO_PRODUCT_ID) || |
154 | (productId == GEYSER_JIS_PRODUCT_ID); | 169 | (productId == GEYSER_JIS_PRODUCT_ID); |
155 | } | 170 | } |
156 | 171 | ||
172 | static inline int atp_is_geyser_3(struct atp *dev) | ||
173 | { | ||
174 | u16 productId = le16_to_cpu(dev->udev->descriptor.idProduct); | ||
175 | |||
176 | return (productId == GEYSER3_ANSI_PRODUCT_ID) || | ||
177 | (productId == GEYSER3_ISO_PRODUCT_ID) || | ||
178 | (productId == GEYSER3_JIS_PRODUCT_ID); | ||
179 | } | ||
180 | |||
157 | static int atp_calculate_abs(int *xy_sensors, int nb_sensors, int fact, | 181 | static int atp_calculate_abs(int *xy_sensors, int nb_sensors, int fact, |
158 | int *z, int *fingers) | 182 | int *z, int *fingers) |
159 | { | 183 | { |
@@ -219,12 +243,33 @@ static void atp_complete(struct urb* urb, struct pt_regs* regs) | |||
219 | 243 | ||
220 | /* drop incomplete datasets */ | 244 | /* drop incomplete datasets */ |
221 | if (dev->urb->actual_length != dev->datalen) { | 245 | if (dev->urb->actual_length != dev->datalen) { |
222 | dprintk("appletouch: incomplete data package.\n"); | 246 | dprintk("appletouch: incomplete data package" |
247 | " (first byte: %d, length: %d).\n", | ||
248 | dev->data[0], dev->urb->actual_length); | ||
223 | goto exit; | 249 | goto exit; |
224 | } | 250 | } |
225 | 251 | ||
226 | /* reorder the sensors values */ | 252 | /* reorder the sensors values */ |
227 | if (atp_is_geyser_2(dev)) { | 253 | if (atp_is_geyser_3(dev)) { |
254 | memset(dev->xy_cur, 0, sizeof(dev->xy_cur)); | ||
255 | |||
256 | /* | ||
257 | * The values are laid out like this: | ||
258 | * -, Y1, Y2, -, Y3, Y4, -, ..., -, X1, X2, -, X3, X4, ... | ||
259 | * '-' is an unused value. | ||
260 | */ | ||
261 | |||
262 | /* read X values */ | ||
263 | for (i = 0, j = 19; i < 20; i += 2, j += 3) { | ||
264 | dev->xy_cur[i] = dev->data[j + 1]; | ||
265 | dev->xy_cur[i + 1] = dev->data[j + 2]; | ||
266 | } | ||
267 | /* read Y values */ | ||
268 | for (i = 0, j = 1; i < 9; i += 2, j += 3) { | ||
269 | dev->xy_cur[ATP_XSENSORS + i] = dev->data[j + 1]; | ||
270 | dev->xy_cur[ATP_XSENSORS + i + 1] = dev->data[j + 2]; | ||
271 | } | ||
272 | } else if (atp_is_geyser_2(dev)) { | ||
228 | memset(dev->xy_cur, 0, sizeof(dev->xy_cur)); | 273 | memset(dev->xy_cur, 0, sizeof(dev->xy_cur)); |
229 | 274 | ||
230 | /* | 275 | /* |
@@ -267,6 +312,9 @@ static void atp_complete(struct urb* urb, struct pt_regs* regs) | |||
267 | dev->x_old = dev->y_old = -1; | 312 | dev->x_old = dev->y_old = -1; |
268 | memcpy(dev->xy_old, dev->xy_cur, sizeof(dev->xy_old)); | 313 | memcpy(dev->xy_old, dev->xy_cur, sizeof(dev->xy_old)); |
269 | 314 | ||
315 | if (atp_is_geyser_3(dev)) /* No 17" Macbooks (yet) */ | ||
316 | goto exit; | ||
317 | |||
270 | /* 17" Powerbooks have extra X sensors */ | 318 | /* 17" Powerbooks have extra X sensors */ |
271 | for (i = (atp_is_geyser_2(dev)?15:16); i < ATP_XSENSORS; i++) { | 319 | for (i = (atp_is_geyser_2(dev)?15:16); i < ATP_XSENSORS; i++) { |
272 | if (!dev->xy_cur[i]) continue; | 320 | if (!dev->xy_cur[i]) continue; |
@@ -414,7 +462,50 @@ static int atp_probe(struct usb_interface *iface, const struct usb_device_id *id | |||
414 | dev->udev = udev; | 462 | dev->udev = udev; |
415 | dev->input = input_dev; | 463 | dev->input = input_dev; |
416 | dev->overflowwarn = 0; | 464 | dev->overflowwarn = 0; |
417 | dev->datalen = (atp_is_geyser_2(dev)?64:81); | 465 | if (atp_is_geyser_3(dev)) |
466 | dev->datalen = 64; | ||
467 | else if (atp_is_geyser_2(dev)) | ||
468 | dev->datalen = 64; | ||
469 | else | ||
470 | dev->datalen = 81; | ||
471 | |||
472 | if (atp_is_geyser_3(dev)) { | ||
473 | /* | ||
474 | * By default Geyser 3 device sends standard USB HID mouse | ||
475 | * packets (Report ID 2). This code changes device mode, so it | ||
476 | * sends raw sensor reports (Report ID 5). | ||
477 | */ | ||
478 | char data[8]; | ||
479 | int size; | ||
480 | |||
481 | size = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), | ||
482 | ATP_GEYSER3_MODE_READ_REQUEST_ID, | ||
483 | USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | ||
484 | ATP_GEYSER3_MODE_REQUEST_VALUE, | ||
485 | ATP_GEYSER3_MODE_REQUEST_INDEX, &data, 8, 5000); | ||
486 | |||
487 | if (size != 8) { | ||
488 | err("Could not do mode read request from device" | ||
489 | " (Geyser 3 mode)"); | ||
490 | goto err_free_devs; | ||
491 | } | ||
492 | |||
493 | /* Apply the mode switch */ | ||
494 | data[0] = ATP_GEYSER3_MODE_VENDOR_VALUE; | ||
495 | |||
496 | size = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), | ||
497 | ATP_GEYSER3_MODE_WRITE_REQUEST_ID, | ||
498 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | ||
499 | ATP_GEYSER3_MODE_REQUEST_VALUE, | ||
500 | ATP_GEYSER3_MODE_REQUEST_INDEX, &data, 8, 5000); | ||
501 | |||
502 | if (size != 8) { | ||
503 | err("Could not do mode write request to device" | ||
504 | " (Geyser 3 mode)"); | ||
505 | goto err_free_devs; | ||
506 | } | ||
507 | printk("appletouch Geyser 3 inited.\n"); | ||
508 | } | ||
418 | 509 | ||
419 | dev->urb = usb_alloc_urb(0, GFP_KERNEL); | 510 | dev->urb = usb_alloc_urb(0, GFP_KERNEL); |
420 | if (!dev->urb) { | 511 | if (!dev->urb) { |
@@ -447,7 +538,15 @@ static int atp_probe(struct usb_interface *iface, const struct usb_device_id *id | |||
447 | 538 | ||
448 | set_bit(EV_ABS, input_dev->evbit); | 539 | set_bit(EV_ABS, input_dev->evbit); |
449 | 540 | ||
450 | if (atp_is_geyser_2(dev)) { | 541 | if (atp_is_geyser_3(dev)) { |
542 | /* | ||
543 | * MacBook have 20 X sensors, 10 Y sensors | ||
544 | */ | ||
545 | input_set_abs_params(input_dev, ABS_X, 0, | ||
546 | ((20 - 1) * ATP_XFACT) - 1, ATP_FUZZ, 0); | ||
547 | input_set_abs_params(input_dev, ABS_Y, 0, | ||
548 | ((10 - 1) * ATP_YFACT) - 1, ATP_FUZZ, 0); | ||
549 | } else if (atp_is_geyser_2(dev)) { | ||
451 | /* | 550 | /* |
452 | * Oct 2005 15" PowerBooks have 15 X sensors, 17" are detected | 551 | * Oct 2005 15" PowerBooks have 15 X sensors, 17" are detected |
453 | * later. | 552 | * later. |
diff --git a/drivers/usb/input/ati_remote.c b/drivers/usb/input/ati_remote.c index 99f986cb6e95..07c8c0e665dd 100644 --- a/drivers/usb/input/ati_remote.c +++ b/drivers/usb/input/ati_remote.c | |||
@@ -92,9 +92,7 @@ | |||
92 | #include <linux/slab.h> | 92 | #include <linux/slab.h> |
93 | #include <linux/module.h> | 93 | #include <linux/module.h> |
94 | #include <linux/moduleparam.h> | 94 | #include <linux/moduleparam.h> |
95 | #include <linux/input.h> | 95 | #include <linux/usb/input.h> |
96 | #include <linux/usb.h> | ||
97 | #include <linux/usb_input.h> | ||
98 | #include <linux/wait.h> | 96 | #include <linux/wait.h> |
99 | #include <linux/jiffies.h> | 97 | #include <linux/jiffies.h> |
100 | 98 | ||
diff --git a/drivers/usb/input/ati_remote2.c b/drivers/usb/input/ati_remote2.c index ab1a1ae24be9..ea71de81ca6b 100644 --- a/drivers/usb/input/ati_remote2.c +++ b/drivers/usb/input/ati_remote2.c | |||
@@ -8,7 +8,7 @@ | |||
8 | * as published by the Free Software Foundation. | 8 | * as published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/usb_input.h> | 11 | #include <linux/usb/input.h> |
12 | 12 | ||
13 | #define DRIVER_DESC "ATI/Philips USB RF remote driver" | 13 | #define DRIVER_DESC "ATI/Philips USB RF remote driver" |
14 | #define DRIVER_VERSION "0.1" | 14 | #define DRIVER_VERSION "0.1" |
diff --git a/drivers/usb/input/hid-core.c b/drivers/usb/input/hid-core.c index 435273e7c85c..b9fb9687f926 100644 --- a/drivers/usb/input/hid-core.c +++ b/drivers/usb/input/hid-core.c | |||
@@ -944,21 +944,28 @@ static void hid_reset(void *_hid) | |||
944 | dev_dbg(&hid->intf->dev, "resetting device\n"); | 944 | dev_dbg(&hid->intf->dev, "resetting device\n"); |
945 | rc = rc_lock = usb_lock_device_for_reset(hid->dev, hid->intf); | 945 | rc = rc_lock = usb_lock_device_for_reset(hid->dev, hid->intf); |
946 | if (rc_lock >= 0) { | 946 | if (rc_lock >= 0) { |
947 | rc = usb_reset_device(hid->dev); | 947 | rc = usb_reset_composite_device(hid->dev, hid->intf); |
948 | if (rc_lock) | 948 | if (rc_lock) |
949 | usb_unlock_device(hid->dev); | 949 | usb_unlock_device(hid->dev); |
950 | } | 950 | } |
951 | clear_bit(HID_RESET_PENDING, &hid->iofl); | 951 | clear_bit(HID_RESET_PENDING, &hid->iofl); |
952 | 952 | ||
953 | if (rc == 0) { | 953 | switch (rc) { |
954 | hid->retry_delay = 0; | 954 | case 0: |
955 | if (hid_start_in(hid)) | 955 | if (!test_bit(HID_IN_RUNNING, &hid->iofl)) |
956 | hid_io_error(hid); | 956 | hid_io_error(hid); |
957 | } else if (!(rc == -ENODEV || rc == -EHOSTUNREACH || rc == -EINTR)) | 957 | break; |
958 | default: | ||
958 | err("can't reset device, %s-%s/input%d, status %d", | 959 | err("can't reset device, %s-%s/input%d, status %d", |
959 | hid->dev->bus->bus_name, | 960 | hid->dev->bus->bus_name, |
960 | hid->dev->devpath, | 961 | hid->dev->devpath, |
961 | hid->ifnum, rc); | 962 | hid->ifnum, rc); |
963 | /* FALLTHROUGH */ | ||
964 | case -EHOSTUNREACH: | ||
965 | case -ENODEV: | ||
966 | case -EINTR: | ||
967 | break; | ||
968 | } | ||
962 | } | 969 | } |
963 | 970 | ||
964 | /* Main I/O error handler */ | 971 | /* Main I/O error handler */ |
@@ -1374,9 +1381,6 @@ void hid_close(struct hid_device *hid) | |||
1374 | 1381 | ||
1375 | #define USB_VENDOR_ID_PANJIT 0x134c | 1382 | #define USB_VENDOR_ID_PANJIT 0x134c |
1376 | 1383 | ||
1377 | #define USB_VENDOR_ID_SILVERCREST 0x062a | ||
1378 | #define USB_DEVICE_ID_SILVERCREST_KB 0x0201 | ||
1379 | |||
1380 | /* | 1384 | /* |
1381 | * Initialize all reports | 1385 | * Initialize all reports |
1382 | */ | 1386 | */ |
@@ -1461,9 +1465,6 @@ void hid_init_reports(struct hid_device *hid) | |||
1461 | #define USB_VENDOR_ID_ONTRAK 0x0a07 | 1465 | #define USB_VENDOR_ID_ONTRAK 0x0a07 |
1462 | #define USB_DEVICE_ID_ONTRAK_ADU100 0x0064 | 1466 | #define USB_DEVICE_ID_ONTRAK_ADU100 0x0064 |
1463 | 1467 | ||
1464 | #define USB_VENDOR_ID_TANGTOP 0x0d3d | ||
1465 | #define USB_DEVICE_ID_TANGTOP_USBPS2 0x0001 | ||
1466 | |||
1467 | #define USB_VENDOR_ID_ESSENTIAL_REALITY 0x0d7f | 1468 | #define USB_VENDOR_ID_ESSENTIAL_REALITY 0x0d7f |
1468 | #define USB_DEVICE_ID_ESSENTIAL_REALITY_P5 0x0100 | 1469 | #define USB_DEVICE_ID_ESSENTIAL_REALITY_P5 0x0100 |
1469 | 1470 | ||
@@ -1520,12 +1521,6 @@ void hid_init_reports(struct hid_device *hid) | |||
1520 | #define USB_DEVICE_ID_MCC_PMD1024LS 0x0076 | 1521 | #define USB_DEVICE_ID_MCC_PMD1024LS 0x0076 |
1521 | #define USB_DEVICE_ID_MCC_PMD1208LS 0x007a | 1522 | #define USB_DEVICE_ID_MCC_PMD1208LS 0x007a |
1522 | 1523 | ||
1523 | #define USB_VENDOR_ID_CHICONY 0x04f2 | ||
1524 | #define USB_DEVICE_ID_CHICONY_USBHUB_KB 0x0100 | ||
1525 | |||
1526 | #define USB_VENDOR_ID_BTC 0x046e | ||
1527 | #define USB_DEVICE_ID_BTC_KEYBOARD 0x5303 | ||
1528 | |||
1529 | #define USB_VENDOR_ID_VERNIER 0x08f7 | 1524 | #define USB_VENDOR_ID_VERNIER 0x08f7 |
1530 | #define USB_DEVICE_ID_VERNIER_LABPRO 0x0001 | 1525 | #define USB_DEVICE_ID_VERNIER_LABPRO 0x0001 |
1531 | #define USB_DEVICE_ID_VERNIER_GOTEMP 0x0002 | 1526 | #define USB_DEVICE_ID_VERNIER_GOTEMP 0x0002 |
@@ -1549,20 +1544,13 @@ void hid_init_reports(struct hid_device *hid) | |||
1549 | #define USB_DEVICE_ID_LD_MACHINETEST 0x2040 | 1544 | #define USB_DEVICE_ID_LD_MACHINETEST 0x2040 |
1550 | 1545 | ||
1551 | #define USB_VENDOR_ID_APPLE 0x05ac | 1546 | #define USB_VENDOR_ID_APPLE 0x05ac |
1552 | #define USB_DEVICE_ID_APPLE_POWERMOUSE 0x0304 | 1547 | #define USB_DEVICE_ID_APPLE_MIGHTYMOUSE 0x0304 |
1553 | 1548 | ||
1554 | #define USB_VENDOR_ID_CHERRY 0x046a | 1549 | #define USB_VENDOR_ID_CHERRY 0x046a |
1555 | #define USB_DEVICE_ID_CHERRY_CYMOTION 0x0023 | 1550 | #define USB_DEVICE_ID_CHERRY_CYMOTION 0x0023 |
1556 | 1551 | ||
1557 | #define USB_VENDOR_ID_HP 0x03f0 | 1552 | #define USB_VENDOR_ID_YEALINK 0x6993 |
1558 | #define USB_DEVICE_ID_HP_USBHUB_KB 0x020c | 1553 | #define USB_DEVICE_ID_YEALINK_P1K_P4K_B2K 0xb001 |
1559 | |||
1560 | #define USB_VENDOR_ID_IBM 0x04b3 | ||
1561 | #define USB_DEVICE_ID_IBM_USBHUB_KB 0x3005 | ||
1562 | |||
1563 | #define USB_VENDOR_ID_CREATIVELABS 0x062a | ||
1564 | #define USB_DEVICE_ID_CREATIVELABS_SILVERCREST 0x0201 | ||
1565 | |||
1566 | /* | 1554 | /* |
1567 | * Alphabetically sorted blacklist by quirk type. | 1555 | * Alphabetically sorted blacklist by quirk type. |
1568 | */ | 1556 | */ |
@@ -1671,6 +1659,7 @@ static const struct hid_blacklist { | |||
1671 | { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_DTF + 3, HID_QUIRK_IGNORE }, | 1659 | { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_DTF + 3, HID_QUIRK_IGNORE }, |
1672 | { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_4_PHIDGETSERVO_20, HID_QUIRK_IGNORE }, | 1660 | { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_4_PHIDGETSERVO_20, HID_QUIRK_IGNORE }, |
1673 | { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_1_PHIDGETSERVO_20, HID_QUIRK_IGNORE }, | 1661 | { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_1_PHIDGETSERVO_20, HID_QUIRK_IGNORE }, |
1662 | { USB_VENDOR_ID_YEALINK, USB_DEVICE_ID_YEALINK_P1K_P4K_B2K, HID_QUIRK_IGNORE }, | ||
1674 | 1663 | ||
1675 | { USB_VENDOR_ID_ACECAD, USB_DEVICE_ID_ACECAD_FLAIR, HID_QUIRK_IGNORE }, | 1664 | { USB_VENDOR_ID_ACECAD, USB_DEVICE_ID_ACECAD_FLAIR, HID_QUIRK_IGNORE }, |
1676 | { USB_VENDOR_ID_ACECAD, USB_DEVICE_ID_ACECAD_302, HID_QUIRK_IGNORE }, | 1665 | { USB_VENDOR_ID_ACECAD, USB_DEVICE_ID_ACECAD_302, HID_QUIRK_IGNORE }, |
@@ -1680,16 +1669,9 @@ static const struct hid_blacklist { | |||
1680 | { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET }, | 1669 | { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET }, |
1681 | { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET }, | 1670 | { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET }, |
1682 | { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET }, | 1671 | { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET }, |
1683 | { USB_VENDOR_ID_BTC, USB_DEVICE_ID_BTC_KEYBOARD, HID_QUIRK_NOGET}, | ||
1684 | { USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_USBHUB_KB, HID_QUIRK_NOGET}, | ||
1685 | { USB_VENDOR_ID_CREATIVELABS, USB_DEVICE_ID_CREATIVELABS_SILVERCREST, HID_QUIRK_NOGET }, | ||
1686 | { USB_VENDOR_ID_HP, USB_DEVICE_ID_HP_USBHUB_KB, HID_QUIRK_NOGET }, | ||
1687 | { USB_VENDOR_ID_IBM, USB_DEVICE_ID_IBM_USBHUB_KB, HID_QUIRK_NOGET }, | ||
1688 | { USB_VENDOR_ID_TANGTOP, USB_DEVICE_ID_TANGTOP_USBPS2, HID_QUIRK_NOGET }, | ||
1689 | { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_DUAL_USB_JOYPAD, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, | 1672 | { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_DUAL_USB_JOYPAD, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, |
1690 | { USB_VENDOR_ID_SILVERCREST, USB_DEVICE_ID_SILVERCREST_KB, HID_QUIRK_NOGET }, | ||
1691 | 1673 | ||
1692 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_POWERMOUSE, HID_QUIRK_2WHEEL_POWERMOUSE }, | 1674 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE, HID_QUIRK_MIGHTYMOUSE | HID_QUIRK_INVERT_HWHEEL }, |
1693 | { USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_WCP32PU, HID_QUIRK_2WHEEL_MOUSE_HACK_7 }, | 1675 | { USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_WCP32PU, HID_QUIRK_2WHEEL_MOUSE_HACK_7 }, |
1694 | { USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_MOUSE, HID_QUIRK_2WHEEL_MOUSE_HACK_5 }, | 1676 | { USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_MOUSE, HID_QUIRK_2WHEEL_MOUSE_HACK_5 }, |
1695 | 1677 | ||
@@ -1711,6 +1693,9 @@ static const struct hid_blacklist { | |||
1711 | { USB_VENDOR_ID_APPLE, 0x0214, HID_QUIRK_POWERBOOK_HAS_FN }, | 1693 | { USB_VENDOR_ID_APPLE, 0x0214, HID_QUIRK_POWERBOOK_HAS_FN }, |
1712 | { USB_VENDOR_ID_APPLE, 0x0215, HID_QUIRK_POWERBOOK_HAS_FN }, | 1694 | { USB_VENDOR_ID_APPLE, 0x0215, HID_QUIRK_POWERBOOK_HAS_FN }, |
1713 | { USB_VENDOR_ID_APPLE, 0x0216, HID_QUIRK_POWERBOOK_HAS_FN }, | 1695 | { USB_VENDOR_ID_APPLE, 0x0216, HID_QUIRK_POWERBOOK_HAS_FN }, |
1696 | { USB_VENDOR_ID_APPLE, 0x0217, HID_QUIRK_POWERBOOK_HAS_FN }, | ||
1697 | { USB_VENDOR_ID_APPLE, 0x0218, HID_QUIRK_POWERBOOK_HAS_FN }, | ||
1698 | { USB_VENDOR_ID_APPLE, 0x0219, HID_QUIRK_POWERBOOK_HAS_FN }, | ||
1714 | { USB_VENDOR_ID_APPLE, 0x030A, HID_QUIRK_POWERBOOK_HAS_FN }, | 1699 | { USB_VENDOR_ID_APPLE, 0x030A, HID_QUIRK_POWERBOOK_HAS_FN }, |
1715 | { USB_VENDOR_ID_APPLE, 0x030B, HID_QUIRK_POWERBOOK_HAS_FN }, | 1700 | { USB_VENDOR_ID_APPLE, 0x030B, HID_QUIRK_POWERBOOK_HAS_FN }, |
1716 | 1701 | ||
@@ -1794,6 +1779,14 @@ static struct hid_device *usb_hid_configure(struct usb_interface *intf) | |||
1794 | (hid_blacklist[n].idProduct == le16_to_cpu(dev->descriptor.idProduct))) | 1779 | (hid_blacklist[n].idProduct == le16_to_cpu(dev->descriptor.idProduct))) |
1795 | quirks = hid_blacklist[n].quirks; | 1780 | quirks = hid_blacklist[n].quirks; |
1796 | 1781 | ||
1782 | /* Many keyboards and mice don't like to be polled for reports, | ||
1783 | * so we will always set the HID_QUIRK_NOGET flag for them. */ | ||
1784 | if (interface->desc.bInterfaceSubClass == USB_INTERFACE_SUBCLASS_BOOT) { | ||
1785 | if (interface->desc.bInterfaceProtocol == USB_INTERFACE_PROTOCOL_KEYBOARD || | ||
1786 | interface->desc.bInterfaceProtocol == USB_INTERFACE_PROTOCOL_MOUSE) | ||
1787 | quirks |= HID_QUIRK_NOGET; | ||
1788 | } | ||
1789 | |||
1797 | if (quirks & HID_QUIRK_IGNORE) | 1790 | if (quirks & HID_QUIRK_IGNORE) |
1798 | return NULL; | 1791 | return NULL; |
1799 | 1792 | ||
@@ -2080,11 +2073,29 @@ static int hid_resume(struct usb_interface *intf) | |||
2080 | int status; | 2073 | int status; |
2081 | 2074 | ||
2082 | clear_bit(HID_SUSPENDED, &hid->iofl); | 2075 | clear_bit(HID_SUSPENDED, &hid->iofl); |
2076 | hid->retry_delay = 0; | ||
2083 | status = hid_start_in(hid); | 2077 | status = hid_start_in(hid); |
2084 | dev_dbg(&intf->dev, "resume status %d\n", status); | 2078 | dev_dbg(&intf->dev, "resume status %d\n", status); |
2085 | return status; | 2079 | return status; |
2086 | } | 2080 | } |
2087 | 2081 | ||
2082 | /* Treat USB reset pretty much the same as suspend/resume */ | ||
2083 | static void hid_pre_reset(struct usb_interface *intf) | ||
2084 | { | ||
2085 | /* FIXME: What if the interface is already suspended? */ | ||
2086 | hid_suspend(intf, PMSG_ON); | ||
2087 | } | ||
2088 | |||
2089 | static void hid_post_reset(struct usb_interface *intf) | ||
2090 | { | ||
2091 | struct usb_device *dev = interface_to_usbdev (intf); | ||
2092 | |||
2093 | hid_set_idle(dev, intf->cur_altsetting->desc.bInterfaceNumber, 0, 0); | ||
2094 | /* FIXME: Any more reinitialization needed? */ | ||
2095 | |||
2096 | hid_resume(intf); | ||
2097 | } | ||
2098 | |||
2088 | static struct usb_device_id hid_usb_ids [] = { | 2099 | static struct usb_device_id hid_usb_ids [] = { |
2089 | { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS, | 2100 | { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS, |
2090 | .bInterfaceClass = USB_INTERFACE_CLASS_HID }, | 2101 | .bInterfaceClass = USB_INTERFACE_CLASS_HID }, |
@@ -2099,6 +2110,8 @@ static struct usb_driver hid_driver = { | |||
2099 | .disconnect = hid_disconnect, | 2110 | .disconnect = hid_disconnect, |
2100 | .suspend = hid_suspend, | 2111 | .suspend = hid_suspend, |
2101 | .resume = hid_resume, | 2112 | .resume = hid_resume, |
2113 | .pre_reset = hid_pre_reset, | ||
2114 | .post_reset = hid_post_reset, | ||
2102 | .id_table = hid_usb_ids, | 2115 | .id_table = hid_usb_ids, |
2103 | }; | 2116 | }; |
2104 | 2117 | ||
diff --git a/drivers/usb/input/hid-input.c b/drivers/usb/input/hid-input.c index 25bc85f8ce39..028e1ad89f5d 100644 --- a/drivers/usb/input/hid-input.c +++ b/drivers/usb/input/hid-input.c | |||
@@ -29,9 +29,7 @@ | |||
29 | #include <linux/module.h> | 29 | #include <linux/module.h> |
30 | #include <linux/slab.h> | 30 | #include <linux/slab.h> |
31 | #include <linux/kernel.h> | 31 | #include <linux/kernel.h> |
32 | #include <linux/input.h> | 32 | #include <linux/usb/input.h> |
33 | #include <linux/usb.h> | ||
34 | #include <linux/usb_input.h> | ||
35 | 33 | ||
36 | #undef DEBUG | 34 | #undef DEBUG |
37 | 35 | ||
@@ -567,16 +565,14 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel | |||
567 | break; | 565 | break; |
568 | } | 566 | } |
569 | 567 | ||
570 | set_bit(usage->type, input->evbit); | 568 | if (device->quirks & HID_QUIRK_MIGHTYMOUSE) { |
571 | 569 | if (usage->hid == HID_GD_Z) | |
572 | while (usage->code <= max && test_and_set_bit(usage->code, bit)) | 570 | map_rel(REL_HWHEEL); |
573 | usage->code = find_next_zero_bit(bit, max + 1, usage->code); | 571 | else if (usage->code == BTN_1) |
574 | 572 | map_key(BTN_2); | |
575 | if (usage->code > max) | 573 | else if (usage->code == BTN_2) |
576 | goto ignore; | 574 | map_key(BTN_1); |
577 | 575 | } | |
578 | if (((device->quirks & (HID_QUIRK_2WHEEL_POWERMOUSE)) && (usage->hid == 0x00010032))) | ||
579 | map_rel(REL_HWHEEL); | ||
580 | 576 | ||
581 | if ((device->quirks & (HID_QUIRK_2WHEEL_MOUSE_HACK_7 | HID_QUIRK_2WHEEL_MOUSE_HACK_5)) && | 577 | if ((device->quirks & (HID_QUIRK_2WHEEL_MOUSE_HACK_7 | HID_QUIRK_2WHEEL_MOUSE_HACK_5)) && |
582 | (usage->type == EV_REL) && (usage->code == REL_WHEEL)) | 578 | (usage->type == EV_REL) && (usage->code == REL_WHEEL)) |
@@ -586,6 +582,15 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel | |||
586 | || ((device->quirks & HID_QUIRK_2WHEEL_MOUSE_HACK_7) && (usage->hid == 0x00090007))) | 582 | || ((device->quirks & HID_QUIRK_2WHEEL_MOUSE_HACK_7) && (usage->hid == 0x00090007))) |
587 | goto ignore; | 583 | goto ignore; |
588 | 584 | ||
585 | set_bit(usage->type, input->evbit); | ||
586 | |||
587 | while (usage->code <= max && test_and_set_bit(usage->code, bit)) | ||
588 | usage->code = find_next_zero_bit(bit, max + 1, usage->code); | ||
589 | |||
590 | if (usage->code > max) | ||
591 | goto ignore; | ||
592 | |||
593 | |||
589 | if (usage->type == EV_ABS) { | 594 | if (usage->type == EV_ABS) { |
590 | 595 | ||
591 | int a = field->logical_minimum; | 596 | int a = field->logical_minimum; |
@@ -647,6 +652,11 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct | |||
647 | return; | 652 | return; |
648 | } | 653 | } |
649 | 654 | ||
655 | if ((hid->quirks & HID_QUIRK_INVERT_HWHEEL) && (usage->code == REL_HWHEEL)) { | ||
656 | input_event(input, usage->type, usage->code, -value); | ||
657 | return; | ||
658 | } | ||
659 | |||
650 | if ((hid->quirks & HID_QUIRK_2WHEEL_MOUSE_HACK_ON) && (usage->code == REL_WHEEL)) { | 660 | if ((hid->quirks & HID_QUIRK_2WHEEL_MOUSE_HACK_ON) && (usage->code == REL_WHEEL)) { |
651 | input_event(input, usage->type, REL_HWHEEL, value); | 661 | input_event(input, usage->type, REL_HWHEEL, value); |
652 | return; | 662 | return; |
diff --git a/drivers/usb/input/hid.h b/drivers/usb/input/hid.h index 9c62837b5b89..778e575de352 100644 --- a/drivers/usb/input/hid.h +++ b/drivers/usb/input/hid.h | |||
@@ -41,6 +41,14 @@ | |||
41 | #define USB_INTERFACE_CLASS_HID 3 | 41 | #define USB_INTERFACE_CLASS_HID 3 |
42 | 42 | ||
43 | /* | 43 | /* |
44 | * USB HID interface subclass and protocol codes | ||
45 | */ | ||
46 | |||
47 | #define USB_INTERFACE_SUBCLASS_BOOT 1 | ||
48 | #define USB_INTERFACE_PROTOCOL_KEYBOARD 1 | ||
49 | #define USB_INTERFACE_PROTOCOL_MOUSE 2 | ||
50 | |||
51 | /* | ||
44 | * HID class requests | 52 | * HID class requests |
45 | */ | 53 | */ |
46 | 54 | ||
@@ -247,10 +255,11 @@ struct hid_item { | |||
247 | #define HID_QUIRK_2WHEEL_MOUSE_HACK_7 0x00000080 | 255 | #define HID_QUIRK_2WHEEL_MOUSE_HACK_7 0x00000080 |
248 | #define HID_QUIRK_2WHEEL_MOUSE_HACK_5 0x00000100 | 256 | #define HID_QUIRK_2WHEEL_MOUSE_HACK_5 0x00000100 |
249 | #define HID_QUIRK_2WHEEL_MOUSE_HACK_ON 0x00000200 | 257 | #define HID_QUIRK_2WHEEL_MOUSE_HACK_ON 0x00000200 |
250 | #define HID_QUIRK_2WHEEL_POWERMOUSE 0x00000400 | 258 | #define HID_QUIRK_MIGHTYMOUSE 0x00000400 |
251 | #define HID_QUIRK_CYMOTION 0x00000800 | 259 | #define HID_QUIRK_CYMOTION 0x00000800 |
252 | #define HID_QUIRK_POWERBOOK_HAS_FN 0x00001000 | 260 | #define HID_QUIRK_POWERBOOK_HAS_FN 0x00001000 |
253 | #define HID_QUIRK_POWERBOOK_FN_ON 0x00002000 | 261 | #define HID_QUIRK_POWERBOOK_FN_ON 0x00002000 |
262 | #define HID_QUIRK_INVERT_HWHEEL 0x00004000 | ||
254 | 263 | ||
255 | /* | 264 | /* |
256 | * This is the global environment of the parser. This information is | 265 | * This is the global environment of the parser. This information is |
diff --git a/drivers/usb/input/itmtouch.c b/drivers/usb/input/itmtouch.c index 7618ae5c104f..5c570cc703f3 100644 --- a/drivers/usb/input/itmtouch.c +++ b/drivers/usb/input/itmtouch.c | |||
@@ -42,11 +42,9 @@ | |||
42 | #include <linux/config.h> | 42 | #include <linux/config.h> |
43 | #include <linux/kernel.h> | 43 | #include <linux/kernel.h> |
44 | #include <linux/slab.h> | 44 | #include <linux/slab.h> |
45 | #include <linux/input.h> | ||
46 | #include <linux/module.h> | 45 | #include <linux/module.h> |
47 | #include <linux/init.h> | 46 | #include <linux/init.h> |
48 | #include <linux/usb.h> | 47 | #include <linux/usb/input.h> |
49 | #include <linux/usb_input.h> | ||
50 | 48 | ||
51 | /* only an 8 byte buffer necessary for a single packet */ | 49 | /* only an 8 byte buffer necessary for a single packet */ |
52 | #define ITM_BUFSIZE 8 | 50 | #define ITM_BUFSIZE 8 |
diff --git a/drivers/usb/input/kbtab.c b/drivers/usb/input/kbtab.c index f6d5cead542b..604ade356ead 100644 --- a/drivers/usb/input/kbtab.c +++ b/drivers/usb/input/kbtab.c | |||
@@ -1,12 +1,9 @@ | |||
1 | #include <linux/kernel.h> | 1 | #include <linux/kernel.h> |
2 | #include <linux/slab.h> | 2 | #include <linux/slab.h> |
3 | #include <linux/input.h> | ||
4 | #include <linux/module.h> | 3 | #include <linux/module.h> |
5 | #include <linux/init.h> | 4 | #include <linux/init.h> |
6 | #include <linux/usb.h> | 5 | #include <linux/usb/input.h> |
7 | #include <linux/usb_input.h> | ||
8 | #include <asm/unaligned.h> | 6 | #include <asm/unaligned.h> |
9 | #include <asm/byteorder.h> | ||
10 | 7 | ||
11 | /* | 8 | /* |
12 | * Version Information | 9 | * Version Information |
diff --git a/drivers/usb/input/keyspan_remote.c b/drivers/usb/input/keyspan_remote.c index 3d911976f378..70af985b5db9 100644 --- a/drivers/usb/input/keyspan_remote.c +++ b/drivers/usb/input/keyspan_remote.c | |||
@@ -18,9 +18,7 @@ | |||
18 | #include <linux/slab.h> | 18 | #include <linux/slab.h> |
19 | #include <linux/module.h> | 19 | #include <linux/module.h> |
20 | #include <linux/moduleparam.h> | 20 | #include <linux/moduleparam.h> |
21 | #include <linux/input.h> | 21 | #include <linux/usb/input.h> |
22 | #include <linux/usb.h> | ||
23 | #include <linux/usb_input.h> | ||
24 | 22 | ||
25 | #define DRIVER_VERSION "v0.1" | 23 | #define DRIVER_VERSION "v0.1" |
26 | #define DRIVER_AUTHOR "Michael Downey <downey@zymeta.com>" | 24 | #define DRIVER_AUTHOR "Michael Downey <downey@zymeta.com>" |
diff --git a/drivers/usb/input/mtouchusb.c b/drivers/usb/input/mtouchusb.c index f018953a5485..4fdee4db0729 100644 --- a/drivers/usb/input/mtouchusb.c +++ b/drivers/usb/input/mtouchusb.c | |||
@@ -42,11 +42,9 @@ | |||
42 | #include <linux/config.h> | 42 | #include <linux/config.h> |
43 | #include <linux/kernel.h> | 43 | #include <linux/kernel.h> |
44 | #include <linux/slab.h> | 44 | #include <linux/slab.h> |
45 | #include <linux/input.h> | ||
46 | #include <linux/module.h> | 45 | #include <linux/module.h> |
47 | #include <linux/init.h> | 46 | #include <linux/init.h> |
48 | #include <linux/usb.h> | 47 | #include <linux/usb/input.h> |
49 | #include <linux/usb_input.h> | ||
50 | 48 | ||
51 | #define MTOUCHUSB_MIN_XC 0x0 | 49 | #define MTOUCHUSB_MIN_XC 0x0 |
52 | #define MTOUCHUSB_MAX_RAW_XC 0x4000 | 50 | #define MTOUCHUSB_MAX_RAW_XC 0x4000 |
diff --git a/drivers/usb/input/powermate.c b/drivers/usb/input/powermate.c index fdf0f788062c..b3c0d0c3eae9 100644 --- a/drivers/usb/input/powermate.c +++ b/drivers/usb/input/powermate.c | |||
@@ -30,12 +30,10 @@ | |||
30 | 30 | ||
31 | #include <linux/kernel.h> | 31 | #include <linux/kernel.h> |
32 | #include <linux/slab.h> | 32 | #include <linux/slab.h> |
33 | #include <linux/input.h> | ||
34 | #include <linux/module.h> | 33 | #include <linux/module.h> |
35 | #include <linux/init.h> | 34 | #include <linux/init.h> |
36 | #include <linux/spinlock.h> | 35 | #include <linux/spinlock.h> |
37 | #include <linux/usb.h> | 36 | #include <linux/usb/input.h> |
38 | #include <linux/usb_input.h> | ||
39 | 37 | ||
40 | #define POWERMATE_VENDOR 0x077d /* Griffin Technology, Inc. */ | 38 | #define POWERMATE_VENDOR 0x077d /* Griffin Technology, Inc. */ |
41 | #define POWERMATE_PRODUCT_NEW 0x0410 /* Griffin PowerMate */ | 39 | #define POWERMATE_PRODUCT_NEW 0x0410 /* Griffin PowerMate */ |
diff --git a/drivers/usb/input/touchkitusb.c b/drivers/usb/input/touchkitusb.c index 697c5e573a11..da7b0bf51aff 100644 --- a/drivers/usb/input/touchkitusb.c +++ b/drivers/usb/input/touchkitusb.c | |||
@@ -27,11 +27,9 @@ | |||
27 | #include <linux/config.h> | 27 | #include <linux/config.h> |
28 | #include <linux/kernel.h> | 28 | #include <linux/kernel.h> |
29 | #include <linux/slab.h> | 29 | #include <linux/slab.h> |
30 | #include <linux/input.h> | ||
31 | #include <linux/module.h> | 30 | #include <linux/module.h> |
32 | #include <linux/init.h> | 31 | #include <linux/init.h> |
33 | #include <linux/usb.h> | 32 | #include <linux/usb/input.h> |
34 | #include <linux/usb_input.h> | ||
35 | 33 | ||
36 | #define TOUCHKIT_MIN_XC 0x0 | 34 | #define TOUCHKIT_MIN_XC 0x0 |
37 | #define TOUCHKIT_MAX_XC 0x07ff | 35 | #define TOUCHKIT_MAX_XC 0x07ff |
diff --git a/drivers/usb/input/usbkbd.c b/drivers/usb/input/usbkbd.c index 2f3edc26cb50..5067a6ae650f 100644 --- a/drivers/usb/input/usbkbd.c +++ b/drivers/usb/input/usbkbd.c | |||
@@ -29,10 +29,8 @@ | |||
29 | #include <linux/kernel.h> | 29 | #include <linux/kernel.h> |
30 | #include <linux/slab.h> | 30 | #include <linux/slab.h> |
31 | #include <linux/module.h> | 31 | #include <linux/module.h> |
32 | #include <linux/input.h> | ||
33 | #include <linux/init.h> | 32 | #include <linux/init.h> |
34 | #include <linux/usb.h> | 33 | #include <linux/usb/input.h> |
35 | #include <linux/usb_input.h> | ||
36 | 34 | ||
37 | /* | 35 | /* |
38 | * Version Information | 36 | * Version Information |
diff --git a/drivers/usb/input/usbmouse.c b/drivers/usb/input/usbmouse.c index af526135d210..446935b671d9 100644 --- a/drivers/usb/input/usbmouse.c +++ b/drivers/usb/input/usbmouse.c | |||
@@ -28,11 +28,9 @@ | |||
28 | 28 | ||
29 | #include <linux/kernel.h> | 29 | #include <linux/kernel.h> |
30 | #include <linux/slab.h> | 30 | #include <linux/slab.h> |
31 | #include <linux/input.h> | ||
32 | #include <linux/module.h> | 31 | #include <linux/module.h> |
33 | #include <linux/init.h> | 32 | #include <linux/init.h> |
34 | #include <linux/usb.h> | 33 | #include <linux/usb/input.h> |
35 | #include <linux/usb_input.h> | ||
36 | 34 | ||
37 | /* | 35 | /* |
38 | * Version Information | 36 | * Version Information |
diff --git a/drivers/usb/input/usbtouchscreen.c b/drivers/usb/input/usbtouchscreen.c index e9a07c1e905b..3b175aa482cd 100644 --- a/drivers/usb/input/usbtouchscreen.c +++ b/drivers/usb/input/usbtouchscreen.c | |||
@@ -39,7 +39,7 @@ | |||
39 | #include <linux/module.h> | 39 | #include <linux/module.h> |
40 | #include <linux/init.h> | 40 | #include <linux/init.h> |
41 | #include <linux/usb.h> | 41 | #include <linux/usb.h> |
42 | #include <linux/usb_input.h> | 42 | #include <linux/usb/input.h> |
43 | 43 | ||
44 | 44 | ||
45 | #define DRIVER_VERSION "v0.3" | 45 | #define DRIVER_VERSION "v0.3" |
diff --git a/drivers/usb/input/wacom.c b/drivers/usb/input/wacom.c index cf84c6096f29..369461a70b72 100644 --- a/drivers/usb/input/wacom.c +++ b/drivers/usb/input/wacom.c | |||
@@ -69,13 +69,10 @@ | |||
69 | 69 | ||
70 | #include <linux/kernel.h> | 70 | #include <linux/kernel.h> |
71 | #include <linux/slab.h> | 71 | #include <linux/slab.h> |
72 | #include <linux/input.h> | ||
73 | #include <linux/module.h> | 72 | #include <linux/module.h> |
74 | #include <linux/init.h> | 73 | #include <linux/init.h> |
75 | #include <linux/usb.h> | 74 | #include <linux/usb/input.h> |
76 | #include <linux/usb_input.h> | ||
77 | #include <asm/unaligned.h> | 75 | #include <asm/unaligned.h> |
78 | #include <asm/byteorder.h> | ||
79 | 76 | ||
80 | /* | 77 | /* |
81 | * Version Information | 78 | * Version Information |
diff --git a/drivers/usb/input/xpad.c b/drivers/usb/input/xpad.c index e278489a80c6..cfd4a4e04334 100644 --- a/drivers/usb/input/xpad.c +++ b/drivers/usb/input/xpad.c | |||
@@ -56,13 +56,11 @@ | |||
56 | 56 | ||
57 | #include <linux/config.h> | 57 | #include <linux/config.h> |
58 | #include <linux/kernel.h> | 58 | #include <linux/kernel.h> |
59 | #include <linux/input.h> | ||
60 | #include <linux/init.h> | 59 | #include <linux/init.h> |
61 | #include <linux/slab.h> | 60 | #include <linux/slab.h> |
62 | #include <linux/module.h> | 61 | #include <linux/module.h> |
63 | #include <linux/smp_lock.h> | 62 | #include <linux/smp_lock.h> |
64 | #include <linux/usb.h> | 63 | #include <linux/usb/input.h> |
65 | #include <linux/usb_input.h> | ||
66 | 64 | ||
67 | #define DRIVER_VERSION "v0.0.5" | 65 | #define DRIVER_VERSION "v0.0.5" |
68 | #define DRIVER_AUTHOR "Marko Friedemann <mfr@bmx-chemnitz.de>" | 66 | #define DRIVER_AUTHOR "Marko Friedemann <mfr@bmx-chemnitz.de>" |
diff --git a/drivers/usb/input/yealink.c b/drivers/usb/input/yealink.c index 37d2f0ba0319..24aedbb20f03 100644 --- a/drivers/usb/input/yealink.c +++ b/drivers/usb/input/yealink.c | |||
@@ -48,13 +48,11 @@ | |||
48 | 48 | ||
49 | #include <linux/config.h> | 49 | #include <linux/config.h> |
50 | #include <linux/kernel.h> | 50 | #include <linux/kernel.h> |
51 | #include <linux/input.h> | ||
52 | #include <linux/init.h> | 51 | #include <linux/init.h> |
53 | #include <linux/slab.h> | 52 | #include <linux/slab.h> |
54 | #include <linux/module.h> | 53 | #include <linux/module.h> |
55 | #include <linux/rwsem.h> | 54 | #include <linux/rwsem.h> |
56 | #include <linux/usb.h> | 55 | #include <linux/usb/input.h> |
57 | #include <linux/usb_input.h> | ||
58 | 56 | ||
59 | #include "map_to_7segment.h" | 57 | #include "map_to_7segment.h" |
60 | #include "yealink.h" | 58 | #include "yealink.h" |