Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'for-linus' into next

+34 -17
+3
drivers/input/joydev.c
··· 483 483 484 484 memcpy(joydev->abspam, abspam, len); 485 485 486 + for (i = 0; i < joydev->nabs; i++) 487 + joydev->absmap[joydev->abspam[i]] = i; 488 + 486 489 out: 487 490 kfree(abspam); 488 491 return retval;
+7
drivers/input/misc/uinput.c
··· 404 404 retval = uinput_validate_absbits(dev); 405 405 if (retval < 0) 406 406 goto exit; 407 + if (test_bit(ABS_MT_SLOT, dev->absbit)) { 408 + int nslot = input_abs_get_max(dev, ABS_MT_SLOT) + 1; 409 + input_mt_create_slots(dev, nslot); 410 + input_set_events_per_packet(dev, 6 * nslot); 411 + } else if (test_bit(ABS_MT_POSITION_X, dev->absbit)) { 412 + input_set_events_per_packet(dev, 60); 413 + } 407 414 } 408 415 409 416 udev->state = UIST_SETUP_COMPLETE;
+8 -4
drivers/input/mouse/bcm5974.c
··· 337 337 const struct bcm5974_config *cfg, 338 338 const struct tp_finger *f) 339 339 { 340 - input_report_abs(input, ABS_MT_TOUCH_MAJOR, raw2int(f->force_major)); 341 - input_report_abs(input, ABS_MT_TOUCH_MINOR, raw2int(f->force_minor)); 342 - input_report_abs(input, ABS_MT_WIDTH_MAJOR, raw2int(f->size_major)); 343 - input_report_abs(input, ABS_MT_WIDTH_MINOR, raw2int(f->size_minor)); 340 + input_report_abs(input, ABS_MT_TOUCH_MAJOR, 341 + raw2int(f->force_major) << 1); 342 + input_report_abs(input, ABS_MT_TOUCH_MINOR, 343 + raw2int(f->force_minor) << 1); 344 + input_report_abs(input, ABS_MT_WIDTH_MAJOR, 345 + raw2int(f->size_major) << 1); 346 + input_report_abs(input, ABS_MT_WIDTH_MINOR, 347 + raw2int(f->size_minor) << 1); 344 348 input_report_abs(input, ABS_MT_ORIENTATION, 345 349 MAX_FINGER_ORIENTATION - raw2int(f->orientation)); 346 350 input_report_abs(input, ABS_MT_POSITION_X, raw2int(f->abs_x));
+1 -1
drivers/input/serio/i8042.c
··· 1485 1485 1486 1486 static void __exit i8042_exit(void) 1487 1487 { 1488 - platform_driver_unregister(&i8042_driver); 1489 1488 platform_device_unregister(i8042_platform_device); 1489 + platform_driver_unregister(&i8042_driver); 1490 1490 i8042_platform_exit(); 1491 1491 1492 1492 panic_blink = NULL;
+12 -11
drivers/input/tablet/wacom_sys.c
··· 103 103 static int wacom_open(struct input_dev *dev) 104 104 { 105 105 struct wacom *wacom = input_get_drvdata(dev); 106 + int retval = 0; 107 + 108 + if (usb_autopm_get_interface(wacom->intf) < 0) 109 + return -EIO; 106 110 107 111 mutex_lock(&wacom->lock); 108 112 109 - wacom->irq->dev = wacom->usbdev; 110 - 111 - if (usb_autopm_get_interface(wacom->intf) < 0) { 112 - mutex_unlock(&wacom->lock); 113 - return -EIO; 114 - } 115 - 116 113 if (usb_submit_urb(wacom->irq, GFP_KERNEL)) { 117 - usb_autopm_put_interface(wacom->intf); 118 - mutex_unlock(&wacom->lock); 119 - return -EIO; 114 + retval = -EIO; 115 + goto out; 120 116 } 121 117 122 118 wacom->open = true; 123 119 wacom->intf->needs_remote_wakeup = 1; 124 120 121 + out: 125 122 mutex_unlock(&wacom->lock); 126 - return 0; 123 + if (retval) 124 + usb_autopm_put_interface(wacom->intf); 125 + return retval; 127 126 } 128 127 129 128 static void wacom_close(struct input_dev *dev) ··· 134 135 wacom->open = false; 135 136 wacom->intf->needs_remote_wakeup = 0; 136 137 mutex_unlock(&wacom->lock); 138 + 139 + usb_autopm_put_interface(wacom->intf); 137 140 } 138 141 139 142 static int wacom_parse_hid(struct usb_interface *intf, struct hid_descriptor *hid_desc,
+3 -1
drivers/input/tablet/wacom_wac.c
··· 442 442 /* general pen packet */ 443 443 if ((data[1] & 0xb8) == 0xa0) { 444 444 t = (data[6] << 2) | ((data[7] >> 6) & 3); 445 - if (features->type >= INTUOS4S && features->type <= INTUOS4L) 445 + if ((features->type >= INTUOS4S && features->type <= INTUOS4L) || 446 + features->type == WACOM_21UX2) { 446 447 t = (t << 1) | (data[1] & 1); 448 + } 447 449 input_report_abs(input, ABS_PRESSURE, t); 448 450 input_report_abs(input, ABS_TILT_X, 449 451 ((data[7] << 1) & 0x7e) | (data[8] >> 7));