Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c30ea2d authored by Vikash Garodia's avatar Vikash Garodia Committed by Greg Kroah-Hartman
Browse files

media: venus: vdec: fix decoded data size



[ Upstream commit ce32c0a530bd955206fe45c2eff77e581202d699 ]

Existing code returns the max of the decoded size and buffer size.
It turns out that buffer size is always greater due to hardware
alignment requirement. As a result, payload size given to client
is incorrect. This change ensures that the bytesused is assigned
to actual payload size, when available.

Signed-off-by: default avatarVikash Garodia <vgarodia@codeaurora.org>
Acked-by: default avatarStanimir Varbanov <stanimir.varbanov@linaro.org>
Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 5b388c45
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -888,8 +888,7 @@ static void vdec_buf_done(struct venus_inst *inst, unsigned int buf_type,
		unsigned int opb_sz = venus_helper_get_opb_size(inst);

		vb = &vbuf->vb2_buf;
		vb->planes[0].bytesused =
			max_t(unsigned int, opb_sz, bytesused);
		vb2_set_plane_payload(vb, 0, bytesused ? : opb_sz);
		vb->planes[0].data_offset = data_offset;
		vb->timestamp = timestamp_us * NSEC_PER_USEC;
		vbuf->sequence = inst->sequence_cap++;