[Bug 213579] Clevo NH55HJ (intel tigerlake) touchpad support (GPIO can't be used as IRQ)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.kernel.org/show_bug.cgi?id=213579

--- Comment #46 from Andy Shevchenko (andy.shevchenko@xxxxxxxxx) ---
(In reply to wse from comment #45)
> (In reply to wse from comment #44)
> > Found the offending code bit in the dsdt:
> > 
> >     Scope (_SB.PC00.I2C0)
> >     {
> >         Device (TPAD)
> >         {
> >             [...]
> >             Method (_INI, 0, NotSerialized)  // _INI: Initialize
> >             {
> >                 BADR = SADR /* \_SB_.PC00.I2C0.TPAD.SADR */
> >                 INTA = GNUM (0x0801000C)
> >             }
> >             [...]
> >         }
> >     }
> > 
> > INTA should evaluate to 0x8C (140), but does evaluate to 0x2c (44).
> > GNUM is some kind of offset calculation, ignoring the 0x08, taking values
> > from an array based on the 0x01 and adding it to the 0x000C. You can check
> > it in the disassembled dsdt. I don't know ofcourse if GNUM is buggy, the
> > array is wrong, or the 0x0801000C input value is wrong (you can choose an
> > input value that makes GNUM evaluate to 0x8C).
> 
> However: Building and using a dsdt with INTA hardcoded to 0x8C makes the
> touchpad work on arbitrary kernels. Maybe a better workaround then a self
> compiled kernel.

Thanks for this debugging and root causing the effort!
I totally agree that DSDT recompilation is much better approach, but it's still
far from ideal (firmware fix by a vendor).

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.



[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux