From patchwork Tue Aug 8 11:27:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Pietrasiewicz X-Patchwork-Id: 43031 X-Patchwork-Delegate: sylvester.nawrocki@gmail.com Received: from vger.kernel.org ([209.132.180.67]) by www.linuxtv.org with esmtp (Exim 4.84_2) (envelope-from ) id 1df2ff-0006oS-OI; Tue, 08 Aug 2017 11:27:36 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752420AbdHHL1d (ORCPT + 1 other); Tue, 8 Aug 2017 07:27:33 -0400 Received: from mailout4.w1.samsung.com ([210.118.77.14]:59896 "EHLO mailout4.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752244AbdHHL1T (ORCPT ); Tue, 8 Aug 2017 07:27:19 -0400 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout4.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OUD005PZ6HH8K90@mailout4.w1.samsung.com>; Tue, 08 Aug 2017 12:27:17 +0100 (BST) Received: from eusmges2.samsung.com (unknown [203.254.199.241]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170808112716eucas1p23e67035a0633960c3fc8392892bc7a09~Y21Wlg0Dw2481024810eucas1p2I; Tue, 8 Aug 2017 11:27:16 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2.samsung.com (EUCPMTA) with SMTP id 7A.24.12907.410A9895; Tue, 8 Aug 2017 12:27:16 +0100 (BST) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170808112715eucas1p263e17ba53577e0c4b46cc43bf8376db3~Y21V27GzX1819218192eucas1p2W; Tue, 8 Aug 2017 11:27:15 +0000 (GMT) X-AuditID: cbfec7f1-f793a6d00000326b-d9-5989a0147681 Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 81.51.20118.310A9895; Tue, 8 Aug 2017 12:27:15 +0100 (BST) Received: from AMDC831.digital.local ([106.116.147.122]) by eusync1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OUD002SM6H90300@eusync1.samsung.com>; Tue, 08 Aug 2017 12:27:15 +0100 (BST) From: Andrzej Pietrasiewicz To: linux-samsung-soc@vger.kernel.org, linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Andrzej Pietrasiewicz , Jacek Anaszewski , Marek Szyprowski , Bartlomiej Zolnierkiewicz , Mauro Carvalho Chehab , Thierry Escande , Krzysztof Kozlowski Subject: [PATCH 2/5] media: platform: s5p-jpeg: disable encoder/decoder in exynos4-like hardware after use Date: Tue, 08 Aug 2017 13:27:05 +0200 Message-id: <1502191628-11958-2-git-send-email-andrzej.p@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1502191628-11958-1-git-send-email-andrzej.p@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrAIsWRmVeSWpSXmKPExsWy7djPc7oiCzojDTZ/FrWY9bKdxWLjjPWs Fre3bmCxOH9+A7vFpsfXWC16NmxltZhxfh+Txdojd9ktVj+rsOi/eonNgctjx90ljB47Z91l 99i0qpPNY/OSeo8t/UBe35ZVjB6fN8kFsEdx2aSk5mSWpRbp2yVwZZxrnMJasEWoout+VAPj Xf4uRk4OCQETiQun7zJD2GISF+6tZwOxhQSWMkr8fqfTxcgFZH9mlFjTtosNpuH+nr2sEIll jBLTdhxjh3AamCRmvV0INopNwFhi78EORhBbRCBL4vSkRiYQm1ngCpPEz/V6ILawQI7EzP27 wGpYBFQl3t19AraBV8BV4sucCVAnyUmcPDaZFcTmFHCT+HhvBtgyCYF+donDTf+AmjmAHFmJ TQeg6l0kGls6WSFsYYlXx7ewQ9gyEpcnd7NA9E5mlNhw8wOUs51RYu2xE1Ad1hKHj19khbiU T2LStunMEAt4JTrahCBKPCS+nZoNtcxR4sfUk2wQ319llDj2ZQ3LBEaZBYwMqxhFUkuLc9NT i430ihNzi0vz0vWS83M3MQLj/fS/4x93ML4/YXWIUYCDUYmHlyGzI1KINbGsuDL3EKMEB7OS CG/fvM5IId6UxMqq1KL8+KLSnNTiQ4zSHCxK4ry2UW2RQgLpiSWp2ampBalFMFkmDk6pBkbJ ksnH9Rf+LNrqGMx84rdBBU9a9ZmYr92s+ftnF847JVRsvNNL3IhDcEfDgsWebk8P5LmF2l3Z +zZZ36dC9dietIV7GKf93/yKQaX/liAjV/+T/rcLDEI6tuXwm0pIH5TeNvN2R1WE8+8zIdzv 3+6eu/JlSPov5TvPkl54X/prJH/xc+vPyF1KLMUZiYZazEXFiQDw58tL8wIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpgkeLIzCtJLcpLzFFi42I5/e/4ZV3hBZ2RBov6jCxmvWxnsdg4Yz2r xe2tG1gszp/fwG6x6fE1VoueDVtZLWac38dksfbIXXaL1c8qLPqvXmJz4PLYcXcJo8fOWXfZ PTat6mTz2Lyk3mNLP5DXt2UVo8fnTXIB7FFuNhmpiSmpRQqpecn5KZl56bZKoSFuuhZKCnmJ uam2ShG6viFBSgpliTmlQJ6RARpwcA5wD1bSt0twyzjXOIW1YItQRdf9qAbGu/xdjJwcEgIm Evf37GWFsMUkLtxbzwZiCwksYZT4siqsi5ELyG5ikuia+JsFJMEmYCyx92AHI4gtIpAlcXj+ LGaQImaBG0wSRz9OZAJJCAvkSMzcvwusiEVAVeLd3SdgU3kFXCW+zJnADLFNTuLksclgmzkF 3CQ+3pvBDrGtkVHizqIbjBMYeRcwMqxiFEktLc5Nzy020itOzC0uzUvXS87P3cQIDP1tx35u 2cHY9S74EKMAB6MSD++KtI5IIdbEsuLK3EOMEhzMSiK8ffM6I4V4UxIrq1KL8uOLSnNSiw8x mgJdNZFZSjQ5HxiXeSXxhiaG5paGRsYWFuZGRkrivOqXmyKFBNITS1KzU1MLUotg+pg4OKUa GMM5D4iK3S7NWWfuxl3fv02UZZN0dec8VvWArf+ZjuZp+6jpthaK6h26zMy8NlXwZGOISNe+ DfsspK4+L3VfdpLBW2WLX9+SO7ujTJ/zhjxb5VMZ3e/9s5FXTlq0ZcrLxhsfd86NU9khtYLj WlIBe+RDecOvv+pt/0V16fstknKoWpXxt05FiaU4I9FQi7moOBEAPTEzRJMCAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170808112715eucas1p263e17ba53577e0c4b46cc43bf8376db3 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 X-Local-Sender: =?UTF-8?B?QW5kcnplaiBQaWV0cmFzaWV3aWN6G1NSUE9MLUtlcm5lbCAo?= =?UTF-8?B?VFApG+yCvOyEseyghOyekBtTZW5pb3IgU29mdHdhcmUgRW5naW5lZXI=?= X-Global-Sender: =?UTF-8?B?QW5kcnplaiBUb21hc3ogUGlldHJhc2lld2ljehtTUlBPTC1L?= =?UTF-8?B?ZXJuZWwgKFRQKRtTYW1zdW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2Fy?= =?UTF-8?B?ZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170808112715eucas1p263e17ba53577e0c4b46cc43bf8376db3 X-RootMTR: 20170808112715eucas1p263e17ba53577e0c4b46cc43bf8376db3 References: <1502191352-11595-1-git-send-email-andrzej.p@samsung.com> <1502191628-11958-1-git-send-email-andrzej.p@samsung.com> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Clearing the bits turns off the encoder/decoder. If the hardware is not turned off after use, at subsequent uses it does not work in a stable manner, resulting in incorrect interrupt status value being read and e.g. erroneous read of compressed bitstream size. Signed-off-by: Andrzej Pietrasiewicz --- drivers/media/platform/s5p-jpeg/jpeg-core.c | 2 ++ drivers/media/platform/s5p-jpeg/jpeg-core.h | 1 + drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c | 5 ++++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c b/drivers/media/platform/s5p-jpeg/jpeg-core.c index e276bd5..492fab1 100644 --- a/drivers/media/platform/s5p-jpeg/jpeg-core.c +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c @@ -2713,6 +2713,8 @@ static irqreturn_t exynos4_jpeg_irq(int irq, void *priv) if (jpeg->variant->version == SJPEG_EXYNOS4) curr_ctx->subsampling = exynos4_jpeg_get_frame_fmt(jpeg->regs); + exynos4_jpeg_set_enc_dec_mode(jpeg->regs, S5P_JPEG_DISABLE); + spin_unlock(&jpeg->slock); v4l2_m2m_job_finish(jpeg->m2m_dev, curr_ctx->fh.m2m_ctx); diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.h b/drivers/media/platform/s5p-jpeg/jpeg-core.h index 4492a35..36edf92 100644 --- a/drivers/media/platform/s5p-jpeg/jpeg-core.h +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.h @@ -63,6 +63,7 @@ #define S5P_JPEG_ENCODE 0 #define S5P_JPEG_DECODE 1 +#define S5P_JPEG_DISABLE -1 #define FMT_TYPE_OUTPUT 0 #define FMT_TYPE_CAPTURE 1 diff --git a/drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c b/drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c index a1d823a..c784033 100644 --- a/drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c +++ b/drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c @@ -38,10 +38,13 @@ void exynos4_jpeg_set_enc_dec_mode(void __iomem *base, unsigned int mode) writel((reg & EXYNOS4_ENC_DEC_MODE_MASK) | EXYNOS4_DEC_MODE, base + EXYNOS4_JPEG_CNTL_REG); - } else {/* encode */ + } else if (mode == S5P_JPEG_ENCODE) {/* encode */ writel((reg & EXYNOS4_ENC_DEC_MODE_MASK) | EXYNOS4_ENC_MODE, base + EXYNOS4_JPEG_CNTL_REG); + } else { /* disable both */ + writel(reg & EXYNOS4_ENC_DEC_MODE_MASK, + base + EXYNOS4_JPEG_CNTL_REG); } }