From: Sergey Khimich <serghox@xxxxxxxxx> During decoding process some files (conceivably with max_dec_frame_buffering == 16) a situation may arise, in which after getting 'DEC_PIC_RUN' interrupt we have "-1" in 'CODA_RET_DEC_PIC_CUR_IDX' register. In such case it means that current picture has been decoded but there is no frame buffer to store the decoded picture (this is a kind of error situation). The documentation says that in such situation we have to rerun decoding the frame. On the other hand in the driver such situation leads to sequence number discrepancy whish in general is not good. Also for every discrepancy we get error message. But in real user scenarios (playing video) there is no any errors caused by this sequence number discrepancy. Althogh there is no real errors, lots of "error" messages, in turn, lead to decreasing fps and dropping frames in user space utils, e.g. in Gstreamer. The following Gstreamer log is obtained _without_ this patch: last-message = rendered: 17, dropped: 0, current: 33.76, average: 33.76 last-message = rendered: 33, dropped: 0, current: 30.01, average: 31.83 last-message = rendered: 49, dropped: 0, current: 30.01, average: 31.21 last-message = rendered: 65, dropped: 0, current: 30.00, average: 30.90 last-message = rendered: 81, dropped: 0, current: 30.00, average: 30.72 last-message = rendered: 97, dropped: 0, current: 30.00, average: 30.60 last-message = rendered: 112, dropped: 0, current: 30.00, average: 30.52 last-message = rendered: 127, dropped: 0, current: 30.00, average: 30.46 last-message = rendered: 142, dropped: 0, current: 30.00, average: 30.41 last-message = rendered: 157, dropped: 0, current: 30.00, average: 30.37 last-message = rendered: 173, dropped: 0, current: 30.00, average: 30.33 last-message = rendered: 189, dropped: 0, current: 30.00, average: 30.30 last-message = rendered: 205, dropped: 0, current: 30.00, average: 30.28 last-message = rendered: 220, dropped: 0, current: 30.00, average: 30.26 last-message = rendered: 236, dropped: 0, current: 30.00, average: 30.24 last-message = rendered: 251, dropped: 0, current: 24.84, average: 29.86 last-message = rendered: 264, dropped: 1, fps: 24.55, drop rate: 1.89 last-message = rendered: 279, dropped: 1, current: 30.00, average: 29.57 The next log is obtained _with_ this patch: last-message = rendered: 17, dropped: 0, current: 33.76, average: 33.76 last-message = rendered: 33, dropped: 0, current: 30.03, average: 31.84 last-message = rendered: 49, dropped: 0, current: 30.01, average: 31.22 last-message = rendered: 65, dropped: 0, current: 30.00, average: 30.91 last-message = rendered: 80, dropped: 0, current: 30.00, average: 30.73 last-message = rendered: 96, dropped: 0, current: 30.00, average: 30.61 last-message = rendered: 112, dropped: 0, current: 30.00, average: 30.52 last-message = rendered: 128, dropped: 0, current: 30.00, average: 30.46 last-message = rendered: 144, dropped: 0, current: 30.00, average: 30.40 last-message = rendered: 160, dropped: 0, current: 30.00, average: 30.36 last-message = rendered: 175, dropped: 0, current: 30.00, average: 30.33 last-message = rendered: 191, dropped: 0, current: 30.00, average: 30.30 last-message = rendered: 207, dropped: 0, current: 30.00, average: 30.28 last-message = rendered: 223, dropped: 0, current: 30.00, average: 30.26 last-message = rendered: 239, dropped: 0, current: 30.01, average: 30.24 last-message = rendered: 254, dropped: 0, current: 30.00, average: 30.23 last-message = rendered: 269, dropped: 0, current: 30.00, average: 30.22 last-message = rendered: 285, dropped: 0, current: 30.00, average: 30.20 So it is better to lower the message priority. Signed-off-by: Sergey Khimich <serghox@xxxxxxxxx> --- drivers/media/platform/chips-media/coda/coda-bit.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/chips-media/coda/coda-bit.c b/drivers/media/platform/chips-media/coda/coda-bit.c index c323bc96b998..50350d657f91 100644 --- a/drivers/media/platform/chips-media/coda/coda-bit.c +++ b/drivers/media/platform/chips-media/coda/coda-bit.c @@ -2466,10 +2466,10 @@ static void coda_finish_decode(struct coda_ctx *ctx) * from doing different things based on the format. */ if ((sequence & 0xffff) != (meta->sequence & 0xffff)) { - v4l2_err(&dev->v4l2_dev, - "sequence number mismatch (%d(%d) != %d)\n", - sequence, ctx->sequence_offset, - meta->sequence); + v4l2_warn(&dev->v4l2_dev, + "sequence number mismatch (%d(%d) != %d)\n", + sequence, ctx->sequence_offset, + meta->sequence); } decoded_frame->meta = *meta; kfree(meta); -- 2.30.2