forked from luck/tmp_suning_uos_patched
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: HID: Send Report ID when numbered reports are sent over the control endpoint. HID: Enable HID_QUIRK_MULTI_INPUT for Retro Adaptor HID: add support for CH Eclipse yoke HID: eliminate a double lock in debug code HID: ntrig: add support for new firwmare versions HID: check for HID_QUIRK_IGNORE during probing HID: roccat: fix modules interdependencies
This commit is contained in:
commit
293ffa8faa
|
@ -358,6 +358,7 @@ config HID_ROCCAT
|
|||
config HID_ROCCAT_KONE
|
||||
tristate "Roccat Kone Mouse support"
|
||||
depends on USB_HID
|
||||
select HID_ROCCAT
|
||||
---help---
|
||||
Support for Roccat Kone mouse.
|
||||
|
||||
|
|
|
@ -1337,6 +1337,24 @@ static const struct hid_device_id hid_blacklist[] = {
|
|||
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_WIRELESS_OPTICAL_DESKTOP_3_0) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_MONTEREY, USB_DEVICE_ID_GENIUS_KB29E) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_1) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_2) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_3) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_4) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_5) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_6) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_7) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_8) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_9) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_10) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_11) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_12) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_13) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_14) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_15) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_16) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_17) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_18) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) },
|
||||
|
@ -1760,7 +1778,8 @@ int hid_add_device(struct hid_device *hdev)
|
|||
|
||||
/* we need to kill them here, otherwise they will stay allocated to
|
||||
* wait for coming driver */
|
||||
if (!(hdev->quirks & HID_QUIRK_NO_IGNORE) && hid_ignore(hdev))
|
||||
if (!(hdev->quirks & HID_QUIRK_NO_IGNORE)
|
||||
&& (hid_ignore(hdev) || (hdev->quirks & HID_QUIRK_IGNORE)))
|
||||
return -ENODEV;
|
||||
|
||||
/* XXX hack, any other cleaner solution after the driver core
|
||||
|
|
|
@ -949,8 +949,8 @@ static ssize_t hid_debug_events_read(struct file *file, char __user *buffer,
|
|||
int ret = 0, len;
|
||||
DECLARE_WAITQUEUE(wait, current);
|
||||
|
||||
mutex_lock(&list->read_mutex);
|
||||
while (ret == 0) {
|
||||
mutex_lock(&list->read_mutex);
|
||||
if (list->head == list->tail) {
|
||||
add_wait_queue(&list->hdev->debug_wait, &wait);
|
||||
set_current_state(TASK_INTERRUPTIBLE);
|
||||
|
|
|
@ -134,6 +134,7 @@
|
|||
#define USB_VENDOR_ID_CH 0x068e
|
||||
#define USB_DEVICE_ID_CH_PRO_PEDALS 0x00f2
|
||||
#define USB_DEVICE_ID_CH_COMBATSTICK 0x00f4
|
||||
#define USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE 0x0051
|
||||
#define USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE 0x00ff
|
||||
#define USB_DEVICE_ID_CH_3AXIS_5BUTTON_STICK 0x00d3
|
||||
|
||||
|
@ -369,6 +370,8 @@
|
|||
#define USB_DEVICE_ID_MS_PRESENTER_8K_BT 0x0701
|
||||
#define USB_DEVICE_ID_MS_PRESENTER_8K_USB 0x0713
|
||||
|
||||
#define USB_VENDOR_ID_MOJO 0x8282
|
||||
#define USB_DEVICE_ID_RETRO_ADAPTER 0x3201
|
||||
|
||||
#define USB_VENDOR_ID_MONTEREY 0x0566
|
||||
#define USB_DEVICE_ID_GENIUS_KB29E 0x3004
|
||||
|
@ -391,6 +394,24 @@
|
|||
|
||||
#define USB_VENDOR_ID_NTRIG 0x1b96
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN 0x0001
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_1 0x0003
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_2 0x0004
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_3 0x0005
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_4 0x0006
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_5 0x0007
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_6 0x0008
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_7 0x0009
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_8 0x000A
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_9 0x000B
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_10 0x000C
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_11 0x000D
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_12 0x000E
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_13 0x000F
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_14 0x0010
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_15 0x0011
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_16 0x0012
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_17 0x0013
|
||||
#define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_18 0x0014
|
||||
|
||||
#define USB_VENDOR_ID_ONTRAK 0x0a07
|
||||
#define USB_DEVICE_ID_ONTRAK_ADU100 0x0064
|
||||
|
|
|
@ -868,6 +868,42 @@ static void ntrig_remove(struct hid_device *hdev)
|
|||
static const struct hid_device_id ntrig_devices[] = {
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_1),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_2),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_3),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_4),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_5),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_6),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_7),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_8),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_9),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_10),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_11),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_12),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_13),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_14),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_15),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_16),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_17),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_18),
|
||||
.driver_data = NTRIG_DUPLICATE_USAGES },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(hid, ntrig_devices);
|
||||
|
|
|
@ -827,14 +827,21 @@ static int usbhid_output_raw_report(struct hid_device *hid, __u8 *buf, size_t co
|
|||
ret++;
|
||||
}
|
||||
} else {
|
||||
int skipped_report_id = 0;
|
||||
if (buf[0] == 0x0) {
|
||||
/* Don't send the Report ID */
|
||||
buf++;
|
||||
count--;
|
||||
skipped_report_id = 1;
|
||||
}
|
||||
ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
|
||||
HID_REQ_SET_REPORT,
|
||||
USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
|
||||
((report_type + 1) << 8) | *buf,
|
||||
interface->desc.bInterfaceNumber, buf + 1, count - 1,
|
||||
interface->desc.bInterfaceNumber, buf, count,
|
||||
USB_CTRL_SET_TIMEOUT);
|
||||
/* count also the report id */
|
||||
if (ret > 0)
|
||||
/* count also the report id, if this was a numbered report. */
|
||||
if (ret > 0 && skipped_report_id)
|
||||
ret++;
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ static const struct hid_blacklist {
|
|||
{ USB_VENDOR_ID_ALPS, USB_DEVICE_ID_IBM_GAMEPAD, HID_QUIRK_BADPAD },
|
||||
{ USB_VENDOR_ID_CHIC, USB_DEVICE_ID_CHIC_GAMEPAD, HID_QUIRK_BADPAD },
|
||||
{ USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH, HID_QUIRK_MULTI_INPUT },
|
||||
{ USB_VENDOR_ID_MOJO, USB_DEVICE_ID_RETRO_ADAPTER, HID_QUIRK_MULTI_INPUT },
|
||||
{ USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_DRIVING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
|
||||
{ USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
|
||||
{ USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FIGHTING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
|
||||
|
@ -56,6 +57,7 @@ static const struct hid_blacklist {
|
|||
{ USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET },
|
||||
{ USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET },
|
||||
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_COMBATSTICK, HID_QUIRK_NOGET },
|
||||
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE, HID_QUIRK_NOGET },
|
||||
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE, HID_QUIRK_NOGET },
|
||||
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_PEDALS, HID_QUIRK_NOGET },
|
||||
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_3AXIS_5BUTTON_STICK, HID_QUIRK_NOGET },
|
||||
|
|
Loading…
Reference in New Issue
Block a user