linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stanimir Varbanov <stanimir.varbanov@linaro.org>
To: Hans Verkuil <hverkuil@xs4all.nl>,
	Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Andy Gross <andy.gross@linaro.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Stephen Boyd <sboyd@codeaurora.org>,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v3 4/9] media: venus: vdec: add video decoder files
Date: Mon, 21 Nov 2016 18:09:53 +0200	[thread overview]
Message-ID: <113772f1-8eb9-dd44-42c6-4f109200dff7@linaro.org> (raw)
In-Reply-To: <aed4a795-3abe-2d5a-abc4-c638cd4f4d61@xs4all.nl>



On 11/21/2016 05:33 PM, Hans Verkuil wrote:
> On 21/11/16 16:29, Stanimir Varbanov wrote:
>> Hi Hans,
>>
>> On 11/21/2016 05:04 PM, Hans Verkuil wrote:
>>> On 18/11/16 10:11, Stanimir Varbanov wrote:
>>>> Hi Hans,
>>>>
>>>>>>> +
>>>>>>> +static int
>>>>>>> +vdec_reqbufs(struct file *file, void *fh, struct
>>>>>>> v4l2_requestbuffers *b)
>>>>>>> +{
>>>>>>> +    struct vb2_queue *queue = to_vb2q(file, b->type);
>>>>>>> +
>>>>>>> +    if (!queue)
>>>>>>> +        return -EINVAL;
>>>>>>> +
>>>>>>> +    return vb2_reqbufs(queue, b);
>>>>>>> +}
>>>>>>
>>>>>> Is there any reason why the v4l2_m2m_ioctl_reqbufs et al helper
>>>>>> functions
>>>>>> can't be used? I strongly recommend that, unless there is a specific
>>>>>> reason
>>>>>> why that won't work.
>>>>>
>>>>> So that means I need to completely rewrite the v4l2 part and adopt it
>>>>> for mem2mem device APIs.
>>>>>
>>>>> If that is what you meant I can invest some time to make a estimation
>>>>> what would be the changes and time needed. After that we can decide
>>>>> what
>>>>> to do - take the driver as is and port it to mem2mem device APIs later
>>>>> on or wait for the this transition to happen before merging.
>>>>>
>>>>
>>>> I made an attempt to adopt v4l2 part of the venus driver to m2m API's
>>>> and the result was ~300 less lines of code, but with the price of few
>>>> extensions in m2m APIs (and I still have issues with running
>>>> simultaneously multiple instances).
>>>>
>>>> I have to add few functions/macros to iterate over a list
>>>> (list_for_each
>>>> and friends). This is used to find the returned from decoder buffers by
>>>> address and associate them to vb2_buffer, because the decoder can
>>>> change
>>>> the order of the output buffers.
>>>>
>>>> The main problem I have is registering of the capture buffers before
>>>> session_start. This is requirement (disadvantage) of the firmware
>>>> implementation i.e. I need to announce capture buffers (address and
>>>> size
>>>> of the buffer) to the firmware before start buffer interaction by
>>>> session_start.
>>>>
>>>> So having that I think I will need one more week to stabilize the
>>>> driver
>>>> to the state that it was before this m2m transition.
>>>>
>>>> Thoughts?
>>>>
>>>
>>> It sounds like this it worth doing, since if you need these extensions,
>>> then
>>> it is likely someone else will need it as well.
>>
>> Meanwhile I have found bigger obstacle - I cannot run multiple instances
>> simultaneously. By m2m design it can execute only one job (m2m context)
>> at a time per m2m device. Can you confirm that my observation is correct?
> 
> The m2m framework assumes a single HW instance, yes. Do you have multiple
> HW decoders? I might not understand what you mean...
> 

I mean that I can start and execute up to 16 decoder sessions
simultaneously. Its a firmware responsibility how those sessions are
scheduled and how the hardware is shared between them. Of course
depending on the resolution the firmware can refuse to start the session
because the hardware will be overloaded and will not be able to satisfy
the bitrate requirements.

-- 
regards,
Stan

  reply	other threads:[~2016-11-21 16:09 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-07 17:33 [PATCH v3 0/9] Qualcomm video decoder/encoder driver Stanimir Varbanov
2016-11-07 17:33 ` [PATCH v3 1/9] doc: DT: vidc: binding document for Qualcomm video driver Stanimir Varbanov
2016-11-14 17:04   ` Rob Herring
2016-11-15 17:15     ` Stanimir Varbanov
2016-11-07 17:33 ` [PATCH v3 2/9] MAINTAINERS: Add Qualcomm Venus video accelerator driver Stanimir Varbanov
2016-11-07 17:33 ` [PATCH v3 3/9] media: venus: adding core part and helper functions Stanimir Varbanov
2016-11-10 21:43   ` Stephen Boyd
2016-11-11 16:17     ` Stanimir Varbanov
2016-11-11 22:54       ` Stephen Boyd
2016-11-11 11:32   ` Hans Verkuil
2016-11-14  9:42     ` Stanimir Varbanov
2016-11-14  9:47       ` Hans Verkuil
2016-11-14 10:11         ` Stanimir Varbanov
2016-11-14 10:25           ` Hans Verkuil
2016-11-17  9:10             ` Stanimir Varbanov
2016-11-07 17:33 ` [PATCH v3 4/9] media: venus: vdec: add video decoder files Stanimir Varbanov
2016-11-11 11:39   ` Hans Verkuil
2016-11-14 10:11     ` Stanimir Varbanov
2016-11-18  9:11       ` Stanimir Varbanov
2016-11-21 15:04         ` Hans Verkuil
2016-11-21 15:29           ` Stanimir Varbanov
2016-11-21 15:33             ` Hans Verkuil
2016-11-21 16:09               ` Stanimir Varbanov [this message]
2016-11-23 20:24                 ` Nicolas Dufresne
2016-11-24 13:16                   ` Stanimir Varbanov
2016-11-07 17:33 ` [PATCH v3 5/9] media: venus: venc: add video encoder files Stanimir Varbanov
2016-11-11 11:43   ` Hans Verkuil
2016-11-14 10:27     ` Stanimir Varbanov
2016-11-07 17:34 ` [PATCH v3 6/9] media: venus: hfi: add Host Firmware Interface (HFI) Stanimir Varbanov
2016-11-07 17:34 ` [PATCH v3 7/9] media: venus: hfi: add Venus HFI files Stanimir Varbanov
2016-11-07 17:34 ` [PATCH v3 8/9] media: venus: add Makefiles and Kconfig files Stanimir Varbanov
2016-11-10  2:04   ` Stephen Boyd
2016-11-11  6:12   ` Vivek Gautam
2016-11-11  9:07     ` Stanimir Varbanov
2016-11-11  9:45       ` Vivek Gautam
2016-11-07 17:34 ` [PATCH v3 9/9] media: venus: enable building of Venus video codec driver Stanimir Varbanov
2016-11-11 11:49 ` [PATCH v3 0/9] Qualcomm video decoder/encoder driver Hans Verkuil
2016-11-11 12:11   ` Javier Martinez Canillas
2016-11-14 14:59     ` Stanimir Varbanov
2016-11-14 14:59       ` Hans Verkuil

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=113772f1-8eb9-dd44-42c6-4f109200dff7@linaro.org \
    --to=stanimir.varbanov@linaro.org \
    --cc=andy.gross@linaro.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=hverkuil@xs4all.nl \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=sboyd@codeaurora.org \
    --cc=srinivas.kandagatla@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).