Messages in this thread | | | Date | Wed, 29 Jan 2014 15:35:28 +0800 | From | "xinhui.pan" <> | Subject | Re: [PATCH] i2c-designware-pcidrv: fix the incorrect return of idle callback |
| |
于 2014年01月29日 10:03, xinhui.pan 写道: > >> On Tue, Jan 28, 2014 at 01:48:28PM +0800, xinhui.pan wrote: >>> From: "xinhui.pan" <xinhuix.pan@intel.com> >>> >>> i2c_dw_pci_runtime_idle should return -EBUSY rather than zero if it do success. >> >> I don't understand... >> > Sorry for my poor English. > Even if i2c_dw_pci_runtime_idle succeed ,it should return -EBUSY. >>> Otherwise rpm_idle will call pm_suspend again and that may cause pm_schedule_suspend delay invalidate. >>> >>> Signed-off-by: bo.he <bo.he@intel.com> >>> Signed-off-by: xinhui.pan <xinhuix.pan@intel.com> >>> --- >>> drivers/i2c/busses/i2c-designware-pcidrv.c | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c >>> index f6ed06c..96e81f6 100644 >>> --- a/drivers/i2c/busses/i2c-designware-pcidrv.c >>> +++ b/drivers/i2c/busses/i2c-designware-pcidrv.c >>> @@ -190,8 +190,8 @@ static int i2c_dw_pci_runtime_idle(struct device *dev) >>> int err = pm_schedule_suspend(dev, 500); >>> dev_dbg(dev, "runtime_idle called\n"); >>> >>> - if (err != 0) >>> - return 0; >>> + if (err) >>> + return err; >>> return -EBUSY; >> >> ... it does return EBUSY when pm_schedule_suspend() succeeds? It only >> returns 0 if it does not succeed (for which I don't know if this is an >> apropriate behaviour). Mika? >> hi , I found one sentence in /Documentation/power/runtime_pm.txt "If there is no idle callback, or if the callback returns 0, then the PM core will attempt to carry out a runtime suspend of the device, also respecting devices configured for autosuspend." so is this a right way to prevent this? Br. xinhui >>> } >>> >>> -- >>> 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |