media: mtk-jpeg: Fixes jpeghw multi-core judgement
authorkyrie wu <kyrie.wu@mediatek.com>
Fri, 10 Mar 2023 06:23:49 +0000 (06:23 +0000)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Mon, 10 Apr 2023 12:08:51 +0000 (13:08 +0100)
some chips have multi-hw, but others have only one,
modify the condition of multi-hw judgement

Fixes: 934e8bccac95 ("mtk-jpegenc: support jpegenc multi-hardware")
Signed-off-by: kyrie wu <kyrie.wu@mediatek.com>
Signed-off-by: irui wang <irui.wang@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c
drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.h

index b875fc6..81b9aae 100644 (file)
@@ -1692,7 +1692,7 @@ static int mtk_jpeg_probe(struct platform_device *pdev)
                return -EINVAL;
        }
 
-       if (list_empty(&pdev->dev.devres_head)) {
+       if (!jpeg->variant->multi_core) {
                INIT_DELAYED_WORK(&jpeg->job_timeout_work,
                                  mtk_jpeg_job_timeout_work);
 
@@ -1875,6 +1875,7 @@ static const struct mtk_jpeg_variant mtk_jpeg_drvdata = {
        .ioctl_ops = &mtk_jpeg_enc_ioctl_ops,
        .out_q_default_fourcc = V4L2_PIX_FMT_YUYV,
        .cap_q_default_fourcc = V4L2_PIX_FMT_JPEG,
+       .multi_core = false,
 };
 
 static struct mtk_jpeg_variant mtk8195_jpegenc_drvdata = {
@@ -1886,6 +1887,7 @@ static struct mtk_jpeg_variant mtk8195_jpegenc_drvdata = {
        .ioctl_ops = &mtk_jpeg_enc_ioctl_ops,
        .out_q_default_fourcc = V4L2_PIX_FMT_YUYV,
        .cap_q_default_fourcc = V4L2_PIX_FMT_JPEG,
+       .multi_core = true,
 };
 
 static const struct mtk_jpeg_variant mtk8195_jpegdec_drvdata = {
@@ -1897,6 +1899,7 @@ static const struct mtk_jpeg_variant mtk8195_jpegdec_drvdata = {
        .ioctl_ops = &mtk_jpeg_dec_ioctl_ops,
        .out_q_default_fourcc = V4L2_PIX_FMT_JPEG,
        .cap_q_default_fourcc = V4L2_PIX_FMT_YUV420M,
+       .multi_core = true,
 };
 
 static const struct of_device_id mtk_jpeg_match[] = {
index b912647..f87358c 100644 (file)
@@ -60,6 +60,7 @@ enum mtk_jpeg_ctx_state {
  * @ioctl_ops:                 the callback of jpeg v4l2_ioctl_ops
  * @out_q_default_fourcc:      output queue default fourcc
  * @cap_q_default_fourcc:      capture queue default fourcc
+ * @multi_core:                mark jpeg hw is multi_core or not
  */
 struct mtk_jpeg_variant {
        struct clk_bulk_data *clks;
@@ -74,6 +75,7 @@ struct mtk_jpeg_variant {
        const struct v4l2_ioctl_ops *ioctl_ops;
        u32 out_q_default_fourcc;
        u32 cap_q_default_fourcc;
+       bool multi_core;
 };
 
 struct mtk_jpeg_src_buf {