On Tue, Jul 04, 2017 at 03:04:48PM +0200, Hans de Goede wrote: > ACPI video devices get tagged by the kernel with the custom LNXVIDEO > HID so that normal pnp-id matching can be used and are handled by the > acpi-video driver. > > Sometimes the ACPI nodes describing these contain a SERIAL_TYPE_I2C ACPI > resource. Before this commit the presence of this resource would cause the > i2c-core to create a /sys/bus/i2c/devices/i2c-LNXVIDEO:00 device for this > with a modalias of: "i2c:LNXVIDEO:00". > > There is no i2c driver for this custom HID, the acpi-video driver binds > directly to the ACPI device /sys/bus/acpi/devices/LNXVIDEO\:00 which has > a modalias of "acpi:LNXVIDEO:" . > > Not only is the creation of an i2c-client for this undesirable, it is > actually causing problems. This weird pseudo-resource claims an i2c > speed of 100KHz and typically points to the i2c bus which is used by the > touchscreen controller. Some touchscreen controllers only work properly at > 400KHz, at 100KHz they cause errors like these: > > i2c_designware 80860F41:03: i2c_dw_handle_tx_abort: lost arbitration > i2c_designware 80860F41:03: i2c_dw_handle_tx_abort: lost arbitration > i2c_designware 80860F41:03: i2c_dw_handle_tx_abort: lost arbitration > i2c_designware 80860F41:03: i2c_dw_handle_tx_abort: lost arbitration > silead_ts i2c-MSSL1680:00: Registers clear error -11 > > This commit makes the i2c-core ignore LNXVIDEO compatible ACPI devices > which has 2 positive results: > > 1) The bogus i2c-client for these is no longer created. > 2) i2c_acpi_lookup_speed now ignores the 100KHz speed from the pseudo > i2c-resouce and properly returns 400KHz as speed for the touchscreen > i2c bus, fixing the touchscreen not working on various devies. > > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Looks like a bugfix, so I'll include it in this merge window. Applied to for-next, thanks!
Attachment:
signature.asc
Description: PGP signature