From: dturvene <dturvene@dahetral.com>
To: Ben Gamari <bgamari.foss@gmail.com>
Cc: James <james@madingley.org>,
Ignacio Casal Quinteiro <nacho.resa@gmail.com>,
linux-input@vger.kernel.org
Subject: Re: New Alps protocol in the wild?
Date: Sat, 15 Sep 2012 16:49:14 -0400 [thread overview]
Message-ID: <5054E9CA.3070205@dahetral.com> (raw)
In-Reply-To: <504B3F49.9020601@dahetral.com>
On 09/08/2012 08:51 AM, dturvene wrote:
> On 08/17/2012 01:04 PM, Ben Gamari wrote:
>> dturvene <dturvene@dahetral.com> writes:
>>
>>> Ben -
>>>
>>> I tried your fix on a Dell Inspiron 15R N5110 (I15R). It did not work.
>>> Things I noticed:
>>>
>>> 1) Consistent with prior observations, the touchpad E7 signature for it
>>> is: 0x73 0x03 0x50, different than yours on the E6230.
>>>
>> Alright. Good to know.
>>
>>> 2) Your alps_hw_init_v5 sequence does not work for my I15R. I noticed
>>> that the sequence enters/exits command mode a couple times. Why not
>>> enter once, do the init and then exit?
>>>
>> Frankly, I didn't put much (honestly, any) time into figuring out the
>> meaning behind command sequence. I grabbed a dump from the VM and
>> implemented exactly what the Windows driver did. At that point I was
>> under the impression I was dealing with an entirely new protocol so it
>> didn't make much sense to put time into reasoning out the command
>> structure. Given the v3 report format is used I should revisit
>> this. I'll hopefully have a chance to do this this weekend. Given you
>> seem to recognize the command structure, you could probably do this even
>> faster than me. Take a stab at it if you feel so inclined. Pull requests
>> accepted.
>>
>>> 3) When in command mode, the I15R accurately sets and retrieves
>>> registers (e.g. 0x0008 returns 0x00 0x08 0x02). When not in command
>>> mode, all register reads return -1. Oddly, the check in
>>> alps_enter_command_mode is 0x73 0x01 rather than 0x88 0x07.
>>>
>>> So I think either I'm doing something wrong or I'm dealing with YAAP
>>> (Yet Another ALPS Protocol).
>>>
>> Hopefully not.
>>
>>> My question: how did you get the protocol trace? I think you said
>>> previously that the drive does some direct register I/O. I couldn't
>>> see
>>> anything beyond PS/2 commands running under Virtual Box.
>>>
>> I used Seth Foreshee's method[1] under Qemu. Note that the Alps driver
>> for the E6230 (and, given the behavior you see, likely your machine as
>> well) checks for the presence of an entry in the ACPI DSDT (if not
>> present, the driver falls back onto generic PS/2 behavior).
>> Consequently, you may need to do some editing of the Qemu DSDT as
>> pointed out earlier in this thread by James (Message-Id:
>> <20120814103553.GF23370@arianrhod.panaceas.james.local>) I'm not
>> terribly familiar with ACPI, I'll defer to him to explain precisely how
>> he determined the relevant sections.
>>
>> Cheers,
>>
>> - Ben
>>
>>
>> [1]
>> http://swapspace.forshee.me/2011/11/touchpad-protocol-reverse-engineering.html
>>
> Hi Ben, etc. -
>
> I just got back to looking at the Alps driver on a Dell IR15 N5110. I
> was using Virtualbox but switched to Qemu (1.1.1) based on your
> progress, patched the ps2.c and acpi-dsdt.dsl (making sure to build
> the hex file included in acpi.c .) I'm running vista as the guest
> OS, which normally loads a generic ps/2 driver. The Alps touchpad
> works and ps2 events are being logged. When I try to install the Alps
> driver, it fails because (I guess) qemu has a preconfigured notion of
> what hardware is running. I'm trying to figure out how to configure
> qemu to detect the real ALPS touchpad.
>
> I welcome from the community and you any ideas for qemu to detect the
> alps touchpad.
>
> Dave
I finally got this working. Briefly, it's a new protocol to init the
device and the 6-byte packets coming from it are a new format. I didn't
spend much time trying to understand the init sequence, just stuck the
qemu packet dump into a new (V6) init function. But it works; probably
needs to be tightened up a little. I don't understand the thought
process behind the different protocols. It seems like the NRE to keep
writing test and production drivers would be unsustainable.
I created a psmouse DLKM with a README at [1]. If there's anybody else
with an N5110 who wants to try it out please post your comments.
[1]: http://www.dahetral.com/public-download
next prev parent reply other threads:[~2012-09-15 20:49 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-27 16:18 New Alps protocol in the wild? Ben Gamari
2012-07-27 16:52 ` Seth Forshee
2012-07-27 17:17 ` Ben Gamari
2012-07-27 19:15 ` dturvene
2012-07-30 8:43 ` Jiri Kosina
2012-07-30 16:19 ` Ben Gamari
2012-07-31 5:19 ` Ben Gamari
2012-07-31 6:01 ` Dmitry Torokhov
2012-07-31 20:50 ` Ben Gamari
2012-07-31 19:17 ` Ben Gamari
2012-08-14 10:35 ` James
2012-08-14 16:01 ` Ben Gamari
2012-08-14 16:15 ` Seth Forshee
[not found] ` <20120814160519.GC12473@artemis.panaceas.org>
2012-08-15 5:49 ` Ben Gamari
2012-08-16 5:04 ` Ben Gamari
2012-08-17 16:46 ` dturvene
2012-08-17 17:04 ` Ben Gamari
2012-09-08 12:51 ` dturvene
2012-09-10 20:35 ` Ben Gamari
2012-09-15 20:49 ` dturvene [this message]
[not found] ` <CAPtp-N_PbGABwC7PtNtEe7bitc=yg1oV2M6cK6Wb1PkVq6wa9A@mail.gmail.com>
2012-09-30 17:33 ` dturvene
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=5054E9CA.3070205@dahetral.com \
--to=dturvene@dahetral.com \
--cc=bgamari.foss@gmail.com \
--cc=james@madingley.org \
--cc=linux-input@vger.kernel.org \
--cc=nacho.resa@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).