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

Configure Feed

Select the types of activity you want to include in your feed.

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

Pull input subsystem fixes from Dmitry Torokhov:
"A fix for ALPS driver for issue introduced in the latest update and a
tweak for yet another Lenovo box in Synaptics.

There will be more ALPS tweaks coming.."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: define INPUT_PROP_ACCELEROMETER behavior
Input: synaptics - fix min-max quirk value for E440
Input: synaptics - add quirk for Thinkpad E440
Input: ALPS - fix max coordinates for v5 and v7 protocols
Input: add MT_TOOL_PALM

+26 -10
+6
Documentation/input/event-codes.txt
··· 294 294 The kernel does not provide button emulation for such devices but treats 295 295 them as any other INPUT_PROP_BUTTONPAD device. 296 296 297 + INPUT_PROP_ACCELEROMETER 298 + ------------------------- 299 + Directional axes on this device (absolute and/or relative x, y, z) represent 300 + accelerometer data. All other axes retain their meaning. A device must not mix 301 + regular directional axes and accelerometer axes on the same event node. 302 + 297 303 Guidelines: 298 304 ========== 299 305 The guidelines below ensure proper single-touch and multi-finger functionality.
+6 -3
Documentation/input/multi-touch-protocol.txt
··· 312 312 313 313 The type of approaching tool. A lot of kernel drivers cannot distinguish 314 314 between different tool types, such as a finger or a pen. In such cases, the 315 - event should be omitted. The protocol currently supports MT_TOOL_FINGER and 316 - MT_TOOL_PEN [2]. For type B devices, this event is handled by input core; 317 - drivers should instead use input_mt_report_slot_state(). 315 + event should be omitted. The protocol currently supports MT_TOOL_FINGER, 316 + MT_TOOL_PEN, and MT_TOOL_PALM [2]. For type B devices, this event is handled 317 + by input core; drivers should instead use input_mt_report_slot_state(). 318 + A contact's ABS_MT_TOOL_TYPE may change over time while still touching the 319 + device, because the firmware may not be able to determine which tool is being 320 + used when it first appears. 318 321 319 322 ABS_MT_BLOB_ID 320 323
+6 -5
drivers/input/mouse/alps.c
··· 2281 2281 priv->set_abs_params = alps_set_abs_params_mt; 2282 2282 priv->nibble_commands = alps_v3_nibble_commands; 2283 2283 priv->addr_command = PSMOUSE_CMD_RESET_WRAP; 2284 - priv->x_max = 1360; 2285 - priv->y_max = 660; 2286 2284 priv->x_bits = 23; 2287 2285 priv->y_bits = 12; 2286 + 2287 + if (alps_dolphin_get_device_area(psmouse, priv)) 2288 + return -EIO; 2289 + 2288 2290 break; 2289 2291 2290 2292 case ALPS_PROTO_V6: ··· 2305 2303 priv->set_abs_params = alps_set_abs_params_mt; 2306 2304 priv->nibble_commands = alps_v3_nibble_commands; 2307 2305 priv->addr_command = PSMOUSE_CMD_RESET_WRAP; 2308 - 2309 - if (alps_dolphin_get_device_area(psmouse, priv)) 2310 - return -EIO; 2306 + priv->x_max = 0xfff; 2307 + priv->y_max = 0x7ff; 2311 2308 2312 2309 if (priv->fw_ver[1] != 0xba) 2313 2310 priv->flags |= ALPS_BUTTONPAD;
+6 -1
drivers/input/mouse/synaptics.c
··· 154 154 }, 155 155 { 156 156 (const char * const []){"LEN2006", NULL}, 157 + {2691, 2691}, 158 + 1024, 5045, 2457, 4832 159 + }, 160 + { 161 + (const char * const []){"LEN2006", NULL}, 157 162 {ANY_BOARD_ID, ANY_BOARD_ID}, 158 163 1264, 5675, 1171, 4688 159 164 }, ··· 194 189 "LEN2003", 195 190 "LEN2004", /* L440 */ 196 191 "LEN2005", 197 - "LEN2006", 192 + "LEN2006", /* Edge E440/E540 */ 198 193 "LEN2007", 199 194 "LEN2008", 200 195 "LEN2009",
+2 -1
include/uapi/linux/input.h
··· 973 973 */ 974 974 #define MT_TOOL_FINGER 0 975 975 #define MT_TOOL_PEN 1 976 - #define MT_TOOL_MAX 1 976 + #define MT_TOOL_PALM 2 977 + #define MT_TOOL_MAX 2 977 978 978 979 /* 979 980 * Values describing the status of a force-feedback effect