diff --git a/Input-synaptics-do-not-retrieve-the-board-id-on-old-.patch b/Input-synaptics-do-not-retrieve-the-board-id-on-old-.patch deleted file mode 100644 index 51ba54d..0000000 --- a/Input-synaptics-do-not-retrieve-the-board-id-on-old-.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Benjamin Tissoires -Date: Sun, 8 Mar 2015 22:33:36 -0700 -Subject: [PATCH] Input: synaptics - do not retrieve the board id on old - firmwares - -The board id capability has been added in firmware 7.5. - -Cc: stable@vger.kernel.org -Signed-off-by: Benjamin Tissoires -Acked-by: Hans de Goede -Signed-off-by: Dmitry Torokhov ---- - drivers/input/mouse/synaptics.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index 2f42a712f3e0..2176874a41b1 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -250,6 +250,10 @@ static int synaptics_board_id(struct psmouse *psmouse) - struct synaptics_data *priv = psmouse->private; - unsigned char bid[3]; - -+ /* firmwares prior 7.5 have no board_id encoded */ -+ if (SYN_ID_FULL(priv->identity) < 0x705) -+ return 0; -+ - if (synaptics_send_cmd(psmouse, SYN_QUE_MODES, bid)) - return -1; - priv->board_id = ((bid[0] & 0xfc) << 6) | bid[1]; --- -2.1.0 - diff --git a/Input-synaptics-fix-middle-button-on-Lenovo-2015-pro.patch b/Input-synaptics-fix-middle-button-on-Lenovo-2015-pro.patch deleted file mode 100644 index 8a677de..0000000 --- a/Input-synaptics-fix-middle-button-on-Lenovo-2015-pro.patch +++ /dev/null @@ -1,100 +0,0 @@ -From: Dmitry Torokhov -Date: Sun, 8 Mar 2015 22:30:43 -0700 -Subject: [PATCH] Input: synaptics - fix middle button on Lenovo 2015 products - -On the X1 Carbon 3rd gen (with a 2015 broadwell cpu), the physical middle -button of the trackstick (attached to the touchpad serio device, of course) -seems to get lost. - -Actually, the touchpads reports 3 extra buttons, which falls in the switch -below to the '2' case. Let's handle the case of odd numbers also, so that -the middle button finds its way back. - -Cc: stable@vger.kernel.org -Signed-off-by: Benjamin Tissoires -Acked-by: Hans de Goede -Signed-off-by: Dmitry Torokhov ---- - drivers/input/mouse/synaptics.c | 44 ++++++++++++++++++++--------------------- - 1 file changed, 21 insertions(+), 23 deletions(-) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index 9567a708aa64..e78cc5578527 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -658,6 +658,18 @@ static void synaptics_parse_agm(const unsigned char buf[], - priv->agm_pending = true; - } - -+static void synaptics_parse_ext_buttons(const unsigned char buf[], -+ struct synaptics_data *priv, -+ struct synaptics_hw_state *hw) -+{ -+ unsigned int ext_bits = -+ (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) + 1) >> 1; -+ unsigned int ext_mask = GENMASK(ext_bits - 1, 0); -+ -+ hw->ext_buttons = buf[4] & ext_mask; -+ hw->ext_buttons |= (buf[5] & ext_mask) << ext_bits; -+} -+ - static bool is_forcepad; - - static int synaptics_parse_hw_state(const unsigned char buf[], -@@ -744,28 +756,9 @@ static int synaptics_parse_hw_state(const unsigned char buf[], - hw->down = ((buf[0] ^ buf[3]) & 0x02) ? 1 : 0; - } - -- if (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) && -+ if (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) > 0 && - ((buf[0] ^ buf[3]) & 0x02)) { -- switch (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) & ~0x01) { -- default: -- /* -- * if nExtBtn is greater than 8 it should be -- * considered invalid and treated as 0 -- */ -- break; -- case 8: -- hw->ext_buttons |= ((buf[5] & 0x08)) ? 0x80 : 0; -- hw->ext_buttons |= ((buf[4] & 0x08)) ? 0x40 : 0; -- case 6: -- hw->ext_buttons |= ((buf[5] & 0x04)) ? 0x20 : 0; -- hw->ext_buttons |= ((buf[4] & 0x04)) ? 0x10 : 0; -- case 4: -- hw->ext_buttons |= ((buf[5] & 0x02)) ? 0x08 : 0; -- hw->ext_buttons |= ((buf[4] & 0x02)) ? 0x04 : 0; -- case 2: -- hw->ext_buttons |= ((buf[5] & 0x01)) ? 0x02 : 0; -- hw->ext_buttons |= ((buf[4] & 0x01)) ? 0x01 : 0; -- } -+ synaptics_parse_ext_buttons(buf, priv, hw); - } - } else { - hw->x = (((buf[1] & 0x1f) << 8) | buf[2]); -@@ -832,6 +825,7 @@ static void synaptics_report_buttons(struct psmouse *psmouse, - { - struct input_dev *dev = psmouse->dev; - struct synaptics_data *priv = psmouse->private; -+ int ext_bits = (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) + 1) >> 1; - int i; - - input_report_key(dev, BTN_LEFT, hw->left); -@@ -845,8 +839,12 @@ static void synaptics_report_buttons(struct psmouse *psmouse, - input_report_key(dev, BTN_BACK, hw->down); - } - -- for (i = 0; i < SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap); i++) -- input_report_key(dev, BTN_0 + i, hw->ext_buttons & (1 << i)); -+ for (i = 0; i < ext_bits; i++) { -+ input_report_key(dev, BTN_0 + 2 * i, -+ hw->ext_buttons & (1 << i)); -+ input_report_key(dev, BTN_1 + 2 * i, -+ hw->ext_buttons & (1 << (i + ext_bits))); -+ } - } - - static void synaptics_report_slot(struct input_dev *dev, int slot, --- -2.1.0 - diff --git a/Input-synaptics-handle-spurious-release-of-trackstic.patch b/Input-synaptics-handle-spurious-release-of-trackstic.patch deleted file mode 100644 index e3d3d7a..0000000 --- a/Input-synaptics-handle-spurious-release-of-trackstic.patch +++ /dev/null @@ -1,77 +0,0 @@ -From: Benjamin Tissoires -Date: Sun, 8 Mar 2015 22:32:43 -0700 -Subject: [PATCH] Input: synaptics - handle spurious release of trackstick - buttons - -The Fimware 8.1 has a bug in which the extra buttons are only sent when the -ExtBit is 1. This should be fixed in a future FW update which should have -a bump of the minor version. - -Cc: stable@vger.kernel.org -Signed-off-by: Benjamin Tissoires -Acked-by: Hans de Goede -Signed-off-by: Dmitry Torokhov ---- - drivers/input/mouse/synaptics.c | 33 +++++++++++++++++++++++++-------- - 1 file changed, 25 insertions(+), 8 deletions(-) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index e78cc5578527..2f42a712f3e0 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -820,14 +820,36 @@ static void synaptics_report_semi_mt_data(struct input_dev *dev, - } - } - --static void synaptics_report_buttons(struct psmouse *psmouse, -- const struct synaptics_hw_state *hw) -+static void synaptics_report_ext_buttons(struct psmouse *psmouse, -+ const struct synaptics_hw_state *hw) - { - struct input_dev *dev = psmouse->dev; - struct synaptics_data *priv = psmouse->private; - int ext_bits = (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) + 1) >> 1; - int i; - -+ if (!SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap)) -+ return; -+ -+ /* Bug in FW 8.1, buttons are reported only when ExtBit is 1 */ -+ if (SYN_ID_FULL(priv->identity) == 0x801 && -+ !((psmouse->packet[0] ^ psmouse->packet[3]) & 0x02)) -+ return; -+ -+ for (i = 0; i < ext_bits; i++) { -+ input_report_key(dev, BTN_0 + 2 * i, -+ hw->ext_buttons & (1 << i)); -+ input_report_key(dev, BTN_1 + 2 * i, -+ hw->ext_buttons & (1 << (i + ext_bits))); -+ } -+} -+ -+static void synaptics_report_buttons(struct psmouse *psmouse, -+ const struct synaptics_hw_state *hw) -+{ -+ struct input_dev *dev = psmouse->dev; -+ struct synaptics_data *priv = psmouse->private; -+ - input_report_key(dev, BTN_LEFT, hw->left); - input_report_key(dev, BTN_RIGHT, hw->right); - -@@ -839,12 +861,7 @@ static void synaptics_report_buttons(struct psmouse *psmouse, - input_report_key(dev, BTN_BACK, hw->down); - } - -- for (i = 0; i < ext_bits; i++) { -- input_report_key(dev, BTN_0 + 2 * i, -- hw->ext_buttons & (1 << i)); -- input_report_key(dev, BTN_1 + 2 * i, -- hw->ext_buttons & (1 << (i + ext_bits))); -- } -+ synaptics_report_ext_buttons(psmouse, hw); - } - - static void synaptics_report_slot(struct input_dev *dev, int slot, --- -2.1.0 - diff --git a/Input-synaptics-log-queried-and-quirked-dimension-va.patch b/Input-synaptics-log-queried-and-quirked-dimension-va.patch deleted file mode 100644 index b6f642e..0000000 --- a/Input-synaptics-log-queried-and-quirked-dimension-va.patch +++ /dev/null @@ -1,56 +0,0 @@ -From: Daniel Martin -Date: Sun, 8 Mar 2015 22:28:29 -0700 -Subject: [PATCH] Input: synaptics - log queried and quirked dimension values - -Logging the dimension values we queried and the values we use from a quirk -to overwrite can be helpful for debugging. - -This partly relates to bug: - https://bugzilla.kernel.org/show_bug.cgi?id=91541 - -Cc: stable@vger.kernel.org -Signed-off-by: Daniel Martin -Acked-by: Hans de Goede -Signed-off-by: Dmitry Torokhov ---- - drivers/input/mouse/synaptics.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index b501dda75dcb..47c5dca20a60 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -362,6 +362,9 @@ static int synaptics_resolution(struct psmouse *psmouse) - } else { - priv->x_max = (resp[0] << 5) | ((resp[1] & 0x0f) << 1); - priv->y_max = (resp[2] << 5) | ((resp[1] & 0xf0) >> 3); -+ psmouse_info(psmouse, -+ "queried max coordinates: x [..%d], y [..%d]\n", -+ priv->x_max, priv->y_max); - } - } - -@@ -373,6 +376,9 @@ static int synaptics_resolution(struct psmouse *psmouse) - } else { - priv->x_min = (resp[0] << 5) | ((resp[1] & 0x0f) << 1); - priv->y_min = (resp[2] << 5) | ((resp[1] & 0xf0) >> 3); -+ psmouse_info(psmouse, -+ "queried min coordinates: x [%d..], y [%d..]\n", -+ priv->x_min, priv->y_min); - } - } - -@@ -395,6 +401,10 @@ static void synaptics_apply_quirks(struct psmouse *psmouse) - priv->x_max = min_max_pnpid_table[i].x_max; - priv->y_min = min_max_pnpid_table[i].y_min; - priv->y_max = min_max_pnpid_table[i].y_max; -+ psmouse_info(psmouse, -+ "quirked min/max coordinates: x [%d..%d], y [%d..%d]\n", -+ priv->x_min, priv->x_max, -+ priv->y_min, priv->y_max); - break; - } - } --- -2.1.0 - diff --git a/Input-synaptics-query-min-dimensions-for-fw-v8.1.patch b/Input-synaptics-query-min-dimensions-for-fw-v8.1.patch deleted file mode 100644 index a4ecc6e..0000000 --- a/Input-synaptics-query-min-dimensions-for-fw-v8.1.patch +++ /dev/null @@ -1,47 +0,0 @@ -From: Daniel Martin -Date: Sun, 8 Mar 2015 22:28:40 -0700 -Subject: [PATCH] Input: synaptics - query min dimensions for fw v8.1 - -Query the min dimensions even if the check -SYN_EXT_CAP_REQUESTS(priv->capabilities) >= 7 fails, but we know that the -firmware version 8.1 is safe. - -With that we don't need quirks for post-2013 models anymore as they expose -correct min and max dimensions. - -Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=91541 - -Cc: stable@vger.kernel.org -Signed-off-by: Daniel Martin - re-order the tests to check SYN_CAP_MIN_DIMENSIONS even on FW 8.1 -Signed-off-by: Benjamin Tissoires -Acked-by: Hans de Goede -Signed-off-by: Dmitry Torokhov ---- - drivers/input/mouse/synaptics.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index 47c5dca20a60..87c37f745b92 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -368,8 +368,14 @@ static int synaptics_resolution(struct psmouse *psmouse) - } - } - -- if (SYN_EXT_CAP_REQUESTS(priv->capabilities) >= 7 && -- SYN_CAP_MIN_DIMENSIONS(priv->ext_cap_0c)) { -+ if (SYN_CAP_MIN_DIMENSIONS(priv->ext_cap_0c) && -+ (SYN_EXT_CAP_REQUESTS(priv->capabilities) >= 7 || -+ /* -+ * Firmware v8.1 does not report proper number of extended -+ * capabilities, but has been proven to report correct min -+ * coordinates. -+ */ -+ SYN_ID_FULL(priv->identity) == 0x801)) { - if (synaptics_send_cmd(psmouse, SYN_QUE_EXT_MIN_COORDS, resp)) { - psmouse_warn(psmouse, - "device claims to have min coordinates query, but I'm not able to read it.\n"); --- -2.1.0 - diff --git a/Input-synaptics-remove-obsolete-min-max-quirk-for-X2.patch b/Input-synaptics-remove-obsolete-min-max-quirk-for-X2.patch deleted file mode 100644 index 5305078..0000000 --- a/Input-synaptics-remove-obsolete-min-max-quirk-for-X2.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: Daniel Martin -Date: Sun, 8 Mar 2015 22:29:07 -0700 -Subject: [PATCH] Input: synaptics - remove obsolete min/max quirk for X240 - -The firmware of the X240 (LEN0035, 2013/12) exposes the same values - x [1232..5710], y [1156..4696] -as the quirk applies. - -Cc: stable@vger.kernel.org -Signed-off-by: Daniel Martin -Acked-by: Hans de Goede -Signed-off-by: Dmitry Torokhov ---- - drivers/input/mouse/synaptics.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index 87c37f745b92..af686a82b02b 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -131,7 +131,7 @@ static const struct min_max_quirk min_max_pnpid_table[] = { - 1024, 5052, 2258, 4832 - }, - { -- (const char * const []){"LEN0035", "LEN0042", NULL}, -+ (const char * const []){"LEN0042", NULL}, - 1232, 5710, 1156, 4696 - }, - { --- -2.1.0 - diff --git a/Input-synaptics-skip-quirks-when-post-2013-dimension.patch b/Input-synaptics-skip-quirks-when-post-2013-dimension.patch deleted file mode 100644 index 4ab0617..0000000 --- a/Input-synaptics-skip-quirks-when-post-2013-dimension.patch +++ /dev/null @@ -1,39 +0,0 @@ -From: Benjamin Tissoires -Date: Sun, 8 Mar 2015 22:29:25 -0700 -Subject: [PATCH] Input: synaptics - skip quirks when post-2013 dimensions - -Post-2013 Lenovo laptops provide correct min/max dimensions, which are -different with the ones currently quirked. According to -https://bugzilla.kernel.org/show_bug.cgi?id=91541 the following board ids -are assigned in the post-2013 touchpads: - -t440p/t440s: LEN0036 -> 2964/2962 -t540p: LEN0034 -> 2964 - -Using 2961 as the common minimum makes these 3 laptops OK. We may need -to update those values later if other pnp_ids has a lower board_id. - -Cc: stable@vger.kernel.org -Signed-off-by: Benjamin Tissoires -Acked-by: Hans de Goede -Signed-off-by: Dmitry Torokhov ---- - drivers/input/mouse/synaptics.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index a900a385e5c3..9567a708aa64 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -144,7 +144,7 @@ static const struct min_max_quirk min_max_pnpid_table[] = { - (const char * const []){"LEN0034", "LEN0036", "LEN0037", - "LEN0039", "LEN2002", "LEN2004", - NULL}, -- {ANY_BOARD_ID, ANY_BOARD_ID}, -+ {ANY_BOARD_ID, 2961}, - 1024, 5112, 2024, 4832 - }, - { --- -2.1.0 - diff --git a/Input-synaptics-split-synaptics_resolution-query-fir.patch b/Input-synaptics-split-synaptics_resolution-query-fir.patch deleted file mode 100644 index 56e9e31..0000000 --- a/Input-synaptics-split-synaptics_resolution-query-fir.patch +++ /dev/null @@ -1,87 +0,0 @@ -From: Daniel Martin -Date: Sun, 8 Mar 2015 22:27:37 -0700 -Subject: [PATCH] Input: synaptics - split synaptics_resolution(), query first - -Split the function synaptics_resolution() into synaptics_resolution() and -synaptics_quirks(). synaptics_resolution() will be called before -synaptics_quirks() to query dimensions and resolutions before overwriting -them with quirks. - -Cc: stable@vger.kernel.org -Signed-off-by: Daniel Martin -Acked-by: Hans de Goede -Signed-off-by: Dmitry Torokhov ---- - drivers/input/mouse/synaptics.c | 35 +++++++++++++++++++++++------------ - 1 file changed, 23 insertions(+), 12 deletions(-) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index 23e26e0768b5..b501dda75dcb 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -343,7 +343,6 @@ static int synaptics_resolution(struct psmouse *psmouse) - { - struct synaptics_data *priv = psmouse->private; - unsigned char resp[3]; -- int i; - - if (SYN_ID_MAJOR(priv->identity) < 4) - return 0; -@@ -355,17 +354,6 @@ static int synaptics_resolution(struct psmouse *psmouse) - } - } - -- for (i = 0; min_max_pnpid_table[i].pnp_ids; i++) { -- if (psmouse_matches_pnp_id(psmouse, -- min_max_pnpid_table[i].pnp_ids)) { -- priv->x_min = min_max_pnpid_table[i].x_min; -- priv->x_max = min_max_pnpid_table[i].x_max; -- priv->y_min = min_max_pnpid_table[i].y_min; -- priv->y_max = min_max_pnpid_table[i].y_max; -- return 0; -- } -- } -- - if (SYN_EXT_CAP_REQUESTS(priv->capabilities) >= 5 && - SYN_CAP_MAX_DIMENSIONS(priv->ext_cap_0c)) { - if (synaptics_send_cmd(psmouse, SYN_QUE_EXT_MAX_COORDS, resp)) { -@@ -391,6 +379,27 @@ static int synaptics_resolution(struct psmouse *psmouse) - return 0; - } - -+/* -+ * Apply quirk(s) if the hardware matches -+ */ -+ -+static void synaptics_apply_quirks(struct psmouse *psmouse) -+{ -+ struct synaptics_data *priv = psmouse->private; -+ int i; -+ -+ for (i = 0; min_max_pnpid_table[i].pnp_ids; i++) { -+ if (psmouse_matches_pnp_id(psmouse, -+ min_max_pnpid_table[i].pnp_ids)) { -+ priv->x_min = min_max_pnpid_table[i].x_min; -+ priv->x_max = min_max_pnpid_table[i].x_max; -+ priv->y_min = min_max_pnpid_table[i].y_min; -+ priv->y_max = min_max_pnpid_table[i].y_max; -+ break; -+ } -+ } -+} -+ - static int synaptics_query_hardware(struct psmouse *psmouse) - { - if (synaptics_identify(psmouse)) -@@ -406,6 +415,8 @@ static int synaptics_query_hardware(struct psmouse *psmouse) - if (synaptics_resolution(psmouse)) - return -1; - -+ synaptics_apply_quirks(psmouse); -+ - return 0; - } - --- -2.1.0 - diff --git a/Input-synaptics-support-min-max-board-id-in-min_max_.patch b/Input-synaptics-support-min-max-board-id-in-min_max_.patch deleted file mode 100644 index cb1a255..0000000 --- a/Input-synaptics-support-min-max-board-id-in-min_max_.patch +++ /dev/null @@ -1,108 +0,0 @@ -From: Daniel Martin -Date: Sun, 8 Mar 2015 22:29:15 -0700 -Subject: [PATCH] Input: synaptics - support min/max board id in - min_max_pnpid_table - -Add a min/max range for board ids to the min/max coordinates quirk. This -makes it possible to restrict quirks to specific models based upon their -board id. The define ANY_BOARD_ID (0) serves as a wild card. - -Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=91541 - -Cc: stable@vger.kernel.org -Signed-off-by: Daniel Martin -Acked-by: Hans de Goede -Signed-off-by: Dmitry Torokhov ---- - drivers/input/mouse/synaptics.c | 42 +++++++++++++++++++++++++++++------------ - 1 file changed, 30 insertions(+), 12 deletions(-) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index af686a82b02b..a900a385e5c3 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -120,32 +120,41 @@ void synaptics_reset(struct psmouse *psmouse) - - static bool cr48_profile_sensor; - -+#define ANY_BOARD_ID 0 - struct min_max_quirk { - const char * const *pnp_ids; -+ struct { -+ unsigned long int min, max; -+ } board_id; - int x_min, x_max, y_min, y_max; - }; - - static const struct min_max_quirk min_max_pnpid_table[] = { - { - (const char * const []){"LEN0033", NULL}, -+ {ANY_BOARD_ID, ANY_BOARD_ID}, - 1024, 5052, 2258, 4832 - }, - { - (const char * const []){"LEN0042", NULL}, -+ {ANY_BOARD_ID, ANY_BOARD_ID}, - 1232, 5710, 1156, 4696 - }, - { - (const char * const []){"LEN0034", "LEN0036", "LEN0037", - "LEN0039", "LEN2002", "LEN2004", - NULL}, -+ {ANY_BOARD_ID, ANY_BOARD_ID}, - 1024, 5112, 2024, 4832 - }, - { - (const char * const []){"LEN2001", NULL}, -+ {ANY_BOARD_ID, ANY_BOARD_ID}, - 1024, 5022, 2508, 4832 - }, - { - (const char * const []){"LEN2006", NULL}, -+ {ANY_BOARD_ID, ANY_BOARD_ID}, - 1264, 5675, 1171, 4688 - }, - { } -@@ -401,18 +410,27 @@ static void synaptics_apply_quirks(struct psmouse *psmouse) - int i; - - for (i = 0; min_max_pnpid_table[i].pnp_ids; i++) { -- if (psmouse_matches_pnp_id(psmouse, -- min_max_pnpid_table[i].pnp_ids)) { -- priv->x_min = min_max_pnpid_table[i].x_min; -- priv->x_max = min_max_pnpid_table[i].x_max; -- priv->y_min = min_max_pnpid_table[i].y_min; -- priv->y_max = min_max_pnpid_table[i].y_max; -- psmouse_info(psmouse, -- "quirked min/max coordinates: x [%d..%d], y [%d..%d]\n", -- priv->x_min, priv->x_max, -- priv->y_min, priv->y_max); -- break; -- } -+ if (!psmouse_matches_pnp_id(psmouse, -+ min_max_pnpid_table[i].pnp_ids)) -+ continue; -+ -+ if (min_max_pnpid_table[i].board_id.min != ANY_BOARD_ID && -+ priv->board_id < min_max_pnpid_table[i].board_id.min) -+ continue; -+ -+ if (min_max_pnpid_table[i].board_id.max != ANY_BOARD_ID && -+ priv->board_id > min_max_pnpid_table[i].board_id.max) -+ continue; -+ -+ priv->x_min = min_max_pnpid_table[i].x_min; -+ priv->x_max = min_max_pnpid_table[i].x_max; -+ priv->y_min = min_max_pnpid_table[i].y_min; -+ priv->y_max = min_max_pnpid_table[i].y_max; -+ psmouse_info(psmouse, -+ "quirked min/max coordinates: x [%d..%d], y [%d..%d]\n", -+ priv->x_min, priv->x_max, -+ priv->y_min, priv->y_max); -+ break; - } - } - --- -2.1.0 - diff --git a/kernel.spec b/kernel.spec index 13e9b8e..bed017f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 3 +%define stable_update 4 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -624,15 +624,6 @@ Patch26138: ext4-Allocate-entire-range-in-zero-range.patch Patch26141: Bluetooth-ath3k-Add-support-Atheros-AR5B195-combo-Mi.patch #rhbz 1200777 1200778 -Patch26150: Input-synaptics-split-synaptics_resolution-query-fir.patch -Patch26151: Input-synaptics-log-queried-and-quirked-dimension-va.patch -Patch26152: Input-synaptics-query-min-dimensions-for-fw-v8.1.patch -Patch26153: Input-synaptics-remove-obsolete-min-max-quirk-for-X2.patch -Patch26154: Input-synaptics-support-min-max-board-id-in-min_max_.patch -Patch26155: Input-synaptics-skip-quirks-when-post-2013-dimension.patch -Patch26156: Input-synaptics-fix-middle-button-on-Lenovo-2015-pro.patch -Patch26157: Input-synaptics-handle-spurious-release-of-trackstic.patch -Patch26158: Input-synaptics-do-not-retrieve-the-board-id-on-old-.patch Patch26159: Input-synaptics-retrieve-the-extended-capabilities-i.patch Patch26160: Input-synaptics-remove-TOPBUTTONPAD-property-for-Len.patch Patch26161: Input-synaptics-re-route-tracksticks-buttons-on-the-.patch @@ -1398,15 +1389,6 @@ ApplyPatch ext4-Allocate-entire-range-in-zero-range.patch ApplyPatch Bluetooth-ath3k-Add-support-Atheros-AR5B195-combo-Mi.patch #rhbz 1200777 1200778 -ApplyPatch Input-synaptics-split-synaptics_resolution-query-fir.patch -ApplyPatch Input-synaptics-log-queried-and-quirked-dimension-va.patch -ApplyPatch Input-synaptics-query-min-dimensions-for-fw-v8.1.patch -ApplyPatch Input-synaptics-remove-obsolete-min-max-quirk-for-X2.patch -ApplyPatch Input-synaptics-support-min-max-board-id-in-min_max_.patch -ApplyPatch Input-synaptics-skip-quirks-when-post-2013-dimension.patch -ApplyPatch Input-synaptics-fix-middle-button-on-Lenovo-2015-pro.patch -ApplyPatch Input-synaptics-handle-spurious-release-of-trackstic.patch -ApplyPatch Input-synaptics-do-not-retrieve-the-board-id-on-old-.patch ApplyPatch Input-synaptics-retrieve-the-extended-capabilities-i.patch ApplyPatch Input-synaptics-remove-TOPBUTTONPAD-property-for-Len.patch ApplyPatch Input-synaptics-re-route-tracksticks-buttons-on-the-.patch @@ -2307,6 +2289,9 @@ fi # ||----w | # || || %changelog +* Mon Apr 13 2015 Justin M. Forbes - 3.19.4-200 +- Linux v3.19.4 + * Thu Apr 02 2015 Josh Boyer - DoS against IPv6 stacks due to improper handling of RA (rhbz 1203712 1208491) diff --git a/sources b/sources index 137f1ac..397ecc8 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ d3fc8316d4d4d04b65cbc2d70799e763 linux-3.19.tar.xz 15d8d2f97ce056488451a5bfb2944603 perf-man-3.19.tar.gz -1fec75551b2f55fced43df8394b1fd9a patch-3.19.3.xz +0dc19b6abb9b7ae05ba7da48e29c984f patch-3.19.4.xz