Merge branch 'for-linus' into next
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 28 May 2019 01:48:01 +0000 (18:48 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 28 May 2019 01:48:01 +0000 (18:48 -0700)
Sync up with 'for-linus' branch to avoid merge conflicts with following
patches to Elan touchpad drivers.

drivers/input/misc/uinput.c
drivers/input/mouse/elan_i2c_core.c
drivers/input/mouse/elantech.c
drivers/input/touchscreen/silead.c

index 26ec603fe2208522bf562954e452d69e2500527a..83d1499fe02152cfa75e8d097f6432d50632a6cc 100644 (file)
@@ -1051,13 +1051,31 @@ static long uinput_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 
 #ifdef CONFIG_COMPAT
 
-#define UI_SET_PHYS_COMPAT     _IOW(UINPUT_IOCTL_BASE, 108, compat_uptr_t)
+/*
+ * These IOCTLs change their size and thus their numbers between
+ * 32 and 64 bits.
+ */
+#define UI_SET_PHYS_COMPAT             \
+       _IOW(UINPUT_IOCTL_BASE, 108, compat_uptr_t)
+#define UI_BEGIN_FF_UPLOAD_COMPAT      \
+       _IOWR(UINPUT_IOCTL_BASE, 200, struct uinput_ff_upload_compat)
+#define UI_END_FF_UPLOAD_COMPAT                \
+       _IOW(UINPUT_IOCTL_BASE, 201, struct uinput_ff_upload_compat)
 
 static long uinput_compat_ioctl(struct file *file,
                                unsigned int cmd, unsigned long arg)
 {
-       if (cmd == UI_SET_PHYS_COMPAT)
+       switch (cmd) {
+       case UI_SET_PHYS_COMPAT:
                cmd = UI_SET_PHYS;
+               break;
+       case UI_BEGIN_FF_UPLOAD_COMPAT:
+               cmd = UI_BEGIN_FF_UPLOAD;
+               break;
+       case UI_END_FF_UPLOAD_COMPAT:
+               cmd = UI_END_FF_UPLOAD;
+               break;
+       }
 
        return uinput_ioctl_handler(file, cmd, arg, compat_ptr(arg));
 }
index f9525d6f0bfe810c9ab1c2bd0a2a971f2e9695b4..2c0561e20b7fa28767e4228c0ae0d2535ef4107d 100644 (file)
@@ -981,6 +981,8 @@ static irqreturn_t elan_isr(int irq, void *dev_id)
        if (error)
                goto out;
 
+       pm_wakeup_event(dev, 0);
+
        switch (report[ETP_REPORT_ID_OFFSET]) {
        case ETP_REPORT_ID:
                elan_report_absolute(data, report);
index a7f8b16145595bd004b5fec8fdf27e2d6cf7f441..530142b5a115457588a7330131f462ca4b7830c6 100644 (file)
@@ -1189,6 +1189,8 @@ static const char * const middle_button_pnp_ids[] = {
        "LEN2132", /* ThinkPad P52 */
        "LEN2133", /* ThinkPad P72 w/ NFC */
        "LEN2134", /* ThinkPad P72 */
+       "LEN0407",
+       "LEN0408",
        NULL
 };
 
index 09241d4cdebca340625f5e08345b10b7822114e0..06f0eb04a8fd4b2d331d084b885516de9e3bc30d 100644 (file)
@@ -617,6 +617,7 @@ static const struct acpi_device_id silead_ts_acpi_match[] = {
        { "MSSL1680", 0 },
        { "MSSL0001", 0 },
        { "MSSL0002", 0 },
+       { "MSSL0017", 0 },
        { }
 };
 MODULE_DEVICE_TABLE(acpi, silead_ts_acpi_match);