From abf5eab6ca53800b06069aa07d429142900d8190 Mon Sep 17 00:00:00 2001 From: Mirela Rabulea <mirela.rabulea@nxp.com> Date: Wed, 13 Feb 2019 17:29:56 +0200 Subject: [PATCH] MLK-20889: mxc-jpeg: Jpeg decoder gets stuck with gplay & short yuv422 mjpeg video Unlock hw_lock before calling v4l2_m2m_job_finish to avoid deadlock: v4l2_m2m_job_finish -> v4l2_m2m_try_schedule -> job_ready locks hw_lock v4l2_m2m_job_finish -> v4l2_m2m_try_run -> device_run locks hw_lock Signed-off-by: Mirela Rabulea <mirela.rabulea@nxp.com> Reviewed-by: Laurentiu Palcu <laurentiu.palcu@nxp.com> --- drivers/media/platform/imx8/mxc-jpeg.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/media/platform/imx8/mxc-jpeg.c b/drivers/media/platform/imx8/mxc-jpeg.c index dfc04999cb5ec7..58ac99c86d5f78 100644 --- a/drivers/media/platform/imx8/mxc-jpeg.c +++ b/drivers/media/platform/imx8/mxc-jpeg.c @@ -498,7 +498,9 @@ buffers_done: v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx); v4l2_m2m_buf_done(to_vb2_v4l2_buffer(src_buf), buf_state); v4l2_m2m_buf_done(to_vb2_v4l2_buffer(dst_buf), buf_state); + spin_unlock(&jpeg->hw_lock); v4l2_m2m_job_finish(jpeg->m2m_dev, ctx->fh.m2m_ctx); + return IRQ_HANDLED; job_unlock: spin_unlock(&jpeg->hw_lock); return IRQ_HANDLED; -- GitLab