Re: [PATCH] venus: vdec: fix decoded data size

From: Stanimir Varbanov
Date: Tue Sep 25 2018 - 05:41:56 EST


Hi Nicolas,

On 09/19/2018 06:53 PM, Nicolas Dufresne wrote:
> Le mercredi 19 septembre 2018 Ã 18:02 +0300, Stanimir Varbanov a
> Ãcrit :
>>> --- a/drivers/media/platform/qcom/venus/vdec.c
>>> +++ b/drivers/media/platform/qcom/venus/vdec.c
>>> @@ -943,8 +943,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++;
>>>
>>> It works fine for me, and should not return 0 more often than it
>>> did
>>> before (i.e. never). In practice I also never see the firmware
>>> reporting a payload of zero on SDM845, but maybe older chips
>>> differ?
>>
>> yes, it looks fine. Let me test it with older versions.
>
> What about removing the allow_zero_bytesused flag on this specific
> queue ? Then you can leave it to 0, and the framework will change it to
> the buffer size.

This is valid only for OUTPUT type buffers, but here we bother for
CAPTURE buffers.

--
regards,
Stan