linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vojtech Pavlik <vojtech@suse.cz>
To: Linus Torvalds <torvalds@osdl.org>,
	linux-kernel@vger.kernel.org, vojtech@suse.cz
Subject: Re: [PATCH] PS/2 mouse rate setting
Date: Tue, 28 Oct 2003 10:47:09 +0100	[thread overview]
Message-ID: <20031028094709.GA4325@ucw.cz> (raw)
In-Reply-To: <20031028035625.GB20145@rivenstone.net>

On Mon, Oct 27, 2003 at 10:56:25PM -0500, jhf@rivenstone.net wrote:
> On Mon, Oct 27, 2003 at 10:52:44PM -0500, I wrote:
> > On Mon, Oct 27, 2003 at 08:32:15AM -0800, Linus Torvalds wrote:
> > > 
> > > On Mon, 27 Oct 2003, Andi Kleen wrote:
> > > > 
> > > > Overall as KVM user I must say I'm not very happy with the 2.6 mouse
> > > > driver. 2.4 pretty much worked out of the box, but 2.6 needs
> > > > lots of strange options (psmouse_noext, psmouse_rate=80) 
> > > > because it does things very differently out of the box.
> > > 
> > > I agree. The keyboard driver has also deteriorated, I think. 
> > > 
> > > I'd suggest we _not_ set the rate by default at all (and let the default
> > > thing just happen). And only set the rate if the user _asks_ for it with
> > > your setup thing. Mind sending me that kind of patch?
> > > 
> > 
> >     I need this patch to use the scroll wheel on my Logitech mouse
> > with my Belkin KVM switch in 2.6. This patch was in -mm for a while
> > before some changes there broke the diff, and I got some mail from
> > people who said it was helpful.  I didn't hear about any problems.
> > 
> >     Linus, will you please consider applying it?

Plase not in this shape. I don't want yet another option to the driver.
Dmitry said he'll whip up a patch that with a single option can limit
the maximum protocol of the PS/2 mouse to either PS/2, IMPS/2 or
ImExPS/2, possibly more, "psmouse_proto=". That's a better solution.

>     D'oh, forgot the patch.  This is the same patch that was in -mm,
> rediffed against -test9 and tested to compile.  I've been running this
> same patch on vanilla and -mm kernels for months now.
> 
> -- 
> Joseph Fannin
> jhf@rivenstone.net
> 
> Rothchild's Rule -- "For every phenomenon, however complex, someone will
> eventually come up with a simple and elegant theory. This theory will
> be wrong."

> diff -aur linux-2.6.0-test9_orig/Documentation/kernel-parameters.txt linux-2.6.0-test9/Documentation/kernel-parameters.txt
> --- linux-2.6.0-test9_orig/Documentation/kernel-parameters.txt	2003-10-27 15:50:46.000000000 -0500
> +++ linux-2.6.0-test9/Documentation/kernel-parameters.txt	2003-10-27 15:53:58.000000000 -0500
> @@ -790,6 +790,8 @@
>  			before loading.
>  			See Documentation/ramdisk.txt.
>  
> +	psmouse_imps2	[HW,MOUSE] Probe only for Intellimouse PS2 mouse protocol extensions
> +
>  	psmouse_noext	[HW,MOUSE] Disable probing for PS2 mouse protocol extensions
>  
>  	psmouse_resetafter=
> diff -aur linux-2.6.0-test9_orig/drivers/input/mouse/psmouse-base.c linux-2.6.0-test9/drivers/input/mouse/psmouse-base.c
> --- linux-2.6.0-test9_orig/drivers/input/mouse/psmouse-base.c	2003-10-27 15:50:33.000000000 -0500
> +++ linux-2.6.0-test9/drivers/input/mouse/psmouse-base.c	2003-10-27 15:53:58.000000000 -0500
> @@ -24,6 +24,8 @@
>  
>  MODULE_AUTHOR("Vojtech Pavlik <vojtech@suse.cz>");
>  MODULE_DESCRIPTION("PS/2 mouse driver");
> +MODULE_PARM(psmouse_imps2, "1i");
> +MODULE_PARM_DESC(psmouse_imps2, "Limit protocol extensions to the Intellimouse protocol.");
>  MODULE_PARM(psmouse_noext, "1i");
>  MODULE_PARM_DESC(psmouse_noext, "Disable any protocol extensions. Useful for KVM switches.");
>  MODULE_PARM(psmouse_resolution, "i");
> @@ -38,6 +40,7 @@
>  
>  #define PSMOUSE_LOGITECH_SMARTSCROLL	1
>  
> +static int psmouse_imps2;
>  static int psmouse_noext;
>  int psmouse_resolution;
>  unsigned int psmouse_rate = 60;
> @@ -275,66 +278,68 @@
>  	if (psmouse_noext)
>  		return PSMOUSE_PS2;
>  
> -/*
> - * Try Synaptics TouchPad magic ID
> - */
> -
> -       param[0] = 0;
> -       psmouse_command(psmouse, param, PSMOUSE_CMD_SETRES);
> -       psmouse_command(psmouse, param, PSMOUSE_CMD_SETRES);
> -       psmouse_command(psmouse, param, PSMOUSE_CMD_SETRES);
> -       psmouse_command(psmouse, param, PSMOUSE_CMD_SETRES);
> -       psmouse_command(psmouse, param, PSMOUSE_CMD_GETINFO);
> +	if (!psmouse_imps2) {
>  
> -       if (param[1] == 0x47) {
> -		psmouse->vendor = "Synaptics";
> -		psmouse->name = "TouchPad";
> -		if (!synaptics_init(psmouse))
> -			return PSMOUSE_SYNAPTICS;
> -		else
> -			return PSMOUSE_PS2;
> -       }
> +		/*
> +		 * Try Synaptics TouchPad magic ID
> +		 */
>  
> -/*
> - * Try Genius NetMouse magic init.
> - */
> +		param[0] = 0;
> +		psmouse_command(psmouse, param, PSMOUSE_CMD_SETRES);
> +		psmouse_command(psmouse, param, PSMOUSE_CMD_SETRES);
> +		psmouse_command(psmouse, param, PSMOUSE_CMD_SETRES);
> +		psmouse_command(psmouse, param, PSMOUSE_CMD_SETRES);
> +		psmouse_command(psmouse, param, PSMOUSE_CMD_GETINFO);
> +
> +		if (param[1] == 0x47) {
> +			psmouse->vendor = "Synaptics";
> +			psmouse->name = "TouchPad";
> +			if (!synaptics_init(psmouse))
> +				return PSMOUSE_SYNAPTICS;
> +			else
> +				return PSMOUSE_PS2;
> +		}
>  
> -	param[0] = 3;
> -	psmouse_command(psmouse, param, PSMOUSE_CMD_SETRES);
> -	psmouse_command(psmouse,  NULL, PSMOUSE_CMD_SETSCALE11);
> -	psmouse_command(psmouse,  NULL, PSMOUSE_CMD_SETSCALE11);
> -	psmouse_command(psmouse,  NULL, PSMOUSE_CMD_SETSCALE11);
> -	psmouse_command(psmouse, param, PSMOUSE_CMD_GETINFO);
> +		/*
> +		 * Try Genius NetMouse magic init.
> +		 */
>  
> -	if (param[0] == 0x00 && param[1] == 0x33 && param[2] == 0x55) {
> +		param[0] = 3;
> +		psmouse_command(psmouse, param, PSMOUSE_CMD_SETRES);
> +		psmouse_command(psmouse,  NULL, PSMOUSE_CMD_SETSCALE11);
> +		psmouse_command(psmouse,  NULL, PSMOUSE_CMD_SETSCALE11);
> +		psmouse_command(psmouse,  NULL, PSMOUSE_CMD_SETSCALE11);
> +		psmouse_command(psmouse, param, PSMOUSE_CMD_GETINFO);
>  
> -		set_bit(BTN_EXTRA, psmouse->dev.keybit);
> -		set_bit(BTN_SIDE, psmouse->dev.keybit);
> -		set_bit(REL_WHEEL, psmouse->dev.relbit);
> +		if (param[0] == 0x00 && param[1] == 0x33 && param[2] == 0x55) {
>  
> -		psmouse->vendor = "Genius";
> -		psmouse->name = "Wheel Mouse";
> -		return PSMOUSE_GENPS;
> -	}
> +			set_bit(BTN_EXTRA, psmouse->dev.keybit);
> +			set_bit(BTN_SIDE, psmouse->dev.keybit);
> +			set_bit(REL_WHEEL, psmouse->dev.relbit);
>  
> -/*
> - * Try Logitech magic ID.
> - */
> +			psmouse->vendor = "Genius";
> +			psmouse->name = "Wheel Mouse";
> +			return PSMOUSE_GENPS;
> +		}
>  
> -	param[0] = 0;
> -	psmouse_command(psmouse, param, PSMOUSE_CMD_SETRES);
> -	psmouse_command(psmouse,  NULL, PSMOUSE_CMD_SETSCALE11);
> -	psmouse_command(psmouse,  NULL, PSMOUSE_CMD_SETSCALE11);
> -	psmouse_command(psmouse,  NULL, PSMOUSE_CMD_SETSCALE11);
> -	param[1] = 0;
> -	psmouse_command(psmouse, param, PSMOUSE_CMD_GETINFO);
> +		/*
> +		 * Try Logitech magic ID.
> +		 */
>  
> -	if (param[1]) {
> -		int type = ps2pp_detect_model(psmouse, param);
> -		if (type)
> -			return type;
> +		param[0] = 0;
> +		psmouse_command(psmouse, param, PSMOUSE_CMD_SETRES);
> +		psmouse_command(psmouse,  NULL, PSMOUSE_CMD_SETSCALE11);
> +		psmouse_command(psmouse,  NULL, PSMOUSE_CMD_SETSCALE11);
> +		psmouse_command(psmouse,  NULL, PSMOUSE_CMD_SETSCALE11);
> +		param[1] = 0;
> +		psmouse_command(psmouse, param, PSMOUSE_CMD_GETINFO);
> +
> +		if (param[1]) {
> +			int type = ps2pp_detect_model(psmouse, param);
> +			if (type)
> +				return type;
> +		}
>  	}
> -
>  /*
>   * Try IntelliMouse magic init.
>   */
> @@ -627,6 +632,12 @@
>  };
>  
>  #ifndef MODULE
> +static int __init psmouse_imps2_setup(char *str)
> +{
> +	psmouse_imps2 = 1;
> +	return 1;
> +}
> +
>  static int __init psmouse_noext_setup(char *str)
>  {
>  	psmouse_noext = 1;
> @@ -651,6 +662,7 @@
>  	return 1;
>  }
>  
> +__setup("psmouse_imps2", psmouse_imps2_setup);
>  __setup("psmouse_noext", psmouse_noext_setup);
>  __setup("psmouse_resolution=", psmouse_resolution_setup);
>  __setup("psmouse_smartscroll=", psmouse_smartscroll_setup);




-- 
Vojtech Pavlik
SuSE Labs, SuSE CR

  reply	other threads:[~2003-10-28  9:47 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-27 14:02 [PATCH] PS/2 mouse rate setting Andi Kleen
2003-10-27 16:32 ` Linus Torvalds
2003-10-27 18:38   ` Andi Kleen
2003-10-27 18:56     ` Linus Torvalds
2003-10-27 19:29       ` Andi Kleen
2003-10-28  0:55         ` Vojtech Pavlik
2003-10-28  1:23           ` Linus Torvalds
2003-10-28  1:29             ` Vojtech Pavlik
2003-10-27 22:47     ` Andries Brouwer
2003-10-27 23:13       ` Linus Torvalds
2003-10-28  3:52   ` jhf
2003-10-28  3:56     ` jhf
2003-10-28  9:47       ` Vojtech Pavlik [this message]
2003-10-29  6:36         ` Dmitry Torokhov
2003-10-29  8:30           ` Vojtech Pavlik
2003-10-28 16:25 Jon Smirl
2003-10-28 17:02 ` Felipe Alfaro Solana
2003-10-28 17:13   ` Jon Smirl
     [not found] <1067372443.864.15.camel@teapot.felipe-alfaro.com>
2003-10-28 20:55 ` Jon Smirl
2003-10-28 23:12   ` Felipe Alfaro Solana
     [not found] <20031027140217.GA1065@averell.suse.lists.linux.kernel>
     [not found] ` <20031028035625.GB20145@rivenstone.net.suse.lists.linux.kernel>
     [not found]   ` <20031028094709.GA4325@ucw.cz.suse.lists.linux.kernel>
     [not found]     ` <200310290136.06439.dtor_core@ameritech.net.suse.lists.linux.kernel>
     [not found]       ` <20031029083040.GA18135@ucw.cz.suse.lists.linux.kernel>
2003-10-29 12:47         ` Andi Kleen
2003-11-18 13:52           ` Vojtech Pavlik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20031028094709.GA4325@ucw.cz \
    --to=vojtech@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).