mirror of https://gitee.com/openkylin/linux.git
media: s5p-jpeg: disable encoder/decoder in exynos4-like hardware after use
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 <andrzej.p@samsung.com> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
e28e6f7566
commit
630dde6300
|
@ -2806,6 +2806,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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue