Re: [PATCH] i2c-designware-pcidrv: fix the incorrect return of idlecallback

From: xinhui.pan
Date: Tue Jan 28 2014 - 21:03:50 EST



> On Tue, Jan 28, 2014 at 01:48:28PM +0800, xinhui.pan wrote:
>> From: "xinhui.pan" <xinhuix.pan@xxxxxxxxx>
>>
>> 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@xxxxxxxxx>
>> Signed-off-by: xinhui.pan <xinhuix.pan@xxxxxxxxx>
>> ---
>> 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?
>
>> }
>>
>> --
>> 1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/