diff options
Diffstat (limited to 'drivers/hid')
| -rw-r--r-- | drivers/hid/hid-core.c | 10 | ||||
| -rw-r--r-- | drivers/hid/hid-ids.h | 12 | ||||
| -rw-r--r-- | drivers/hid/hid-microsoft.c | 4 | ||||
| -rw-r--r-- | drivers/hid/hid-multitouch.c | 5 | ||||
| -rw-r--r-- | drivers/hid/hid-sensor-hub.c | 10 | ||||
| -rw-r--r-- | drivers/hid/hid-sony.c | 2 | ||||
| -rw-r--r-- | drivers/hid/usbhid/hid-quirks.c | 1 | 
7 files changed, 29 insertions, 15 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 9e8064205bc7..da52279de939 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -718,6 +718,9 @@ static int hid_scan_main(struct hid_parser *parser, struct hid_item *item)  	case HID_MAIN_ITEM_TAG_END_COLLECTION:  		break;  	case HID_MAIN_ITEM_TAG_INPUT: +		/* ignore constant inputs, they will be ignored by hid-input */ +		if (data & HID_MAIN_ITEM_CONSTANT) +			break;  		for (i = 0; i < parser->local.usage_index; i++)  			hid_scan_input_usage(parser, parser->local.usage[i]);  		break; @@ -1250,7 +1253,8 @@ EXPORT_SYMBOL_GPL(hid_output_report);  static int hid_report_len(struct hid_report *report)  { -	return ((report->size - 1) >> 3) + 1 + (report->id > 0) + 7; +	/* equivalent to DIV_ROUND_UP(report->size, 8) + !!(report->id > 0) */ +	return ((report->size - 1) >> 3) + 1 + (report->id > 0);  }  /* @@ -1263,7 +1267,7 @@ u8 *hid_alloc_report_buf(struct hid_report *report, gfp_t flags)  	 * of implement() working on 8 byte chunks  	 */ -	int len = hid_report_len(report); +	int len = hid_report_len(report) + 7;  	return kmalloc(len, flags);  } @@ -1821,8 +1825,6 @@ static const struct hid_device_id hid_have_special_driver[] = {  	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PRESENTER_8K_USB) },  	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K) },  	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_WIRELESS_OPTICAL_DESKTOP_3_0) }, -	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_2) }, -	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TOUCH_COVER_2) },  	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_OFFICE_KB) },  	{ 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) }, diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index bd221263c739..34bb2205d2ea 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -301,6 +301,9 @@  #define USB_VENDOR_ID_DREAM_CHEEKY	0x1d34 +#define USB_VENDOR_ID_ELITEGROUP	0x03fc +#define USB_DEVICE_ID_ELITEGROUP_05D8	0x05d8 +  #define USB_VENDOR_ID_ELO		0x04E7  #define USB_DEVICE_ID_ELO_TS2515	0x0022  #define USB_DEVICE_ID_ELO_TS2700	0x0020 @@ -455,7 +458,8 @@  #define USB_VENDOR_ID_INTEL_0		0x8086  #define USB_VENDOR_ID_INTEL_1		0x8087 -#define USB_DEVICE_ID_INTEL_HID_SENSOR	0x09fa +#define USB_DEVICE_ID_INTEL_HID_SENSOR_0	0x09fa +#define USB_DEVICE_ID_INTEL_HID_SENSOR_1	0x0a04  #define USB_VENDOR_ID_STM_0             0x0483  #define USB_DEVICE_ID_STM_HID_SENSOR    0x91d1 @@ -629,8 +633,6 @@  #define USB_DEVICE_ID_MS_PRESENTER_8K_USB	0x0713  #define USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K	0x0730  #define USB_DEVICE_ID_MS_COMFORT_MOUSE_4500	0x076c -#define USB_DEVICE_ID_MS_TOUCH_COVER_2	0x07a7 -#define USB_DEVICE_ID_MS_TYPE_COVER_2	0x07a9  #define USB_VENDOR_ID_MOJO		0x8282  #define USB_DEVICE_ID_RETRO_ADAPTER	0x3201 @@ -835,6 +837,10 @@  #define USB_DEVICE_ID_SYNAPTICS_LTS2	0x1d10  #define USB_DEVICE_ID_SYNAPTICS_HD	0x0ac3  #define USB_DEVICE_ID_SYNAPTICS_QUAD_HD	0x1ac3 +#define USB_DEVICE_ID_SYNAPTICS_TP_V103	0x5710 + +#define USB_VENDOR_ID_TEXAS_INSTRUMENTS	0x2047 +#define USB_DEVICE_ID_TEXAS_INSTRUMENTS_LENOVO_YOGA	0x0855  #define USB_VENDOR_ID_THINGM		0x27b8  #define USB_DEVICE_ID_BLINK1		0x01ed diff --git a/drivers/hid/hid-microsoft.c b/drivers/hid/hid-microsoft.c index 6fd58175a291..8ba17a946f2a 100644 --- a/drivers/hid/hid-microsoft.c +++ b/drivers/hid/hid-microsoft.c @@ -274,10 +274,6 @@ static const struct hid_device_id ms_devices[] = {  		.driver_data = MS_NOGET },  	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_MOUSE_4500),  		.driver_data = MS_DUPLICATE_USAGES }, -	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_2), -		.driver_data = 0 }, -	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TOUCH_COVER_2), -		.driver_data = 0 },  	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PRESENTER_8K_BT),  		.driver_data = MS_PRESENTER }, diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index 35278e43c7a4..51e25b9407f2 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -1155,6 +1155,11 @@ static const struct hid_device_id mt_devices[] = {  		MT_USB_DEVICE(USB_VENDOR_ID_DWAV,  			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) }, +	/* Elitegroup panel */ +	{ .driver_data = MT_CLS_SERIAL, +		MT_USB_DEVICE(USB_VENDOR_ID_ELITEGROUP, +			USB_DEVICE_ID_ELITEGROUP_05D8) }, +  	/* Flatfrog Panels */  	{ .driver_data = MT_CLS_FLATFROG,  		MT_USB_DEVICE(USB_VENDOR_ID_FLATFROG, diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c index 5182031f7b52..be14b5690e94 100644 --- a/drivers/hid/hid-sensor-hub.c +++ b/drivers/hid/hid-sensor-hub.c @@ -697,14 +697,20 @@ static void sensor_hub_remove(struct hid_device *hdev)  static const struct hid_device_id sensor_hub_devices[] = {  	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_INTEL_0, -			USB_DEVICE_ID_INTEL_HID_SENSOR), +			USB_DEVICE_ID_INTEL_HID_SENSOR_0),  			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},  	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_INTEL_1, -			USB_DEVICE_ID_INTEL_HID_SENSOR), +			USB_DEVICE_ID_INTEL_HID_SENSOR_0), +			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK}, +	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_INTEL_1, +			USB_DEVICE_ID_INTEL_HID_SENSOR_1),  			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},  	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_STM_0,  			USB_DEVICE_ID_STM_HID_SENSOR),  			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK}, +	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_TEXAS_INSTRUMENTS, +			USB_DEVICE_ID_TEXAS_INSTRUMENTS_LENOVO_YOGA), +			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},  	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, HID_ANY_ID,  		     HID_ANY_ID) },  	{ } diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c index 69204afea7a4..908de2789219 100644 --- a/drivers/hid/hid-sony.c +++ b/drivers/hid/hid-sony.c @@ -1721,8 +1721,6 @@ static void sony_remove(struct hid_device *hdev)  	if (sc->quirks & SONY_LED_SUPPORT)  		sony_leds_remove(hdev); -	if (sc->worker_initialized) -		cancel_work_sync(&sc->state_worker);  	if (sc->quirks & SONY_BATTERY_SUPPORT) {  		hid_hw_close(hdev);  		sony_battery_remove(sc); diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c index dbd83878ff99..8e4ddb369883 100644 --- a/drivers/hid/usbhid/hid-quirks.c +++ b/drivers/hid/usbhid/hid-quirks.c @@ -119,6 +119,7 @@ static const struct hid_blacklist {  	{ USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_LTS2, HID_QUIRK_NO_INIT_REPORTS },  	{ USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_HD, HID_QUIRK_NO_INIT_REPORTS },  	{ USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_QUAD_HD, HID_QUIRK_NO_INIT_REPORTS }, +	{ USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_TP_V103, HID_QUIRK_NO_INIT_REPORTS },  	{ 0, 0 }  };  | 

