From: "fangzhong.zhou" myth5@myth5.com
[ Upstream commit 0b7c9528facdb5a73ad78fea86d2e95a6c48dbc4 ]
This patch fixes an issue where the touchpad cursor movement becomes slow on the Dell Precision 5560. Force the touchpad freq to 100khz as a workaround.
Tested on Dell Precision 5560 with 6.14 to 6.14.6. Cursor movement is now smooth and responsive.
Signed-off-by: fangzhong.zhou myth5@myth5.com [wsa: kept sorting and removed unnecessary parts from commit msg] Signed-off-by: Wolfram Sang wsa+renesas@sang-engineering.com Signed-off-by: Sasha Levin sashal@kernel.org ---
LLM Generated explanations, may be completely bogus:
**Backport Status: YES**
This commit should be backported to stable kernel trees for the following reasons:
## Analysis Supporting Backport:
### 1. **Fixes a Real User-Visible Bug** The commit fixes a specific hardware malfunction where the touchpad cursor movement becomes slow on Dell Precision 5560 laptops. This is a concrete usability issue that affects end users' ability to use their hardware properly.
### 2. **Minimal and Contained Change** The change is extremely minimal - it only adds a single line `{ "DLL0945", 0 },` to an existing array `i2c_acpi_force_100khz_device_ids[]`. This is a purely additive change that: - Doesn't modify any existing logic - Only affects devices with the specific ACPI ID "DLL0945" - Cannot cause regressions on other hardware
### 3. **Follows Established Pattern** The code shows this is a well-established pattern for hardware quirks: - The `i2c_acpi_force_100khz_device_ids[]` array already exists with the same purpose - A nearly identical fix was just added for ELAN06FA touchpad (commit bfd74cd1fbc0) - Similar quirk arrays exist for forcing 400KHz (i2c_acpi_force_400khz_device_ids) - Previous similar fixes have been marked for stable (e.g., commit 7574c0db2e68 for Silead touchscreens included `Cc: stable@kernel.org`)
### 4. **Hardware-Specific Workaround** This is a hardware-specific workaround that: - Only triggers for Dell devices with the DLL0945 touchpad - Forces I2C bus speed to 100KHz to work around a hardware/firmware issue - Has been tested on the affected hardware (Dell Precision 5560 with kernels 6.14 to 6.14.6)
### 5. **No Architecture Changes** The commit: - Uses existing infrastructure (the quirk array mechanism) - Doesn't introduce new features - Doesn't change any APIs or interfaces - Simply adds one more device ID to an existing workaround list
### 6. **Low Risk of Regression** The change has minimal regression risk because: - It only affects devices with the specific ACPI ID - The mechanism is already proven with other devices - The fix is isolated to I2C bus speed negotiation for one specific touchpad model - If the device ID doesn't match, the code path is never executed
### 7. **Consistent with Stable Kernel Rules** This fix aligns perfectly with stable kernel criteria: - Fixes a real bug that bothers users (slow touchpad cursor) - Is obviously correct and tested - Is small (1 line addition) - Doesn't add new features - Fixes only one specific issue
The commit follows the exact same pattern as previous touchpad I2C frequency quirks that have been successfully backported to stable kernels, making it a clear candidate for stable tree inclusion.
drivers/i2c/i2c-core-acpi.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c index d2499f302b50..f43067f6797e 100644 --- a/drivers/i2c/i2c-core-acpi.c +++ b/drivers/i2c/i2c-core-acpi.c @@ -370,6 +370,7 @@ static const struct acpi_device_id i2c_acpi_force_100khz_device_ids[] = { * the device works without issues on Windows at what is expected to be * a 400KHz frequency. The root cause of the issue is not known. */ + { "DLL0945", 0 }, { "ELAN06FA", 0 }, {} };