On Wed, Nov 13, 2019 at 07:29:38PM +0100, Hans de Goede wrote: > Many cheap devices use Silead touchscreen controllers. Testing has shown > repeatedly that these touchscreen controllers work fine at 400KHz, but for > unknown reasons do not work properly at 100KHz. This has been seen on > both ARM and x86 devices using totally different i2c controllers. > > On some devices the ACPI tables list another device at the same I2C-bus > as only being capable of 100KHz, testing has shown that these other > devices work fine at 400KHz (as can be expected of any recent I2C hw). > > This commit makes i2c_acpi_find_bus_speed() always return 400KHz if a > Silead touchscreen controller is present, fixing the touchscreen not > working on devices which ACPI tables' wrongly list another device on the > same bus as only being capable of 100KHz. > > Specifically this fixes the touchscreen on the Jumper EZpad 6 m4 not > working. > > Reported-and-tested-by: youling 257 <youling257@xxxxxxxxx> > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Stable material, I'd say? > + dev_warn(dev, FW_BUG "DSDT wrongly sets I2C bus speed to %d, forcing it to %d\n", > + lookup.min_speed, lookup.force_speed); I have not a strong opinion here. However, does the DSDT really wrongly set a bus speed when it is the touchscreen controller which cannot handle lower speeds and other devies are specified to run at 100kHz?
Attachment:
signature.asc
Description: PGP signature