mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
media: hantro: Fix motion vectors usage condition
commit658f9d9921upstream. The setting of the motion vectors usage and the setting of motion vectors address are currently done under different conditions. When decoding pre-recorded videos, this results of leaving the motion vectors address unset, resulting in faulty memory accesses. Fix it by using the same condition everywhere, which matches the profiles that support motion vectors. Fixes:dea0a82f3d("media: hantro: Add support for H264 decoding on G1") Signed-off-by: Francois Buergisser <fbuergisser@chromium.org> Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com> Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Tested-by: Boris Brezillon <boris.brezillon@collabora.com> Cc: <stable@vger.kernel.org> # for v5.4 and up 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
18eda8b8bb
commit
4b65b88413
@@ -35,7 +35,7 @@ static void set_params(struct hantro_ctx *ctx)
|
||||
if (sps->flags & V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD)
|
||||
reg |= G1_REG_DEC_CTRL0_SEQ_MBAFF_E;
|
||||
reg |= G1_REG_DEC_CTRL0_PICORD_COUNT_E;
|
||||
if (dec_param->nal_ref_idc)
|
||||
if (sps->profile_idc > 66 && dec_param->nal_ref_idc)
|
||||
reg |= G1_REG_DEC_CTRL0_WRITE_MVS_E;
|
||||
|
||||
if (!(sps->flags & V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY) &&
|
||||
@@ -246,7 +246,7 @@ static void set_buffers(struct hantro_ctx *ctx)
|
||||
vdpu_write_relaxed(vpu, dst_dma, G1_REG_ADDR_DST);
|
||||
|
||||
/* Higher profiles require DMV buffer appended to reference frames. */
|
||||
if (ctrls->sps->profile_idc > 66) {
|
||||
if (ctrls->sps->profile_idc > 66 && ctrls->decode->nal_ref_idc) {
|
||||
size_t pic_size = ctx->h264_dec.pic_size;
|
||||
size_t mv_offset = round_up(pic_size, 8);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user