Re: [PATCH v2 14/16] mfd: intel-lpss: Pass SDA hold time to I2C host controller driver

From: Wolfram Sang
Date: Mon Feb 08 2016 - 05:10:01 EST


On Mon, Nov 30, 2015 at 05:11:42PM +0200, Andy Shevchenko wrote:
> From: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
>
> Intel Skylake the LPSS I2C pad circuit has internal delays that require
> programming non-zero SDA hold time for the I2C host controller. If this is
> not done communication to slave devices may fail with arbitration lost
> errors like the one seen below taken from Lenovo Yoga 900:
>
> i2c_hid i2c-SYNA2B29:00: Fetching the HID descriptor
> i2c_hid i2c-SYNA2B29:00: __i2c_hid_command: cmd=20 00
> i2c_designware i2c_designware.1: i2c_dw_handle_tx_abort: lost arbitration
>
> To fix this we follow what the Windows driver is doing and pass the default
> SDA hold time of 230 ns to all Intel Skylake host controllers. This still
> allows the platform to override these values by passing special ACPI
> methods SSCN and FMCN.
>
> Reported-by: Kevin Fenzi <kevin@xxxxxxxxx>
> Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

There has been a request to get this into stable:

https://bugzilla.kernel.org/show_bug.cgi?id=108581

Since we probably don't want to backport the whole device_property
series, is there a simpler fix to backport for stable?

Attachment: signature.asc
Description: PGP signature