From: Jiri Kosina Date: Mon, 20 Feb 2017 14:01:57 +0000 (+0100) Subject: Merge branches 'for-4.10/upstream-fixes', 'for-4.11/intel-ish', 'for-4.11/mayflash... X-Git-Tag: Ubuntu-4.11.0-0.5~618^2 X-Git-Url: https://git.proxmox.com/?p=mirror_ubuntu-artful-kernel.git;a=commitdiff_plain;h=53f724b2432a9f97a941251772f2b0d195e2d282 Merge branches 'for-4.10/upstream-fixes', 'for-4.11/intel-ish', 'for-4.11/mayflash', 'for-4.11/microsoft', 'for-4.11/rmi', 'for-4.11/upstream' and 'for-4.11/wacom' into for-linus --- 53f724b2432a9f97a941251772f2b0d195e2d282 diff --cc drivers/hid/hid-ids.h index 8943a58c626d,ec277b96eaa1,23cb33c36663,fd4ba3a222e1,e82dccc336de,ec277b96eaa1,f46f2c5117fa..86c95d30ac80 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@@@@@@@ -322,8 -319,7 -319,9 -319,7 -319,8 -319,7 -319,8 +322,9 @@@@@@@@ #define USB_VENDOR_ID_DRAGONRISE 0x0079 #define USB_DEVICE_ID_DRAGONRISE_WIIU 0x1800 #define USB_DEVICE_ID_DRAGONRISE_PS3 0x1801 - - - #define USB_DEVICE_ID_DRAGONRISE_GAMECUBE 0x1843 + + + #define USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR 0x1803 - - -#define USB_DEVICE_ID_DRAGONRISE_GAMECUBE 0x1843 ++ ++++#define USB_DEVICE_ID_DRAGONRISE_GAMECUBE1 0x1843 ++ ++++#define USB_DEVICE_ID_DRAGONRISE_GAMECUBE2 0x1844 #define USB_VENDOR_ID_DWAV 0x0eef #define USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER 0x0001 diff --cc drivers/hid/usbhid/hid-quirks.c index 30a2977e2645,b3e01c82af05,54b641efd939,f3c59396b15a,e9d6cc7cdfc5,b3e01c82af05,e9d6cc7cdfc5..d6847a664446 --- a/drivers/hid/usbhid/hid-quirks.c +++ b/drivers/hid/usbhid/hid-quirks.c @@@@@@@@ -84,8 -83,7 -83,8 -83,7 -83,8 -83,7 -83,8 +84,8 @@@@@@@@ static const struct hid_blacklist { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET }, { USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_WIIU, HID_QUIRK_MULTI_INPUT }, { USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_PS3, HID_QUIRK_MULTI_INPUT }, - - - { USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE, HID_QUIRK_MULTI_INPUT }, + + + { USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR, HID_QUIRK_MULTI_INPUT }, - - - { USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE, HID_QUIRK_MULTI_INPUT }, ++ ++++ { USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE1, HID_QUIRK_MULTI_INPUT }, { USB_VENDOR_ID_ELAN, HID_ANY_ID, HID_QUIRK_ALWAYS_POLL }, { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET }, { USB_VENDOR_ID_FORMOSA, USB_DEVICE_ID_FORMOSA_IR_RECEIVER, HID_QUIRK_NO_INIT_REPORTS }, diff --cc drivers/hid/wacom_wac.c index 672145b0d8f5,b1a9a3ca6d56,b1a9a3ca6d56,b1a9a3ca6d56,b1a9a3ca6d56,b1a9a3ca6d56,1f3bdd16e159..4aa3de9f1163 --- a/drivers/hid/wacom_wac.c +++ b/drivers/hid/wacom_wac.c @@@@@@@@ -166,21 -166,19 -166,19 -166,19 -166,19 -166,19 -168,19 +168,21 @@@@@@@@ static int wacom_pl_irq(struct wacom_wa wacom->id[0] = STYLUS_DEVICE_ID; } ------ pressure = (signed char)((data[7] << 1) | ((data[4] >> 2) & 1)); ------ if (features->pressure_max > 255) ------ pressure = (pressure << 1) | ((data[4] >> 6) & 1); ------ pressure += (features->pressure_max + 1) / 2; - - input_report_abs(input, ABS_X, data[3] | (data[2] << 7) | ((data[1] & 0x03) << 14)); - input_report_abs(input, ABS_Y, data[6] | (data[5] << 7) | ((data[4] & 0x03) << 14)); - input_report_abs(input, ABS_PRESSURE, pressure); - - input_report_key(input, BTN_TOUCH, data[4] & 0x08); - input_report_key(input, BTN_STYLUS, data[4] & 0x10); - /* Only allow the stylus2 button to be reported for the pen tool. */ - input_report_key(input, BTN_STYLUS2, (wacom->tool[0] == BTN_TOOL_PEN) && (data[4] & 0x20)); ++++++ if (prox) { ++++++ pressure = (signed char)((data[7] << 1) | ((data[4] >> 2) & 1)); ++++++ if (features->pressure_max > 255) ++++++ pressure = (pressure << 1) | ((data[4] >> 6) & 1); ++++++ pressure += (features->pressure_max + 1) / 2; + ----- input_report_abs(input, ABS_X, data[3] | (data[2] << 7) | ((data[1] & 0x03) << 14)); ----- input_report_abs(input, ABS_Y, data[6] | (data[5] << 7) | ((data[4] & 0x03) << 14)); ----- input_report_abs(input, ABS_PRESSURE, pressure); ++++++ input_report_abs(input, ABS_X, data[3] | (data[2] << 7) | ((data[1] & 0x03) << 14)); ++++++ input_report_abs(input, ABS_Y, data[6] | (data[5] << 7) | ((data[4] & 0x03) << 14)); ++++++ input_report_abs(input, ABS_PRESSURE, pressure); + ----- input_report_key(input, BTN_TOUCH, data[4] & 0x08); ----- input_report_key(input, BTN_STYLUS, data[4] & 0x10); ----- /* Only allow the stylus2 button to be reported for the pen tool. */ ----- input_report_key(input, BTN_STYLUS2, (wacom->tool[0] == BTN_TOOL_PEN) && (data[4] & 0x20)); ++++++ input_report_key(input, BTN_TOUCH, data[4] & 0x08); ++++++ input_report_key(input, BTN_STYLUS, data[4] & 0x10); ++++++ /* Only allow the stylus2 button to be reported for the pen tool. */ ++++++ input_report_key(input, BTN_STYLUS2, (wacom->tool[0] == BTN_TOOL_PEN) && (data[4] & 0x20)); ++++++ } if (!prox) wacom->id[0] = 0; @@@@@@@@ -1629,10 -1627,10 -1627,10 -1627,10 -1627,10 -1627,10 -1824,24 +1826,24 @@@@@@@@ static void wacom_wac_pad_event(struct switch (equivalent_usage) { case WACOM_HID_WD_TOUCHRINGSTATUS: ++++++ if (!value) ++++++ input_event(input, usage->type, usage->code, 0); +++++ break; +++++ ++++++ case WACOM_HID_WD_TOUCHONOFF: ++++++ if (wacom_wac->shared->touch_input) { ++++++ input_report_switch(wacom_wac->shared->touch_input, ++++++ SW_MUTE_DEVICE, !value); ++++++ input_sync(wacom_wac->shared->touch_input); ++++++ } + break; + ++++++ case WACOM_HID_WD_BUTTONCENTER: ++++++ for (i = 0; i < wacom->led.count; i++) ++++++ wacom_update_led(wacom, features->numbered_buttons, ++++++ value, i); ++++++ /* fall through*/ default: ------ features->input_event_flag = true; input_event(input, usage->type, usage->code, value); break; }