Linux ACPI
 help / color / mirror / Atom feed
From: xiaoyueyoqwq <xiaoyueyoqwq@gmail.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: andi.shyti@kernel.org, westeri@kernel.org,
	linux-i2c@vger.kernel.org, linux-acpi@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] i2c: acpi: Add DELL0A86 to i2c_acpi_force_100khz_device_ids
Date: Thu, 27 Aug 2026 15:46:00 +0800	[thread overview]
Message-ID: <11e2734c-2856-4fc2-8209-7410571dbbbf@gmail.com> (raw)
In-Reply-To: <ao_Xu-43lnM6I7Pn@ashevche-desk.local>

Hi Andy,

Sure. The relevant DSDT excerpt is below.

    Scope (_SB.PC00.I2C1)
    {
        ...

        Device (TPD0)
        {
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x002C, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "\\_SB.PC00.I2C1",
                    0x00, ResourceConsumer, _Y55, Exclusive,
                    )
            })

            CreateWordField (SBFB, \_SB.PC00.I2C1.TPD0._Y55._ADR, BADR)
            CreateDWordField (SBFB, \_SB.PC00.I2C1.TPD0._Y55._SPE, SPED)

            Method (_INI, 0, NotSerialized)
            {
                ...

                HID2 = TPDH
                BADR = TPDB
                If ((TPDS == Zero))
                {
                    SPED = 0x000186A0
                }

                If ((TPDS == One))
                {
                    SPED = 0x00061A80
                }

                If ((TPDS == 0x02))
                {
                    SPED = 0x000F4240
                }
            }

            Name (ITPN, "DELL0A86")
            Method (_HID, 0, NotSerialized)
            {
                Return (ITPN)
            }

            ...

            Method (_CRS, 0, NotSerialized)
            {
                ...

                If ((TPDM == Zero))
                {
                    Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFG))
                }

                Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFI))
            }
        }
    }

The speed values are 100 kHz, 400 kHz and 1 MHz respectively. On this
machine Linux receives 400 kHz from ACPI, which is also confirmed by the
kernel log when the quirk is applied:

    DSDT uses known not-working I2C bus speed 400000, forcing it to 100000

And for now my PC touchpad has continued to work normally since applying the quirk, and the issue has still not recurred. :)

Thanks,
YuXin

在 2026/8/27 14:22, Andy Shevchenko 写道:
> On Mon, Aug 24, 2026 at 12:22:21PM +0200, Mika Westerberg wrote:
>> +Andy
>>
>> On Sun, Aug 23, 2026 at 08:33:10PM +0800, xiaoyueyoqwq wrote:
>>> The ELAN 04F3:3185 touchpad exposed as DELL0A86 on the Dell Inspiron
>>> 13 5310 intermittently exhibits excessive smoothing when the I2C bus
>>> runs at 400 kHz. During an affected period pointer movement becomes
>>> severely sluggish and sticky for tens of seconds.
> Just for the confirmation (no need to include in the commit message) can
> you share the DSDT excerpt of the device in question?
>
> (acpidump -o tables.dat; acpixtract tables.dat; iasl -d dsdt.dat; # open dsdt.dsl)
>
>>> The ACPI firmware configures the touchpad bus for 400 kHz. Add DELL0A86
>>> to i2c_acpi_force_100khz_device_ids so that the bus runs at 100 kHz, as
>>> is already done for other touchpads exhibiting the same excessive
>>> smoothing problem.
>>>
>>> With the quirk applied, the kernel reports that the firmware requested
>>> 400 kHz and that the bus is forced to 100 kHz. The problem did not recur
>>> during extended heavy use, including an S4 hibernate/resume cycle.
> ...
>
>>> +	{ "DELL0A86", 0 },
>>>  	{ "DLL0945", 0 },
>>>  	{ "ELAN0678", 0 },
>>>  	{ "ELAN06FA", 0 },
> At some point this should be switched to C99 initialisers and dropped unused
> driver_data.
>

  reply	other threads:[~2026-08-27  7:46 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-23 11:56 [PATCH] i2c: acpi: Add DELL0A86 to i2c_acpi_force_100khz_device_ids xiaoyueyoqwq
2026-08-23 12:33 ` [PATCH v2] " xiaoyueyoqwq
2026-08-24 10:22   ` Mika Westerberg
2026-08-24 15:00     ` Andy Shevchenko
2026-08-27  6:22     ` Andy Shevchenko
2026-08-27  7:46       ` xiaoyueyoqwq [this message]
2026-08-24 11:18   ` [PATCH v3] " YuXin Xiao
2026-08-24 18:15     ` [PATCH v4] " YuXin Xiao
2026-08-26 14:09       ` Andi Shyti

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=11e2734c-2856-4fc2-8209-7410571dbbbf@gmail.com \
    --to=xiaoyueyoqwq@gmail.com \
    --cc=andi.shyti@kernel.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=westeri@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox