[media] rcar-fcp: Make sure rcar_fcp_enable() returns 0 on success
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: 7b49235e83
("[media] v4l: Add Renesas R-Car FCP driver")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
hifive-unleashed-5.1
parent
60815d4a78
commit
7892a1f64a
|
@ -99,10 +99,16 @@ EXPORT_SYMBOL_GPL(rcar_fcp_put);
|
||||||
*/
|
*/
|
||||||
int rcar_fcp_enable(struct rcar_fcp_device *fcp)
|
int rcar_fcp_enable(struct rcar_fcp_device *fcp)
|
||||||
{
|
{
|
||||||
|
int error;
|
||||||
|
|
||||||
if (!fcp)
|
if (!fcp)
|
||||||
return 0;
|
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);
|
EXPORT_SYMBOL_GPL(rcar_fcp_enable);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue