From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BB768C433DF for ; Fri, 14 Aug 2020 07:24:10 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7D64220708 for ; Fri, 14 Aug 2020 07:24:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="JQHHc+i3"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="OwzpViwp" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7D64220708 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-ID:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=3yCq+DCQj0c3F6C8tC6bs1WpKkpnegr5ygofub0pp74=; b=JQHHc+i3kOVlFqKKnqJf/l/z3 8ArWT65KzjxUGheijoE4SrLicLaGz0thH7rx5pCyyxHC6XOUnNBMdPShCqkq1UlzqIs+VvZVoVTy6 hiE8o5CiRoEG8CnapXzrXarzp7sh+R0he2ZKUmgweP3valBeJy9CmRzVlTcFo9+4xfgKV/U1+Mz30 pcHJ/Oj9gVatlZaBhFy6+x2je+CL4+zGS528ii21O27QeJc2F1hACViZq0nGNCdddVZ2lrEmNZa0P TgM3iVA2jxf8wz3vKhO/uysLC/UstKCZR/kW5ZHoX1az5mBJD/e0cx7iVspF+1dHjp9VTsaO0DN/u 7UllNkzKA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k6U4D-0003hy-Ae; Fri, 14 Aug 2020 07:23:57 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1k6U3c-0003N2-2A; Fri, 14 Aug 2020 07:23:21 +0000 X-UUID: 9c208205fbaa4c9486269fdd046ccf71-20200813 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=T4f3AdfJ+831JcRoZBcLivr+HS7QwLLcxBmM6QVRtnE=; b=OwzpViwpkhz56xPRCdBiJoqO078gsZj+kaltWbEFV4VDCQ6sSP4Q3hhxjAT+xu3z5WDlQ/0nqQm9/3bBchiNaEPFI/d/JIAKPNqyv0REJmN5ATwix953kgnFaOSumGdNmrMpVwHMYJPDEegy2ieb09bdefx/lJfvBcG1dLuxb6Y=; X-UUID: 9c208205fbaa4c9486269fdd046ccf71-20200813 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 1693711194; Thu, 13 Aug 2020 23:23:11 -0800 Received: from MTKMBS07N2.mediatek.inc (172.21.101.141) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 14 Aug 2020 00:13:18 -0700 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 14 Aug 2020 15:13:13 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 14 Aug 2020 15:13:12 +0800 From: Xia Jiang To: Hans Verkuil , Mauro Carvalho Chehab , Rob Herring , "Matthias Brugger" , Rick Chang Subject: [PATCH v12 09/29] media: platform: Add mechanism to handle jpeg hardware's locking up Date: Fri, 14 Aug 2020 15:11:42 +0800 Message-ID: <20200814071202.25067-11-xia.jiang@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200814071202.25067-1-xia.jiang@mediatek.com> References: <20200814071202.25067-1-xia.jiang@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200814_032320_344659_642B0C98 X-CRM114-Status: GOOD ( 15.62 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: maoguang.meng@mediatek.com, devicetree@vger.kernel.org, mojahsu@chromium.org, srv_heupstream@mediatek.com, linux-kernel@vger.kernel.org, Tomasz Figa , senozhatsky@chromium.org, drinkcat@chromium.org, linux-mediatek@lists.infradead.org, Xia Jiang , linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Marek Szyprowski Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org There is a delayed work scheduled before starting the hardware and canceled in the interrupt handler. If the delayed work is executed, it resets the hardware and reports the failure to V4L2, so that the execution can continue from next frames. Reviewed-by: Tomasz Figa Signed-off-by: Xia Jiang --- v12: no changes --- .../media/platform/mtk-jpeg/mtk_jpeg_core.c | 25 +++++++++++++++++++ .../media/platform/mtk-jpeg/mtk_jpeg_core.h | 4 +++ 2 files changed, 29 insertions(+) diff --git a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c index ee4aaf618551..9baeeacb4452 100644 --- a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c +++ b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c @@ -816,6 +816,9 @@ static void mtk_jpeg_device_run(void *priv) if (ret < 0) goto dec_end; + schedule_delayed_work(&jpeg->job_timeout_work, + msecs_to_jiffies(MTK_JPEG_HW_TIMEOUT_MSEC)); + mtk_jpeg_set_dec_src(ctx, &src_buf->vb2_buf, &bs); if (mtk_jpeg_set_dec_dst(ctx, &jpeg_src_buf->dec_param, &dst_buf->vb2_buf, &fb)) goto dec_end; @@ -911,6 +914,8 @@ static irqreturn_t mtk_jpeg_dec_irq(int irq, void *priv) u32 dec_ret; int i; + cancel_delayed_work(&jpeg->job_timeout_work); + dec_ret = mtk_jpeg_dec_get_int_status(jpeg->dec_reg_base); dec_irq_ret = mtk_jpeg_dec_enum_result(dec_ret); ctx = v4l2_m2m_get_curr_priv(jpeg->m2m_dev); @@ -1066,6 +1071,25 @@ static int mtk_jpeg_clk_init(struct mtk_jpeg_dev *jpeg) return PTR_ERR_OR_ZERO(jpeg->clk_jdec_smi); } +static void mtk_jpeg_job_timeout_work(struct work_struct *work) +{ + struct mtk_jpeg_dev *jpeg = container_of(work, struct mtk_jpeg_dev, + job_timeout_work.work); + struct mtk_jpeg_ctx *ctx; + struct vb2_v4l2_buffer *src_buf, *dst_buf; + + ctx = v4l2_m2m_get_curr_priv(jpeg->m2m_dev); + src_buf = v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx); + dst_buf = v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx); + + mtk_jpeg_dec_reset(jpeg->dec_reg_base); + + pm_runtime_put(jpeg->dev); + + v4l2_m2m_buf_done(src_buf, VB2_BUF_STATE_ERROR); + v4l2_m2m_buf_done(dst_buf, VB2_BUF_STATE_ERROR); + v4l2_m2m_job_finish(jpeg->m2m_dev, ctx->fh.m2m_ctx); +} static int mtk_jpeg_probe(struct platform_device *pdev) { struct mtk_jpeg_dev *jpeg; @@ -1080,6 +1104,7 @@ static int mtk_jpeg_probe(struct platform_device *pdev) mutex_init(&jpeg->lock); spin_lock_init(&jpeg->hw_lock); jpeg->dev = &pdev->dev; + INIT_DELAYED_WORK(&jpeg->job_timeout_work, mtk_jpeg_job_timeout_work); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); jpeg->dec_reg_base = devm_ioremap_resource(&pdev->dev, res); diff --git a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h index 999bd1427809..320c4f8a014a 100644 --- a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h +++ b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h @@ -28,6 +28,8 @@ #define MTK_JPEG_DEFAULT_SIZEIMAGE (1 * 1024 * 1024) +#define MTK_JPEG_HW_TIMEOUT_MSEC 1000 + enum mtk_jpeg_ctx_state { MTK_JPEG_INIT = 0, MTK_JPEG_RUNNING, @@ -48,6 +50,7 @@ enum mtk_jpeg_ctx_state { * @clk_jdec: JPEG hw working clock * @clk_jdec_smi: JPEG SMI bus clock * @larb: SMI device + * @job_timeout_work: IRQ timeout structure */ struct mtk_jpeg_dev { struct mutex lock; @@ -62,6 +65,7 @@ struct mtk_jpeg_dev { struct clk *clk_jdec; struct clk *clk_jdec_smi; struct device *larb; + struct delayed_work job_timeout_work; }; /** -- 2.18.0 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 58C8AC433DF for ; Fri, 14 Aug 2020 07:25:59 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2540F20656 for ; Fri, 14 Aug 2020 07:25:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="emVn1aFW"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="OwzpViwp" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2540F20656 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-ID:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=cQ0ZU2+nW1weGnm2XAWnRqP3r3fJIuw2tMSBYaPRfOo=; b=emVn1aFWn57brtNfz0hXEUgNs PQUP4Y/uhI6mmd7h62SnHdHZhzJ7U9yAgIIYLLVjoAU7ViblP0HqM3MUqCZGi+dwu1KK+H4evbIrQ nrMkyS2Ky2L1rElHUBngCTufvJEGd5pWmNSOzviyd/oyRmcXYUjCIvCQLQFP8WLZ3M+hCMKj87CJd kxZ7NgRgqxUyYkfvAO+M5vHksOxiA2qQRNdg4CTbswPl6J2D2m+p3DrkcMmq4C1qGKhXMAuAa6cW9 LYUo3uRHRCJJLmWpYlb+H38lt5m7ubhXnb4edbeFAFmCfvkSC1ThxW4gPxG5jR+Dkc+rAhApuKaL2 9Ni6OqtMw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k6U4U-0003pg-76; Fri, 14 Aug 2020 07:24:14 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1k6U3c-0003N2-2A; Fri, 14 Aug 2020 07:23:21 +0000 X-UUID: 9c208205fbaa4c9486269fdd046ccf71-20200813 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=T4f3AdfJ+831JcRoZBcLivr+HS7QwLLcxBmM6QVRtnE=; b=OwzpViwpkhz56xPRCdBiJoqO078gsZj+kaltWbEFV4VDCQ6sSP4Q3hhxjAT+xu3z5WDlQ/0nqQm9/3bBchiNaEPFI/d/JIAKPNqyv0REJmN5ATwix953kgnFaOSumGdNmrMpVwHMYJPDEegy2ieb09bdefx/lJfvBcG1dLuxb6Y=; X-UUID: 9c208205fbaa4c9486269fdd046ccf71-20200813 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 1693711194; Thu, 13 Aug 2020 23:23:11 -0800 Received: from MTKMBS07N2.mediatek.inc (172.21.101.141) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 14 Aug 2020 00:13:18 -0700 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 14 Aug 2020 15:13:13 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 14 Aug 2020 15:13:12 +0800 From: Xia Jiang To: Hans Verkuil , Mauro Carvalho Chehab , Rob Herring , "Matthias Brugger" , Rick Chang Subject: [PATCH v12 09/29] media: platform: Add mechanism to handle jpeg hardware's locking up Date: Fri, 14 Aug 2020 15:11:42 +0800 Message-ID: <20200814071202.25067-11-xia.jiang@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200814071202.25067-1-xia.jiang@mediatek.com> References: <20200814071202.25067-1-xia.jiang@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200814_032320_344659_642B0C98 X-CRM114-Status: GOOD ( 15.62 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: maoguang.meng@mediatek.com, devicetree@vger.kernel.org, mojahsu@chromium.org, srv_heupstream@mediatek.com, linux-kernel@vger.kernel.org, Tomasz Figa , senozhatsky@chromium.org, drinkcat@chromium.org, linux-mediatek@lists.infradead.org, Xia Jiang , linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Marek Szyprowski Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org There is a delayed work scheduled before starting the hardware and canceled in the interrupt handler. If the delayed work is executed, it resets the hardware and reports the failure to V4L2, so that the execution can continue from next frames. Reviewed-by: Tomasz Figa Signed-off-by: Xia Jiang --- v12: no changes --- .../media/platform/mtk-jpeg/mtk_jpeg_core.c | 25 +++++++++++++++++++ .../media/platform/mtk-jpeg/mtk_jpeg_core.h | 4 +++ 2 files changed, 29 insertions(+) diff --git a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c index ee4aaf618551..9baeeacb4452 100644 --- a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c +++ b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c @@ -816,6 +816,9 @@ static void mtk_jpeg_device_run(void *priv) if (ret < 0) goto dec_end; + schedule_delayed_work(&jpeg->job_timeout_work, + msecs_to_jiffies(MTK_JPEG_HW_TIMEOUT_MSEC)); + mtk_jpeg_set_dec_src(ctx, &src_buf->vb2_buf, &bs); if (mtk_jpeg_set_dec_dst(ctx, &jpeg_src_buf->dec_param, &dst_buf->vb2_buf, &fb)) goto dec_end; @@ -911,6 +914,8 @@ static irqreturn_t mtk_jpeg_dec_irq(int irq, void *priv) u32 dec_ret; int i; + cancel_delayed_work(&jpeg->job_timeout_work); + dec_ret = mtk_jpeg_dec_get_int_status(jpeg->dec_reg_base); dec_irq_ret = mtk_jpeg_dec_enum_result(dec_ret); ctx = v4l2_m2m_get_curr_priv(jpeg->m2m_dev); @@ -1066,6 +1071,25 @@ static int mtk_jpeg_clk_init(struct mtk_jpeg_dev *jpeg) return PTR_ERR_OR_ZERO(jpeg->clk_jdec_smi); } +static void mtk_jpeg_job_timeout_work(struct work_struct *work) +{ + struct mtk_jpeg_dev *jpeg = container_of(work, struct mtk_jpeg_dev, + job_timeout_work.work); + struct mtk_jpeg_ctx *ctx; + struct vb2_v4l2_buffer *src_buf, *dst_buf; + + ctx = v4l2_m2m_get_curr_priv(jpeg->m2m_dev); + src_buf = v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx); + dst_buf = v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx); + + mtk_jpeg_dec_reset(jpeg->dec_reg_base); + + pm_runtime_put(jpeg->dev); + + v4l2_m2m_buf_done(src_buf, VB2_BUF_STATE_ERROR); + v4l2_m2m_buf_done(dst_buf, VB2_BUF_STATE_ERROR); + v4l2_m2m_job_finish(jpeg->m2m_dev, ctx->fh.m2m_ctx); +} static int mtk_jpeg_probe(struct platform_device *pdev) { struct mtk_jpeg_dev *jpeg; @@ -1080,6 +1104,7 @@ static int mtk_jpeg_probe(struct platform_device *pdev) mutex_init(&jpeg->lock); spin_lock_init(&jpeg->hw_lock); jpeg->dev = &pdev->dev; + INIT_DELAYED_WORK(&jpeg->job_timeout_work, mtk_jpeg_job_timeout_work); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); jpeg->dec_reg_base = devm_ioremap_resource(&pdev->dev, res); diff --git a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h index 999bd1427809..320c4f8a014a 100644 --- a/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h +++ b/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h @@ -28,6 +28,8 @@ #define MTK_JPEG_DEFAULT_SIZEIMAGE (1 * 1024 * 1024) +#define MTK_JPEG_HW_TIMEOUT_MSEC 1000 + enum mtk_jpeg_ctx_state { MTK_JPEG_INIT = 0, MTK_JPEG_RUNNING, @@ -48,6 +50,7 @@ enum mtk_jpeg_ctx_state { * @clk_jdec: JPEG hw working clock * @clk_jdec_smi: JPEG SMI bus clock * @larb: SMI device + * @job_timeout_work: IRQ timeout structure */ struct mtk_jpeg_dev { struct mutex lock; @@ -62,6 +65,7 @@ struct mtk_jpeg_dev { struct clk *clk_jdec; struct clk *clk_jdec_smi; struct device *larb; + struct delayed_work job_timeout_work; }; /** -- 2.18.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.4 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 81C69C433DF for ; Fri, 14 Aug 2020 07:15:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 32A7220639 for ; Fri, 14 Aug 2020 07:15:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="iw+f0z+U" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726736AbgHNHPU (ORCPT ); Fri, 14 Aug 2020 03:15:20 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:32322 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726696AbgHNHNV (ORCPT ); Fri, 14 Aug 2020 03:13:21 -0400 X-UUID: b21b4f46c87745adbfb85b3b75ab2f9c-20200814 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=T4f3AdfJ+831JcRoZBcLivr+HS7QwLLcxBmM6QVRtnE=; b=iw+f0z+U6O5nD0QLvil78G6VLf5rZDkPAH7jw+4LAdFwQyz82tT1zRriAz6APYyP88YnA3UA4VbKNu7keRIFK6uTHKgiBZSekWdZi0z7QRUAMhOTeySlWZOodfS1iUoI9hAQVs8tYyfiNHXc4pE8S+MfXtUgAcyy9wD9UdxXJg8=; X-UUID: b21b4f46c87745adbfb85b3b75ab2f9c-20200814 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1728983375; Fri, 14 Aug 2020 15:13:16 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 14 Aug 2020 15:13:13 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 14 Aug 2020 15:13:12 +0800 From: Xia Jiang To: Hans Verkuil , Mauro Carvalho Chehab , Rob Herring , Matthias Brugger , Rick Chang CC: , , , , , Marek Szyprowski , Tomasz Figa , , , , , , Xia Jiang Subject: [PATCH v12 09/29] media: platform: Add mechanism to handle jpeg hardware's locking up Date: Fri, 14 Aug 2020 15:11:42 +0800 Message-ID: <20200814071202.25067-11-xia.jiang@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200814071202.25067-1-xia.jiang@mediatek.com> References: <20200814071202.25067-1-xia.jiang@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org VGhlcmUgaXMgYSBkZWxheWVkIHdvcmsgc2NoZWR1bGVkIGJlZm9yZSBzdGFydGluZyB0aGUgaGFy ZHdhcmUgYW5kDQpjYW5jZWxlZCBpbiB0aGUgaW50ZXJydXB0IGhhbmRsZXIuIElmIHRoZSBkZWxh eWVkIHdvcmsgaXMgZXhlY3V0ZWQsIGl0DQpyZXNldHMgdGhlIGhhcmR3YXJlIGFuZCByZXBvcnRz IHRoZSBmYWlsdXJlIHRvIFY0TDIsIHNvIHRoYXQgdGhlDQpleGVjdXRpb24gY2FuIGNvbnRpbnVl IGZyb20gbmV4dCBmcmFtZXMuDQoNClJldmlld2VkLWJ5OiBUb21hc3ogRmlnYSA8dGZpZ2FAY2hy b21pdW0ub3JnPg0KU2lnbmVkLW9mZi1ieTogWGlhIEppYW5nIDx4aWEuamlhbmdAbWVkaWF0ZWsu Y29tPg0KLS0tDQp2MTI6IG5vIGNoYW5nZXMNCi0tLQ0KIC4uLi9tZWRpYS9wbGF0Zm9ybS9tdGst anBlZy9tdGtfanBlZ19jb3JlLmMgICB8IDI1ICsrKysrKysrKysrKysrKysrKysNCiAuLi4vbWVk aWEvcGxhdGZvcm0vbXRrLWpwZWcvbXRrX2pwZWdfY29yZS5oICAgfCAgNCArKysNCiAyIGZpbGVz IGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKykNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEv cGxhdGZvcm0vbXRrLWpwZWcvbXRrX2pwZWdfY29yZS5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9y bS9tdGstanBlZy9tdGtfanBlZ19jb3JlLmMNCmluZGV4IGVlNGFhZjYxODU1MS4uOWJhZWVhY2I0 NDUyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9tdGstanBlZy9tdGtfanBl Z19jb3JlLmMNCisrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbXRrLWpwZWcvbXRrX2pwZWdf Y29yZS5jDQpAQCAtODE2LDYgKzgxNiw5IEBAIHN0YXRpYyB2b2lkIG10a19qcGVnX2RldmljZV9y dW4odm9pZCAqcHJpdikNCiAJaWYgKHJldCA8IDApDQogCQlnb3RvIGRlY19lbmQ7DQogDQorCXNj aGVkdWxlX2RlbGF5ZWRfd29yaygmanBlZy0+am9iX3RpbWVvdXRfd29yaywNCisJCQkgICAgICBt c2Vjc190b19qaWZmaWVzKE1US19KUEVHX0hXX1RJTUVPVVRfTVNFQykpOw0KKw0KIAltdGtfanBl Z19zZXRfZGVjX3NyYyhjdHgsICZzcmNfYnVmLT52YjJfYnVmLCAmYnMpOw0KIAlpZiAobXRrX2pw ZWdfc2V0X2RlY19kc3QoY3R4LCAmanBlZ19zcmNfYnVmLT5kZWNfcGFyYW0sICZkc3RfYnVmLT52 YjJfYnVmLCAmZmIpKQ0KIAkJZ290byBkZWNfZW5kOw0KQEAgLTkxMSw2ICs5MTQsOCBAQCBzdGF0 aWMgaXJxcmV0dXJuX3QgbXRrX2pwZWdfZGVjX2lycShpbnQgaXJxLCB2b2lkICpwcml2KQ0KIAl1 MzIgZGVjX3JldDsNCiAJaW50IGk7DQogDQorCWNhbmNlbF9kZWxheWVkX3dvcmsoJmpwZWctPmpv Yl90aW1lb3V0X3dvcmspOw0KKw0KIAlkZWNfcmV0ID0gbXRrX2pwZWdfZGVjX2dldF9pbnRfc3Rh dHVzKGpwZWctPmRlY19yZWdfYmFzZSk7DQogCWRlY19pcnFfcmV0ID0gbXRrX2pwZWdfZGVjX2Vu dW1fcmVzdWx0KGRlY19yZXQpOw0KIAljdHggPSB2NGwyX20ybV9nZXRfY3Vycl9wcml2KGpwZWct Pm0ybV9kZXYpOw0KQEAgLTEwNjYsNiArMTA3MSwyNSBAQCBzdGF0aWMgaW50IG10a19qcGVnX2Ns a19pbml0KHN0cnVjdCBtdGtfanBlZ19kZXYgKmpwZWcpDQogCXJldHVybiBQVFJfRVJSX09SX1pF Uk8oanBlZy0+Y2xrX2pkZWNfc21pKTsNCiB9DQogDQorc3RhdGljIHZvaWQgbXRrX2pwZWdfam9i X3RpbWVvdXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQorew0KKwlzdHJ1Y3QgbXRr X2pwZWdfZGV2ICpqcGVnID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtdGtfanBlZ19kZXYs DQorCQkJCQkJIGpvYl90aW1lb3V0X3dvcmsud29yayk7DQorCXN0cnVjdCBtdGtfanBlZ19jdHgg KmN0eDsNCisJc3RydWN0IHZiMl92NGwyX2J1ZmZlciAqc3JjX2J1ZiwgKmRzdF9idWY7DQorDQor CWN0eCA9IHY0bDJfbTJtX2dldF9jdXJyX3ByaXYoanBlZy0+bTJtX2Rldik7DQorCXNyY19idWYg PSB2NGwyX20ybV9zcmNfYnVmX3JlbW92ZShjdHgtPmZoLm0ybV9jdHgpOw0KKwlkc3RfYnVmID0g djRsMl9tMm1fZHN0X2J1Zl9yZW1vdmUoY3R4LT5maC5tMm1fY3R4KTsNCisNCisJbXRrX2pwZWdf ZGVjX3Jlc2V0KGpwZWctPmRlY19yZWdfYmFzZSk7DQorDQorCXBtX3J1bnRpbWVfcHV0KGpwZWct PmRldik7DQorDQorCXY0bDJfbTJtX2J1Zl9kb25lKHNyY19idWYsIFZCMl9CVUZfU1RBVEVfRVJS T1IpOw0KKwl2NGwyX20ybV9idWZfZG9uZShkc3RfYnVmLCBWQjJfQlVGX1NUQVRFX0VSUk9SKTsN CisJdjRsMl9tMm1fam9iX2ZpbmlzaChqcGVnLT5tMm1fZGV2LCBjdHgtPmZoLm0ybV9jdHgpOw0K K30NCiBzdGF0aWMgaW50IG10a19qcGVnX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpDQogew0KIAlzdHJ1Y3QgbXRrX2pwZWdfZGV2ICpqcGVnOw0KQEAgLTEwODAsNiArMTEwNCw3 IEBAIHN0YXRpYyBpbnQgbXRrX2pwZWdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikNCiAJbXV0ZXhfaW5pdCgmanBlZy0+bG9jayk7DQogCXNwaW5fbG9ja19pbml0KCZqcGVnLT5o d19sb2NrKTsNCiAJanBlZy0+ZGV2ID0gJnBkZXYtPmRldjsNCisJSU5JVF9ERUxBWUVEX1dPUkso JmpwZWctPmpvYl90aW1lb3V0X3dvcmssIG10a19qcGVnX2pvYl90aW1lb3V0X3dvcmspOw0KIA0K IAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOw0K IAlqcGVnLT5kZWNfcmVnX2Jhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwg cmVzKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1qcGVnL210a19q cGVnX2NvcmUuaCBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbXRrLWpwZWcvbXRrX2pwZWdfY29y ZS5oDQppbmRleCA5OTliZDE0Mjc4MDkuLjMyMGM0ZjhhMDE0YSAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvbWVkaWEvcGxhdGZvcm0vbXRrLWpwZWcvbXRrX2pwZWdfY29yZS5oDQorKysgYi9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL210ay1qcGVnL210a19qcGVnX2NvcmUuaA0KQEAgLTI4LDYgKzI4LDgg QEANCiANCiAjZGVmaW5lIE1US19KUEVHX0RFRkFVTFRfU0laRUlNQUdFCSgxICogMTAyNCAqIDEw MjQpDQogDQorI2RlZmluZSBNVEtfSlBFR19IV19USU1FT1VUX01TRUMgMTAwMA0KKw0KIGVudW0g bXRrX2pwZWdfY3R4X3N0YXRlIHsNCiAJTVRLX0pQRUdfSU5JVCA9IDAsDQogCU1US19KUEVHX1JV Tk5JTkcsDQpAQCAtNDgsNiArNTAsNyBAQCBlbnVtIG10a19qcGVnX2N0eF9zdGF0ZSB7DQogICog QGNsa19qZGVjOgkJSlBFRyBodyB3b3JraW5nIGNsb2NrDQogICogQGNsa19qZGVjX3NtaToJSlBF RyBTTUkgYnVzIGNsb2NrDQogICogQGxhcmI6CQlTTUkgZGV2aWNlDQorICogQGpvYl90aW1lb3V0 X3dvcms6CUlSUSB0aW1lb3V0IHN0cnVjdHVyZQ0KICAqLw0KIHN0cnVjdCBtdGtfanBlZ19kZXYg ew0KIAlzdHJ1Y3QgbXV0ZXgJCWxvY2s7DQpAQCAtNjIsNiArNjUsNyBAQCBzdHJ1Y3QgbXRrX2pw ZWdfZGV2IHsNCiAJc3RydWN0IGNsawkJKmNsa19qZGVjOw0KIAlzdHJ1Y3QgY2xrCQkqY2xrX2pk ZWNfc21pOw0KIAlzdHJ1Y3QgZGV2aWNlCQkqbGFyYjsNCisJc3RydWN0IGRlbGF5ZWRfd29yayBq b2JfdGltZW91dF93b3JrOw0KIH07DQogDQogLyoqDQotLSANCjIuMTguMA0K