On Wed, Apr 10, 2013 at 05:13:57PM +0530, Shubhrajyoti Datta wrote: > Hi Mika, > > > > On Wed, Apr 10, 2013 at 4:06 PM, Mika Westerberg < > mika.westerberg@xxxxxxxxxxxxxxx> wrote: > > > Using autosuspend helps to reduce the resume latency in situations where > > another I2C message is going to be started soon. For example with HID over > > I2C touch panels we get several messages in a short period of time while > > the touch panel is in use. > > > Also the time to autosuspend could be a macro just in case someone wants > to tweak it. > > Just a suggestion. Well, you can always do that via sysfs /sys/.../power/autosuspend_delay_ms (or whatever the name of the file is). > > Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> > > --- > > drivers/i2c/busses/i2c-designware-core.c | 3 ++- > > drivers/i2c/busses/i2c-designware-pcidrv.c | 3 ++- > > drivers/i2c/busses/i2c-designware-platdrv.c | 3 ++- > > 3 files changed, 6 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/i2c/busses/i2c-designware-core.c > > b/drivers/i2c/busses/i2c-designware-core.c > > index 7c10c5b..21fbb34 100644 > > --- a/drivers/i2c/busses/i2c-designware-core.c > > +++ b/drivers/i2c/busses/i2c-designware-core.c > > @@ -600,7 +600,8 @@ i2c_dw_xfer(struct i2c_adapter *adap, struct i2c_msg > > msgs[], int num) > > ret = -EIO; > > > > done: > > - pm_runtime_put(dev->dev); > > + pm_runtime_mark_last_busy(dev->dev); > > + pm_runtime_put_autosuspend(dev->dev); > > mutex_unlock(&dev->lock); > > > > return ret; > > diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c > > b/drivers/i2c/busses/i2c-designware-pcidrv.c > > index aacb64e..c8797e2 100644 > > --- a/drivers/i2c/busses/i2c-designware-pcidrv.c > > +++ b/drivers/i2c/busses/i2c-designware-pcidrv.c > > @@ -291,7 +291,8 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev, > > /* Increase reference counter */ > > get_device(&pdev->dev); > > > > - pm_runtime_put_noidle(&pdev->dev); > > + pm_runtime_set_autosuspend_delay(&pdev->dev, 1000); > > + pm_runtime_use_autosuspend(&pdev->dev); > > pm_runtime_allow(&pdev->dev); > > > > Could you explain this? Hmm, I'm not sure what you mean. In the above we enable autosuspend and set the delay. Am I missing something? -- 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