linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).