[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#376436: kernel-source-2.6.8: Trust MI-2100 ps2 optical mouse does not work



Package: kernel-source-2.6.8
Version: 2.6.8-16sarge3
Severity: normal


I've got a cheap ps2 optical mouse from Trust, the MI 2100. The current driver
in kernel 2.6.8-16sarge3 disables the laser and renders the mouse unusable.

I attach a patch to psmouse-base.c which adds a 'dontdisable' parameter to
psmouse.ko; loading the driver with 'modprobe psmouse dontdisable=1'
successfully solves the problem for me.

A long term solution would probably involve some refining in the probing code
inside psmouse-base.c.

Regards,
  Antonio Galea

-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.6.8-3-686
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages kernel-source-2.6.8 depends on:
ii  binutils                      2.15-6     The GNU assembler, linker and bina
ii  bzip2                         1.0.2-7    high-quality block-sorting file co
ii  coreutils [fileutils]         5.2.1-2    The GNU core utilities

-- no debconf information


----------------------------------------------------------------
Net Wise webmail system - http://www.netwise.it
This message was sent using IMP, the Internet Messaging Program.
--- /usr/src/kernel-source-2.6.8/drivers/input/mouse/psmouse-base.c	2004-08-14 07:36:32.000000000 +0200
+++ mouse/psmouse-base.c	2006-07-02 23:16:36.421866656 +0200
@@ -47,6 +47,10 @@
 module_param_named(resetafter, psmouse_resetafter, uint, 0);
 MODULE_PARM_DESC(resetafter, "Reset device after so many bad packets (0 = never).");
 
+static unsigned int psmouse_dontdisable;
+module_param_named(dontdisable, psmouse_dontdisable, uint, 0);
+MODULE_PARM_DESC(dontdisable, "Do not disable device upon recognition; useful for some optical Trust mice, notably MI-2100 (default 0).");
+
 __obsolete_setup("psmouse_noext");
 __obsolete_setup("psmouse_resolution=");
 __obsolete_setup("psmouse_smartscroll=");
@@ -527,10 +531,10 @@
 /*
  * Then we reset and disable the mouse so that it doesn't generate events.
  */
-
-	if (psmouse_command(psmouse, NULL, PSMOUSE_CMD_RESET_DIS))
-		printk(KERN_WARNING "psmouse.c: Failed to reset mouse on %s\n", psmouse->serio->phys);
-
+	if(!psmouse_dontdisable){
+		if (psmouse_command(psmouse, NULL, PSMOUSE_CMD_RESET_DIS))
+			printk(KERN_WARNING "psmouse.c: Failed to reset mouse on %s\n", psmouse->serio->phys);
+	}
 	return 0;
 }
 

Reply to: