[libcamera-devel,v3,0/6] V4L2 M2M Support (+RPi PoC)
mbox series

Message ID 20190813094020.10277-1-kieran.bingham@ideasonboard.com
Headers show
Series
  • V4L2 M2M Support (+RPi PoC)
Related show

Message

Kieran Bingham Aug. 13, 2019, 9:40 a.m. UTC
The RaspberryPi pipeline handler will require a Memory2Memory device to support
it's ISP processing. An initial RFC of this has been posted some time ago.

This series improves upon the V4L2M2MDevice RFC that was posted and promotes it
to it's own class.

Support for opening a device for two streams is added by overloading the
V4L2VideoDevice::open() call to allow a second implemention to provide the
the fd and stream type, rather than opening the node and guessing the type.

An initial test using the V4L2M2MDevice on the VIM2M virtual M2M driver is also
provided.

Along side all of this there are a couple of small independent fixup patches
(Fix the ordering of a debug statement, and remove an unused function) and my
current state of the RaspberryPi Pipeline handler.


 * Please Note *

The PipelineHandlerRPi requires out of tree kernel drivers to operate. These
are available publically on the RaspberryPi foundation's linux tree, however I
have added further patches on top of those.

A branch containing the drivers for the RPi with my patches on top is at:

   https://github.com/kbingham/linux-rpi.git rpi-4.19.y-libcamera


v3:
 - Moved location of setFd within V4L2Device
 - Fixed documentation 
 - Close newFd in V4L2VideoDevice::open(handle, type) error path

v2:
 - M2M device now has its own open()/close() calls
 - Return codes are not lost in PipelineHandlerRPi::freeBuffers()
 - unicam node added to device match.
 - Test code executes in the run() rather than the init()

*** BLURB HERE ***

Kieran Bingham (6):
  libcamera: v4l2_device: Add setFd()
  libcamera: v4l2_videodevice: Fix ordering of debug statement
  libcamera: v4l2_videodevice: Support M2M devices
  test: v4l2_videodevice: Add M2M device test
  test: v4l2_device: Remove unused function
  [PoC/RFC] libcamera: pipeline: Add RaspberryPi handler

 src/libcamera/include/v4l2_device.h           |   1 +
 src/libcamera/include/v4l2_videodevice.h      |  25 +
 src/libcamera/pipeline/meson.build            |   1 +
 src/libcamera/pipeline/raspberrypi.cpp        | 453 ++++++++++++++++++
 src/libcamera/v4l2_device.cpp                 |  26 +
 src/libcamera/v4l2_videodevice.cpp            | 202 +++++++-
 test/v4l2_videodevice/meson.build             |   1 +
 test/v4l2_videodevice/v4l2_m2mdevice.cpp      | 212 ++++++++
 .../v4l2_videodevice_test.cpp                 |  11 -
 9 files changed, 916 insertions(+), 16 deletions(-)
 create mode 100644 src/libcamera/pipeline/raspberrypi.cpp
 create mode 100644 test/v4l2_videodevice/v4l2_m2mdevice.cpp

Comments

Kieran Bingham Aug. 13, 2019, 2:44 p.m. UTC | #1
Thanks,

This series is now pushed to master excluding the 6/6 proof of concept.

--
Kieran


On 13/08/2019 10:40, Kieran Bingham wrote:
> The RaspberryPi pipeline handler will require a Memory2Memory device to support
> it's ISP processing. An initial RFC of this has been posted some time ago.
> 
> This series improves upon the V4L2M2MDevice RFC that was posted and promotes it
> to it's own class.
> 
> Support for opening a device for two streams is added by overloading the
> V4L2VideoDevice::open() call to allow a second implemention to provide the
> the fd and stream type, rather than opening the node and guessing the type.
> 
> An initial test using the V4L2M2MDevice on the VIM2M virtual M2M driver is also
> provided.
> 
> Along side all of this there are a couple of small independent fixup patches
> (Fix the ordering of a debug statement, and remove an unused function) and my
> current state of the RaspberryPi Pipeline handler.
> 
> 
>  * Please Note *
> 
> The PipelineHandlerRPi requires out of tree kernel drivers to operate. These
> are available publically on the RaspberryPi foundation's linux tree, however I
> have added further patches on top of those.
> 
> A branch containing the drivers for the RPi with my patches on top is at:
> 
>    https://github.com/kbingham/linux-rpi.git rpi-4.19.y-libcamera
> 
> 
> v3:
>  - Moved location of setFd within V4L2Device
>  - Fixed documentation 
>  - Close newFd in V4L2VideoDevice::open(handle, type) error path
> 
> v2:
>  - M2M device now has its own open()/close() calls
>  - Return codes are not lost in PipelineHandlerRPi::freeBuffers()
>  - unicam node added to device match.
>  - Test code executes in the run() rather than the init()
> 
> *** BLURB HERE ***
> 
> Kieran Bingham (6):
>   libcamera: v4l2_device: Add setFd()
>   libcamera: v4l2_videodevice: Fix ordering of debug statement
>   libcamera: v4l2_videodevice: Support M2M devices
>   test: v4l2_videodevice: Add M2M device test
>   test: v4l2_device: Remove unused function
>   [PoC/RFC] libcamera: pipeline: Add RaspberryPi handler
> 
>  src/libcamera/include/v4l2_device.h           |   1 +
>  src/libcamera/include/v4l2_videodevice.h      |  25 +
>  src/libcamera/pipeline/meson.build            |   1 +
>  src/libcamera/pipeline/raspberrypi.cpp        | 453 ++++++++++++++++++
>  src/libcamera/v4l2_device.cpp                 |  26 +
>  src/libcamera/v4l2_videodevice.cpp            | 202 +++++++-
>  test/v4l2_videodevice/meson.build             |   1 +
>  test/v4l2_videodevice/v4l2_m2mdevice.cpp      | 212 ++++++++
>  .../v4l2_videodevice_test.cpp                 |  11 -
>  9 files changed, 916 insertions(+), 16 deletions(-)
>  create mode 100644 src/libcamera/pipeline/raspberrypi.cpp
>  create mode 100644 test/v4l2_videodevice/v4l2_m2mdevice.cpp
>