Re: i2c_designware doesn't recover from subdevice driver unload

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

 



Hi

On 11/19/2015 10:39 PM, Andy Lutomirski wrote:
On Thu, Nov 19, 2015 at 8:57 AM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:
On Thu, Nov 19, 2015 at 7:56 AM, Andy Lutomirski <luto@xxxxxxxxxx> wrote:
I unloaded and reloaded hid_multitouch (on a Skylake laptop where the
HID device is behind an integrated designware controller) and I got:

[39545.054684] i2c_hid i2c-DLL0704:01: failed to retrieve report from device.
[39545.061728] i2c_designware i2c_designware.1:
i2c_dw_handle_tx_abort: lost arbitration
[39545.061734] i2c_hid i2c-DLL0704:01: failed to retrieve report from device.
[39545.061944] i2c_hid i2c-DLL0704:01: failed to retrieve report from device.
[39545.062373] i2c_hid i2c-DLL0704:01: error in i2c_hid_init_report
size:6 / ret_size:4
[39545.062564] i2c_hid i2c-DLL0704:01: failed to retrieve report from device.
[39545.062636] input: DLL0704:01 06CB:76AE UNKNOWN as
/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-DLL0704:01/0018:06CB:76AE.0005/input/input20
[39545.063212] hid-multitouch 0018:06CB:76AE.0005: input,hidraw1:
<UNKNOWN> HID v1.00 Mouse [DLL0704:01 06CB:76AE] on
[40178.534814] i2c_hid i2c-DLL0704:01: failed to retrieve report from device.
[40178.541848] i2c_designware i2c_designware.1:
i2c_dw_handle_tx_abort: lost arbitration
[40178.541853] i2c_hid i2c-DLL0704:01: failed to retrieve report from device.
[40179.542135] i2c_designware i2c_designware.1: controller timed out
[40179.542166] i2c_hid i2c-DLL0704:01: failed to retrieve report from device.
[40180.542909] i2c_designware i2c_designware.1: controller timed out
[40180.542942] i2c_hid i2c-DLL0704:01: failed to retrieve report from device.
[40181.543697] i2c_designware i2c_designware.1: controller timed out

after that, I just keep seeing "controller timed out" messages.

This is Linux 4.3.0.

This just happened again (after a reboot) on its own without any
rmmod.  Reloading the i2c_designware drivers didn't help, so I'm
wondering if it's a bug lower in the stack instead.

I guess this is either related to touch panel or bus timings (we have seen both cases recently) as it works here on development machine with another panel.

Could you try does following commit from v4.4-rc1 help?

6d4f5440a3a2 ("HID: multitouch: Fetch feature reports on demand for Win8 devices")

I think the docs for all of this stuff are here:

https://download.01.org/future-platform-configuration-hub/skylake/register-definitions/332219-002.pdf

Yes, this is the right document for Skylake.

There's a reset register at offset 0x204 in I2C MMIO space.  Should
the driver be using it?

We use it in probe and resume paths in drivers/mfd/intel-lpss.c which manages these LPSS host controller (UART/SPI/I2C) + integrated DMA engine compound devices.

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



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux