]> git.baikalelectronics.ru Git - kernel.git/commitdiff
media: rkvdec: Disable H.264 error detection
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Fri, 10 Jun 2022 12:52:11 +0000 (13:52 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Tue, 27 Sep 2022 08:24:44 +0000 (10:24 +0200)
Quite often, the HW get stuck in error condition if a stream error
was detected. As documented, the HW should stop immediately and self
reset. There is likely a problem or a miss-understanding of the self
reset mechanism, as unless we make a long pause, the next command
will then report an error even if there is no error in it.

Disabling error detection fixes the issue, and let the decoder continue
after an error. This patch is safe for backport into older kernels.

Fixes: 16832e0eb859 ("media: rkvdec: Add the rkvdec driver")
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: Brian Norris <briannorris@chromium.org>
Tested-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/rkvdec/rkvdec-h264.c

index 4af5a831bde01df914a60a2bc40c1a26a3211483..4fc167b42cf0c74fcc7adad5b867d9d7cd8af29b 100644 (file)
@@ -1162,8 +1162,8 @@ static int rkvdec_h264_run(struct rkvdec_ctx *ctx)
 
        schedule_delayed_work(&rkvdec->watchdog_work, msecs_to_jiffies(2000));
 
-       writel(0xffffffff, rkvdec->regs + RKVDEC_REG_STRMD_ERR_EN);
-       writel(0xffffffff, rkvdec->regs + RKVDEC_REG_H264_ERR_E);
+       writel(0, rkvdec->regs + RKVDEC_REG_STRMD_ERR_EN);
+       writel(0, rkvdec->regs + RKVDEC_REG_H264_ERR_E);
        writel(1, rkvdec->regs + RKVDEC_REG_PREF_LUMA_CACHE_COMMAND);
        writel(1, rkvdec->regs + RKVDEC_REG_PREF_CHR_CACHE_COMMAND);