From mboxrd@z Thu Jan 1 00:00:00 1970 From: "xinhui.pan" Subject: [PATCH] i2c-designware-pcidrv: fix the incorrect return of idle callback Date: Tue, 28 Jan 2014 13:48:28 +0800 Message-ID: <52E744AC.2050606@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: 7bit Return-path: Sender: linux-i2c-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org, mika.westerberg-VuQAYsv1563Yd54FQh9/CA@public.gmane.org, andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org, yanmin_zhang-VuQAYsv1563Yd54FQh9/CA@public.gmane.org, bo.he-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org List-Id: linux-i2c@vger.kernel.org From: "xinhui.pan" i2c_dw_pci_runtime_idle should return -EBUSY rather than zero if it do success. Otherwise rpm_idle will call pm_suspend again and that may cause pm_schedule_suspend delay invalidate. Signed-off-by: bo.he Signed-off-by: xinhui.pan --- 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; } -- 1.7.9.5