[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5b8ea500-0269-b3c7-1a54-af6bfd18b640@gmail.com>
Date: Tue, 7 Mar 2017 11:51:56 +0100
From: Matjaž Hegedič <matjaz.hegedic@...il.com>
To: 廖崇榮 <kt.liao@....com.tw>,
'Dmitry Torokhov' <dmitry.torokhov@...il.com>
Cc: linux-input@...r.kernel.org, linux-kernel@...r.kernel.org,
黃世鵬 經理 <phoenix@....com.tw>,
miller_wang@....com.tw
Subject: Re: [PATCH] Input: elan_i2c - add ASUS EeeBook X205TA special
touchpad fw
Hi Dmitry, KT!
On 2017-03-07 08:05, 廖崇榮 wrote:
> Hi Dmitry
>
> -----Original Message-----
> From: Dmitry Torokhov [mailto:dmitry.torokhov@...il.com]
> Sent: Tuesday, March 07, 2017 3:55 AM
> To: KT Liao
> Cc: linux-input@...r.kernel.org; linux-kernel@...r.kernel.org; Matjaz
> Hegedic
> Subject: Re: [PATCH] Input: elan_i2c - add ASUS EeeBook X205TA special
> touchpad fw
>
> On Sun, Mar 05, 2017 at 03:13:02AM +0100, Matjaz Hegedic wrote:
>> EeeBook X205TA is yet another ASUS device with a special touchpad
>> firmware that needs to be accounted for during initialization, or else
>> the touchpad will go into an invalid state upon suspend/resume.
>> Adding the appropriate ic_type and product_id check fixes the problem.
>
> KT, does this look reasonable? Are there more ASUS models that need such
> handling?
> [KT] : I just discuss it with FW team.
> We can't confirm it right now because it's an old product. And the solution
> focus on power-on issue, not suspend/resume.
> I will let you know once we figure it out.
>
> Our FW has modified, the issue should not happen on new models.
>
> Thanks KT
As it is now, the touchpad will stop working upon resume, returning an
invalid id (and requires a cumbersome workaround of reloading the
module). As the touchpad FW is opaque to me, the only way I could
resolve the bug was through trial-and-error. Including the touchpad in
the 'special fw' resolves the bug and the touchpad resumes without issue.
Now, even if the function is indeed used to resolve a different issue on
other ASUS touchpads, I would argue that this is the most pragmatic way
of resolving the problem on X205TA, X205TAW and F205TA (and possibly
also X200HA & X206HA, though I don't have those to test).
It shouldn't affect any other models or touchpad products.
Thanks!
>>
>> Signed-off-by: Matjaz Hegedic <matjaz.hegedic@...il.com>
>> ---
>> drivers/input/mouse/elan_i2c_core.c | 22 ++++++++++++----------
>> 1 file changed, 12 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/input/mouse/elan_i2c_core.c
>> b/drivers/input/mouse/elan_i2c_core.c
>> index 2c7d287..dde3ad7 100644
>> --- a/drivers/input/mouse/elan_i2c_core.c
>> +++ b/drivers/input/mouse/elan_i2c_core.c
>> @@ -218,17 +218,19 @@ static int elan_query_product(struct
>> elan_tp_data *data)
>>
>> static int elan_check_ASUS_special_fw(struct elan_tp_data *data) {
>> - if (data->ic_type != 0x0E)
>> - return false;
>> -
>> - switch (data->product_id) {
>> - case 0x05 ... 0x07:
>> - case 0x09:
>> - case 0x13:
>> - return true;
>> - default:
>> - return false;
>> + if (data->ic_type == 0x0E) {
>> + switch (data->product_id) {
>> + case 0x05 ... 0x07:
>> + case 0x09:
>> + case 0x13:
>> + return true;
>> + }
>> }
>> + /* ASUS EeeBook X205TA */
>> + else if (data->ic_type == 0x8 && data->product_id == 0x26)
>> + return true;
>> +
>> + return false;
>> }
>>
>> static int __elan_initialize(struct elan_tp_data *data)
>> --
>> 2.7.4
>>
>
> Thanks.
>
Powered by blists - more mailing lists