linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
To: duson <dusonlin@emc.com.tw>, Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: "Jiri Kosina" <jkosina@suse.cz>,
	"Alessio Treglia" <alessio@debian.org>,
	"Jürgen Bausa" <Juergen.Bausa@online.de>,
	linux-input@vger.kernel.org, linux-kernel@vger.kernel.com
Subject: Re: [PATCH] Input: elan_i2c - enable ELAN0600 acpi panels
Date: Thu, 11 Jun 2015 16:19:48 -0400	[thread overview]
Message-ID: <20150611201948.GE32361@mail.corp.redhat.com> (raw)
In-Reply-To: <7C88A00C-F6E1-4FCD-8E77-7969BEB3F7C1@emc.com.tw>

On Apr 09 2015 or thereabouts, duson wrote:
> Hi Dmitry,
> 
> Sorry later for reply. If touchpad is designed for Window OS, 
> the firmware will support standard HID mouse format (non-driver) and elan raw data format (with driver).
> 
> So, if user change OS from Window to Linux, touchpad will work fine under HID format.
> 

Well, Jurgen reported a ELAN0100 (04F3:0401) which is similar but does
not work with the below patch (when adapted to match his PID).
And like under Windows, the HID mouse report format is just not enough under
Linux. We need to have access to the raw touches to be able to provide a
consistent experience. So we need to get his device access to the
proprietary raw format.

I think what makes Jurgen's device unhappy is that the length of the
report 0x5d is 27 instead of 31 (according to the report descriptors).
But elan_i2c_i2c.c checks for the length of the report and fails (only
suppositions).

I would be happy to help here, but it looks like it is going to be
difficult to remotely debug this and switch the whole driver into HID,
especially given that elan_i2c_i2c uses a non-HID command to set the
touchpad in the absolute mode.

So basically, I don't know what to do for Jurgen, but we could still
enable Alessio's touchpad (the ELAN0600, below). Jiri, Dmitry?

Cheers,
Benjamin

> 
> 
> > Dmitry Torokhov <dmitry.torokhov@gmail.com> 於 2015年4月4日 上午5:05 寫道:
> > 
> > On Tue, Mar 31, 2015 at 05:34:58PM -0400, Benjamin Tissoires wrote:
> >> ELAN0600 seems to work just fine in mouse emulation mode through i2c-hid,
> >> but to have full raw touch support we need to register it in elan_i2c.ko
> >> 
> >> Found on a Lenovo Yoga 3 11".
> >> 
> >> Reported-and-tested-by: Alessio Treglia <alessio@debian.org>
> >> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> >> ---
> >> 
> >> Hi,
> >> 
> >> Alessio reported this touchpad on the Lenovo Yoga 3. I must say that I am
> >> rather surprised that we need a cross tree support to enable this panel
> >> and I would expect that the driver would be in the HID subtree, not a direct
> >> input device.
> >> 
> >> I understand the driver needs to access to the raw I2C commands, but still,
> >> we could have worked around in the HID tree directly.
> >> Not to mention that the DT binding would have required only i2c-hid, not a
> >> custom vendor.
> >> 
> >> Anyway, Jiri, Dmitry, who wants to take this one?
> > 
> > Hmm, so elan_i2c.ko (and elants_i2c) is intended to be used with devices
> > that are not compatible with HID protocol, as far as I know. I guess
> > there are firmwares that can do both, but then we should default to HID.
> > 
> > Duson, any comments?
> > 
> > Thanks!
> > 
> >> 
> >> Cheers,
> >> Benjamin
> >> 
> >> drivers/hid/hid-core.c              | 1 +
> >> drivers/input/mouse/elan_i2c_core.c | 1 +
> >> 2 files changed, 2 insertions(+)
> >> 
> >> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> >> index 722a925..33a22f4 100644
> >> --- a/drivers/hid/hid-core.c
> >> +++ b/drivers/hid/hid-core.c
> >> @@ -2259,6 +2259,7 @@ static const struct hid_device_id hid_ignore_list[] = {
> >> 	{ HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EM_LT20) },
> >> 	{ HID_USB_DEVICE(USB_VENDOR_ID_DREAM_CHEEKY, 0x0004) },
> >> 	{ HID_USB_DEVICE(USB_VENDOR_ID_DREAM_CHEEKY, 0x000a) },
> >> +	{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, 0x0400) },
> >> 	{ HID_USB_DEVICE(USB_VENDOR_ID_ESSENTIAL_REALITY, USB_DEVICE_ID_ESSENTIAL_REALITY_P5) },
> >> 	{ HID_USB_DEVICE(USB_VENDOR_ID_ETT, USB_DEVICE_ID_TC5UH) },
> >> 	{ HID_USB_DEVICE(USB_VENDOR_ID_ETT, USB_DEVICE_ID_TC4UM) },
> >> diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c
> >> index 375d98f..ced9a9c 100644
> >> --- a/drivers/input/mouse/elan_i2c_core.c
> >> +++ b/drivers/input/mouse/elan_i2c_core.c
> >> @@ -1110,6 +1110,7 @@ MODULE_DEVICE_TABLE(i2c, elan_id);
> >> #ifdef CONFIG_ACPI
> >> static const struct acpi_device_id elan_acpi_id[] = {
> >> 	{ "ELAN0000", 0 },
> >> +	{ "ELAN0600", 0 },
> >> 	{ }
> >> };
> >> MODULE_DEVICE_TABLE(acpi, elan_acpi_id);
> >> -- 
> >> 2.3.4
> >> 
> > 
> > -- 
> > Dmitry
> > 
> 
--
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

  reply	other threads:[~2015-06-11 20:19 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-31 21:34 [PATCH] Input: elan_i2c - enable ELAN0600 acpi panels Benjamin Tissoires
2015-04-03 21:05 ` Dmitry Torokhov
2015-04-09 11:02   ` duson
2015-06-11 20:19     ` Benjamin Tissoires [this message]
2015-06-22 21:37       ` Dmitry Torokhov

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=20150611201948.GE32361@mail.corp.redhat.com \
    --to=benjamin.tissoires@redhat.com \
    --cc=Juergen.Bausa@online.de \
    --cc=alessio@debian.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=dusonlin@emc.com.tw \
    --cc=jkosina@suse.cz \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.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).