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

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

Pull input fixes from Dmitry Torokhov:
"A few quirks for the Elan touchpad driver, another Thinkpad is being
switched over from PS/2 to native RMI4 interface, and we gave a brand
new SW_MACHINE_COVER switch definition"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: elan_i2c - add more hardware ID for Lenovo laptops
Input: i8042 - add Lenovo XiaoXin Air 12 to i8042 nomux list
Revert "Input: elants_i2c - report resolution information for touch major"
Input: elan_i2c - only increment wakeup count on touch
Input: synaptics - enable InterTouch for ThinkPad X1E 1st gen
ARM: dts: n900: remove mmc1 card detect gpio
Input: add `SW_MACHINE_COVER`

+31 -11
+8 -4
arch/arm/boot/dts/omap3-n900.dts
··· 105 105 linux,code = <SW_FRONT_PROXIMITY>; 106 106 linux,can-disable; 107 107 }; 108 + 109 + machine_cover { 110 + label = "Machine Cover"; 111 + gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; /* 160 */ 112 + linux,input-type = <EV_SW>; 113 + linux,code = <SW_MACHINE_COVER>; 114 + linux,can-disable; 115 + }; 108 116 }; 109 117 110 118 isp1707: isp1707 { ··· 827 819 pinctrl-0 = <&mmc1_pins>; 828 820 vmmc-supply = <&vmmc1>; 829 821 bus-width = <4>; 830 - /* For debugging, it is often good idea to remove this GPIO. 831 - It means you can remove back cover (to reboot by removing 832 - battery) and still use the MMC card. */ 833 - cd-gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; /* 160 */ 834 822 }; 835 823 836 824 /* most boards use vaux3, only some old versions use vmmc2 instead */
+5 -4
drivers/input/mouse/elan_i2c_core.c
··· 951 951 u8 hover_info = packet[ETP_HOVER_INFO_OFFSET]; 952 952 bool contact_valid, hover_event; 953 953 954 + pm_wakeup_event(&data->client->dev, 0); 955 + 954 956 hover_event = hover_info & 0x40; 955 957 for (i = 0; i < ETP_MAX_FINGERS; i++) { 956 958 contact_valid = tp_info & (1U << (3 + i)); ··· 975 973 struct input_dev *input = data->tp_input; 976 974 u8 *packet = &report[ETP_REPORT_ID_OFFSET + 1]; 977 975 int x, y; 976 + 977 + pm_wakeup_event(&data->client->dev, 0); 978 978 979 979 if (!data->tp_input) { 980 980 dev_warn_once(&data->client->dev, ··· 1002 998 static irqreturn_t elan_isr(int irq, void *dev_id) 1003 999 { 1004 1000 struct elan_tp_data *data = dev_id; 1005 - struct device *dev = &data->client->dev; 1006 1001 int error; 1007 1002 u8 report[ETP_MAX_REPORT_LEN]; 1008 1003 ··· 1019 1016 if (error) 1020 1017 goto out; 1021 1018 1022 - pm_wakeup_event(dev, 0); 1023 - 1024 1019 switch (report[ETP_REPORT_ID_OFFSET]) { 1025 1020 case ETP_REPORT_ID: 1026 1021 elan_report_absolute(data, report); ··· 1027 1026 elan_report_trackpoint(data, report); 1028 1027 break; 1029 1028 default: 1030 - dev_err(dev, "invalid report id data (%x)\n", 1029 + dev_err(&data->client->dev, "invalid report id data (%x)\n", 1031 1030 report[ETP_REPORT_ID_OFFSET]); 1032 1031 } 1033 1032
+1
drivers/input/mouse/synaptics.c
··· 179 179 "LEN0093", /* T480 */ 180 180 "LEN0096", /* X280 */ 181 181 "LEN0097", /* X280 -> ALPS trackpoint */ 182 + "LEN0099", /* X1 Extreme 1st */ 182 183 "LEN009b", /* T580 */ 183 184 "LEN200f", /* T450s */ 184 185 "LEN2044", /* L470 */
+7
drivers/input/serio/i8042-x86ia64io.h
··· 426 426 }, 427 427 }, 428 428 { 429 + /* Lenovo XiaoXin Air 12 */ 430 + .matches = { 431 + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), 432 + DMI_MATCH(DMI_PRODUCT_NAME, "80UN"), 433 + }, 434 + }, 435 + { 429 436 .matches = { 430 437 DMI_MATCH(DMI_SYS_VENDOR, "Acer"), 431 438 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1360"),
-1
drivers/input/touchscreen/elants_i2c.c
··· 1325 1325 0, MT_TOOL_PALM, 0, 0); 1326 1326 input_abs_set_res(ts->input, ABS_MT_POSITION_X, ts->x_res); 1327 1327 input_abs_set_res(ts->input, ABS_MT_POSITION_Y, ts->y_res); 1328 - input_abs_set_res(ts->input, ABS_MT_TOUCH_MAJOR, 1); 1329 1328 1330 1329 touchscreen_parse_properties(ts->input, true, &ts->prop); 1331 1330
+7
include/linux/input/elan-i2c-ids.h
··· 67 67 { "ELAN062B", 0 }, 68 68 { "ELAN062C", 0 }, 69 69 { "ELAN062D", 0 }, 70 + { "ELAN062E", 0 }, /* Lenovo V340 Whiskey Lake U */ 71 + { "ELAN062F", 0 }, /* Lenovo V340 Comet Lake U */ 70 72 { "ELAN0631", 0 }, 71 73 { "ELAN0632", 0 }, 74 + { "ELAN0633", 0 }, /* Lenovo S145 */ 75 + { "ELAN0634", 0 }, /* Lenovo V340 Ice lake */ 76 + { "ELAN0635", 0 }, /* Lenovo V1415-IIL */ 77 + { "ELAN0636", 0 }, /* Lenovo V1415-Dali */ 78 + { "ELAN0637", 0 }, /* Lenovo V1415-IGLR */ 72 79 { "ELAN1000", 0 }, 73 80 { } 74 81 };
+1 -1
include/linux/mod_devicetable.h
··· 318 318 #define INPUT_DEVICE_ID_LED_MAX 0x0f 319 319 #define INPUT_DEVICE_ID_SND_MAX 0x07 320 320 #define INPUT_DEVICE_ID_FF_MAX 0x7f 321 - #define INPUT_DEVICE_ID_SW_MAX 0x0f 321 + #define INPUT_DEVICE_ID_SW_MAX 0x10 322 322 #define INPUT_DEVICE_ID_PROP_MAX 0x1f 323 323 324 324 #define INPUT_DEVICE_ID_MATCH_BUS 1
+2 -1
include/uapi/linux/input-event-codes.h
··· 888 888 #define SW_LINEIN_INSERT 0x0d /* set = inserted */ 889 889 #define SW_MUTE_DEVICE 0x0e /* set = device disabled */ 890 890 #define SW_PEN_INSERTED 0x0f /* set = pen inserted */ 891 - #define SW_MAX 0x0f 891 + #define SW_MACHINE_COVER 0x10 /* set = cover closed */ 892 + #define SW_MAX 0x10 892 893 #define SW_CNT (SW_MAX+1) 893 894 894 895 /*