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
next prev parent 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
-- strict thread matches above, loose matches on Subject: below --
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.