You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
media: rkvdec: Disable H.264 error detection
commit3a99c44741upstream. 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:cd33c83044("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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
ac828e2416
commit
6f478fe8c3
@@ -1124,8 +1124,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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user