]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: hantro: vp8: Move noisy WARN_ON to vpu_debug
authorEzequiel Garcia <ezequiel@collabora.com>
Mon, 19 Jul 2021 20:52:33 +0000 (22:52 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 18 Sep 2021 11:42:02 +0000 (13:42 +0200)
[ Upstream commit 6ad61a7847da09b6261824accb539d05bcdfef65 ]

When the VP8 decoders can't find a reference frame,
the driver falls back to the current output frame.

This will probably produce some undesirable results,
leading to frame corruption, but shouldn't cause
noisy warnings.

Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Acked-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Tested-by: Alex Bee <knaerzche@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/staging/media/hantro/hantro_g1_vp8_dec.c
drivers/staging/media/hantro/rk3399_vpu_hw_vp8_dec.c

index 57002ba7017685b105ca5af9c651daeba4f67bad..3cd90637ac63ec87270d4dd81a043d6d23bb6ce4 100644 (file)
@@ -376,12 +376,17 @@ static void cfg_ref(struct hantro_ctx *ctx,
        vb2_dst = hantro_get_dst_buf(ctx);
 
        ref = hantro_get_ref(ctx, hdr->last_frame_ts);
-       if (!ref)
+       if (!ref) {
+               vpu_debug(0, "failed to find last frame ts=%llu\n",
+                         hdr->last_frame_ts);
                ref = vb2_dma_contig_plane_dma_addr(&vb2_dst->vb2_buf, 0);
+       }
        vdpu_write_relaxed(vpu, ref, G1_REG_ADDR_REF(0));
 
        ref = hantro_get_ref(ctx, hdr->golden_frame_ts);
-       WARN_ON(!ref && hdr->golden_frame_ts);
+       if (!ref && hdr->golden_frame_ts)
+               vpu_debug(0, "failed to find golden frame ts=%llu\n",
+                         hdr->golden_frame_ts);
        if (!ref)
                ref = vb2_dma_contig_plane_dma_addr(&vb2_dst->vb2_buf, 0);
        if (hdr->flags & V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN)
@@ -389,7 +394,9 @@ static void cfg_ref(struct hantro_ctx *ctx,
        vdpu_write_relaxed(vpu, ref, G1_REG_ADDR_REF(4));
 
        ref = hantro_get_ref(ctx, hdr->alt_frame_ts);
-       WARN_ON(!ref && hdr->alt_frame_ts);
+       if (!ref && hdr->alt_frame_ts)
+               vpu_debug(0, "failed to find alt frame ts=%llu\n",
+                         hdr->alt_frame_ts);
        if (!ref)
                ref = vb2_dma_contig_plane_dma_addr(&vb2_dst->vb2_buf, 0);
        if (hdr->flags & V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT)
index 8661a3cc1e6b51cb4e6e362fa0431ebbb3a97a18..3616192016053878822256014bc37c5e56da0b0d 100644 (file)
@@ -453,12 +453,17 @@ static void cfg_ref(struct hantro_ctx *ctx,
        vb2_dst = hantro_get_dst_buf(ctx);
 
        ref = hantro_get_ref(ctx, hdr->last_frame_ts);
-       if (!ref)
+       if (!ref) {
+               vpu_debug(0, "failed to find last frame ts=%llu\n",
+                         hdr->last_frame_ts);
                ref = vb2_dma_contig_plane_dma_addr(&vb2_dst->vb2_buf, 0);
+       }
        vdpu_write_relaxed(vpu, ref, VDPU_REG_VP8_ADDR_REF0);
 
        ref = hantro_get_ref(ctx, hdr->golden_frame_ts);
-       WARN_ON(!ref && hdr->golden_frame_ts);
+       if (!ref && hdr->golden_frame_ts)
+               vpu_debug(0, "failed to find golden frame ts=%llu\n",
+                         hdr->golden_frame_ts);
        if (!ref)
                ref = vb2_dma_contig_plane_dma_addr(&vb2_dst->vb2_buf, 0);
        if (hdr->flags & V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN)
@@ -466,7 +471,9 @@ static void cfg_ref(struct hantro_ctx *ctx,
        vdpu_write_relaxed(vpu, ref, VDPU_REG_VP8_ADDR_REF2_5(2));
 
        ref = hantro_get_ref(ctx, hdr->alt_frame_ts);
-       WARN_ON(!ref && hdr->alt_frame_ts);
+       if (!ref && hdr->alt_frame_ts)
+               vpu_debug(0, "failed to find alt frame ts=%llu\n",
+                         hdr->alt_frame_ts);
        if (!ref)
                ref = vb2_dma_contig_plane_dma_addr(&vb2_dst->vb2_buf, 0);
        if (hdr->flags & V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT)