lkml.org 
[lkml]   [2005]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [PATCH] ALPS touchpad detection fix
    From
    Date
    Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua> writes:

    > On Thursday 06 January 2005 18:54, Peter Osterlund wrote:
    > > My ALPS touchpad is not recognized because the device gets confused by
    > > the Kensington ThinkingMouse probe. It responds with "00 00 14"
    > > instead of the expected "00 00 64" to the "E6 report".
    > >
    > > Resetting the device before attempting the ALPS probe fixes the
    > > problem.
    > >
    ...
    > > /*
    > > * Try ALPS TouchPad
    > > */
    > > + ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
    > > if (max_proto > PSMOUSE_IMEX && alps_detect(psmouse, set_properties) == 0) {
    > > if (!set_properties || alps_init(psmouse) == 0)
    > > return PSMOUSE_ALPS;
    >
    > You do reset even if max_proto <= PSMOUSE_IMEX and therefore
    > alps_detect won't be called. Is it intended?

    Not really intended. (It shouldn't harm though because the
    mouse/touchpad is reset anyway before the IntelliMouse probe.)

    Here is an updated patch that only does the reset when alps_detect()
    is going to be called.

    Signed-off-by: Peter Osterlund <petero2@telia.com>
    ---

    linux-petero/drivers/input/mouse/psmouse-base.c | 12 +++++++-----
    1 files changed, 7 insertions(+), 5 deletions(-)

    diff -puN drivers/input/mouse/psmouse-base.c~alps-fix drivers/input/mouse/psmouse-base.c
    --- linux/drivers/input/mouse/psmouse-base.c~alps-fix 2005-01-06 22:43:28.000000000 +0100
    +++ linux-petero/drivers/input/mouse/psmouse-base.c 2005-01-07 22:51:45.000000000 +0100
    @@ -451,14 +451,16 @@ static int psmouse_extensions(struct psm
    /*
    * Try ALPS TouchPad
    */
    - if (max_proto > PSMOUSE_IMEX && alps_detect(psmouse, set_properties) == 0) {
    - if (!set_properties || alps_init(psmouse) == 0)
    - return PSMOUSE_ALPS;
    -
    + if (max_proto > PSMOUSE_IMEX) {
    + ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
    + if (alps_detect(psmouse, set_properties) == 0) {
    + if (!set_properties || alps_init(psmouse) == 0)
    + return PSMOUSE_ALPS;
    /*
    * Init failed, try basic relative protocols
    */
    - max_proto = PSMOUSE_IMEX;
    + max_proto = PSMOUSE_IMEX;
    + }
    }

    if (max_proto > PSMOUSE_IMEX && genius_detect(psmouse, set_properties) == 0)
    _
    --
    Peter Osterlund - petero2@telia.com
    http://web.telia.com/~u89404340
    -
    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 14:09    [W:0.026 / U:0.356 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site