[PATCH] HID: rmi: fix PDT table garbling on Dell 9Q33

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dell 9Q33's touchpad has been getting invalid function addresses
during the late stages of probing. This only occurs after the PDT
was scanned multiple times, so it only popped up now that PDT scanning
was unified in 0b2c7a89 (previously, hid-rmi.c scanned it only once).

This slows down probing enough to always get good data, at the cost of
~1ms of sleep per function probe (value determined empirically), or
about 20ms total when enumerating. If someone has a better idea of
handling this (maybe caching the PDT's?), I'd be happy to test.

Signed-off-by: Jake Merdich <jake@xxxxxxxxxxx>
---
 drivers/input/rmi4/rmi_driver.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c
index d64fc92858f2..8724ee241ee5 100644
--- a/drivers/input/rmi4/rmi_driver.c
+++ b/drivers/input/rmi4/rmi_driver.c
@@ -545,6 +545,9 @@ static int rmi_scan_pdt_page(struct rmi_device *rmi_dev,
 		retval = callback(rmi_dev, ctx, &pdt_entry);
 		if (retval != RMI_SCAN_CONTINUE)
 			return retval;
+
+		// Dell 9Q33 garbles data if scanned too quickly
+		usleep_range(500, 1000);
 	}
 
 	/*
-- 
2.12.2

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux