Re: [PATCH] ELAN touchpad i2c_hid bugs fix

From: Andy Shevchenko
Date: Wed Mar 20 2019 - 13:18:42 EST


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