media: hantro: Set H264 FIELDPIC_FLAG_E flag correctly
authorJonas Karlman <jonas@kwiboo.se>
Wed, 6 Nov 2019 22:35:11 +0000 (23:35 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sun, 10 Nov 2019 17:00:08 +0000 (18:00 +0100)
The FIELDPIC_FLAG_E bit should be set when field_pic_flag exists in stream,
it is currently set based on field_pic_flag of current frame.
The PIC_FIELDMODE_E bit is correctly set based on the field_pic_flag.

Fix this by setting the FIELDPIC_FLAG_E bit when frame_mbs_only is not set.

Fixes: dea0a82f3d22 ("media: hantro: Add support for H264 decoding on G1")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/hantro/hantro_g1_h264_dec.c

index 27d40d8d3728968cb191595b50172b38a4dbbde8..3cd40a8f0daa08080fc179a2cb8d812dc8b0dd7e 100644 (file)
@@ -63,7 +63,7 @@ static void set_params(struct hantro_ctx *ctx)
        /* always use the matrix sent from userspace */
        reg |= G1_REG_DEC_CTRL2_TYPE1_QUANT_E;
 
-       if (slices[0].flags &  V4L2_H264_SLICE_FLAG_FIELD_PIC)
+       if (!(sps->flags & V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY))
                reg |= G1_REG_DEC_CTRL2_FIELDPIC_FLAG_E;
        vdpu_write_relaxed(vpu, reg, G1_REG_DEC_CTRL2);