On Wed, Mar 20, 2019 at 6:55 PM Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx> wrote: > at 23:39, Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > > On 3/20/19 3:37 PM, Benjamin Tissoires wrote: > > Benjamin, what I find interesting here is that the BOGUS_IRQ quirk > > is also used on Elan devices, I suspect that these Elan devices > > likely also need the I2C_HID_QUIRK_FORCE_TRIGGER_FALLING quirk > > and then they probably will no longer need the bogus IRQ flag, > > if you know about bugreports with an acpidump for any of the devices > > needing the bogus IRQ quirk, then I (or you) can check how the IRQ is > > declared there, I suspect it will be declared as level-low, just like > > with the laptop this patch was written for. And it probably need to > > be edge-falling instead of level-low just like this case. > > First, I’ve already tried using IRQF_TRIGGER_FALLING, unfortunately it > doesn’t solve the issue for me. > > I talked to Elan once, and they confirm the correct IRQ trigger is level > low. So forcing falling trigger may break other platforms. As far as I understood Vladislav the quirk he got from Elan as well. > Recently we found that Elan touchpad doesn’t like GpioInt() from its _CRS. > Once the Interrupt() is used instead, the issue goes away. IIRC i2c core tries to get interrupt from Interrupt() resource and then falls back to GpioInt(). See i2c_acpi_get_info() and i2c_device_probe(). > But I am not sure how to patch its DSDT/SSDT in i2c-hid. -- With Best Regards, Andy Shevchenko