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.