Hello Wolfram, On 04/12/2016 06:32 PM, Wolfram Sang wrote: > >> I'll try to find some time next week to dig deeper on this. Just >> thought that may be related to the issue you found but it seems >> that's not the case. > > Any updates on this? > Sorry, I've been sick and then busy with other stuff so I didn't have time to dig deeper on this. > Thanks, > > Wolfram > I'll write what I found so far in case someone with better knowledge about the runtime PM API and the OMAP I2C controller driver can have an idea of what could be causing this. The problem is that after commit 9f924169c035 ("i2c: always enable RuntimePM for the adapter device"), i2c_smbus_read_byte_data() fails and returns -110 (ETIMEDOUT) error in the tvp5150 I2C driver. The call trace is the following: i2c_device_probe tvp5150_probe tvp5150_read i2c_smbus_read_byte_data i2c_smbus_xfer i2c_transfer omap_i2c_xfer omap_i2c_xfer_msg The fail in omap_i2c_xfer_msg() is due the wait_for_completion_timeout() timeout, so it seems the omap_i2c_isr_thread() is not calling complete() for the cmd_complete completion when runtime PM is enabled (no idea why). If I revert commit 9f924169c035 then things works again or if I use the following patch that basically disables runtime PM for the OMAP adapter after it has been enabled by the I2C core due commit 9f924169c035: diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index 37a88f0ae179..0b72b21b379d 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c @@ -1445,6 +1445,8 @@ omap_i2c_probe(struct platform_device *pdev) goto err_unuse_clocks; } + pm_runtime_disable(&adap->dev); + dev_info(omap->dev, "bus %d rev%d.%d at %d kHz\n", adap->nr, major, minor, omap->speed); Best regards, -- Javier Martinez Canillas Open Source Group Samsung Research America -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html