RE: [PATCH] Input: elan_i2c - +200 ms delay before setting to ABS mode

From: ååæ
Date: Mon Jun 27 2016 - 21:41:21 EST


Hi Daniel, Chris

-----Original Message-----
From: Daniel Drake [mailto:drake@xxxxxxxxxxxx]
Sent: Tuesday, June 21, 2016 10:42 PM
To: ååæ
Cc: Dmitry Torokhov; Chris Chiu; Charlie Mooney; Michele Curti; Krzysztof Kozlowski; Benson Leung; linux-input@xxxxxxxxxxxxxxx; Linux Kernel; Linux Upstreaming Team; éäé çç
Subject: Re: [PATCH] Input: elan_i2c - +200 ms delay before setting to ABS mode

On Tue, Jun 21, 2016 at 6:40 AM, ååæ <kt.liao@xxxxxxxxxx> wrote:
> KT, is this feasible?
> [KT] After internal discussion, we don't agree this patch.
> It's a work-around to fix firmware bug for specific touchpad and
> not tested by other device.

For better or worse, Linux often takes on the responsibility of working around firmware bugs. This is a real issue that affects multiple Asus laptops; you'll have no touchpad input upon reboot from any OS that drives the touchpad in "generic hid" mode (e.g. older version of Linux, some embedded OS, etc).

If the sleep is really that controversial, we could make it specific to the ELAN1000 model that is the one in question here?

[KT] : I list all ASUS models with firmware issue which cause TP no function in Endless OOB , please focuses on below types only
Ic_type : 14
Product_id : 0x14, 0x15, 0x16, 0x25, 0x18, 0x29, 0x2c, 0x31, 0x32, 0x35

You can add if branch in "__elan_initialize", something like that

if(data->ic_ytpe == 14 &&
(data->product_id == 0x14 || data->product_id == 0x15 || data->product_id == 0x16 ||
data->product_id == 0x25 || data->product_id == 0x18 || data->product_id == 0x29 ||
data->product_id == 0x2c || data->product_id == 0x31 || data->product_id == 0x32 || data->product_id == 0x35))
{ //flow for Endless}
Else {//original flow}