lkml.org 
[lkml]   [2021]   [Sep]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.10 033/176] media: hantro: vp8: Move noisy WARN_ON to vpu_debug
    Date
    From: Ezequiel Garcia <ezequiel@collabora.com>

    [ 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 | 13 ++++++++++---
    .../staging/media/hantro/rk3399_vpu_hw_vp8_dec.c | 13 ++++++++++---
    2 files changed, 20 insertions(+), 6 deletions(-)

    diff --git a/drivers/staging/media/hantro/hantro_g1_vp8_dec.c b/drivers/staging/media/hantro/hantro_g1_vp8_dec.c
    index a5cdf150cd16..d30bdc678cc2 100644
    --- a/drivers/staging/media/hantro/hantro_g1_vp8_dec.c
    +++ b/drivers/staging/media/hantro/hantro_g1_vp8_dec.c
    @@ -377,12 +377,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_HEADER_FLAG_SIGN_BIAS_GOLDEN)
    @@ -390,7 +395,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_HEADER_FLAG_SIGN_BIAS_ALT)
    diff --git a/drivers/staging/media/hantro/rk3399_vpu_hw_vp8_dec.c b/drivers/staging/media/hantro/rk3399_vpu_hw_vp8_dec.c
    index a4a792f00b11..5b8c8fc49cce 100644
    --- a/drivers/staging/media/hantro/rk3399_vpu_hw_vp8_dec.c
    +++ b/drivers/staging/media/hantro/rk3399_vpu_hw_vp8_dec.c
    @@ -454,12 +454,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_HEADER_FLAG_SIGN_BIAS_GOLDEN)
    @@ -467,7 +472,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_HEADER_FLAG_SIGN_BIAS_ALT)
    --
    2.30.2
    \
     
     \ /
      Last update: 2021-09-09 14:37    [W:4.069 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site