Commit 9c730fe1 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'for-linus-2022111101' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid

Pull HID fixes from Jiri Kosina:

 - fix for memory leak (on error path) in Hyper-V driver (Yang
   Yingliang)

 - regression fix for handling 3rd barrel switch emulation in Wacom
   driver (Jason Gerecke)

* tag 'for-linus-2022111101' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
  HID: wacom: Fix logic used for 3rd barrel switch emulation
  HID: hyperv: fix possible memory leak in mousevsc_probe()
  HID: asus: Remove unused variable in asus_report_tool_width()
parents 64b4aef1 f77810f7
...@@ -219,14 +219,13 @@ static void asus_report_tool_width(struct asus_drvdata *drvdat) ...@@ -219,14 +219,13 @@ static void asus_report_tool_width(struct asus_drvdata *drvdat)
{ {
struct input_mt *mt = drvdat->input->mt; struct input_mt *mt = drvdat->input->mt;
struct input_mt_slot *oldest; struct input_mt_slot *oldest;
int oldid, count, i; int oldid, i;
if (drvdat->tp->contact_size < 5) if (drvdat->tp->contact_size < 5)
return; return;
oldest = NULL; oldest = NULL;
oldid = mt->trkid; oldid = mt->trkid;
count = 0;
for (i = 0; i < mt->num_slots; ++i) { for (i = 0; i < mt->num_slots; ++i) {
struct input_mt_slot *ps = &mt->slots[i]; struct input_mt_slot *ps = &mt->slots[i];
...@@ -238,7 +237,6 @@ static void asus_report_tool_width(struct asus_drvdata *drvdat) ...@@ -238,7 +237,6 @@ static void asus_report_tool_width(struct asus_drvdata *drvdat)
oldest = ps; oldest = ps;
oldid = id; oldid = id;
} }
count++;
} }
if (oldest) { if (oldest) {
......
...@@ -499,7 +499,7 @@ static int mousevsc_probe(struct hv_device *device, ...@@ -499,7 +499,7 @@ static int mousevsc_probe(struct hv_device *device,
ret = hid_add_device(hid_dev); ret = hid_add_device(hid_dev);
if (ret) if (ret)
goto probe_err1; goto probe_err2;
ret = hid_parse(hid_dev); ret = hid_parse(hid_dev);
......
...@@ -2520,11 +2520,12 @@ static void wacom_wac_pen_report(struct hid_device *hdev, ...@@ -2520,11 +2520,12 @@ static void wacom_wac_pen_report(struct hid_device *hdev,
if (!delay_pen_events(wacom_wac) && wacom_wac->tool[0]) { if (!delay_pen_events(wacom_wac) && wacom_wac->tool[0]) {
int id = wacom_wac->id[0]; int id = wacom_wac->id[0];
if (wacom_wac->features.quirks & WACOM_QUIRK_PEN_BUTTON3 && if (wacom_wac->features.quirks & WACOM_QUIRK_PEN_BUTTON3) {
wacom_wac->hid_data.barrelswitch & wacom_wac->hid_data.barrelswitch2) { int sw_state = wacom_wac->hid_data.barrelswitch |
wacom_wac->hid_data.barrelswitch = 0; (wacom_wac->hid_data.barrelswitch2 << 1);
wacom_wac->hid_data.barrelswitch2 = 0; wacom_wac->hid_data.barrelswitch = sw_state == 1;
wacom_wac->hid_data.barrelswitch3 = 1; wacom_wac->hid_data.barrelswitch2 = sw_state == 2;
wacom_wac->hid_data.barrelswitch3 = sw_state == 3;
} }
input_report_key(input, BTN_STYLUS, wacom_wac->hid_data.barrelswitch); input_report_key(input, BTN_STYLUS, wacom_wac->hid_data.barrelswitch);
input_report_key(input, BTN_STYLUS2, wacom_wac->hid_data.barrelswitch2); input_report_key(input, BTN_STYLUS2, wacom_wac->hid_data.barrelswitch2);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment