From: Helen Koike <helen.koike@collabora.com>
To: "Niklas Söderlund" <niklas.soderlund@ragnatech.se>
Cc: linux-media@vger.kernel.org, kernel@collabora.com,
linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org,
hans.verkuil@cisco.com, skhan@linuxfoundation.org,
mchehab@kernel.org
Subject: Re: [PATCH v2 0/3] media: add v4l2_pipeline_stream_{enable,disable} helpers
Date: Tue, 7 Apr 2020 21:05:03 -0300 [thread overview]
Message-ID: <4be824ea-61e2-4624-4880-fccb4ff804cd@collabora.com> (raw)
In-Reply-To: <20200407193615.GG1716317@oden.dyn.berto.se>
On 4/7/20 4:36 PM, Niklas Söderlund wrote:
> Hi Helen,
>
> On 2020-04-03 18:33:09 -0300, Helen Koike wrote:
>> Hi,
>>
>> Media drivers need to iterate through the pipeline and call .s_stream()
>> callbacks in the subdevices.
>>
>> Instead of repeating code, add helpers for this.
>>
>> These helpers will go walk through the pipeline only visiting entities
>> that participates in the stream, i.e. it follows links from sink to source
>> (and not the opposite).
>>
>> Which means that in a topology like this https://bit.ly/3b2MxjI
>> calling v4l2_pipeline_stream_enable() from rkisp1_mainpath won't call
>> .s_stream(true) for rkisp1_resizer_selfpath.
>>
>> stream_count variable was added in v4l2_subdevice to handle nested calls
>> to the helpers.
>> This is useful when the driver allows streaming from more then one
>> capture device sharing subdevices.
>>
>> This patch came from the error I was facing when multistreaming from
>> rkisp1 driver, where stoping one capture would call s_stream(false) in
>> the pipeline, causing a stall in the second capture device.
>>
>> Also, the vimc patch https://patchwork.kernel.org/patch/10948833/ won't
>> be required with this patchset.
>>
>> This patchset was tested on rkisp1 and vimc drivers.
>
> I'm just curious, with this series applied can I stream simultaneously
> on multiple video devises using vimc?
No, this patch only removes the requirement of patch 1/3 in the series
"vimc: Allow multiple capture devices to use the same sensor", since the counter
is being added in the core, so it won't be required to add it for each subdevice.
The other patches in that series are still required.
Regards,
Helen
>
>>
>> Other cleanup might be possible (but I won't add in this patchset as I
>> don't have the hw to test):
>> https://git.linuxtv.org/media_tree.git/tree/drivers/media/platform/qcom/camss/camss-video.c#n430
>> https://git.linuxtv.org/media_tree.git/tree/drivers/media/platform/omap3isp/isp.c#n697
>> https://git.linuxtv.org/media_tree.git/tree/drivers/media/platform/stm32/stm32-dcmi.c#n680
>> https://git.linuxtv.org/media_tree.git/tree/drivers/media/platform/xilinx/xilinx-dma.c#n97
>>
>> Changes in V2:
>> ====================
>> The first version was calling the s_stream() callbacks from sensor to
>> capture.
>>
>> This was generating errors in the Scarlet Chromebook, when the sensor
>> was being enabled before the ISP.
>>
>> It make sense to enable subdevices from capture to sensor instead (which
>> is what most drivers do already).
>>
>> This v2 drops the changes from mc-entity.c, and re-implement helpers in
>> v4l2-common.c
>>
>> Overview of patches:
>> ====================
>>
>> Path 1/3 adds the helpers in v4l2-common.c, allowing nested calls by
>> adding stream_count in the subdevice struct.
>>
>> Patch 2/3 cleanup rkisp1 driver to use the helpers.
>>
>> Patch 3/3 cleanup vimc driver to use the helpers.
>>
>> Helen Koike (3):
>> media: v4l2-common: add helper functions to call s_stream() callbacks
>> media: staging: rkisp1: use v4l2_pipeline_stream_{enable,disable}
>> helpers
>> media: vimc: use v4l2_pipeline_stream_{enable,disable} helpers
>>
>> drivers/media/platform/vimc/vimc-capture.c | 28 +++--
>> drivers/media/platform/vimc/vimc-streamer.c | 49 +-------
>> drivers/media/v4l2-core/v4l2-common.c | 117 ++++++++++++++++++
>> drivers/staging/media/rkisp1/rkisp1-capture.c | 76 +-----------
>> include/media/v4l2-common.h | 28 +++++
>> include/media/v4l2-subdev.h | 2 +
>> 6 files changed, 173 insertions(+), 127 deletions(-)
>>
>> --
>> 2.26.0
>>
>
next prev parent reply other threads:[~2020-04-08 0:05 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-03 21:33 Helen Koike
2020-04-03 21:33 ` [PATCH v2 1/3] media: v4l2-common: add helper functions to call s_stream() callbacks Helen Koike
2020-04-07 19:24 ` Niklas Söderlund
2020-04-07 20:49 ` Helen Koike
2020-04-03 21:33 ` [PATCH v2 2/3] media: staging: rkisp1: use v4l2_pipeline_stream_{enable,disable} helpers Helen Koike
2020-04-07 19:34 ` Niklas Söderlund
2020-04-07 20:51 ` Helen Koike
2020-04-03 21:33 ` [PATCH v2 3/3] media: vimc: " Helen Koike
2020-04-07 19:36 ` [PATCH v2 0/3] media: add " Niklas Söderlund
2020-04-08 0:05 ` Helen Koike [this message]
2020-04-08 0:15 ` Niklas Söderlund
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=4be824ea-61e2-4624-4880-fccb4ff804cd@collabora.com \
--to=helen.koike@collabora.com \
--cc=hans.verkuil@cisco.com \
--cc=kernel@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=mchehab@kernel.org \
--cc=niklas.soderlund@ragnatech.se \
--cc=skhan@linuxfoundation.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
all inboxes | Powered by JetHome®