diff mbox

ASUS G752VS Touchpad does not work

Message ID CAAd53p57p7nj2AEoUK-wrEETZEsQweVAmhXMGqEM6JbZtbXAZQ@mail.gmail.com
State New, archived
Headers show

Commit Message

Kai-Heng Feng May 4, 2017, 7:58 a.m. UTC
Hi KT Liao, Duson Lin,

A user reported that the touchpad on ASUS G752VS does not work [1],
it's an ELAN touchapd.

I did the following change, the touchpad correctly loads elan-i2c
instead of hid-multitouch, but it's still not working.

Thanks.

[1] https://bugs.launchpad.net/bugs/1653456

--

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

Comments

Kai-Heng Feng May 4, 2017, 9:54 a.m. UTC | #1
Hi, KT Liao,

On Thu, May 4, 2017 at 5:47 PM, 廖崇榮 <kt.liao@emc.com.tw> wrote:
> Hi Kai-Heng
>
> -----Original Message-----
> From: Kai-Heng Feng [mailto:kai.heng.feng@canonical.com]
> Sent: Thursday, May 04, 2017 3:59 PM
> To: kt.liao@emc.com.tw; dusonlin@emc.com.tw
> Cc: linux-input@vger.kernel.org
> Subject: ASUS G752VS Touchpad does not work
>
> Hi KT Liao, Duson Lin,
>
> A user reported that the touchpad on ASUS G752VS does not work [1], it's an ELAN touchapd.
>
> I did the following change, the touchpad correctly loads elan-i2c instead of hid-multitouch, but it's still not working.
>
> [KT] I check the touchpad of this model, it's MS precision touchpad.
> It must use "hid-multitouch", not "elan-i2c".

Well, the touchpad does not work under hid-multitouch, either. That's
why I tried to let it load elan-i2c instead.
What information do you need to investigate this issue?

Thanks.
--
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
廖崇榮 May 5, 2017, 3:25 a.m. UTC | #2
Add Endlessm's Chris in loop

Hi Chris,

Do you know ASUS G752VS's touchpad issue.
It's MS PTP, I am not sure if it meet the same problem that interrupt pin configure issue?

From your last Acer PTP experience, Your issue seems caused by inconsistent INT setting, right?

Could you give some advice to Kai-Heng to check the issue

Thanks  KT



-----Original Message-----
From: Kai-Heng Feng [mailto:kai.heng.feng@canonical.com] 
Sent: Thursday, May 04, 2017 5:54 PM
To: 廖崇榮
Cc: linux-input@vger.kernel.org
Subject: Re: ASUS G752VS Touchpad does not work

Hi, KT Liao,

On Thu, May 4, 2017 at 5:47 PM, 廖崇榮 <kt.liao@emc.com.tw> wrote:
> Hi Kai-Heng
>
> -----Original Message-----
> From: Kai-Heng Feng [mailto:kai.heng.feng@canonical.com]
> Sent: Thursday, May 04, 2017 3:59 PM
> To: kt.liao@emc.com.tw; dusonlin@emc.com.tw
> Cc: linux-input@vger.kernel.org
> Subject: ASUS G752VS Touchpad does not work
>
> Hi KT Liao, Duson Lin,
>
> A user reported that the touchpad on ASUS G752VS does not work [1], it's an ELAN touchapd.
>
> I did the following change, the touchpad correctly loads elan-i2c instead of hid-multitouch, but it's still not working.
>
> [KT] I check the touchpad of this model, it's MS precision touchpad.
> It must use "hid-multitouch", not "elan-i2c".

Well, the touchpad does not work under hid-multitouch, either. That's why I tried to let it load elan-i2c instead.
What information do you need to investigate this issue?

Thanks.

--
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
Chris Chiu May 5, 2017, 6:41 a.m. UTC | #3
Hi KT,
    We user kernel version 4.8 when test the G752VSK but it should
work at 4.10 too. I'll verify that later. And yes, there's no ELAN
interrupt at all from the bug report. I would suggest to have the DSDT
for further analysis.

Chris

On Fri, May 5, 2017 at 12:02 PM, 廖崇榮 <kt.liao@emc.com.tw> wrote:
> Hi Chris,
>
>
>
> Thanks, I remember this issue, it’s HID description issue for touchpad’s
> physical button. And it fixed after Benjamin ’s patch
>
> From below link, it seems the probe is ok, so I still guess interrupt maybe
> the problem
>
> https://bugs.launchpad.net/bugs/1653456
>
>
>
> which kernel version do you use for it?,
>
>
>
> Thanks             KT
>
>
>
> From: Chris Chiu [mailto:chiu@endlessm.com]
> Sent: Friday, May 05, 2017 11:45 AM
> To: 廖崇榮
> Cc: Kai-Heng Feng; linux-input@vger.kernel.org; 黃世鵬 經理
>
>
> Subject: Re: ASUS G752VS Touchpad does not work
>
>
>
> Hi KT,
>
>    We only encounter Asus G752VSK: Default touchpad left key and right are
> reversed issue. The touchpad works under hid-multitouch except the
> left/right key reversed. I still have G752VS in hand, please let me know if
> you need any.
>
>
>
> Chris
>
>
>
> On Fri, May 5, 2017 at 11:25 AM, 廖崇榮 <kt.liao@emc.com.tw> wrote:
>
> Add Endlessm's Chris in loop
>
> Hi Chris,
>
> Do you know ASUS G752VS's touchpad issue.
> It's MS PTP, I am not sure if it meet the same problem that interrupt pin
> configure issue?
>
> From your last Acer PTP experience, Your issue seems caused by inconsistent
> INT setting, right?
>
> Could you give some advice to Kai-Heng to check the issue
>
> Thanks  KT
>
>
>
> -----Original Message-----
> From: Kai-Heng Feng [mailto:kai.heng.feng@canonical.com]
> Sent: Thursday, May 04, 2017 5:54 PM
> To: 廖崇榮
> Cc: linux-input@vger.kernel.org
> Subject: Re: ASUS G752VS Touchpad does not work
>
> Hi, KT Liao,
>
> On Thu, May 4, 2017 at 5:47 PM, 廖崇榮 <kt.liao@emc.com.tw> wrote:
>> Hi Kai-Heng
>>
>> -----Original Message-----
>> From: Kai-Heng Feng [mailto:kai.heng.feng@canonical.com]
>> Sent: Thursday, May 04, 2017 3:59 PM
>> To: kt.liao@emc.com.tw; dusonlin@emc.com.tw
>> Cc: linux-input@vger.kernel.org
>> Subject: ASUS G752VS Touchpad does not work
>>
>> Hi KT Liao, Duson Lin,
>>
>> A user reported that the touchpad on ASUS G752VS does not work [1], it's
>> an ELAN touchapd.
>>
>> I did the following change, the touchpad correctly loads elan-i2c instead
>> of hid-multitouch, but it's still not working.
>>
>> [KT] I check the touchpad of this model, it's MS precision touchpad.
>> It must use "hid-multitouch", not "elan-i2c".
>
> Well, the touchpad does not work under hid-multitouch, either. That's why I
> tried to let it load elan-i2c instead.
> What information do you need to investigate this issue?
>
> Thanks.
>
>
--
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
Kai-Heng Feng May 5, 2017, 7:42 a.m. UTC | #4
Hi Chris,

On Fri, May 5, 2017 at 2:41 PM, Chris Chiu <chiu@endlessm.com> wrote:
> Hi KT,
>     We user kernel version 4.8 when test the G752VSK but it should
> work at 4.10 too. I'll verify that later. And yes, there's no ELAN
> interrupt at all from the bug report. I would suggest to have the DSDT
> for further analysis.

These are already two ACPI dumps from users:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456/comments/30
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456/comments/32

Thanks.
--
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
Chris Chiu May 5, 2017, 1:05 p.m. UTC | #5
I read the whole threads. It's normal there's no interrupt observed if
using elan_i2c driver. It should use hid-multitouch.

I would like to know if there's any interrupts observed when it load
hid-multitouch driver instead of elan_i2c driver.

Something noted here, on my G752VSK the input device shows as ELAN1200
not ELAN1203. Although I think it should make no difference, just to
note that my machine maybe a little different from the bug reporter's.

On Fri, May 5, 2017 at 3:42 PM, Kai-Heng Feng
<kai.heng.feng@canonical.com> wrote:
> Hi Chris,
>
> On Fri, May 5, 2017 at 2:41 PM, Chris Chiu <chiu@endlessm.com> wrote:
>> Hi KT,
>>     We user kernel version 4.8 when test the G752VSK but it should
>> work at 4.10 too. I'll verify that later. And yes, there's no ELAN
>> interrupt at all from the bug report. I would suggest to have the DSDT
>> for further analysis.
>
> These are already two ACPI dumps from users:
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456/comments/30
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456/comments/32
>
> Thanks.
--
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
Kai-Heng Feng May 8, 2017, 6:49 a.m. UTC | #6
Hi aljosa,

On Fri, May 5, 2017 at 9:05 PM, Chris Chiu <chiu@endlessm.com> wrote:
> I read the whole threads. It's normal there's no interrupt observed if
> using elan_i2c driver. It should use hid-multitouch.
>
> I would like to know if there's any interrupts observed when it load
> hid-multitouch driver instead of elan_i2c driver.
>
> Something noted here, on my G752VSK the input device shows as ELAN1200
> not ELAN1203. Although I think it should make no difference, just to
> note that my machine maybe a little different from the bug reporter's.
>

Can you provide information Chris asked?
His G752 uses a slightly different touchpad so more information is needed.

Thanks!
--
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
Aljoša May 23, 2017, 9:31 a.m. UTC | #7
Just installed new kernel 4.12-rc2.
ELAN touchpad is still completely dead on my ASUS G752VS, now it's not 
even present in my system settings.
Dmesg output and other details attached here (comment #66):
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456


On 2017-05-08 08:49, Kai-Heng Feng wrote:
> Hi aljosa,
> 
> On Fri, May 5, 2017 at 9:05 PM, Chris Chiu <chiu@endlessm.com> wrote:
>> I read the whole threads. It's normal there's no interrupt observed if
>> using elan_i2c driver. It should use hid-multitouch.
>> 
>> I would like to know if there's any interrupts observed when it load
>> hid-multitouch driver instead of elan_i2c driver.
>> 
>> Something noted here, on my G752VSK the input device shows as ELAN1200
>> not ELAN1203. Although I think it should make no difference, just to
>> note that my machine maybe a little different from the bug reporter's.
>> 
> 
> Can you provide information Chris asked?
> His G752 uses a slightly different touchpad so more information is 
> needed.
> 
> Thanks!
--
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
Aljoša May 29, 2017, 11:04 a.m. UTC | #8
Hello,just installed new kernel 4.12-rc3.
ELAN touchpad is still completely dead on my ASUS G752VS.
Complete dmesg output (comment #68) and complete output (comment #69) of 
~$ cat /proc/interrupts attached here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456

~$ dmesg

[5.149761] i2c_hid i2c-ELAN1203:00: i2c-ELAN1203:00 supply vdd not 
found, using dummy regulator
[5.191090] hid-multitouch 0018:04F3:3043.0007: Ignoring the extra 
HID_DG_INPUTMODE
[5.191133] input: ELAN1203:00 04F3:3043 Touchpad as 
/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN1203:00/0018:04F3:3043.0007/input/input16
[5.191230] hid-multitouch 0018:04F3:3043.0007: input,hidraw6: I2C HID 
v1.00 Mouse [ELAN1203:00 04F3:3043] on i2c-ELAN1203:00

~$ cat /proc/interrupts

16:          0          0          0          0          0          0    
       0          0  IR-IO-APIC   16-fasteoi   idma64.0, i2c_designware.0
17:        709       9839          0          0          0          0    
       0          0  IR-IO-APIC   17-fasteoi   idma64.1, i2c_designware.1
95:          1        552          0          0          0          0    
       0          0  IR-IO-APIC   95-fasteoi   ELAN1203:00

~$ xinput list
⎡ Virtual core pointer id=2	[master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4	[slave pointer (2)]
⎜ ↳ G-SPY USB Gaming Mouse id=11	[slave pointer (2)]
⎜ ↳ Asus Keyboard id=14	[slave pointer (2)]
⎜ ↳ Asus Keyboard id=15	[slave pointer (2)]
⎜ ↳ ELAN1203:00 04F3:3043 Touchpad id=16	[slave pointer (2)]
⎣ Virtual core keyboard id=3	[master keyboard (2)]
     ↳ Virtual core XTEST keyboard id=5	[slave keyboard (3)]
     ↳ Power Button id=6	[slave keyboard (3)]
     ↳ Asus Wireless Radio Control id=7	[slave keyboard (3)]
     ↳ Video Bus id=8	[slave keyboard (3)]
     ↳ Sleep Button id=9	[slave keyboard (3)]
     ↳ G-SPY USB Gaming Mouse id=10	[slave keyboard (3)]
     ↳ USB2.0 HD UVC WebCam id=12	[slave keyboard (3)]
     ↳ Asus Keyboard id=13	[slave keyboard (3)]
     ↳ Asus WMI hotkeys id=17	[slave keyboard (3)]
     ↳ AT Translated Set 2 keyboard id=18	[slave keyboard (3)]
     ↳ G-SPY USB Gaming Mouse id=19	[slave keyboard (3)]
     ↳ Asus Keyboard id=20	[slave keyboard (3)]



On 2017-05-08 08:49, Kai-Heng Feng wrote:
> Hi aljosa,
> 
> On Fri, May 5, 2017 at 9:05 PM, Chris Chiu <chiu@endlessm.com> wrote:
>> I read the whole threads. It's normal there's no interrupt observed if
>> using elan_i2c driver. It should use hid-multitouch.
>> 
>> I would like to know if there's any interrupts observed when it load
>> hid-multitouch driver instead of elan_i2c driver.
>> 
>> Something noted here, on my G752VSK the input device shows as ELAN1200
>> not ELAN1203. Although I think it should make no difference, just to
>> note that my machine maybe a little different from the bug reporter's.
>> 
> 
> Can you provide information Chris asked?
> His G752 uses a slightly different touchpad so more information is 
> needed.
> 
> Thanks!
--
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
廖崇榮 June 1, 2017, 12:22 p.m. UTC | #9
Hi Chris,

His Interrupt is fasteoi, I guess it's kind of level trigger.

I remember that you debug for an Acer PTP which cause touchpad no function sometimes.
And it works fine after interrupt modified to edge trigger.

What's your comment?

Thanks	KT
-----Original Message-----
From: Aljoša [mailto:aljosa@cromalternativemoney.org] 
Sent: Monday, May 29, 2017 7:04 PM
To: Kai-Heng Feng
Cc: Chris Chiu; 廖崇榮; linux-input@vger.kernel.org; 黃世鵬 經理
Subject: Re: ASUS G752VS Touchpad does not work

Hello,just installed new kernel 4.12-rc3.
ELAN touchpad is still completely dead on my ASUS G752VS.
Complete dmesg output (comment #68) and complete output (comment #69) of ~$ cat /proc/interrupts attached here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456

~$ dmesg

[5.149761] i2c_hid i2c-ELAN1203:00: i2c-ELAN1203:00 supply vdd not found, using dummy regulator [5.191090] hid-multitouch 0018:04F3:3043.0007: Ignoring the extra HID_DG_INPUTMODE [5.191133] input: ELAN1203:00 04F3:3043 Touchpad as
/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN1203:00/0018:04F3:3043.0007/input/input16
[5.191230] hid-multitouch 0018:04F3:3043.0007: input,hidraw6: I2C HID
v1.00 Mouse [ELAN1203:00 04F3:3043] on i2c-ELAN1203:00

~$ cat /proc/interrupts

16:          0          0          0          0          0          0    
       0          0  IR-IO-APIC   16-fasteoi   idma64.0, i2c_designware.0
17:        709       9839          0          0          0          0    
       0          0  IR-IO-APIC   17-fasteoi   idma64.1, i2c_designware.1
95:          1        552          0          0          0          0    
       0          0  IR-IO-APIC   95-fasteoi   ELAN1203:00

~$ xinput list
⎡ Virtual core pointer id=2	[master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4	[slave pointer (2)]
⎜ ↳ G-SPY USB Gaming Mouse id=11	[slave pointer (2)]
⎜ ↳ Asus Keyboard id=14	[slave pointer (2)]
⎜ ↳ Asus Keyboard id=15	[slave pointer (2)]
⎜ ↳ ELAN1203:00 04F3:3043 Touchpad id=16	[slave pointer (2)]
⎣ Virtual core keyboard id=3	[master keyboard (2)]
     ↳ Virtual core XTEST keyboard id=5	[slave keyboard (3)]
     ↳ Power Button id=6	[slave keyboard (3)]
     ↳ Asus Wireless Radio Control id=7	[slave keyboard (3)]
     ↳ Video Bus id=8	[slave keyboard (3)]
     ↳ Sleep Button id=9	[slave keyboard (3)]
     ↳ G-SPY USB Gaming Mouse id=10	[slave keyboard (3)]
     ↳ USB2.0 HD UVC WebCam id=12	[slave keyboard (3)]
     ↳ Asus Keyboard id=13	[slave keyboard (3)]
     ↳ Asus WMI hotkeys id=17	[slave keyboard (3)]
     ↳ AT Translated Set 2 keyboard id=18	[slave keyboard (3)]
     ↳ G-SPY USB Gaming Mouse id=19	[slave keyboard (3)]
     ↳ Asus Keyboard id=20	[slave keyboard (3)]



On 2017-05-08 08:49, Kai-Heng Feng wrote:
> Hi aljosa,
> 
> On Fri, May 5, 2017 at 9:05 PM, Chris Chiu <chiu@endlessm.com> wrote:
>> I read the whole threads. It's normal there's no interrupt observed 
>> if using elan_i2c driver. It should use hid-multitouch.
>> 
>> I would like to know if there's any interrupts observed when it load 
>> hid-multitouch driver instead of elan_i2c driver.
>> 
>> Something noted here, on my G752VSK the input device shows as 
>> ELAN1200 not ELAN1203. Although I think it should make no difference, 
>> just to note that my machine maybe a little different from the bug reporter's.
>> 
> 
> Can you provide information Chris asked?
> His G752 uses a slightly different touchpad so more information is 
> needed.
> 
> Thanks!

--
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
Chris Chiu June 1, 2017, 12:58 p.m. UTC | #10
Hi KT,
    Yes, I've hit the interrupt type setting issues in Acer laptops.
If the interrupt type setting is wrong in the BIOS, the touchpad will
stop working after a while (often ~10 seconds). The interrupt numbers
observed will be a lot more than expected when touchpad is still
working which cause i2c read lots of dummy data, then never increase
when the touchpad stop responding. I believe it's something very
similar. Please do "sudo cat
/sys/kernel/debug/hid/0018:04F3:3043.0007/events" before your touchpad
dead to see if there's still outputs even you never touch the
touchpad. If the data keeps coming, that means the interrupt type
setting should go wrong.

Chris

On Thu, Jun 1, 2017 at 8:22 PM, 廖崇榮 <kt.liao@emc.com.tw> wrote:
> Hi Chris,
>
> His Interrupt is fasteoi, I guess it's kind of level trigger.
>
> I remember that you debug for an Acer PTP which cause touchpad no function sometimes.
> And it works fine after interrupt modified to edge trigger.
>
> What's your comment?
>
> Thanks  KT
> -----Original Message-----
> From: Aljoša [mailto:aljosa@cromalternativemoney.org]
> Sent: Monday, May 29, 2017 7:04 PM
> To: Kai-Heng Feng
> Cc: Chris Chiu; 廖崇榮; linux-input@vger.kernel.org; 黃世鵬 經理
> Subject: Re: ASUS G752VS Touchpad does not work
>
> Hello,just installed new kernel 4.12-rc3.
> ELAN touchpad is still completely dead on my ASUS G752VS.
> Complete dmesg output (comment #68) and complete output (comment #69) of ~$ cat /proc/interrupts attached here:
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456
>
> ~$ dmesg
>
> [5.149761] i2c_hid i2c-ELAN1203:00: i2c-ELAN1203:00 supply vdd not found, using dummy regulator [5.191090] hid-multitouch 0018:04F3:3043.0007: Ignoring the extra HID_DG_INPUTMODE [5.191133] input: ELAN1203:00 04F3:3043 Touchpad as
> /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN1203:00/0018:04F3:3043.0007/input/input16
> [5.191230] hid-multitouch 0018:04F3:3043.0007: input,hidraw6: I2C HID
> v1.00 Mouse [ELAN1203:00 04F3:3043] on i2c-ELAN1203:00
>
> ~$ cat /proc/interrupts
>
> 16:          0          0          0          0          0          0
>        0          0  IR-IO-APIC   16-fasteoi   idma64.0, i2c_designware.0
> 17:        709       9839          0          0          0          0
>        0          0  IR-IO-APIC   17-fasteoi   idma64.1, i2c_designware.1
> 95:          1        552          0          0          0          0
>        0          0  IR-IO-APIC   95-fasteoi   ELAN1203:00
>
> ~$ xinput list
> ⎡ Virtual core pointer id=2     [master pointer (3)]
> ⎜ ↳ Virtual core XTEST pointer id=4     [slave pointer (2)]
> ⎜ ↳ G-SPY USB Gaming Mouse id=11        [slave pointer (2)]
> ⎜ ↳ Asus Keyboard id=14 [slave pointer (2)]
> ⎜ ↳ Asus Keyboard id=15 [slave pointer (2)]
> ⎜ ↳ ELAN1203:00 04F3:3043 Touchpad id=16        [slave pointer (2)]
> ⎣ Virtual core keyboard id=3    [master keyboard (2)]
>      ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
>      ↳ Power Button id=6        [slave keyboard (3)]
>      ↳ Asus Wireless Radio Control id=7 [slave keyboard (3)]
>      ↳ Video Bus id=8   [slave keyboard (3)]
>      ↳ Sleep Button id=9        [slave keyboard (3)]
>      ↳ G-SPY USB Gaming Mouse id=10     [slave keyboard (3)]
>      ↳ USB2.0 HD UVC WebCam id=12       [slave keyboard (3)]
>      ↳ Asus Keyboard id=13      [slave keyboard (3)]
>      ↳ Asus WMI hotkeys id=17   [slave keyboard (3)]
>      ↳ AT Translated Set 2 keyboard id=18       [slave keyboard (3)]
>      ↳ G-SPY USB Gaming Mouse id=19     [slave keyboard (3)]
>      ↳ Asus Keyboard id=20      [slave keyboard (3)]
>
>
>
> On 2017-05-08 08:49, Kai-Heng Feng wrote:
>> Hi aljosa,
>>
>> On Fri, May 5, 2017 at 9:05 PM, Chris Chiu <chiu@endlessm.com> wrote:
>>> I read the whole threads. It's normal there's no interrupt observed
>>> if using elan_i2c driver. It should use hid-multitouch.
>>>
>>> I would like to know if there's any interrupts observed when it load
>>> hid-multitouch driver instead of elan_i2c driver.
>>>
>>> Something noted here, on my G752VSK the input device shows as
>>> ELAN1200 not ELAN1203. Although I think it should make no difference,
>>> just to note that my machine maybe a little different from the bug reporter's.
>>>
>>
>> Can you provide information Chris asked?
>> His G752 uses a slightly different touchpad so more information is
>> needed.
>>
>> Thanks!
>
--
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
Aljoša June 1, 2017, 4:42 p.m. UTC | #11
Hi guys, thank you very much for your time.
I'm a little bit confused if touching the touchpad is needed or not in 
order to generate the correct results, so please find attached:

3_cat_proc_interrupts.txt
(without touching the touchpad)

4_cat_proc_interrupts.txt
(with touching the touchpad and pressing its buttons)

5_cat_sys_kernel_debug_hid_0018_04F3_3043_0007_events
(without touching the touchpad, not sure if I succeeded to execute the 
command within 10 seconds after power up)

6_cat_sys_kernel_debug_hid_0018_04F3_3043_0007_events
(with touching the touchpad and pressing its buttons, not sure if I 
succeeded to execute the command within 10 seconds after power up)


On 2017-06-01 14:58, Chris Chiu wrote:
> Hi KT,
>     Yes, I've hit the interrupt type setting issues in Acer laptops.
> If the interrupt type setting is wrong in the BIOS, the touchpad will
> stop working after a while (often ~10 seconds). The interrupt numbers
> observed will be a lot more than expected when touchpad is still
> working which cause i2c read lots of dummy data, then never increase
> when the touchpad stop responding. I believe it's something very
> similar. Please do "sudo cat
> /sys/kernel/debug/hid/0018:04F3:3043.0007/events" before your touchpad
> dead to see if there's still outputs even you never touch the
> touchpad. If the data keeps coming, that means the interrupt type
> setting should go wrong.
> 
> Chris
> 
> On Thu, Jun 1, 2017 at 8:22 PM, 廖崇榮 <kt.liao@emc.com.tw> wrote:
>> Hi Chris,
>> 
>> His Interrupt is fasteoi, I guess it's kind of level trigger.
>> 
>> I remember that you debug for an Acer PTP which cause touchpad no 
>> function sometimes.
>> And it works fine after interrupt modified to edge trigger.
>> 
>> What's your comment?
>> 
>> Thanks  KT
>> -----Original Message-----
>> From: Aljoša [mailto:aljosa@cromalternativemoney.org]
>> Sent: Monday, May 29, 2017 7:04 PM
>> To: Kai-Heng Feng
>> Cc: Chris Chiu; 廖崇榮; linux-input@vger.kernel.org; 黃世鵬 經理
>> Subject: Re: ASUS G752VS Touchpad does not work
>> 
>> Hello,just installed new kernel 4.12-rc3.
>> ELAN touchpad is still completely dead on my ASUS G752VS.
>> Complete dmesg output (comment #68) and complete output (comment #69) 
>> of ~$ cat /proc/interrupts attached here:
>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456
>> 
>> ~$ dmesg
>> 
>> [5.149761] i2c_hid i2c-ELAN1203:00: i2c-ELAN1203:00 supply vdd not 
>> found, using dummy regulator [5.191090] hid-multitouch 
>> 0018:04F3:3043.0007: Ignoring the extra HID_DG_INPUTMODE [5.191133] 
>> input: ELAN1203:00 04F3:3043 Touchpad as
>> /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN1203:00/0018:04F3:3043.0007/input/input16
>> [5.191230] hid-multitouch 0018:04F3:3043.0007: input,hidraw6: I2C HID
>> v1.00 Mouse [ELAN1203:00 04F3:3043] on i2c-ELAN1203:00
>> 
>> ~$ cat /proc/interrupts
>> 
>> 16:          0          0          0          0          0          0
>>        0          0  IR-IO-APIC   16-fasteoi   idma64.0, 
>> i2c_designware.0
>> 17:        709       9839          0          0          0          0
>>        0          0  IR-IO-APIC   17-fasteoi   idma64.1, 
>> i2c_designware.1
>> 95:          1        552          0          0          0          0
>>        0          0  IR-IO-APIC   95-fasteoi   ELAN1203:00
>> 
>> ~$ xinput list
>> ⎡ Virtual core pointer id=2     [master pointer (3)]
>> ⎜ ↳ Virtual core XTEST pointer id=4     [slave pointer (2)]
>> ⎜ ↳ G-SPY USB Gaming Mouse id=11        [slave pointer (2)]
>> ⎜ ↳ Asus Keyboard id=14 [slave pointer (2)]
>> ⎜ ↳ Asus Keyboard id=15 [slave pointer (2)]
>> ⎜ ↳ ELAN1203:00 04F3:3043 Touchpad id=16        [slave pointer (2)]
>> ⎣ Virtual core keyboard id=3    [master keyboard (2)]
>>      ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
>>      ↳ Power Button id=6        [slave keyboard (3)]
>>      ↳ Asus Wireless Radio Control id=7 [slave keyboard (3)]
>>      ↳ Video Bus id=8   [slave keyboard (3)]
>>      ↳ Sleep Button id=9        [slave keyboard (3)]
>>      ↳ G-SPY USB Gaming Mouse id=10     [slave keyboard (3)]
>>      ↳ USB2.0 HD UVC WebCam id=12       [slave keyboard (3)]
>>      ↳ Asus Keyboard id=13      [slave keyboard (3)]
>>      ↳ Asus WMI hotkeys id=17   [slave keyboard (3)]
>>      ↳ AT Translated Set 2 keyboard id=18       [slave keyboard (3)]
>>      ↳ G-SPY USB Gaming Mouse id=19     [slave keyboard (3)]
>>      ↳ Asus Keyboard id=20      [slave keyboard (3)]
>> 
>> 
>> 
>> On 2017-05-08 08:49, Kai-Heng Feng wrote:
>>> Hi aljosa,
>>> 
>>> On Fri, May 5, 2017 at 9:05 PM, Chris Chiu <chiu@endlessm.com> wrote:
>>>> I read the whole threads. It's normal there's no interrupt observed
>>>> if using elan_i2c driver. It should use hid-multitouch.
>>>> 
>>>> I would like to know if there's any interrupts observed when it load
>>>> hid-multitouch driver instead of elan_i2c driver.
>>>> 
>>>> Something noted here, on my G752VSK the input device shows as
>>>> ELAN1200 not ELAN1203. Although I think it should make no 
>>>> difference,
>>>> just to note that my machine maybe a little different from the bug 
>>>> reporter's.
>>>> 
>>> 
>>> Can you provide information Chris asked?
>>> His G752 uses a slightly different touchpad so more information is
>>> needed.
>>> 
>>> Thanks!
>>
~$ cat /proc/interrupts
            CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
   0:         38          0          0          0          0          0          0          0  IR-IO-APIC    2-edge      timer
   1:          9          0          0          0          0          0          0          0  IR-IO-APIC    1-edge      i8042
   8:          1          0          0          0          0          0          0          0  IR-IO-APIC    8-edge      rtc0
   9:         14          0          0          0          0          0          0          0  IR-IO-APIC    9-fasteoi   acpi
  16:          0          0          0          0          0          0          0          0  IR-IO-APIC   16-fasteoi   idma64.0, i2c_designware.0
  17:        709       9839          0          0          0          0          0          0  IR-IO-APIC   17-fasteoi   idma64.1, i2c_designware.1
  95:          1        552          0          0          0          0          0          0  IR-IO-APIC   95-fasteoi   ELAN1203:00
 120:          0          0          0          0          0          0          0          0  DMAR-MSI    0-edge      dmar0
 122:        485          0        868          0      64181          0      27974          0  IR-PCI-MSI 327680-edge      xhci_hcd
 123:        256          0          0        139         79          0        183          0  IR-PCI-MSI 376832-edge      ahci[0000:00:17.0]
 124:       5734          0          0          0          0          0          0          0  IR-PCI-MSI 31981568-edge      nvme0q0, nvme0q1
 125:          0          0          0          0          0          0          0          0  IR-PCI-MSI 1572864-edge      enp3s0
 126:          0       5596          0          0          0          0          0          0  IR-PCI-MSI 31981569-edge      nvme0q2
 127:          0          0       4320          0          0          0          0          0  IR-PCI-MSI 31981570-edge      nvme0q3
 128:          0          0          0       5251          0          0          0          0  IR-PCI-MSI 31981571-edge      nvme0q4
 129:          0          0          0          0       5566          0          0          0  IR-PCI-MSI 31981572-edge      nvme0q5
 130:          0          0          0          0          0       4031          0          0  IR-PCI-MSI 31981573-edge      nvme0q6
 131:          0          0          0          0          0          0       6094          0  IR-PCI-MSI 31981574-edge      nvme0q7
 132:          0          0          0          0          0          0          0       4398  IR-PCI-MSI 31981575-edge      nvme0q8
 133:         34          0          0          0          0          0          0          0  IR-PCI-MSI 360448-edge      mei_me
 134:        503          0          0      17875          0        196          0          0  IR-PCI-MSI 1048576-edge      iwlwifi
 135:        174          0          0          0          0          0          0      66947  IR-PCI-MSI 524288-edge      nvidia
 136:        801          0          0          0          0          0          0          0  IR-PCI-MSI 514048-edge      snd_hda_intel:card0
 NMI:          2          2          2          2          2          2          2          2   Non-maskable interrupts
 LOC:      43707      46136      48495      45824      55532      46034      43460      29074   Local timer interrupts
 SPU:          0          0          0          0          0          0          0          0   Spurious interrupts
 PMI:          2          2          2          2          2          2          2          2   Performance monitoring interrupts
 IWI:          0          0          0          0          0          0          0          0   IRQ work interrupts
 RTR:          7          0          0          0          0          0          0          0   APIC ICR read retries
 RES:       9736       4315       2225       1793       1803       1346       1222       2021   Rescheduling interrupts
 CAL:       9465       9039       8368       8310       8391       8373       8326       8214   Function call interrupts
 TLB:       5555       5616       4948       4823       5020       4987       5280       4590   TLB shootdowns
 TRM:          0          0          0          0          0          0          0          0   Thermal event interrupts
 THR:          0          0          0          0          0          0          0          0   Threshold APIC interrupts
 DFR:          0          0          0          0          0          0          0          0   Deferred Error APIC interrupts
 MCE:          0          0          0          0          0          0          0          0   Machine check exceptions
 MCP:          4          4          4          4          4          4          4          4   Machine check polls
 ERR:         28
 MIS:          0
 PIN:          0          0          0          0          0          0          0          0   Posted-interrupt notification event
 PIW:          0          0          0          0          0          0          0          0   Posted-interrupt wakeup event
~$ cat /proc/interrupts
            CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
   0:         37          0          0          0          0          0          0          0  IR-IO-APIC    2-edge      timer
   1:          9          0          0          0          0          0          0          0  IR-IO-APIC    1-edge      i8042
   8:          1          0          0          0          0          0          0          0  IR-IO-APIC    8-edge      rtc0
   9:         14          0          0          0          0          0          0          0  IR-IO-APIC    9-fasteoi   acpi
  16:          0          0          0          0          0          0          0          0  IR-IO-APIC   16-fasteoi   idma64.0, i2c_designware.0
  17:        711      23470          0          0          0          0          0          0  IR-IO-APIC   17-fasteoi   idma64.1, i2c_designware.1
  95:          1       1310          0          0          0          0          0          0  IR-IO-APIC   95-fasteoi   ELAN1203:00
 120:          0          0          0          0          0          0          0          0  DMAR-MSI    0-edge      dmar0
 122:        591          0        131          0          0          0       5537          0  IR-PCI-MSI 327680-edge      xhci_hcd
 123:        258          0          0         43          0          0          0          0  IR-PCI-MSI 376832-edge      ahci[0000:00:17.0]
 124:       2132          0          0          0          0          0          0          0  IR-PCI-MSI 31981568-edge      nvme0q0, nvme0q1
 125:          0          0          0          0          0          0          0          0  IR-PCI-MSI 1572864-edge      enp3s0
 126:          0       2481          0          0          0          0          0          0  IR-PCI-MSI 31981569-edge      nvme0q2
 127:          0          0       2876          0          0          0          0          0  IR-PCI-MSI 31981570-edge      nvme0q3
 128:          0          0          0       2615          0          0          0          0  IR-PCI-MSI 31981571-edge      nvme0q4
 129:          0          0          0          0       1948          0          0          0  IR-PCI-MSI 31981572-edge      nvme0q5
 130:          0          0          0          0          0       4029          0          0  IR-PCI-MSI 31981573-edge      nvme0q6
 131:          0          0          0          0          0          0       2562          0  IR-PCI-MSI 31981574-edge      nvme0q7
 132:          0          0          0          0          0          0          0       4018  IR-PCI-MSI 31981575-edge      nvme0q8
 133:         33          0          0          0          0          0          0          0  IR-PCI-MSI 360448-edge      mei_me
 134:        503          0          0          0          0        247          0          0  IR-PCI-MSI 1048576-edge      iwlwifi
 135:        244          0          0          0          0          0          0       3088  IR-PCI-MSI 524288-edge      nvidia
 136:        804          0          0          0          0          0          0          0  IR-PCI-MSI 514048-edge      snd_hda_intel:card0
 NMI:          0          0          0          0          0          0          0          0   Non-maskable interrupts
 LOC:       4078       5889       5077       4255       5417       3959       3540       3352   Local timer interrupts
 SPU:          0          0          0          0          0          0          0          0   Spurious interrupts
 PMI:          0          0          0          0          0          0          0          0   Performance monitoring interrupts
 IWI:          0          0          0          0          0          0          0          0   IRQ work interrupts
 RTR:          7          0          0          0          0          0          0          0   APIC ICR read retries
 RES:        841        546        470        414        417        488        557        378   Rescheduling interrupts
 CAL:       3051       3135       3075       3087       3028       3174       2837       2737   Function call interrupts
 TLB:        120        264        251        147        179        205        163        194   TLB shootdowns
 TRM:          0          0          0          0          0          0          0          0   Thermal event interrupts
 THR:          0          0          0          0          0          0          0          0   Threshold APIC interrupts
 DFR:          0          0          0          0          0          0          0          0   Deferred Error APIC interrupts
 MCE:          0          0          0          0          0          0          0          0   Machine check exceptions
 MCP:          2          2          2          2          2          2          2          2   Machine check polls
 ERR:         27
 MIS:          0
 PIN:          0          0          0          0          0          0          0          0   Posted-interrupt notification event
 PIW:          0          0          0          0          0          0          0          0   Posted-interrupt wakeup event
~$ sudo cat /sys/kernel/debug/hid/0018:04F3:3043.0007/events
[sudo] password for blablabla:
~$ sudo cat /sys/kernel/debug/hid/0018:04F3:3043.0007/events
[sudo] password for blablabla: 

report (size 9) (numbered) =  01 00 f9 05 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -7
GenericDesktop.Y = 5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 00 00 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 3b ed 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 59
GenericDesktop.Y = -19
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 2f ef 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 47
GenericDesktop.Y = -17
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 2a ef 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 42
GenericDesktop.Y = -17
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 25 ef 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 37
GenericDesktop.Y = -17
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 24 ef 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 36
GenericDesktop.Y = -17
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 21 ef 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 33
GenericDesktop.Y = -17
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 1d f0 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 29
GenericDesktop.Y = -16
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 1a f1 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 26
GenericDesktop.Y = -15
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 14 f1 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 20
GenericDesktop.Y = -15
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 11 f5 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 17
GenericDesktop.Y = -11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 0b f6 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 11
GenericDesktop.Y = -10
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 09 f8 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 9
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 06 fa 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 6
GenericDesktop.Y = -6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 02 fc 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 01 fd 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 1
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 00 ff 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 ff 00 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = -1
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 f9 00 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = -7
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 ec 03 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = -20
GenericDesktop.Y = 3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 f2 03 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = -14
GenericDesktop.Y = 3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f5 08 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -11
GenericDesktop.Y = 8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fa 03 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -6
GenericDesktop.Y = 3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fc 05 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -4
GenericDesktop.Y = 5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fc 03 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -4
GenericDesktop.Y = 3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 02 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 02 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 03 01 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 3
GenericDesktop.Y = 1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 08 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 8
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0d fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 13
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 1a fc 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 26
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 2a f2 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 42
GenericDesktop.Y = -14
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 31 ee 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 49
GenericDesktop.Y = -18
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 2f ef 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 47
GenericDesktop.Y = -17
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 30 ea 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 48
GenericDesktop.Y = -22
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 2e eb 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 46
GenericDesktop.Y = -21
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 29 eb 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 41
GenericDesktop.Y = -21
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 2a ea 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 42
GenericDesktop.Y = -22
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 25 ec 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 37
GenericDesktop.Y = -20
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 22 ec 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 34
GenericDesktop.Y = -20
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 1e f0 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 30
GenericDesktop.Y = -16
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 1a f0 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 26
GenericDesktop.Y = -16
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 16 f3 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 22
GenericDesktop.Y = -13
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 10 f6 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 16
GenericDesktop.Y = -10
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0e fa 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 14
GenericDesktop.Y = -6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0a fa 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 10
GenericDesktop.Y = -6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 06 fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 6
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 06 fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 6
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 08 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 8
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 06 01 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 6
GenericDesktop.Y = 1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 00 00 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 02 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 1
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 02 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 1
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 02 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 1
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 02 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 1
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 00 00 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 00 00 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f9 fc 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -7
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fd ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -3
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 ff fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -1
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fe 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -2
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fe ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -2
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fa 01 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -6
GenericDesktop.Y = 1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f9 02 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -7
GenericDesktop.Y = 2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f7 02 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -9
GenericDesktop.Y = 2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f4 05 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -12
GenericDesktop.Y = 5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 ef 07 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -17
GenericDesktop.Y = 7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 e9 0b 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -23
GenericDesktop.Y = 11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 e9 0b 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -23
GenericDesktop.Y = 11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 e8 0d 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -24
GenericDesktop.Y = 13
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 e8 12 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -24
GenericDesktop.Y = 18
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 e6 15 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -26
GenericDesktop.Y = 21
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 ec 10 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -20
GenericDesktop.Y = 16
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f0 0f 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -16
GenericDesktop.Y = 15
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f2 11 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -14
GenericDesktop.Y = 17
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f3 10 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -13
GenericDesktop.Y = 16
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f6 0e 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -10
GenericDesktop.Y = 14
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f6 0e 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -10
GenericDesktop.Y = 14
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fa 0d 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -6
GenericDesktop.Y = 13
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fb 0d 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -5
GenericDesktop.Y = 13
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 ff 0c 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -1
GenericDesktop.Y = 12
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 0c 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 12
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 02 0c 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2
GenericDesktop.Y = 12
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 05 0b 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 5
GenericDesktop.Y = 11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 07 0a 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 7
GenericDesktop.Y = 10
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0a 0b 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 10
GenericDesktop.Y = 11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0d 0d 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 13
GenericDesktop.Y = 13
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0f 0a 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 15
GenericDesktop.Y = 10
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 12 08 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 18
GenericDesktop.Y = 8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 13 08 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 19
GenericDesktop.Y = 8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 12 03 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 18
GenericDesktop.Y = 3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 1a 02 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 26
GenericDesktop.Y = 2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 17 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 23
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 13 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 19
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 1a fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 26
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 15 fa 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 21
GenericDesktop.Y = -6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 13 f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 19
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 16 f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 22
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 12 f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 18
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0f f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 15
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0e f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 14
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0a f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 10
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0a f7 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 10
GenericDesktop.Y = -9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 09 f7 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 9
GenericDesktop.Y = -9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 08 f7 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 8
GenericDesktop.Y = -9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 06 f7 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 6
GenericDesktop.Y = -9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 04 f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 4
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 02 fc 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 03 f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 3
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 01 fa 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 1
GenericDesktop.Y = -6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 fb 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = -5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 fa 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = -6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f9 f7 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -7
GenericDesktop.Y = -9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f9 f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -7
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f6 02 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -10
GenericDesktop.Y = 2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f8 04 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -8
GenericDesktop.Y = 4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 ef 0b 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -17
GenericDesktop.Y = 11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 ed 0b 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -19
GenericDesktop.Y = 11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 ee 0b 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -18
GenericDesktop.Y = 11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 ec 0c 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -20
GenericDesktop.Y = 12
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f0 0c 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -16
GenericDesktop.Y = 12
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f5 0a 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -11
GenericDesktop.Y = 10
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f7 07 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -9
GenericDesktop.Y = 7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fa 09 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -6
GenericDesktop.Y = 9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fe 07 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -2
GenericDesktop.Y = 7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 ff 08 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -1
GenericDesktop.Y = 8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 09 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 02 08 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2
GenericDesktop.Y = 8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 06 08 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 6
GenericDesktop.Y = 8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0a 06 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 10
GenericDesktop.Y = 6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0d 04 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 13
GenericDesktop.Y = 4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0e 02 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 14
GenericDesktop.Y = 2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0e 02 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 14
GenericDesktop.Y = 2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 12 01 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 18
GenericDesktop.Y = 1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 11 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 17
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 12 fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 18
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 11 fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 17
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 14 fb 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 20
GenericDesktop.Y = -5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 17 fb 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 23
GenericDesktop.Y = -5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 16 f7 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 22
GenericDesktop.Y = -9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 15 f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 21
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 13 f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 19
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 13 f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 19
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 16 f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 22
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 14 f7 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 20
GenericDesktop.Y = -9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 13 f6 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 19
GenericDesktop.Y = -10
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 11 f5 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 17
GenericDesktop.Y = -11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 10 f6 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 16
GenericDesktop.Y = -10
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 10 f7 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 16
GenericDesktop.Y = -9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0b f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 11
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0d f7 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 13
GenericDesktop.Y = -9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 09 f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 9
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 07 fb 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 7
GenericDesktop.Y = -5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 05 fb 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 5
GenericDesktop.Y = -5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 05 fc 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 5
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 02 fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 01 fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 1
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 03 fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 3
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 03 ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 3
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 03 fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 3
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 06 fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 6
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 08 fb 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 8
GenericDesktop.Y = -5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0b fc 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 11
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0d f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 13
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 10 f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 16
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 17 f6 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 23
GenericDesktop.Y = -10
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 16 f5 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 22
GenericDesktop.Y = -11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 17 f3 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 23
GenericDesktop.Y = -13
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 14 f5 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 20
GenericDesktop.Y = -11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 13 f7 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 19
GenericDesktop.Y = -9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 12 f7 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 18
GenericDesktop.Y = -9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 11 f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 17
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 11 f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 17
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0f f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 15
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0f fa 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 15
GenericDesktop.Y = -6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 10 f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 16
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0d f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 13
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0c fa 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 12
GenericDesktop.Y = -6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0a fa 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 10
GenericDesktop.Y = -6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0a fb 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 10
GenericDesktop.Y = -5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0a fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 10
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 08 fc 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 8
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 09 fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 9
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 07 fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 7
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 04 ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 4
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 05 ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 5
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 02 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 01 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 1
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 07 fc 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 7
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 05 fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 5
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 08 fc 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 8
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 09 fb 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 9
GenericDesktop.Y = -5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0b f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 11
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 10 f6 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 16
GenericDesktop.Y = -10
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 17 f5 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 23
GenericDesktop.Y = -11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 18 f2 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 24
GenericDesktop.Y = -14
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 17 f6 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 23
GenericDesktop.Y = -10
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 15 f6 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 21
GenericDesktop.Y = -10
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 16 f6 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 22
GenericDesktop.Y = -10
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 15 f4 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 21
GenericDesktop.Y = -12
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 15 f5 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 21
GenericDesktop.Y = -11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 00 00 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 02 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 1
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 02 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 1
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 02 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 1
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 01 00 00 00 00 00 00 00
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 07 fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 7
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 03 ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 3
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 05 ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 5
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 06 fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 6
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 07 fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 7
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 09 fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 9
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 09 fc 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 9
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0d fa 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 13
GenericDesktop.Y = -6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0e fa 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 14
GenericDesktop.Y = -6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0f f8 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 15
GenericDesktop.Y = -8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0c f7 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 12
GenericDesktop.Y = -9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0a fb 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 10
GenericDesktop.Y = -5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 07 fb 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 7
GenericDesktop.Y = -5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 05 fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 5
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 02 fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 02 fc 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 02 ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 01 ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 1
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 00 ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 0
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fe 02 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -2
GenericDesktop.Y = 2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fb 04 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -5
GenericDesktop.Y = 4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f7 05 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -9
GenericDesktop.Y = 5
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fa 06 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -6
GenericDesktop.Y = 6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f6 08 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -10
GenericDesktop.Y = 8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f1 08 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -15
GenericDesktop.Y = 8
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 ee 0b 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -18
GenericDesktop.Y = 11
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f0 09 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -16
GenericDesktop.Y = 9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f4 06 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -12
GenericDesktop.Y = 6
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f8 04 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -8
GenericDesktop.Y = 4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 f9 04 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -7
GenericDesktop.Y = 4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fc 01 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -4
GenericDesktop.Y = 1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fc 02 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -4
GenericDesktop.Y = 2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fe 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -2
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 01 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 1
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 02 ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 02 fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 04 fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 4
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 05 fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 5
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 07 fd 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 7
GenericDesktop.Y = -3
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 09 fc 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 9
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0d f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 13
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 10 f7 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 16
GenericDesktop.Y = -9
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 10 f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 16
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0f f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 15
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0e f9 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 14
GenericDesktop.Y = -7
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 0a fc 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 10
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 08 fc 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 8
GenericDesktop.Y = -4
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 05 fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 5
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 05 fe 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 5
GenericDesktop.Y = -2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 02 ff 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2
GenericDesktop.Y = -1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 01 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 1
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 01 00 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 1
GenericDesktop.Y = 0
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fe 01 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -2
GenericDesktop.Y = 1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fd 02 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -3
GenericDesktop.Y = 2
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0

report (size 9) (numbered) =  01 00 fd 01 00 00 00 00 00
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = -3
GenericDesktop.Y = 1
GenericDesktop.Wheel = 0
Consumer.HorizontalWheel = 0
Aljoša June 5, 2017, 10:39 a.m. UTC | #12
Just installed new kernel 4.12-rc4, my ELAN touchpad still doesn't work.
Please find attached the dmesg output here (comment #72):

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456


On 2017-06-01 14:58, Chris Chiu wrote:
> Hi KT,
>     Yes, I've hit the interrupt type setting issues in Acer laptops.
> If the interrupt type setting is wrong in the BIOS, the touchpad will
> stop working after a while (often ~10 seconds). The interrupt numbers
> observed will be a lot more than expected when touchpad is still
> working which cause i2c read lots of dummy data, then never increase
> when the touchpad stop responding. I believe it's something very
> similar. Please do "sudo cat
> /sys/kernel/debug/hid/0018:04F3:3043.0007/events" before your touchpad
> dead to see if there's still outputs even you never touch the
> touchpad. If the data keeps coming, that means the interrupt type
> setting should go wrong.
> 
> Chris
> 
> On Thu, Jun 1, 2017 at 8:22 PM, 廖崇榮 <kt.liao@emc.com.tw> wrote:
>> Hi Chris,
>> 
>> His Interrupt is fasteoi, I guess it's kind of level trigger.
>> 
>> I remember that you debug for an Acer PTP which cause touchpad no 
>> function sometimes.
>> And it works fine after interrupt modified to edge trigger.
>> 
>> What's your comment?
>> 
>> Thanks  KT
>> -----Original Message-----
>> From: Aljoša [mailto:aljosa@cromalternativemoney.org]
>> Sent: Monday, May 29, 2017 7:04 PM
>> To: Kai-Heng Feng
>> Cc: Chris Chiu; 廖崇榮; linux-input@vger.kernel.org; 黃世鵬 經理
>> Subject: Re: ASUS G752VS Touchpad does not work
>> 
>> Hello,just installed new kernel 4.12-rc3.
>> ELAN touchpad is still completely dead on my ASUS G752VS.
>> Complete dmesg output (comment #68) and complete output (comment #69) 
>> of ~$ cat /proc/interrupts attached here:
>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456
>> 
>> ~$ dmesg
>> 
>> [5.149761] i2c_hid i2c-ELAN1203:00: i2c-ELAN1203:00 supply vdd not 
>> found, using dummy regulator [5.191090] hid-multitouch 
>> 0018:04F3:3043.0007: Ignoring the extra HID_DG_INPUTMODE [5.191133] 
>> input: ELAN1203:00 04F3:3043 Touchpad as
>> /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN1203:00/0018:04F3:3043.0007/input/input16
>> [5.191230] hid-multitouch 0018:04F3:3043.0007: input,hidraw6: I2C HID
>> v1.00 Mouse [ELAN1203:00 04F3:3043] on i2c-ELAN1203:00
>> 
>> ~$ cat /proc/interrupts
>> 
>> 16:          0          0          0          0          0          0
>>        0          0  IR-IO-APIC   16-fasteoi   idma64.0, 
>> i2c_designware.0
>> 17:        709       9839          0          0          0          0
>>        0          0  IR-IO-APIC   17-fasteoi   idma64.1, 
>> i2c_designware.1
>> 95:          1        552          0          0          0          0
>>        0          0  IR-IO-APIC   95-fasteoi   ELAN1203:00
>> 
>> ~$ xinput list
>> ⎡ Virtual core pointer id=2     [master pointer (3)]
>> ⎜ ↳ Virtual core XTEST pointer id=4     [slave pointer (2)]
>> ⎜ ↳ G-SPY USB Gaming Mouse id=11        [slave pointer (2)]
>> ⎜ ↳ Asus Keyboard id=14 [slave pointer (2)]
>> ⎜ ↳ Asus Keyboard id=15 [slave pointer (2)]
>> ⎜ ↳ ELAN1203:00 04F3:3043 Touchpad id=16        [slave pointer (2)]
>> ⎣ Virtual core keyboard id=3    [master keyboard (2)]
>>      ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
>>      ↳ Power Button id=6        [slave keyboard (3)]
>>      ↳ Asus Wireless Radio Control id=7 [slave keyboard (3)]
>>      ↳ Video Bus id=8   [slave keyboard (3)]
>>      ↳ Sleep Button id=9        [slave keyboard (3)]
>>      ↳ G-SPY USB Gaming Mouse id=10     [slave keyboard (3)]
>>      ↳ USB2.0 HD UVC WebCam id=12       [slave keyboard (3)]
>>      ↳ Asus Keyboard id=13      [slave keyboard (3)]
>>      ↳ Asus WMI hotkeys id=17   [slave keyboard (3)]
>>      ↳ AT Translated Set 2 keyboard id=18       [slave keyboard (3)]
>>      ↳ G-SPY USB Gaming Mouse id=19     [slave keyboard (3)]
>>      ↳ Asus Keyboard id=20      [slave keyboard (3)]
>> 
>> 
>> 
>> On 2017-05-08 08:49, Kai-Heng Feng wrote:
>>> Hi aljosa,
>>> 
>>> On Fri, May 5, 2017 at 9:05 PM, Chris Chiu <chiu@endlessm.com> wrote:
>>>> I read the whole threads. It's normal there's no interrupt observed
>>>> if using elan_i2c driver. It should use hid-multitouch.
>>>> 
>>>> I would like to know if there's any interrupts observed when it load
>>>> hid-multitouch driver instead of elan_i2c driver.
>>>> 
>>>> Something noted here, on my G752VSK the input device shows as
>>>> ELAN1200 not ELAN1203. Although I think it should make no 
>>>> difference,
>>>> just to note that my machine maybe a little different from the bug 
>>>> reporter's.
>>>> 
>>> 
>>> Can you provide information Chris asked?
>>> His G752 uses a slightly different touchpad so more information is
>>> needed.
>>> 
>>> Thanks!
>> 
--
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
廖崇榮 June 6, 2017, 1:59 a.m. UTC | #13
Hi Chris,

From Aljosa's log, I am not sure if it's the interrupt setting.
It seems that no event occur while finger off.

If your G752VS's setting is falling edge. Maybe you tell Aljosa how to change interrupt type for testing.

B.R		KT

-----Original Message-----
From: Aljoša [mailto:aljosa@cromalternativemoney.org] 
Sent: Monday, June 05, 2017 6:40 PM
To: Chris Chiu
Cc: 廖崇榮; Kai-Heng Feng; linux-input@vger.kernel.org; 黃世鵬 經理
Subject: Re: ASUS G752VS Touchpad does not work

Just installed new kernel 4.12-rc4, my ELAN touchpad still doesn't work.
Please find attached the dmesg output here (comment #72):

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456


On 2017-06-01 14:58, Chris Chiu wrote:
> Hi KT,
>     Yes, I've hit the interrupt type setting issues in Acer laptops.
> If the interrupt type setting is wrong in the BIOS, the touchpad will 
> stop working after a while (often ~10 seconds). The interrupt numbers 
> observed will be a lot more than expected when touchpad is still 
> working which cause i2c read lots of dummy data, then never increase 
> when the touchpad stop responding. I believe it's something very 
> similar. Please do "sudo cat 
> /sys/kernel/debug/hid/0018:04F3:3043.0007/events" before your touchpad 
> dead to see if there's still outputs even you never touch the 
> touchpad. If the data keeps coming, that means the interrupt type 
> setting should go wrong.
> 
> Chris
> 
> On Thu, Jun 1, 2017 at 8:22 PM, 廖崇榮 <kt.liao@emc.com.tw> wrote:
>> Hi Chris,
>> 
>> His Interrupt is fasteoi, I guess it's kind of level trigger.
>> 
>> I remember that you debug for an Acer PTP which cause touchpad no 
>> function sometimes.
>> And it works fine after interrupt modified to edge trigger.
>> 
>> What's your comment?
>> 
>> Thanks  KT
>> -----Original Message-----
>> From: Aljoša [mailto:aljosa@cromalternativemoney.org]
>> Sent: Monday, May 29, 2017 7:04 PM
>> To: Kai-Heng Feng
>> Cc: Chris Chiu; 廖崇榮; linux-input@vger.kernel.org; 黃世鵬 經理
>> Subject: Re: ASUS G752VS Touchpad does not work
>> 
>> Hello,just installed new kernel 4.12-rc3.
>> ELAN touchpad is still completely dead on my ASUS G752VS.
>> Complete dmesg output (comment #68) and complete output (comment #69) 
>> of ~$ cat /proc/interrupts attached here:
>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456
>> 
>> ~$ dmesg
>> 
>> [5.149761] i2c_hid i2c-ELAN1203:00: i2c-ELAN1203:00 supply vdd not 
>> found, using dummy regulator [5.191090] hid-multitouch
>> 0018:04F3:3043.0007: Ignoring the extra HID_DG_INPUTMODE [5.191133]
>> input: ELAN1203:00 04F3:3043 Touchpad as
>> /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN1203:
>> 00/0018:04F3:3043.0007/input/input16
>> [5.191230] hid-multitouch 0018:04F3:3043.0007: input,hidraw6: I2C HID
>> v1.00 Mouse [ELAN1203:00 04F3:3043] on i2c-ELAN1203:00
>> 
>> ~$ cat /proc/interrupts
>> 
>> 16:          0          0          0          0          0          0
>>        0          0  IR-IO-APIC   16-fasteoi   idma64.0, 
>> i2c_designware.0
>> 17:        709       9839          0          0          0          0
>>        0          0  IR-IO-APIC   17-fasteoi   idma64.1, 
>> i2c_designware.1
>> 95:          1        552          0          0          0          0
>>        0          0  IR-IO-APIC   95-fasteoi   ELAN1203:00
>> 
>> ~$ xinput list
>> ⎡ Virtual core pointer id=2     [master pointer (3)]
>> ⎜ ↳ Virtual core XTEST pointer id=4     [slave pointer (2)]
>> ⎜ ↳ G-SPY USB Gaming Mouse id=11        [slave pointer (2)]
>> ⎜ ↳ Asus Keyboard id=14 [slave pointer (2)] ⎜ ↳ Asus Keyboard id=15 
>> [slave pointer (2)]
>> ⎜ ↳ ELAN1203:00 04F3:3043 Touchpad id=16        [slave pointer (2)]
>> ⎣ Virtual core keyboard id=3    [master keyboard (2)]
>>      ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
>>      ↳ Power Button id=6        [slave keyboard (3)]
>>      ↳ Asus Wireless Radio Control id=7 [slave keyboard (3)]
>>      ↳ Video Bus id=8   [slave keyboard (3)]
>>      ↳ Sleep Button id=9        [slave keyboard (3)]
>>      ↳ G-SPY USB Gaming Mouse id=10     [slave keyboard (3)]
>>      ↳ USB2.0 HD UVC WebCam id=12       [slave keyboard (3)]
>>      ↳ Asus Keyboard id=13      [slave keyboard (3)]
>>      ↳ Asus WMI hotkeys id=17   [slave keyboard (3)]
>>      ↳ AT Translated Set 2 keyboard id=18       [slave keyboard (3)]
>>      ↳ G-SPY USB Gaming Mouse id=19     [slave keyboard (3)]
>>      ↳ Asus Keyboard id=20      [slave keyboard (3)]
>> 
>> 
>> 
>> On 2017-05-08 08:49, Kai-Heng Feng wrote:
>>> Hi aljosa,
>>> 
>>> On Fri, May 5, 2017 at 9:05 PM, Chris Chiu <chiu@endlessm.com> wrote:
>>>> I read the whole threads. It's normal there's no interrupt observed 
>>>> if using elan_i2c driver. It should use hid-multitouch.
>>>> 
>>>> I would like to know if there's any interrupts observed when it 
>>>> load hid-multitouch driver instead of elan_i2c driver.
>>>> 
>>>> Something noted here, on my G752VSK the input device shows as
>>>> ELAN1200 not ELAN1203. Although I think it should make no 
>>>> difference, just to note that my machine maybe a little different 
>>>> from the bug reporter's.
>>>> 
>>> 
>>> Can you provide information Chris asked?
>>> His G752 uses a slightly different touchpad so more information is
>>> needed.
>>> 
>>> Thanks!
>> 

--
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
Chris Chiu June 7, 2017, 9:30 a.m. UTC | #14
Hi Aijosa,
    If you can build your own kernel, I'll suggest to add code in
i2c_hid_init_irq() in i2c-hid.c.
1. verify the return value of irq_get_trigger_type()
2. Force the trigger type to IRQ_TYPE_EDGE_FALLING with
irqd_set_trigger_type() before request_threaded_irq()
3. reboot with your own kernel to see if it works.

Chris

On Tue, Jun 6, 2017 at 9:59 AM, 廖崇榮 <kt.liao@emc.com.tw> wrote:
> Hi Chris,
>
> From Aljosa's log, I am not sure if it's the interrupt setting.
> It seems that no event occur while finger off.
>
> If your G752VS's setting is falling edge. Maybe you tell Aljosa how to change interrupt type for testing.
>
> B.R             KT
>
> -----Original Message-----
> From: Aljoša [mailto:aljosa@cromalternativemoney.org]
> Sent: Monday, June 05, 2017 6:40 PM
> To: Chris Chiu
> Cc: 廖崇榮; Kai-Heng Feng; linux-input@vger.kernel.org; 黃世鵬 經理
> Subject: Re: ASUS G752VS Touchpad does not work
>
> Just installed new kernel 4.12-rc4, my ELAN touchpad still doesn't work.
> Please find attached the dmesg output here (comment #72):
>
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456
>
>
> On 2017-06-01 14:58, Chris Chiu wrote:
>> Hi KT,
>>     Yes, I've hit the interrupt type setting issues in Acer laptops.
>> If the interrupt type setting is wrong in the BIOS, the touchpad will
>> stop working after a while (often ~10 seconds). The interrupt numbers
>> observed will be a lot more than expected when touchpad is still
>> working which cause i2c read lots of dummy data, then never increase
>> when the touchpad stop responding. I believe it's something very
>> similar. Please do "sudo cat
>> /sys/kernel/debug/hid/0018:04F3:3043.0007/events" before your touchpad
>> dead to see if there's still outputs even you never touch the
>> touchpad. If the data keeps coming, that means the interrupt type
>> setting should go wrong.
>>
>> Chris
>>
>> On Thu, Jun 1, 2017 at 8:22 PM, 廖崇榮 <kt.liao@emc.com.tw> wrote:
>>> Hi Chris,
>>>
>>> His Interrupt is fasteoi, I guess it's kind of level trigger.
>>>
>>> I remember that you debug for an Acer PTP which cause touchpad no
>>> function sometimes.
>>> And it works fine after interrupt modified to edge trigger.
>>>
>>> What's your comment?
>>>
>>> Thanks  KT
>>> -----Original Message-----
>>> From: Aljoša [mailto:aljosa@cromalternativemoney.org]
>>> Sent: Monday, May 29, 2017 7:04 PM
>>> To: Kai-Heng Feng
>>> Cc: Chris Chiu; 廖崇榮; linux-input@vger.kernel.org; 黃世鵬 經理
>>> Subject: Re: ASUS G752VS Touchpad does not work
>>>
>>> Hello,just installed new kernel 4.12-rc3.
>>> ELAN touchpad is still completely dead on my ASUS G752VS.
>>> Complete dmesg output (comment #68) and complete output (comment #69)
>>> of ~$ cat /proc/interrupts attached here:
>>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456
>>>
>>> ~$ dmesg
>>>
>>> [5.149761] i2c_hid i2c-ELAN1203:00: i2c-ELAN1203:00 supply vdd not
>>> found, using dummy regulator [5.191090] hid-multitouch
>>> 0018:04F3:3043.0007: Ignoring the extra HID_DG_INPUTMODE [5.191133]
>>> input: ELAN1203:00 04F3:3043 Touchpad as
>>> /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN1203:
>>> 00/0018:04F3:3043.0007/input/input16
>>> [5.191230] hid-multitouch 0018:04F3:3043.0007: input,hidraw6: I2C HID
>>> v1.00 Mouse [ELAN1203:00 04F3:3043] on i2c-ELAN1203:00
>>>
>>> ~$ cat /proc/interrupts
>>>
>>> 16:          0          0          0          0          0          0
>>>        0          0  IR-IO-APIC   16-fasteoi   idma64.0,
>>> i2c_designware.0
>>> 17:        709       9839          0          0          0          0
>>>        0          0  IR-IO-APIC   17-fasteoi   idma64.1,
>>> i2c_designware.1
>>> 95:          1        552          0          0          0          0
>>>        0          0  IR-IO-APIC   95-fasteoi   ELAN1203:00
>>>
>>> ~$ xinput list
>>> ⎡ Virtual core pointer id=2     [master pointer (3)]
>>> ⎜ ↳ Virtual core XTEST pointer id=4     [slave pointer (2)]
>>> ⎜ ↳ G-SPY USB Gaming Mouse id=11        [slave pointer (2)]
>>> ⎜ ↳ Asus Keyboard id=14 [slave pointer (2)] ⎜ ↳ Asus Keyboard id=15
>>> [slave pointer (2)]
>>> ⎜ ↳ ELAN1203:00 04F3:3043 Touchpad id=16        [slave pointer (2)]
>>> ⎣ Virtual core keyboard id=3    [master keyboard (2)]
>>>      ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
>>>      ↳ Power Button id=6        [slave keyboard (3)]
>>>      ↳ Asus Wireless Radio Control id=7 [slave keyboard (3)]
>>>      ↳ Video Bus id=8   [slave keyboard (3)]
>>>      ↳ Sleep Button id=9        [slave keyboard (3)]
>>>      ↳ G-SPY USB Gaming Mouse id=10     [slave keyboard (3)]
>>>      ↳ USB2.0 HD UVC WebCam id=12       [slave keyboard (3)]
>>>      ↳ Asus Keyboard id=13      [slave keyboard (3)]
>>>      ↳ Asus WMI hotkeys id=17   [slave keyboard (3)]
>>>      ↳ AT Translated Set 2 keyboard id=18       [slave keyboard (3)]
>>>      ↳ G-SPY USB Gaming Mouse id=19     [slave keyboard (3)]
>>>      ↳ Asus Keyboard id=20      [slave keyboard (3)]
>>>
>>>
>>>
>>> On 2017-05-08 08:49, Kai-Heng Feng wrote:
>>>> Hi aljosa,
>>>>
>>>> On Fri, May 5, 2017 at 9:05 PM, Chris Chiu <chiu@endlessm.com> wrote:
>>>>> I read the whole threads. It's normal there's no interrupt observed
>>>>> if using elan_i2c driver. It should use hid-multitouch.
>>>>>
>>>>> I would like to know if there's any interrupts observed when it
>>>>> load hid-multitouch driver instead of elan_i2c driver.
>>>>>
>>>>> Something noted here, on my G752VSK the input device shows as
>>>>> ELAN1200 not ELAN1203. Although I think it should make no
>>>>> difference, just to note that my machine maybe a little different
>>>>> from the bug reporter's.
>>>>>
>>>>
>>>> Can you provide information Chris asked?
>>>> His G752 uses a slightly different touchpad so more information is
>>>> needed.
>>>>
>>>> Thanks!
>>>
>
--
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
Kai-Heng Feng June 8, 2017, 8:55 a.m. UTC | #15
On Wed, Jun 7, 2017 at 5:30 PM, Chris Chiu <chiu@endlessm.com> wrote:
> Hi Aijosa,
>     If you can build your own kernel, I'll suggest to add code in
> i2c_hid_init_irq() in i2c-hid.c.
> 1. verify the return value of irq_get_trigger_type()
> 2. Force the trigger type to IRQ_TYPE_EDGE_FALLING with
> irqd_set_trigger_type() before request_threaded_irq()
> 3. reboot with your own kernel to see if it works.

Hi Aljosa,

I compiled a Linux kernel with above requirement, please try out:
http://people.canonical.com/~khfeng/asus-hid/
--
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
Aljoša June 19, 2017, 6:38 p.m. UTC | #16
Just installed new kernel 4.12-rc6, my ELAN touchpad is still completely 
dead

[5.265229] i2c_hid i2c-ELAN1203:00: i2c-ELAN1203:00 supply vdd not 
found, using dummy regulator
[5.305130] hid-multitouch 0018:04F3:3043.0007: Ignoring the extra 
HID_DG_INPUTMODE
[5.305175] input: ELAN1203:00 04F3:3043 Touchpad as 
/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN1203:00/0018:04F3:3043.0007/input/input16
[5.305245] hid-multitouch 0018:04F3:3043.0007: input,hidraw6: I2C HID 
v1.00 Mouse [ELAN1203:00 04F3:3043] on i2c-ELAN1203:00

Please find attached the dmesg output here (comment #73):

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456



On 2017-06-08 10:55, Kai-Heng Feng wrote:
> On Wed, Jun 7, 2017 at 5:30 PM, Chris Chiu <chiu@endlessm.com> wrote:
>> Hi Aijosa,
>>     If you can build your own kernel, I'll suggest to add code in
>> i2c_hid_init_irq() in i2c-hid.c.
>> 1. verify the return value of irq_get_trigger_type()
>> 2. Force the trigger type to IRQ_TYPE_EDGE_FALLING with
>> irqd_set_trigger_type() before request_threaded_irq()
>> 3. reboot with your own kernel to see if it works.
> 
> Hi Aljosa,
> 
> I compiled a Linux kernel with above requirement, please try out:
> http://people.canonical.com/~khfeng/asus-hid/
--
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
Chris Chiu June 20, 2017, 4:07 a.m. UTC | #17
Hi Aljosa,
    From the 10_cat_sys_kernel_debug_hid_0018_04F3_3043_0007_events,
your touchpad seems to work fine. You can verify with the "evtest" or
"xev" to see if the events printed based on your touchpad move. So I
think it could be the display driver issue. Please give me the
information of the NVIDIA display in you G752VSK. Thanks.

Chris

On Thu, Jun 8, 2017 at 7:48 PM, Aljoša <aljosa@cromalternativemoney.org> wrote:
> I just installed your kernel, thank you very much. ELAN touchpad still
> doesn't work.
> Please find attached:
>
> ========
>
> dmesg_109.txt
>
> 7_cat_proc_interrupts.txt
> (without touching the touchpad)
>
> 8_cat_proc_interrupts.txt
> (with touching the touchpad and pressing its buttons)
>
> 9_cat_sys_kernel_debug_hid_0018_04F3_3043_0007_events
> (without touching the touchpad, not sure if I succeeded to execute the
> command within 10 seconds after power up)
>
> 10_cat_sys_kernel_debug_hid_0018_04F3_3043_0007_events
> (with touching the touchpad and pressing its buttons, not sure if I
> succeeded to execute the command within 10 seconds after power up)
>
> ========
>
> If it can anyhow help you, here's Windows driver (ASUS Precision Touchpad;
> V11.0.10.02; 2016/06/14)
> http://dlcdnet.asus.com/pub/ASUS/nb/DriversForWin10/TouchPad/Touchpad_ASUS_Win10_64_VER1101002.zip?_ga=2.172356131.1012542656.1496921505-2120895590.1496921505
>
> PS: if you want, one of these days we can meet each other via Skype, I can
> easily install TeamViewer so you can experiment in my notebook whatever you
> want without losing time and patience...
>
> "My touchpad (ELAN1203:00 04F3:3043) doesn't work on my asus G752VS laptop
> on debian stretch; at the last update of xserver-xorg-input-libinput and
> libinput10 my touchpad is put suddenly to work but after a reboot no longer
> works..."
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=855317
>
>
>
> On 2017-06-08 10:55, Kai-Heng Feng wrote:
>>
>> On Wed, Jun 7, 2017 at 5:30 PM, Chris Chiu <chiu@endlessm.com> wrote:
>>>
>>> Hi Aijosa,
>>>     If you can build your own kernel, I'll suggest to add code in
>>> i2c_hid_init_irq() in i2c-hid.c.
>>> 1. verify the return value of irq_get_trigger_type()
>>> 2. Force the trigger type to IRQ_TYPE_EDGE_FALLING with
>>> irqd_set_trigger_type() before request_threaded_irq()
>>> 3. reboot with your own kernel to see if it works.
>>
>>
>> Hi Aljosa,
>>
>> I compiled a Linux kernel with above requirement, please try out:
>> http://people.canonical.com/~khfeng/asus-hid/
--
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
Kai-Heng Feng June 20, 2017, 10:06 a.m. UTC | #18
On Tue, Jun 20, 2017 at 5:53 PM, Aljoša <aljosa@cromalternativemoney.org> wrote:
> Currently I'm using 4.11.0-5.10 kernel compiled by Kai-Heng Feng:
> http://people.canonical.com/~khfeng/asus-hid/

FWIW,

> 1. verify the return value of irq_get_trigger_type()
[    4.478815] i2c_hid i2c-ELAN1203:00: Trigger type: 0

> 2. Force the trigger type to IRQ_TYPE_EDGE_FALLING with
> irqd_set_trigger_type() before request_threaded_irq()
> 3. reboot with your own kernel to see if it works.

I also set the type to IRQ_TYPE_EDGE_FALLING. But looks like it didn't
work for the user.
--
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
Aljoša June 26, 2017, 6:44 a.m. UTC | #19
Just installed new kernel 4.12-rc7, my ELAN touchpad is still completely 
dead.
Please find attached the dmesg output file here (comment #74):
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456

[    5.320298] i2c_hid i2c-ELAN1203:00: i2c-ELAN1203:00 supply vdd not 
found, using dummy regulator
[    5.581767] hid-multitouch 0018:04F3:3043.0007: Ignoring the extra 
HID_DG_INPUTMODE
[    5.581851] input: ELAN1203:00 04F3:3043 Touchpad as 
/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN1203:00/0018:04F3:3043.0007/input/input16
[    5.581967] hid-multitouch 0018:04F3:3043.0007: input,hidraw6: I2C 
HID v1.00 Mouse [ELAN1203:00 04F3:3043] on i2c-ELAN1203:00

Additionally, my wifi stopped working too:

[4.542384] iwlwifi 0000:02:00.0: Direct firmware load for 
iwlwifi-8000C-30.ucode failed with error -2
[4.542606] iwlwifi 0000:02:00.0: Direct firmware load for 
iwlwifi-8000C-29.ucode failed with error -2
[4.542617] iwlwifi 0000:02:00.0: Direct firmware load for 
iwlwifi-8000C-28.ucode failed with error -2
[4.542626] iwlwifi 0000:02:00.0: Direct firmware load for 
iwlwifi-8000C-27.ucode failed with error -2
[4.542704] iwlwifi 0000:02:00.0: Direct firmware load for 
iwlwifi-8000C-26.ucode failed with error -2
[4.542714] iwlwifi 0000:02:00.0: Direct firmware load for 
iwlwifi-8000C-25.ucode failed with error -2
[4.542723] iwlwifi 0000:02:00.0: Direct firmware load for 
iwlwifi-8000C-24.ucode failed with error -2
[4.542732] iwlwifi 0000:02:00.0: Direct firmware load for 
iwlwifi-8000C-23.ucode failed with error -2
[4.542816] iwlwifi 0000:02:00.0: Direct firmware load for 
iwlwifi-8000C-22.ucode failed with error -2
[4.542817] iwlwifi 0000:02:00.0: no suitable firmware found!
[4.542836] iwlwifi 0000:02:00.0: minimum version required: 
iwlwifi-8000C-22
[4.542853] iwlwifi 0000:02:00.0: maximum version supported: 
iwlwifi-8000C-30
[4.542870] iwlwifi 0000:02:00.0: check 
git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

and I'm also getting the following "Firmware Bug" message:

[4.440279] tpm_crb MSFT0101:00: [Firmware Bug]: ACPI region does not 
cover the entire command/response buffer. [mem 0xfed40000-0xfed4087f 
flags 0x200] vs fed40080 f80
[4.440343] tpm_crb MSFT0101:00: [Firmware Bug]: ACPI region does not 
cover the entire command/response buffer. [mem 0xfed40000-0xfed4087f 
flags 0x200] vs fed40080 f80



On 2017-06-20 12:06, Kai-Heng Feng wrote:
> On Tue, Jun 20, 2017 at 5:53 PM, Aljoša 
> <aljosa@cromalternativemoney.org> wrote:
>> Currently I'm using 4.11.0-5.10 kernel compiled by Kai-Heng Feng:
>> http://people.canonical.com/~khfeng/asus-hid/
> 
> FWIW,
> 
>> 1. verify the return value of irq_get_trigger_type()
> [    4.478815] i2c_hid i2c-ELAN1203:00: Trigger type: 0
> 
>> 2. Force the trigger type to IRQ_TYPE_EDGE_FALLING with
>> irqd_set_trigger_type() before request_threaded_irq()
>> 3. reboot with your own kernel to see if it works.
> 
> I also set the type to IRQ_TYPE_EDGE_FALLING. But looks like it didn't
> work for the user.
--
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
Aljoša July 3, 2017, 9:03 a.m. UTC | #20
Hello,
I have just installed the new Linux 4.12 kernel.
My ELAN touchpad is still completely dead.
Please find attached the complete dmesg output file here (comment #75):
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456


On 2017-06-20 12:06, Kai-Heng Feng wrote:
> On Tue, Jun 20, 2017 at 5:53 PM, Aljoša 
> <aljosa@cromalternativemoney.org> wrote:
>> Currently I'm using 4.11.0-5.10 kernel compiled by Kai-Heng Feng:
>> http://people.canonical.com/~khfeng/asus-hid/
> 
> FWIW,
> 
>> 1. verify the return value of irq_get_trigger_type()
> [    4.478815] i2c_hid i2c-ELAN1203:00: Trigger type: 0
> 
>> 2. Force the trigger type to IRQ_TYPE_EDGE_FALLING with
>> irqd_set_trigger_type() before request_threaded_irq()
>> 3. reboot with your own kernel to see if it works.
> 
> I also set the type to IRQ_TYPE_EDGE_FALLING. But looks like it didn't
> work for the user.
--
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
廖崇榮 July 3, 2017, 10:30 a.m. UTC | #21
Chris thinks touchpad works fine but display card issue in previous mail.
Could anyone help to check it?

-----Original Message-----
From: Aljoša [mailto:aljosa@cromalternativemoney.org] 
Sent: Monday, July 03, 2017 5:03 PM
To: Kai-Heng Feng
Cc: Chris Chiu; 廖崇榮; linux-input@vger.kernel.org; 黃世鵬 經理
Subject: Re: ASUS G752VS Touchpad does not work

Hello,
I have just installed the new Linux 4.12 kernel.
My ELAN touchpad is still completely dead.
Please find attached the complete dmesg output file here (comment #75):
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456


On 2017-06-20 12:06, Kai-Heng Feng wrote:
> On Tue, Jun 20, 2017 at 5:53 PM, Aljoša 
> <aljosa@cromalternativemoney.org> wrote:
>> Currently I'm using 4.11.0-5.10 kernel compiled by Kai-Heng Feng:
>> http://people.canonical.com/~khfeng/asus-hid/
> 
> FWIW,
> 
>> 1. verify the return value of irq_get_trigger_type()
> [    4.478815] i2c_hid i2c-ELAN1203:00: Trigger type: 0
> 
>> 2. Force the trigger type to IRQ_TYPE_EDGE_FALLING with
>> irqd_set_trigger_type() before request_threaded_irq() 3. reboot with 
>> your own kernel to see if it works.
> 
> I also set the type to IRQ_TYPE_EDGE_FALLING. But looks like it didn't 
> work for the user.

--
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
Aljoša July 4, 2017, 9:06 a.m. UTC | #22
ELAN touchpad completely dead - possibly caused by Nvidia driver?
https://devtalk.nvidia.com/default/topic/1016797/linux/elan-touchpad-completely-dead-possibly-caused-by-nvidia-driver-/


On 2017-07-03 12:30, 廖崇榮 wrote:
> Chris thinks touchpad works fine but display card issue in previous 
> mail.
> Could anyone help to check it?
> 
> -----Original Message-----
> From: Aljoša [mailto:aljosa@cromalternativemoney.org]
> Sent: Monday, July 03, 2017 5:03 PM
> To: Kai-Heng Feng
> Cc: Chris Chiu; 廖崇榮; linux-input@vger.kernel.org; 黃世鵬 經理
> Subject: Re: ASUS G752VS Touchpad does not work
> 
> Hello,
> I have just installed the new Linux 4.12 kernel.
> My ELAN touchpad is still completely dead.
> Please find attached the complete dmesg output file here (comment #75):
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456
> 
> 
> On 2017-06-20 12:06, Kai-Heng Feng wrote:
>> On Tue, Jun 20, 2017 at 5:53 PM, Aljoša
>> <aljosa@cromalternativemoney.org> wrote:
>>> Currently I'm using 4.11.0-5.10 kernel compiled by Kai-Heng Feng:
>>> http://people.canonical.com/~khfeng/asus-hid/
>> 
>> FWIW,
>> 
>>> 1. verify the return value of irq_get_trigger_type()
>> [    4.478815] i2c_hid i2c-ELAN1203:00: Trigger type: 0
>> 
>>> 2. Force the trigger type to IRQ_TYPE_EDGE_FALLING with
>>> irqd_set_trigger_type() before request_threaded_irq() 3. reboot with
>>> your own kernel to see if it works.
>> 
>> I also set the type to IRQ_TYPE_EDGE_FALLING. But looks like it didn't
>> work for the user.
--
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
Aljoša July 6, 2017, 8:40 a.m. UTC | #23
06 July 2017,
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456
comment #76 by FZ (sirfz):

I installed Ubuntu 17.04 on mu new G752VS yesterday and the ELAN 
Touchpad was completely non-functional. Today, out of no where and 
without any reasonable explanation, it started working after a resume 
from sleep (opened lid). Right now it's fully functional, both buttons 
are working as well as tracking and multi-touch gestures (e.g. 
double-finger scrolling). All I did was install a few updates using the 
Software Updater today.

$ uname -a
Linux fzrog 4.10.0-26-generic #30-Ubuntu SMP Tue Jun 27 09:30:12 UTC 
2017 x86_64 x86_64 x86_64 GNU/Linux

$ xinput list
⎡ Virtual core pointer id=2	[master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4	[slave pointer (2)]
⎜ ↳ Logitech MX Master id=10	[slave pointer (2)]
⎜ ↳ ASASTeK COMPUTER INC. ROG MacroKey id=16	[slave pointer (2)]
⎜ ↳ ELAN1203:00 04F3:301E Touchpad id=17	[slave pointer (2)]
⎜ ↳ Logitech M510 id=21	[slave pointer (2)]
⎜ ↳ Logitech K350 id=12	[slave pointer (2)]
⎜ ↳ ASASTeK COMPUTER INC. ROG MacroKey id=15	[slave pointer (2)]
⎣ Virtual core keyboard id=3	[master keyboard (2)]
     ↳ Virtual core XTEST keyboard id=5	[slave keyboard (3)]
     ↳ ASASTeK COMPUTER INC. ROG MacroKey id=14	[slave keyboard (3)]
     ↳ Sleep Button id=9	[slave keyboard (3)]
     ↳ Logitech MX Master id=11	[slave keyboard (3)]
     ↳ USB2.0 HD UVC WebCam id=13	[slave keyboard (3)]
     ↳ Power Button id=6	[slave keyboard (3)]
     ↳ AT Translated Set 2 keyboard id=19	[slave keyboard (3)]
     ↳ Asus WMI hotkeys id=18	[slave keyboard (3)]
     ↳ Video Bus id=8	[slave keyboard (3)]
     ↳ Asus Wireless Radio Control id=7	[slave keyboard (3)]
     ↳ Logitech K350 id=20	[slave keyboard (3)]
     ↳ ASASTeK COMPUTER INC. ROG MacroKey id=22	[slave keyboard (3)]



On 2017-07-03 12:30, 廖崇榮 wrote:
> Chris thinks touchpad works fine but display card issue in previous 
> mail.
> Could anyone help to check it?
> 
> -----Original Message-----
> From: Aljoša [mailto:aljosa@cromalternativemoney.org]
> Sent: Monday, July 03, 2017 5:03 PM
> To: Kai-Heng Feng
> Cc: Chris Chiu; 廖崇榮; linux-input@vger.kernel.org; 黃世鵬 經理
> Subject: Re: ASUS G752VS Touchpad does not work
> 
> Hello,
> I have just installed the new Linux 4.12 kernel.
> My ELAN touchpad is still completely dead.
> Please find attached the complete dmesg output file here (comment #75):
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456
> 
> 
> On 2017-06-20 12:06, Kai-Heng Feng wrote:
>> On Tue, Jun 20, 2017 at 5:53 PM, Aljoša
>> <aljosa@cromalternativemoney.org> wrote:
>>> Currently I'm using 4.11.0-5.10 kernel compiled by Kai-Heng Feng:
>>> http://people.canonical.com/~khfeng/asus-hid/
>> 
>> FWIW,
>> 
>>> 1. verify the return value of irq_get_trigger_type()
>> [    4.478815] i2c_hid i2c-ELAN1203:00: Trigger type: 0
>> 
>>> 2. Force the trigger type to IRQ_TYPE_EDGE_FALLING with
>>> irqd_set_trigger_type() before request_threaded_irq() 3. reboot with
>>> your own kernel to see if it works.
>> 
>> I also set the type to IRQ_TYPE_EDGE_FALLING. But looks like it didn't
>> work for the user.
--
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
Aljoša July 11, 2017, 3:35 p.m. UTC | #24
*
Ubuntu 17.10 daily build (2017-07-10), kernel 4.10.0-19
Booted from Live USB, without USB mouse connected: ELAN touhpad doesn't 
work at all, but al least touchpad cursor is visible all the time. I've 
tried to disable/enable the touchpad via system settings, but nothing 
changes.
After that, I suspended my Asus G752VS laptop via shutdown/suspend menu 
and then I disconnected the USB mouse. After waking up from suspend, my 
ELAN touhpad magically became fully functional - everything works 
fabulously.

*
Fedora Workstation 26, kernel 4.11.8
Booted from Live USB, without USB mouse connected: ELAN touhpad doesn't 
work at all, but al least touchpad cursor is visible all the time. With 
the USB mouse connected, I've tried to disable/enable the touchpad via 
system settings, but nothing changes.
After that, I pressed the power button to suspend my Asus G752VS laptop 
and then I disconnected the USB mouse. After pressing once again the 
power button to wake up from suspend, my ELAN touhpad magically became 
fully functional - everything works fabulously.

*
As reported here
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456/comments/76
the trick should work also with Ubuntu 17.04 but that's not my case. My 
current Ubuntu 17.04 was installed while it was still in development - 
so I will perform a new clean installation (without Windows) in the next 
few days.


On 2017-07-03 12:30, 廖崇榮 wrote:
> Chris thinks touchpad works fine but display card issue in previous 
> mail.
> Could anyone help to check it?
> 
> -----Original Message-----
> From: Aljoša [mailto:aljosa@cromalternativemoney.org]
> Sent: Monday, July 03, 2017 5:03 PM
> To: Kai-Heng Feng
> Cc: Chris Chiu; 廖崇榮; linux-input@vger.kernel.org; 黃世鵬 經理
> Subject: Re: ASUS G752VS Touchpad does not work
> 
> Hello,
> I have just installed the new Linux 4.12 kernel.
> My ELAN touchpad is still completely dead.
> Please find attached the complete dmesg output file here (comment #75):
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456
> 
> 
> On 2017-06-20 12:06, Kai-Heng Feng wrote:
>> On Tue, Jun 20, 2017 at 5:53 PM, Aljoša
>> <aljosa@cromalternativemoney.org> wrote:
>>> Currently I'm using 4.11.0-5.10 kernel compiled by Kai-Heng Feng:
>>> http://people.canonical.com/~khfeng/asus-hid/
>> 
>> FWIW,
>> 
>>> 1. verify the return value of irq_get_trigger_type()
>> [    4.478815] i2c_hid i2c-ELAN1203:00: Trigger type: 0
>> 
>>> 2. Force the trigger type to IRQ_TYPE_EDGE_FALLING with
>>> irqd_set_trigger_type() before request_threaded_irq() 3. reboot with
>>> your own kernel to see if it works.
>> 
>> I also set the type to IRQ_TYPE_EDGE_FALLING. But looks like it didn't
>> work for the user.
--
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
Aljoša Sept. 22, 2017, 3:49 p.m. UTC | #25
22 September 2017,
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456
comment #130 by Caleb McKay (caleb-9):

This guy on the Asus forum posted a firmware upgrade for the touchpad 
that fixes the ongoing Windows issues. I took a chance for grins and 
installed it, and it definitely fixed the sleep issues in Windows 10. 
However, after installing, my touchpad now works perfectly under Ubuntu 
17.04 as well. Not sure where the original source of the patch came 
from, but it definitely works:

https://rog.asus.com/forum/showthread.php?93405-G-752-VS-Touchpad-Gesture-Fix



On 2017-06-20 12:06, Kai-Heng Feng wrote:
> On Tue, Jun 20, 2017 at 5:53 PM, Aljoša 
> <aljosa@cromalternativemoney.org> wrote:
>> Currently I'm using 4.11.0-5.10 kernel compiled by Kai-Heng Feng:
>> http://people.canonical.com/~khfeng/asus-hid/
> 
> FWIW,
> 
>> 1. verify the return value of irq_get_trigger_type()
> [    4.478815] i2c_hid i2c-ELAN1203:00: Trigger type: 0
> 
>> 2. Force the trigger type to IRQ_TYPE_EDGE_FALLING with
>> irqd_set_trigger_type() before request_threaded_irq()
>> 3. reboot with your own kernel to see if it works.
> 
> I also set the type to IRQ_TYPE_EDGE_FALLING. But looks like it didn't
> work for the user.
--
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
Aljoša April 11, 2018, 11:59 a.m. UTC | #26
Dear Linux kernel developers,
with a hope that this message can somehow help finding the definitive 
and complete solution, I'm writing to inform you about some important 
news regarding Asus G752 laptop series and a long standing ELAN touchpad 
issue (touchpad "ELAN1203:00 04F3:3043" completely dead).

Some people reported in 2017 that installing a "suspicious" file under 
Windows solves the ELAN touchpad Linux problem too:
https://rog.asus.com/forum/showthread.php?93405-G-752-VS-Touchpad-Gesture-Fix
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456/comments/130
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456/comments/134
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456/comments/144
After a long time thinking, I didn't want to take a risk since the 
mentioned Windows file is "suspicious".

Now the big news is that after executing a few simple commands, ELAN 
touchpad is miraculously awaken from death and it starts partially 
functioning.
If you have some free time, please take a look here:
comment 152 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456

Best regards.
--
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
Aljoša May 17, 2018, 10:22 a.m. UTC | #27
Compared to other Linux distros, Fedora 28 Atomic Workstation kills 
"ELAN1203:00 04F3:3043" touchpad too. After one year and a half, the 
good news is that one user reported that the Anaconda setup of Fedora 28 
Atomic Workstation fully activates "ELAN1203:00 04F3:3043" touchpad!
I couldn't find the live image, so consequently without booting up the 
USB into the live session I was not able to try diagnostic commands. But 
I can confirm that the Anaconda setup of Fedora 28 Atomic Workstation 
fully activates "ELAN1203:00 04F3:3043" touchpad, even with multitouch 
and tap-to-click.
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1653456


On 2017-05-08 08:49, Kai-Heng Feng wrote:
> Hi aljosa,
> 
> On Fri, May 5, 2017 at 9:05 PM, Chris Chiu <chiu@endlessm.com> wrote:
>> I read the whole threads. It's normal there's no interrupt observed if
>> using elan_i2c driver. It should use hid-multitouch.
>> 
>> I would like to know if there's any interrupts observed when it load
>> hid-multitouch driver instead of elan_i2c driver.
>> 
>> Something noted here, on my G752VSK the input device shows as ELAN1200
>> not ELAN1203. Although I think it should make no difference, just to
>> note that my machine maybe a little different from the bug reporter's.
>> 
> 
> Can you provide information Chris asked?
> His G752 uses a slightly different touchpad so more information is 
> needed.
> 
> Thanks!
--
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
diff mbox

Patch

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index da62a7695e77..acddb407e766 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -2377,6 +2377,7 @@  static const struct hid_device_id hid_ignore_list[] = {
        { HID_USB_DEVICE(USB_VENDOR_ID_DELORME,
USB_DEVICE_ID_DELORME_EM_LT20) },
        { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, 0x0400) },
        { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, 0x0401) },
+       { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, 0x3043) },
        { 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 a26f44c28d82..bf661ce5dccc 100644
--- a/drivers/input/mouse/elan_i2c_core.c
+++ b/drivers/input/mouse/elan_i2c_core.c
@@ -1235,6 +1238,7 @@  static const struct acpi_device_id elan_acpi_id[] = {
        { "ELAN0600", 0 },
        { "ELAN0605", 0 },
        { "ELAN1000", 0 },
+       { "ELAN1203", 0 },
        { }
 };
 MODULE_DEVICE_TABLE(acpi, elan_acpi_id);