[PATCH 7/7] Limit Synaptics rate on Toshibas

From: Dmitry Torokhov
Date: Fri Nov 12 2004 - 01:51:28 EST



===================================================================


ChangeSet@xxxxxx, 2004-11-12 00:47:33-05:00, dtor_core@xxxxxxxxxxxxx
Input: synaptics - use DMI to detect Toshiba Satellite notebooks
and automatically reduce touchpad reporting rate to 40 pps
as they have trouble handling high rate (80 pps).

Signed-off-by: Dmitry Torokhov <dtor@xxxxxxx>


synaptics.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+)


===================================================================



diff -Nru a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
--- a/drivers/input/mouse/synaptics.c 2004-11-12 01:01:27 -05:00
+++ b/drivers/input/mouse/synaptics.c 2004-11-12 01:01:27 -05:00
@@ -604,6 +604,20 @@
return 0;
}

+#if defined(__i386__)
+#include <linux/dmi.h>
+static struct dmi_system_id toshiba_dmi_table[] = {
+ {
+ .ident = "Toshiba Satellite",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME , "Satellite"),
+ },
+ },
+ { }
+};
+#endif
+
int synaptics_init(struct psmouse *psmouse)
{
struct synaptics_data *priv;
@@ -636,6 +650,18 @@
psmouse->disconnect = synaptics_disconnect;
psmouse->reconnect = synaptics_reconnect;
psmouse->pktsize = 6;
+
+#if defined(__i386__)
+ /*
+ * Toshiba's KBC seems to have trouble handling data from
+ * Synaptics as full rate, switch to lower rate which is roughly
+ * thye same as rate of standard PS/2 mouse.
+ */
+ if (psmouse->rate >= 80 && dmi_check_system(toshiba_dmi_table)) {
+ printk(KERN_INFO "synaptics: Toshiba Satellite detected, limiting rate to 40pps.\n");
+ psmouse->rate = 40;
+ }
+#endif

return 0;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/