Re: [PATCH] [media] rcar-fcp: Make sure rcar_fcp_enable() returns 0 on success

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Laurent,

On Wed, Aug 17, 2016 at 2:55 PM, Laurent Pinchart
<laurent.pinchart@xxxxxxxxxxxxxxxx> wrote:
> On Tuesday 09 Aug 2016 17:36:41 Geert Uytterhoeven wrote:
>> When resuming from suspend-to-RAM on r8a7795/salvator-x:
>>
>>     dpm_run_callback(): pm_genpd_resume_noirq+0x0/0x90 returns 1
>>     PM: Device fe940000.fdp1 failed to resume noirq: error 1
>>     dpm_run_callback(): pm_genpd_resume_noirq+0x0/0x90 returns 1
>>     PM: Device fe944000.fdp1 failed to resume noirq: error 1
>>     dpm_run_callback(): pm_genpd_resume_noirq+0x0/0x90 returns 1
>>     PM: Device fe948000.fdp1 failed to resume noirq: error 1
>>
>> According to its documentation, rcar_fcp_enable() returns 0 on success
>> or a negative error code if an error occurs.  Hence
>> fdp1_pm_runtime_resume() and vsp1_pm_runtime_resume() forward its return
>> value to their callers.
>>
>> However, rcar_fcp_enable() forwards the return value of
>> pm_runtime_get_sync(), which can actually be 1 on success, leading to
>> the resume failure above.
>>
>> To fix this, consider only negative values returned by
>> pm_runtime_get_sync() to be failures.
>>
>> Fixes: 7b49235e83b2347c ("[media] v4l: Add Renesas R-Car FCP driver")
>> Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
>> ---
>>  drivers/media/platform/rcar-fcp.c | 8 +++++++-
>>  1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/platform/rcar-fcp.c
>> b/drivers/media/platform/rcar-fcp.c index
>> 0ff6b1edf1dbf677..7e944479205d4059 100644
>> --- a/drivers/media/platform/rcar-fcp.c
>> +++ b/drivers/media/platform/rcar-fcp.c
>> @@ -99,10 +99,16 @@ EXPORT_SYMBOL_GPL(rcar_fcp_put);
>>   */
>>  int rcar_fcp_enable(struct rcar_fcp_device *fcp)
>>  {
>> +     int error;
>
> I was going to write that the driver uses "ret" instead of "error" for integer
> status return values, but it doesn't as there no such value stored in a
> variable at all. I will thus argue that it will use that style later, so let's
> keep the style consistent with the to-be-written code if you don't mind :-)
>
> Apart from that,
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
>
> and applied to my tree.

Thanks!

Where exactly has this been applied?

>>       if (!fcp)
>>               return 0;
>>
>> -     return pm_runtime_get_sync(fcp->dev);
>> +     error = pm_runtime_get_sync(fcp->dev);
>> +     if (error < 0)
>> +             return error;
>> +
>> +     return 0;
>>  }
>>  EXPORT_SYMBOL_GPL(rcar_fcp_enable);

BTW, it seems I missed a few more s2ram resume errors:

    dpm_run_callback(): pm_genpd_resume_noirq+0x0/0x90 returns -13
    PM: Device fe920000.vsp failed to resume noirq: error -13
    dpm_run_callback(): pm_genpd_resume_noirq+0x0/0x90 returns -13
    PM: Device fe960000.vsp failed to resume noirq: error -13
    dpm_run_callback(): pm_genpd_resume_noirq+0x0/0x90 returns -13
    PM: Device fe9a0000.vsp failed to resume noirq: error -13
    dpm_run_callback(): pm_genpd_resume_noirq+0x0/0x90 returns -13
    PM: Device fe9b0000.vsp failed to resume noirq: error -13
    dpm_run_callback(): pm_genpd_resume_noirq+0x0/0x90 returns -13
    PM: Device fe9c0000.vsp failed to resume noirq: error -13
    dpm_run_callback(): pm_genpd_resume_noirq+0x0/0x90 returns -13
    PM: Device fea20000.vsp failed to resume noirq: error -13
    dpm_run_callback(): pm_genpd_resume_noirq+0x0/0x90 returns -13
    PM: Device fea28000.vsp failed to resume noirq: error -13
    dpm_run_callback(): pm_genpd_resume_noirq+0x0/0x90 returns -13
    PM: Device fea30000.vsp failed to resume noirq: error -13
    vsp1 fea38000.vsp: failed to reset wpf.0
    dpm_run_callback(): pm_genpd_resume_noirq+0x0/0x90 returns -110
    PM: Device fea38000.vsp failed to resume noirq: error -110

-13 == -EACCES, returned by rcar_fcp_enable() as pm_runtime_get_sync()
is called too early during system resume,
-110 = ETIMEDOUT, returned by vsp1_device_init() due to the failure
to reset wpf.0.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux