mbox series

[0/3] vimc: Allow multiple capture devices to use the same sensor

Message ID 20190518010744.15195-1-niklas.soderlund+renesas@ragnatech.se (mailing list archive)
Headers show
Series vimc: Allow multiple capture devices to use the same sensor | expand

Message

Niklas Söderlund May 18, 2019, 1:07 a.m. UTC
Hi,

This series adds support for two (or more) capture devices to be 
connected to the same senors and run simultaneously. Each capture device 
can be started and stopped independent of each other.

Patch 1/3 and 2/3 deals with solving the issues that arises once two 
capture devices can be part of the same pipeline. While 3/3 allows for 
two capture devices to be part of the same pipeline and thus allows for 
simultaneously use.

The series is based on the latest media-tree and it functionality can be 
demonstrated with the following test.

>>> begin test <<<
mdev=/dev/media0

media-ctl -d $mdev -l "'Debayer A':1 -> 'Scaler':0 [1]"
media-ctl -d $mdev -l "'Debayer B':1 -> 'Scaler':0 [0]"

media-ctl -d $mdev -V "'Debayer A':0 [fmt:RGB888_1X24/640x480 field:none]"
media-ctl -d /dev/media0 -V "'Sensor A':0 [fmt:SRGGB8_1X8/640x480 field:none]"

yavta -f RGB24 -s 1920x1440 --field none /dev/video2
yavta -f SRGGB8 -s 640x480 --field none /dev/video0

yavta -f RGB24 -s 1920x1440 --field none /dev/video2 --capture=100 &
yavta -f SRGGB8 -s 640x480 --field none /dev/video0 --capture=100
wait
>>> end test <<<

In addition to testing with this test the series is tested with multiple 
qv4l2 instances controlling different capture devices connected to the 
same sensor.

Niklas Söderlund (3):
  vimc: Add usage count to subdevices
  vimc: Serialize vimc_streamer_s_stream()
  vimc: Join pipeline if one already exists

 drivers/media/platform/vimc/vimc-capture.c  | 35 ++++++++++++++++++++-
 drivers/media/platform/vimc/vimc-debayer.c  |  8 +++++
 drivers/media/platform/vimc/vimc-scaler.c   |  8 +++++
 drivers/media/platform/vimc/vimc-sensor.c   |  7 +++++
 drivers/media/platform/vimc/vimc-streamer.c | 23 +++++++++-----
 5 files changed, 73 insertions(+), 8 deletions(-)

Comments

Hans Verkuil Oct. 23, 2019, 7:01 a.m. UTC | #1
Hi Niklas,

For one reason or another this series was never reviewed/picked up and
it now no longer applies.

Combined with the big switch to a monolithic driver I am sure that this
series needs to be redone. So I am marking it as "Changes Requested" and
it is up to you to decide whether to rebase/rework this series.

Regards,

	Hans

On 5/18/19 3:07 AM, Niklas Söderlund wrote:
> Hi,
> 
> This series adds support for two (or more) capture devices to be 
> connected to the same senors and run simultaneously. Each capture device 
> can be started and stopped independent of each other.
> 
> Patch 1/3 and 2/3 deals with solving the issues that arises once two 
> capture devices can be part of the same pipeline. While 3/3 allows for 
> two capture devices to be part of the same pipeline and thus allows for 
> simultaneously use.
> 
> The series is based on the latest media-tree and it functionality can be 
> demonstrated with the following test.
> 
>>>> begin test <<<
> mdev=/dev/media0
> 
> media-ctl -d $mdev -l "'Debayer A':1 -> 'Scaler':0 [1]"
> media-ctl -d $mdev -l "'Debayer B':1 -> 'Scaler':0 [0]"
> 
> media-ctl -d $mdev -V "'Debayer A':0 [fmt:RGB888_1X24/640x480 field:none]"
> media-ctl -d /dev/media0 -V "'Sensor A':0 [fmt:SRGGB8_1X8/640x480 field:none]"
> 
> yavta -f RGB24 -s 1920x1440 --field none /dev/video2
> yavta -f SRGGB8 -s 640x480 --field none /dev/video0
> 
> yavta -f RGB24 -s 1920x1440 --field none /dev/video2 --capture=100 &
> yavta -f SRGGB8 -s 640x480 --field none /dev/video0 --capture=100
> wait
>>>> end test <<<
> 
> In addition to testing with this test the series is tested with multiple 
> qv4l2 instances controlling different capture devices connected to the 
> same sensor.
> 
> Niklas Söderlund (3):
>   vimc: Add usage count to subdevices
>   vimc: Serialize vimc_streamer_s_stream()
>   vimc: Join pipeline if one already exists
> 
>  drivers/media/platform/vimc/vimc-capture.c  | 35 ++++++++++++++++++++-
>  drivers/media/platform/vimc/vimc-debayer.c  |  8 +++++
>  drivers/media/platform/vimc/vimc-scaler.c   |  8 +++++
>  drivers/media/platform/vimc/vimc-sensor.c   |  7 +++++
>  drivers/media/platform/vimc/vimc-streamer.c | 23 +++++++++-----
>  5 files changed, 73 insertions(+), 8 deletions(-)
>
Niklas Söderlund Oct. 23, 2019, 10:22 a.m. UTC | #2
Hi Hans,

On 2019-10-23 09:01:40 +0200, Hans Verkuil wrote:
> Hi Niklas,
> 
> For one reason or another this series was never reviewed/picked up and
> it now no longer applies.
> 
> Combined with the big switch to a monolithic driver I am sure that this
> series needs to be redone. So I am marking it as "Changes Requested" and
> it is up to you to decide whether to rebase/rework this series.

I talked to Helen about this series and she thought it could be a nice 
candidate for a student workshop/class so I'm not planing to respin this 
myself.

> 
> Regards,
> 
> 	Hans
> 
> On 5/18/19 3:07 AM, Niklas Söderlund wrote:
> > Hi,
> > 
> > This series adds support for two (or more) capture devices to be 
> > connected to the same senors and run simultaneously. Each capture device 
> > can be started and stopped independent of each other.
> > 
> > Patch 1/3 and 2/3 deals with solving the issues that arises once two 
> > capture devices can be part of the same pipeline. While 3/3 allows for 
> > two capture devices to be part of the same pipeline and thus allows for 
> > simultaneously use.
> > 
> > The series is based on the latest media-tree and it functionality can be 
> > demonstrated with the following test.
> > 
> >>>> begin test <<<
> > mdev=/dev/media0
> > 
> > media-ctl -d $mdev -l "'Debayer A':1 -> 'Scaler':0 [1]"
> > media-ctl -d $mdev -l "'Debayer B':1 -> 'Scaler':0 [0]"
> > 
> > media-ctl -d $mdev -V "'Debayer A':0 [fmt:RGB888_1X24/640x480 field:none]"
> > media-ctl -d /dev/media0 -V "'Sensor A':0 [fmt:SRGGB8_1X8/640x480 field:none]"
> > 
> > yavta -f RGB24 -s 1920x1440 --field none /dev/video2
> > yavta -f SRGGB8 -s 640x480 --field none /dev/video0
> > 
> > yavta -f RGB24 -s 1920x1440 --field none /dev/video2 --capture=100 &
> > yavta -f SRGGB8 -s 640x480 --field none /dev/video0 --capture=100
> > wait
> >>>> end test <<<
> > 
> > In addition to testing with this test the series is tested with multiple 
> > qv4l2 instances controlling different capture devices connected to the 
> > same sensor.
> > 
> > Niklas Söderlund (3):
> >   vimc: Add usage count to subdevices
> >   vimc: Serialize vimc_streamer_s_stream()
> >   vimc: Join pipeline if one already exists
> > 
> >  drivers/media/platform/vimc/vimc-capture.c  | 35 ++++++++++++++++++++-
> >  drivers/media/platform/vimc/vimc-debayer.c  |  8 +++++
> >  drivers/media/platform/vimc/vimc-scaler.c   |  8 +++++
> >  drivers/media/platform/vimc/vimc-sensor.c   |  7 +++++
> >  drivers/media/platform/vimc/vimc-streamer.c | 23 +++++++++-----
> >  5 files changed, 73 insertions(+), 8 deletions(-)
> > 
>