linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Juanito <juam+kernel@posteo.net>
Cc: linux-input@vger.kernel.org,
	"masaki.ota@jp.alps.com" <masaki.ota@jp.alps.com>,
	Paul Donohue <linux-kernel@PaulSD.com>,
	Pali Rohar <pali.rohar@gmail.com>
Subject: Re: ALPS touchpad ot correctly recognized: GlidePoint vs DualPoint
Date: Thu, 7 Sep 2017 14:31:23 -0700	[thread overview]
Message-ID: <20170907213123.GA19320@dtor-ws> (raw)
In-Reply-To: <ada750eb-daeb-c9ae-2452-fcf027a4e704@posteo.net>

Hi Juanito,

On Thu, Sep 07, 2017 at 09:05:14AM +0200, Juanito wrote:
> Dear Kernel Hackers,
> 
> I hope this is the correct place to post this. If not, please forgive me
> and feel free to forward it to someplace else. Thank you very much!

Let's add a few more people who's been looking after ALPS...

> 
> I have a ThinkPad with a touchpad that looks exactly like this:
> https://www.camerongray.me/wp-content/uploads/2015/02/SCotlGg.jpg
> 
> The three pyhsical buttons on top do not work on my debian stretch
> (4.9). I think it isn't being recognized correctly. I see a "Rejected
> trackstick packet from non DualPoint device" in my syslog whenever I
> click on one of them. On the other hand on a Ubuntu 16.04 (4.4 - patched
> by Ubuntu y guess) the buttons *do* work. Interestingly enough, it
> doesn't work on 17.04 (4.10).
> 
> I have noticed that the touchpad gets assigned different names on both
> distros. On debian it is recognized as a GlidePoint and on Ubuntu as a
> DualPoint. In an upstream kernel 4.13 which I just built, it's also
> recognized as a GlidePoint. Unfortunately it doesn't work either.
> 
> I am not sure if the device is actually a DualPoint or not (I don't
> really understand the terminology here), but the thing is that the
> buttons work when the kernel believes it to be one.
> 
> This is the info I have managed to find about the device while running
> on the non-working debian:
> 
> dmesg:
> [    2.914806] input: AlpsPS/2 ALPS GlidePoint as
> /devices/platform/i8042/serio1/input/input2
> 
> lsinput:
> /dev/input/event11
>    bustype : BUS_I8042
>    vendor  : 0x2
>    product : 0x8
>    version : 1792
>    name    : "AlpsPS/2 ALPS GlidePoint"
>    phys    : "isa0060/serio1/input0"
>    bits ev : (null) (null) (null)
> 
> I have played around with the drivers/input/mouse/alps.c file and found
> out the following:
> 
> e7 and ec are important (although I don't know what these are exactly)
> and have the following values:
> 
> e7: 73 03 0a
> ec: 88 b0 13
> 
> This combination is recognized as an ALPS touchpad, but isn't assigned
> the ALPS_DUALPOINT flag. As far as I can see, it is actually being
> *removed* at this point:
> 
> if (alps_probe_trackstick_v3_v7(psmouse, ALPS_REG_BASE_V7) < 0)
>             priv->flags &= ~ALPS_DUALPOINT;
> 
> The bit that says it has a trackpoint (I don't know what this is) is
> apparently saying my device doesn't have one and is removing the
> ALPS_DUALPOINT flag.
> 
> This flag makes the buttons work. I am not sure if it breaks other stuff.
> 
> I have written a pretty dummy patch which actually adds the flag again
> making the buttons work. Again, I am not sure if it breaks other stuff
> but my system isn't whining. Here is the patch:
> 
> diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
> index 850b00e3ad8e..17aba42e846f 100644
> --- a/drivers/input/mouse/alps.c
> +++ b/drivers/input/mouse/alps.c
> @@ -2804,6 +2804,9 @@ static int alps_set_protocol(struct psmouse *psmouse,
>                 if (alps_probe_trackstick_v3_v7(psmouse,
> ALPS_REG_BASE_V7) < 0)
>                         priv->flags &= ~ALPS_DUALPOINT;
> 
> +               if (priv->fw_ver[1] == 0xb0)
> +                       priv->flags |= ALPS_DUALPOINT;
> +
>                 break;
> 
>         case ALPS_PROTO_V8:
> 
> After applying this patch dmesg and lsinput say this:
> 
> [    8.226543] input: AlpsPS/2 ALPS DualPoint Stick as
> /devices/platform/i8042/serio1/input/input13
> [    8.247595] input: AlpsPS/2 ALPS DualPoint TouchPad as
> /devices/platform/i8042/serio1/input/input2
> 
> /dev/input/event11
>    bustype : BUS_I8042
>    vendor  : 0x2
>    product : 0x8
>    version : 1792
>    name    : "AlpsPS/2 ALPS DualPoint Stick"
>    phys    : "isa0060/serio1/input1"
>    bits ev : (null) (null) (null)
> 
> /dev/input/event12
>    bustype : BUS_I8042
>    vendor  : 0x2
>    product : 0x8
>    version : 1792
>    name    : "AlpsPS/2 ALPS DualPoint TouchPad"
>    phys    : "isa0060/serio1/input0"
>    bits ev : (null) (null) (null)
> 
> I am a total newbie to kernels and drivers so it would be great if
> somebody who actually had some idea could take a look at this and
> probably create a patch in a better place. I'll be glad to post more
> info if necessary.
> 
> Thank you very much!
> 
> Cheers,
> Juanito
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Dmitry

  reply	other threads:[~2017-09-07 21:31 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-07  7:05 ALPS touchpad ot correctly recognized: GlidePoint vs DualPoint Juanito
2017-09-07 21:31 ` Dmitry Torokhov [this message]
2017-09-07 21:54   ` Pali Rohár
2017-09-08  5:00     ` Juanito
2017-09-08  6:48       ` Pali Rohár
2017-09-09  8:12         ` Juanito
2017-09-09  8:36           ` Pali Rohár
2017-09-09 18:12             ` Dmitry Torokhov
2017-09-09 18:21               ` Juanito
2017-09-11  2:38                 ` Masaki Ota
2017-09-11 11:26                   ` Juanito
2018-02-04 18:16                     ` Pali Rohár
     [not found]                       ` <f291e382-b90e-baba-fb3c-bdebc991a21d@posteo.net>
2018-02-04 20:21                         ` Pali Rohár
2018-02-05  7:48                           ` Juanito
2018-02-05 11:19                             ` Juanito
2018-02-11 23:01                               ` Pali Rohár

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=20170907213123.GA19320@dtor-ws \
    --to=dmitry.torokhov@gmail.com \
    --cc=juam+kernel@posteo.net \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@PaulSD.com \
    --cc=masaki.ota@jp.alps.com \
    --cc=pali.rohar@gmail.com \
    /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).