From: Randolph Ha <rha051117@gmail.com>
To: mika.westerberg@linux.intel.com,
wsa+renesas@sang-engineering.com, linux-i2c@vger.kernel.org,
linux-acpi@vger.kernel.org
Cc: trivial@kernel.org, Randolph Ha <rha051117@gmail.com>
Subject: [PATCH 1/1] Force ELAN06FA touchpad I2C bus freq to 100KHz
Date: Thu, 2 Jan 2025 23:16:52 -0600 [thread overview]
Message-ID: <20250103051657.211966-2-rha051117@gmail.com> (raw)
In-Reply-To: <20250103051657.211966-1-rha051117@gmail.com>
Some devices do not define valid bus frequencies for the ELAN06FA
touchpad in their ACPI table, and some controllers run them at
400KHz by default. The 06FA touchpad exhibits excessive smoothing
behaviors when run at 400KHz, so force the bus frequency to 100KHz.
Signed-off-by: Randolph Ha <rha051117@gmail.com>
---
drivers/i2c/i2c-core-acpi.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
index 14ae0cfc325e..b10f52e12fe8 100644
--- a/drivers/i2c/i2c-core-acpi.c
+++ b/drivers/i2c/i2c-core-acpi.c
@@ -355,6 +355,18 @@ static const struct acpi_device_id i2c_acpi_force_400khz_device_ids[] = {
{}
};
+static const struct acpi_device_id i2c_acpi_force_100khz_device_ids[] = {
+ /*
+ * When a 400KHz freq is used on this model of ELAN touchpad instead
+ * of 100Khz, excessive smoothing (similar to when there is noise in
+ * the signal) is intermittently applied. As some devices' ACPI
+ * tables do not specify the 100KHz frequency requirement, it is
+ * necessary to force the speed to 100KHz.
+ */
+ { "ELAN06FA", 0 },
+ {}
+};
+
static acpi_status i2c_acpi_lookup_speed(acpi_handle handle, u32 level,
void *data, void **return_value)
{
@@ -373,6 +385,9 @@ static acpi_status i2c_acpi_lookup_speed(acpi_handle handle, u32 level,
if (acpi_match_device_ids(adev, i2c_acpi_force_400khz_device_ids) == 0)
lookup->force_speed = I2C_MAX_FAST_MODE_FREQ;
+ if (acpi_match_device_ids(adev, i2c_acpi_force_100khz_device_ids) == 0)
+ lookup->force_speed = I2C_MAX_STANDARD_MODE_FREQ;
+
return AE_OK;
}
--
2.47.1
next prev parent reply other threads:[~2025-01-03 5:20 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-03 5:16 [PATCH 0/1] Force I2C bus freq to 100KHz for ELAN06FA touchpad Randolph Ha
2025-01-03 5:16 ` Randolph Ha [this message]
2025-01-03 9:33 ` [PATCH 1/1] Force ELAN06FA touchpad I2C bus freq to 100KHz Mika Westerberg
2025-01-03 23:46 ` R Ha
2025-01-05 8:33 ` Mika Westerberg
2025-01-06 1:28 ` [PATCH] " Randolph Ha
2025-01-06 9:00 ` [PATCH 1/1] " R Ha
2025-01-07 7:27 ` Mika Westerberg
2025-01-07 12:16 ` R Ha
2025-01-08 5:51 ` Mika Westerberg
2025-01-08 9:29 ` R Ha
2025-01-09 11:19 ` Mika Westerberg
2025-01-10 8:31 ` R Ha
2025-01-10 11:26 ` Mika Westerberg
2025-01-10 11:45 ` Jarkko Nikula
2025-01-10 12:07 ` Mika Westerberg
2025-01-11 15:57 ` [PATCH] " Randolph Ha
2025-01-13 6:48 ` Mika Westerberg
2025-01-13 19:52 ` Randolph Ha
2025-01-14 11:58 ` Wolfram Sang
2025-01-15 19:39 ` R Ha
2025-01-11 16:05 ` [PATCH 1/1] " R Ha
2025-01-13 6:49 ` Mika Westerberg
2025-01-06 9:08 ` R Ha
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=20250103051657.211966-2-rha051117@gmail.com \
--to=rha051117@gmail.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=trivial@kernel.org \
--cc=wsa+renesas@sang-engineering.com \
/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;
as well as URLs for NNTP newsgroup(s).