Re: [PATCH] i2c: designware: Do not use parameters from ACPI on Dell Inspiron 7348

From: Wolfram Sang
Date: Sat Oct 17 2015 - 13:57:36 EST


On Thu, Sep 24, 2015 at 12:06:54PM +0300, Mika Westerberg wrote:
> ACPI SSCN/FMCN methods were originally added because then the platform can
> provide the most accurate HCNT/LCNT values to the driver. However, this
> seems not to be true for Dell Inspiron 7348 where using these causes the
> touchpad to fail in boot:
>
> i2c_hid i2c-DLL0675:00: failed to retrieve report from device.
> i2c_designware INT3433:00: i2c_dw_handle_tx_abort: lost arbitration
> i2c_hid i2c-DLL0675:00: failed to retrieve report from device.
> i2c_designware INT3433:00: controller timed out
>
> The values received from ACPI are (in fast mode):
>
> HCNT: 72
> LCNT: 160
>
> this translates to following timings (input clock is 100MHz on Broadwell):
>
> tHIGH: 720 ns (spec min 600 ns)
> tLOW: 1600 ns (spec min 1300 ns)
> Bus period: 2920 ns (assuming 300 ns tf and tr)
> Bus speed: 342.5 kHz
>
> Both tHIGH and tLOW are within the I2C specification.
>
> The calculated values when ACPI parameters are not used are (in fast mode):
>
> HCNT: 87
> LCNT: 159
>
> which translates to:
>
> tHIGH: 870 ns (spec min 600 ns)
> tLOW: 1590 ns (spec min 1300 ns)
> Bus period 3060 ns (assuming 300 ns tf and tr)
> Bus speed 326.8 kHz
>
> These values are also within the I2C specification.
>
> Since both ACPI and calculated values meet the I2C specification timing
> requirements it is hard to say why the touchpad does not function properly
> with the ACPI values except that the bus speed is higher in this case (but
> still well below the max 400kHz).
>
> Solve this by adding DMI quirk to the driver that disables using ACPI
> parameters on this particulare machine.
>
> Reported-by: Pavel Roskin <plroskin@xxxxxxxxx>
> Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>

Applied to for-current with Pavel's Tested-by:, thanks!

Attachment: signature.asc
Description: Digital signature