[libcamera-devel] [PATCH v2 0/7] Enumerate CameraLens by following sensor's ancillary links
Daniel Scally
djrscally at gmail.com
Fri Dec 3 23:42:23 CET 2021
Hello All
This series is an attempt at making the incoming VCM support a little more
agnostic, by following the new style of media links described in my series to
linux-media [0] to find VCMs connected to Sensors in libcamera. Now that
Han-Lin's series is merged this is based on top of master, plus Kate's v3 [1]
The general principle of the new links is an entity to entity link which will
be connected by the kernel between a sensor's entity and an entity for a VCM
device, where those entities have a fwnode match based on the "lens-focus"
property against the sensor. These links are then discovered by libcamera and
followed to create an instance of the CameraLens class, replacing the matching
on driver/device names in Han-Lin's original series.
With the CameraLens available to carry out the controlling of the VCM, I have
pushed the controls to the pipeline handler.
Series changes in v2:
- New patches #4, #5 and #6 adding some extra framework to the IPAIPU3
and pipeline so that I can pass the lensControls as a ControlList in #7
(which was previously #5).
- Dropped the patch amending Kate's work, as Kate squashed it (thanks!)
Thanks
Dan
[1] https://patchwork.libcamera.org/patch/15011/
Daniel Scally (7):
libcamera: Add members to MediaEntity to support ancillary entities
libcamera: media_device: Handle ancillary links in populateLinks()
libcamera: camera_sensor: Discover VCMs through ancillary links
libcamera: camera_lens: Add function to fetch subdev controls
libcamera: ipa: Add lens control member to ipu3 ipa interface
libcamera: ipu3: Pass lens controls to config info
ipa: ipu3: Send lens controls to pipeline handler
include/libcamera/internal/camera_lens.h | 4 ++
include/libcamera/internal/camera_sensor.h | 1 +
include/libcamera/internal/media_object.h | 4 ++
include/libcamera/ipa/ipu3.mojom | 1 +
include/linux/media.h | 1 +
src/ipa/ipu3/ipu3.cpp | 10 +++++
src/libcamera/camera_lens.cpp | 11 ++++++
src/libcamera/camera_sensor.cpp | 42 ++++++++++++++++++++
src/libcamera/media_device.cpp | 46 +++++++++++++++-------
src/libcamera/media_object.cpp | 16 ++++++++
src/libcamera/pipeline/ipu3/ipu3.cpp | 5 +++
11 files changed, 126 insertions(+), 15 deletions(-)
--
2.25.1
More information about the libcamera-devel
mailing list