OSDN Git Service

[media] V4L2: platform: rcar_jpu: switch off clock on release later
authorMikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>
Thu, 1 Oct 2015 12:03:32 +0000 (09:03 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Thu, 19 Nov 2015 10:04:28 +0000 (08:04 -0200)
Give JPU peripheral chance to finish current job.
Don't switch off clock until context release.

Signed-off-by: Mikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/platform/rcar_jpu.c

index 644f9f4..86d2a3d 100644 (file)
@@ -1300,17 +1300,17 @@ static int jpu_release(struct file *file)
        struct jpu *jpu = video_drvdata(file);
        struct jpu_ctx *ctx = fh_to_ctx(file->private_data);
 
-       mutex_lock(&jpu->mutex);
-       if (--jpu->ref_count == 0)
-               clk_disable_unprepare(jpu->clk);
-       mutex_unlock(&jpu->mutex);
-
        v4l2_m2m_ctx_release(ctx->fh.m2m_ctx);
        v4l2_ctrl_handler_free(&ctx->ctrl_handler);
        v4l2_fh_del(&ctx->fh);
        v4l2_fh_exit(&ctx->fh);
        kfree(ctx);
 
+       mutex_lock(&jpu->mutex);
+       if (--jpu->ref_count == 0)
+               clk_disable_unprepare(jpu->clk);
+       mutex_unlock(&jpu->mutex);
+
        return 0;
 }