lkml.org 
[lkml]   [2002]   [Oct]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] 2.5.43: Fix for Logitech Wheel Mouse
    On Thu, Oct 17, 2002 at 11:20:14PM -0700, Christopher Hoover wrote:
    > The wheel on my Logitech mouse doesn't work under the input layer.
    > The mouse was originally recognized as:
    >
    > input: PS2++ Logitech Mouse on isa0060/serio1
    >
    > In this mode, the driver also emits (just once?):
    >
    > psmouse.c: Received PS2++ packet #0, but don't know how to handle.
    >
    >
    > The following patch simply swaps the order of detection of Logitech PS
    > 2++ and Intellimouse protocols. Now my mouse is recognized as:
    >
    > input: ImPS/2 Logitech Wheel Mouse on isa0060/serio1
    >
    > And the wheel works properly in this mode.

    Can you send me the output of /proc/bus/input/devices on your system
    (without your fix, preferably)?

    I'd like to know whether the driver thinks the mouse has a wheel or not.

    > -ch
    > ch@murgatroid.com
    > ch@hpl.hp.com
    >
    >
    > PATCH FOLLOWS
    > --- linux-2.5.43/drivers/input/mouse/psmouse.c.orig Tue Oct 15 20:27:22 2002
    > +++ linux-2.5.43/drivers/input/mouse/psmouse.c Thu Oct 17 22:45:05 2002
    > @@ -378,40 +378,6 @@
    > }
    >
    > /*
    > - * Do Logitech PS2++ / PS2T++ magic init.
    > - */
    > -
    > - if (psmouse->model == 97) { /* TouchPad 3 */
    > -
    > - set_bit(REL_WHEEL, psmouse->dev.relbit);
    > - set_bit(REL_HWHEEL, psmouse->dev.relbit);
    > -
    > - param[0] = 0x11; param[1] = 0x04; param[2] = 0x68; /* Unprotect RAM */
    > - psmouse_command(psmouse, param, 0x30d1);
    > - param[0] = 0x11; param[1] = 0x05; param[2] = 0x0b; /* Enable features */
    > - psmouse_command(psmouse, param, 0x30d1);
    > - param[0] = 0x11; param[1] = 0x09; param[2] = 0xc3; /* Enable PS2++ */
    > - psmouse_command(psmouse, param, 0x30d1);
    > -
    > - param[0] = 0;
    > - if (!psmouse_command(psmouse, param, 0x13d1) &&
    > - param[0] == 0x06 && param[1] == 0x00 && param[2] == 0x14)
    > - return PSMOUSE_PS2TPP;
    > -
    > - } else {
    > - param[0] = param[1] = param[2] = 0;
    > -
    > - psmouse_ps2pp_cmd(psmouse, param, 0x39); /* Magic knock */
    > - psmouse_ps2pp_cmd(psmouse, param, 0xDB);
    > -
    > - if ((param[0] & 0x78) == 0x48 && (param[1] & 0xf3) == 0xc2 &&
    > - (param[2] & 3) == ((param[1] >> 2) & 3))
    > - return PSMOUSE_PS2PP;
    > - }
    > - }
    > - }
    > -
    > -/*
    > * Try IntelliMouse magic init.
    > */
    >
    > @@ -450,6 +416,40 @@
    >
    > psmouse->name = "Wheel Mouse";
    > return PSMOUSE_IMPS;
    > + }
    > +
    > +/*
    > + * Do Logitech PS2++ / PS2T++ magic init.
    > + */
    > +
    > + if (psmouse->model == 97) { /* TouchPad 3 */
    > +
    > + set_bit(REL_WHEEL, psmouse->dev.relbit);
    > + set_bit(REL_HWHEEL, psmouse->dev.relbit);
    > +
    > + param[0] = 0x11; param[1] = 0x04; param[2] = 0x68; /* Unprotect RAM */
    > + psmouse_command(psmouse, param, 0x30d1);
    > + param[0] = 0x11; param[1] = 0x05; param[2] = 0x0b; /* Enable features */
    > + psmouse_command(psmouse, param, 0x30d1);
    > + param[0] = 0x11; param[1] = 0x09; param[2] = 0xc3; /* Enable PS2++ */
    > + psmouse_command(psmouse, param, 0x30d1);
    > +
    > + param[0] = 0;
    > + if (!psmouse_command(psmouse, param, 0x13d1) &&
    > + param[0] == 0x06 && param[1] == 0x00 && param[2] == 0x14)
    > + return PSMOUSE_PS2TPP;
    > +
    > + } else {
    > + param[0] = param[1] = param[2] = 0;
    > +
    > + psmouse_ps2pp_cmd(psmouse, param, 0x39); /* Magic knock */
    > + psmouse_ps2pp_cmd(psmouse, param, 0xDB);
    > +
    > + if ((param[0] & 0x78) == 0x48 && (param[1] & 0xf3) == 0xc2 &&
    > + (param[2] & 3) == ((param[1] >> 2) & 3))
    > + return PSMOUSE_PS2PP;
    > + }
    > + }
    > }
    >
    > /*

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

    \
     
     \ /
      Last update: 2005-03-22 13:30    [W:0.026 / U:0.688 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site