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@xxxxxxxxx> 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@xxxxxxxxx -- Pali Rohár pali.rohar@xxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html