linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali.rohar@gmail.com>
To: Ari Entlich <atrigent@gmail.com>
Cc: linux-input@vger.kernel.org, dmitry.torokhov@gmail.com
Subject: Re: ALPS v7 trackpad passthrough to Thinkpad trackpoint
Date: Thu, 13 Aug 2015 13:03:17 +0200	[thread overview]
Message-ID: <20150813110317.GC20040@pali> (raw)
In-Reply-To: <CANULwrTm0XEdKfC7Shx5VLpvHmkzRt5mOUjbFSm8ck86Ci=iKQ@mail.gmail.com>

On Friday 07 August 2015 12:35:33 Ari Entlich wrote:
> On Fri, Aug 7, 2015 at 10:12 AM, Pali Rohár <pali.rohar@gmail.com> wrote:
> > For some old ALPS devices which use V1 and V2 protocols (with flag
> > ALPS_PASS) there is something like that. On that devices touchpad is
> > behind trackpoint HW. But you cannot wait for data or poll for both
> > devices at same time -- you need to choose if tou want to talk directly
> > to touchpad (via passthrough mode) or just to trackpoint. I think
> > because of this limitation ALPS driver implement all logic in one
> > driver...
> >
> > Above was for old ALPS devices. New ALPS devices with V3 or V5 protocols
> > have trackpoint behind touchpad, so normally OS communicate with
> > touchpad (and not with trackstick like before). But here touchpad sends
> > data for both touchpad and trackstick events and so OS does not have
> > normal access to "hidden" trackstick.
> >
> > There is a way "jump" into passthrough mode and talk directly to
> > trackpoint. But it is used only for configuring trackstick and currently
> > it is used to configure trackstick so it send data (via touchpad) in
> > format which is supported by our ALPS driver.
> >
> > On the other hand, synaptics driver and devices support full
> > "encapsulation" or how can I call it of serio PS/2 device and in this
> > case you can use full set of PS/2 commands directly with trackstick
> > (behind synaptics touchpad). ALPS devices do not support something like
> > that.
> 
> It looks to me like the Synaptics passthrough is implemented primarily
> via the ability to write directly to the trackpoint. Events coming
> from the trackpoint are implemented similarly to the ALPS driver - by
> redirecting trackpoint events to the second device which the driver
> creates for the trackpoint.
> 

No, passthrough for ALPS and Synaptics differ. Synaptics driver exports
full serio PS/2 bus on which can be attached psmouse.ko driver with full
mouse detection (or any other serio driver) and so there can be full
TPPS/2 trackpoint.c protocol driver.

ALPS allows us for *some* protocol version passthrough data directly to
touchpad (or trackpoint) device. There is no support to exporting full
serio bus with PS/2 access to it (like for Synaptics hardware).

> > Note I just wrote information which I understand from driver source code
> > and with "playing" with touchpads. There can be some mistakes (so
> > somebody can correct me), but this is how I understand this situation.
> >
> > I do not have access and I have never seen any "official" documentation.
> > I can say, that current ALPS driver in kernel does not support it for
> > 100% sure. But maybe we just missing some information which allows us to
> > do it.
> >
> > But in my opinion ALPS firmware which is running in ALPS touchpad does
> > not support something like full passthrough to trackpoint device like
> > synaptics. For me it does not make sense to add such function into
> > firmware, because it already send all needed data for OS to allow
> > processing both touchpad and trackpoint data.
> 
> The issue isn't so much getting information from the trackpoint but
> sending information TO it. The trackpoint driver is able to send

But because we do not have direct access to serio PS/2 bus to trackpoint
hardware, we cannot use trackpoint.c driver and so trackpoint.c code is
for ALPS devices useless.

> special commands to the trackpoint to modify its behavior. As far as I
> can tell, this is pretty much the only thing it does. See
> drivers/input/mouse/trackpoint.c for details.
> 
> > Questions are: Do we need full access to trackpoint hardware? Do we know
> > if trackpoint (used by ALPS input solutions) supports configuring speed
> > or acceleration in hardware? It is really not easier to do it in
> > software?
> 
> As I mentioned in my first email, I'm aware that mouse behavior can be
> modified in userspace. However, that's not what I'm asking about. I
> want to have the same capabilities with this device as I had with the
> old one, if at all possible.

Ok, which are those capabilities?

> And anyways, there are some things that
> the trackpoint driver can do that cannot be done in software.
> 

What cannot be done in software? I still think that trackpoint is
"stupid" HW with firmware which doing all that magic. And I do not see
reason why something implement in firmware software cannot be done in
userspace application (or in kernel driver if it makes sense).

> Ari
> 
> > --
> > Pali Rohár
> > pali.rohar@gmail.com

-- 
Pali Rohár
pali.rohar@gmail.com
--
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

  parent reply	other threads:[~2015-08-13 11:03 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-06 11:07 ALPS v7 trackpad passthrough to Thinkpad trackpoint Ari Entlich
2015-08-07 13:26 ` Pali Rohár
2015-08-07 13:41   ` Ari Entlich
2015-08-07 14:12     ` Pali Rohár
2015-08-07 16:35       ` Ari Entlich
2015-08-13  6:32         ` Ari Entlich
2015-08-13 11:03         ` Pali Rohár [this message]
2015-08-13 22:48           ` Dmitry Torokhov
     [not found]             ` <17D6F4B6F11B44BBB1A2C8EB95A9CF84@cirque.local>
2015-08-14  0:18               ` Dmitry Torokhov
2015-08-14  0:25                 ` Vadim Klishko
2015-08-22 18:33                   ` Ari Entlich
2016-01-21 12:12                   ` Pali Rohár
     [not found]                     ` <497C6C7E7BB2424DB3AC56CD7FF593F6@cirque.local>
2016-01-22  3:38                       ` Ari Entlich
2016-01-22  8:14                         ` 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=20150813110317.GC20040@pali \
    --to=pali.rohar@gmail.com \
    --cc=atrigent@gmail.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.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).