Re: [PATCH 0/3] i2c: designware: should not wait for enable

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

 



On Mon, 23 Apr 2018, Ben Gardner wrote:
> I think we need to be smarter about which boards have the
> IC_ENABLE_STATUS register, but I don't know enough about the various
> supported Designware I2C controller implementations to suggest an
> approach.

We can assume that 1.1.5 (the IP rev. in your Atom) and newer have it,
if we don't find a better solution.

Does changing __i2c_dw_enable to __i2c_dw_enable_and_wait in i2c_dw_xfer
on its own fix the problem for you?

If that works, I think a possible solution might be to always poll on
disabling as recommended by docs, but do it asynchronously to avoid the
slowdown that prompted the elision we have now. Although in that case
I'm not sure why current code leads to a failure, as i2c_dw_xfer_init
performs the polling anyway.

Can you add printks in dw_readl/dw_writel and maybe a few extra printks
in their callers to see what accesses are being made, and share the
resulting trace?

What are the devices being accessed on the i2c bus in your case?

Alexander



[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux