forked from Minki/linux
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
This commit is contained in:
commit
1cced5015b
@ -294,6 +294,12 @@ accordingly. This property does not affect kernel behavior.
|
||||
The kernel does not provide button emulation for such devices but treats
|
||||
them as any other INPUT_PROP_BUTTONPAD device.
|
||||
|
||||
INPUT_PROP_ACCELEROMETER
|
||||
-------------------------
|
||||
Directional axes on this device (absolute and/or relative x, y, z) represent
|
||||
accelerometer data. All other axes retain their meaning. A device must not mix
|
||||
regular directional axes and accelerometer axes on the same event node.
|
||||
|
||||
Guidelines:
|
||||
==========
|
||||
The guidelines below ensure proper single-touch and multi-finger functionality.
|
||||
|
@ -312,9 +312,12 @@ ABS_MT_TOOL_TYPE
|
||||
|
||||
The type of approaching tool. A lot of kernel drivers cannot distinguish
|
||||
between different tool types, such as a finger or a pen. In such cases, the
|
||||
event should be omitted. The protocol currently supports MT_TOOL_FINGER and
|
||||
MT_TOOL_PEN [2]. For type B devices, this event is handled by input core;
|
||||
drivers should instead use input_mt_report_slot_state().
|
||||
event should be omitted. The protocol currently supports MT_TOOL_FINGER,
|
||||
MT_TOOL_PEN, and MT_TOOL_PALM [2]. For type B devices, this event is handled
|
||||
by input core; drivers should instead use input_mt_report_slot_state().
|
||||
A contact's ABS_MT_TOOL_TYPE may change over time while still touching the
|
||||
device, because the firmware may not be able to determine which tool is being
|
||||
used when it first appears.
|
||||
|
||||
ABS_MT_BLOB_ID
|
||||
|
||||
|
@ -2281,10 +2281,12 @@ static int alps_set_protocol(struct psmouse *psmouse,
|
||||
priv->set_abs_params = alps_set_abs_params_mt;
|
||||
priv->nibble_commands = alps_v3_nibble_commands;
|
||||
priv->addr_command = PSMOUSE_CMD_RESET_WRAP;
|
||||
priv->x_max = 1360;
|
||||
priv->y_max = 660;
|
||||
priv->x_bits = 23;
|
||||
priv->y_bits = 12;
|
||||
|
||||
if (alps_dolphin_get_device_area(psmouse, priv))
|
||||
return -EIO;
|
||||
|
||||
break;
|
||||
|
||||
case ALPS_PROTO_V6:
|
||||
@ -2303,9 +2305,8 @@ static int alps_set_protocol(struct psmouse *psmouse,
|
||||
priv->set_abs_params = alps_set_abs_params_mt;
|
||||
priv->nibble_commands = alps_v3_nibble_commands;
|
||||
priv->addr_command = PSMOUSE_CMD_RESET_WRAP;
|
||||
|
||||
if (alps_dolphin_get_device_area(psmouse, priv))
|
||||
return -EIO;
|
||||
priv->x_max = 0xfff;
|
||||
priv->y_max = 0x7ff;
|
||||
|
||||
if (priv->fw_ver[1] != 0xba)
|
||||
priv->flags |= ALPS_BUTTONPAD;
|
||||
|
@ -152,6 +152,11 @@ static const struct min_max_quirk min_max_pnpid_table[] = {
|
||||
{ANY_BOARD_ID, ANY_BOARD_ID},
|
||||
1024, 5022, 2508, 4832
|
||||
},
|
||||
{
|
||||
(const char * const []){"LEN2006", NULL},
|
||||
{2691, 2691},
|
||||
1024, 5045, 2457, 4832
|
||||
},
|
||||
{
|
||||
(const char * const []){"LEN2006", NULL},
|
||||
{ANY_BOARD_ID, ANY_BOARD_ID},
|
||||
@ -189,7 +194,7 @@ static const char * const topbuttonpad_pnp_ids[] = {
|
||||
"LEN2003",
|
||||
"LEN2004", /* L440 */
|
||||
"LEN2005",
|
||||
"LEN2006",
|
||||
"LEN2006", /* Edge E440/E540 */
|
||||
"LEN2007",
|
||||
"LEN2008",
|
||||
"LEN2009",
|
||||
|
@ -973,7 +973,8 @@ struct input_keymap_entry {
|
||||
*/
|
||||
#define MT_TOOL_FINGER 0
|
||||
#define MT_TOOL_PEN 1
|
||||
#define MT_TOOL_MAX 1
|
||||
#define MT_TOOL_PALM 2
|
||||
#define MT_TOOL_MAX 2
|
||||
|
||||
/*
|
||||
* Values describing the status of a force-feedback effect
|
||||
|
Loading…
Reference in New Issue
Block a user