Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7892a1f6 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Mauro Carvalho Chehab
Browse files

[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: 7b49235e ("[media] v4l: Add Renesas R-Car FCP driver")

Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 60815d4a
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -99,10 +99,16 @@ EXPORT_SYMBOL_GPL(rcar_fcp_put);
 */
int rcar_fcp_enable(struct rcar_fcp_device *fcp)
{
	int error;

	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);