From: "fangzhong.zhou" <myth5@xxxxxxxxx> [ 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@xxxxxxxxx> [wsa: kept sorting and removed unnecessary parts from commit msg] Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> --- 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@xxxxxxxxxx`) ### 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 }, {} }; -- 2.39.5