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:
@@ -294,6 +294,12 @@ accordingly. This property does not affect kernel behavior.
|
|||||||
The kernel does not provide button emulation for such devices but treats
|
The kernel does not provide button emulation for such devices but treats
|
||||||
them as any other INPUT_PROP_BUTTONPAD device.
|
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:
|
Guidelines:
|
||||||
==========
|
==========
|
||||||
The guidelines below ensure proper single-touch and multi-finger functionality.
|
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
|
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
|
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
|
event should be omitted. The protocol currently supports MT_TOOL_FINGER,
|
||||||
MT_TOOL_PEN [2]. For type B devices, this event is handled by input core;
|
MT_TOOL_PEN, and MT_TOOL_PALM [2]. For type B devices, this event is handled
|
||||||
drivers should instead use input_mt_report_slot_state().
|
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
|
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->set_abs_params = alps_set_abs_params_mt;
|
||||||
priv->nibble_commands = alps_v3_nibble_commands;
|
priv->nibble_commands = alps_v3_nibble_commands;
|
||||||
priv->addr_command = PSMOUSE_CMD_RESET_WRAP;
|
priv->addr_command = PSMOUSE_CMD_RESET_WRAP;
|
||||||
priv->x_max = 1360;
|
|
||||||
priv->y_max = 660;
|
|
||||||
priv->x_bits = 23;
|
priv->x_bits = 23;
|
||||||
priv->y_bits = 12;
|
priv->y_bits = 12;
|
||||||
|
|
||||||
|
if (alps_dolphin_get_device_area(psmouse, priv))
|
||||||
|
return -EIO;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ALPS_PROTO_V6:
|
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->set_abs_params = alps_set_abs_params_mt;
|
||||||
priv->nibble_commands = alps_v3_nibble_commands;
|
priv->nibble_commands = alps_v3_nibble_commands;
|
||||||
priv->addr_command = PSMOUSE_CMD_RESET_WRAP;
|
priv->addr_command = PSMOUSE_CMD_RESET_WRAP;
|
||||||
|
priv->x_max = 0xfff;
|
||||||
if (alps_dolphin_get_device_area(psmouse, priv))
|
priv->y_max = 0x7ff;
|
||||||
return -EIO;
|
|
||||||
|
|
||||||
if (priv->fw_ver[1] != 0xba)
|
if (priv->fw_ver[1] != 0xba)
|
||||||
priv->flags |= ALPS_BUTTONPAD;
|
priv->flags |= ALPS_BUTTONPAD;
|
||||||
|
@@ -152,6 +152,11 @@ static const struct min_max_quirk min_max_pnpid_table[] = {
|
|||||||
{ANY_BOARD_ID, ANY_BOARD_ID},
|
{ANY_BOARD_ID, ANY_BOARD_ID},
|
||||||
1024, 5022, 2508, 4832
|
1024, 5022, 2508, 4832
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
(const char * const []){"LEN2006", NULL},
|
||||||
|
{2691, 2691},
|
||||||
|
1024, 5045, 2457, 4832
|
||||||
|
},
|
||||||
{
|
{
|
||||||
(const char * const []){"LEN2006", NULL},
|
(const char * const []){"LEN2006", NULL},
|
||||||
{ANY_BOARD_ID, ANY_BOARD_ID},
|
{ANY_BOARD_ID, ANY_BOARD_ID},
|
||||||
@@ -189,7 +194,7 @@ static const char * const topbuttonpad_pnp_ids[] = {
|
|||||||
"LEN2003",
|
"LEN2003",
|
||||||
"LEN2004", /* L440 */
|
"LEN2004", /* L440 */
|
||||||
"LEN2005",
|
"LEN2005",
|
||||||
"LEN2006",
|
"LEN2006", /* Edge E440/E540 */
|
||||||
"LEN2007",
|
"LEN2007",
|
||||||
"LEN2008",
|
"LEN2008",
|
||||||
"LEN2009",
|
"LEN2009",
|
||||||
|
@@ -973,7 +973,8 @@ struct input_keymap_entry {
|
|||||||
*/
|
*/
|
||||||
#define MT_TOOL_FINGER 0
|
#define MT_TOOL_FINGER 0
|
||||||
#define MT_TOOL_PEN 1
|
#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
|
* Values describing the status of a force-feedback effect
|
||||||
|
Reference in New Issue
Block a user