[libcamera-devel] Pinephone 1.2 and libcamera

Jacopo Mondi jacopo at jmondi.org
Tue Jun 28 12:40:20 CEST 2022


Hi Rafael,

On Tue, Jun 28, 2022 at 07:26:42AM -0300, Rafael Diniz wrote:
> Thanks Laurent and Jacopo.
>
> This is the commit to be used as reference, right?
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5fc929ae516537720d61139df92fa89ac4989c7b
>
> I took a look in different PP kernel branches, and it seems such v4l
> V4L2_CAP_IO_MC is not present nowhere.

I'm not sure I got wha you mean here...

V4L2_CAP_IO_MC has been introduced by
f645e6256bd1 ("media: v4l2-dev/ioctl: Add V4L2_CAP_IO_MC")
and it seems to be in since v5.8 ?

>
> Rafael
>
> On 6/28/22 07:04, Laurent Pinchart wrote:
> > On Tue, Jun 28, 2022 at 12:02:52PM +0200, Jacopo Mondi wrote:
> > > Hi Rafael,
> > >
> > > On Tue, Jun 28, 2022 at 06:02:28AM -0300, Rafael Diniz wrote:
> > > > I tried to first just copy the ov5640.c to my 5.15 branch, and the error
> > > > message from libcamera changed. Now I get:
> > > >
> > > > WARN CameraSensor camera_sensor.cpp:212 'ov5640 3-004c': Recommended V4L2
> > > > control 0x009a0922 not supported
> > > > WARN CameraSensor camera_sensor.cpp:264 'ov5640 3-004c': The sensor kernel
> > > > driver needs to be fixed
> > > > WARN CameraSensor camera_sensor.cpp:266 'ov5640 3-004c': See
> > > > Documentation/sensor_driver_requirements.rst in the libcamera sources for
> > > > more information
> > > > WARN CameraSensor camera_sensor.cpp:411 'ov5640 3-004c': Failed to retrieve
> > > > the camera location
> > >
> > > You're missing V4L2_CID_CAMERA_ORIENTATION, don't worry it's not
> > > anything fatal, simply your camera won't report it's orientation.
> > >
> > > The ov5640 driver is already instrumented to register such control if
> > > the corresponding DT property is in your DTS
> > >
> > > References:
> > > Documentation/devicetree/bindings/media/video-interface-devices.yaml
> > >
> > > TL;DR your DTS does not register any "orientation" property.
> > >
> > > >
> > > > ERROR V4L2 v4l2_videodevice.cpp:1076 /dev/video2[10:cap]: Media bus code
> > > > filtering not supported by the device
> > > > (this last error repeats more than 50 times ^^^^)
> > > >
> > > > ERROR SimplePipeline simple.cpp:490 No valid configuration found
> > >
> > > This is not related to the sensor driver but rather to your receiver
> > > driver that does not support media bus code filtering.
> > >
> > > https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/vidioc-enum-fmt.html
> > >
> > > -------------------------------------------------------------------------------
> > > V4L2_CAP_IO_MC is set (also known as an ‘MC-centric’ driver)
> > >
> > > If the mbus_code field is initialized to a valid (non-zero) media bus
> > > format code, then drivers shall restrict enumeration to only the image
> > > formats that can produce (for video output devices) or be produced
> > > from (for video capture devices) that media bus code. If the mbus_code
> > > is unsupported by the driver, then EINVAL shall be returned.
> > > -------------------------------------------------------------------------------
> > >
> > > libcamera requires driver to support CAP_IO_MC and implement the
> > > media-controller API for topology enumeration and device discovery.
> > >
> > > I asked Pavel a reference to the Pinephone BSP kernel to check what is
> > > the status, but looking at the error there it seems some work is
> > > required.
> >
> > It looks like thse sun6i-csi driver doesn't support CAP_IO_MC in
> > mainline either.
> >
> > > > May be I'm missing something in order to backport the ov5640 driver to the
> > > > 5.15 branch?
> > > >
> > > > Thanks,
> > > > Rafael Diniz
> > > >
> > > > On 6/27/22 05:05, Jacopo Mondi wrote:
> > > > > Hi Rafael,
> > > > >
> > > > > On Mon, Jun 27, 2022 at 03:46:02AM -0300, Rafael Diniz wrote:
> > > > > > That is wonderful. Thanks for pointing me the OV5640 patches. And before I
> > > > > > start back-porting these patches to my 5.15 branch, is there any git repo I
> > > > > > can clone just to give a first try (with these modifications already
> > > > > > inside)?
> > > > >
> > > > > I just pushed
> > > > > https://git.sr.ht/~jmondi_/linux/tree/jmondi/media-master/ov5640-v7
> > > > >
> > > > > which contains the last version of the 5640 patches on top of
> > > > > linux-media master.
> > > > >
> > > > > Thanks
> > > > >      j
> > > > >
> > > > > >
> > > > > >
> > > > > > Rafael
> > > > > >
> > > > > > On 6/26/22 20:29, Laurent Pinchart wrote:
> > > > > > > Hi Rafael,
> > > > > > >
> > > > > > > On Fri, Jun 24, 2022 at 05:24:06AM -0300, Rafael Diniz via libcamera-devel wrote:
> > > > > > > > Hi Jocopo,
> > > > > > > >
> > > > > > > > Thanks. I'm interested to know which kernel version / source people are
> > > > > > > > using to test libcamera on the PinePhone. Indeed, I read all the thread
> > > > > > > > about libcamera in PinePhone in the e-maill archives. "lc-compliance"
> > > > > > > > says drivers I'm using have no proper support for the features needed by
> > > > > > > > libcamera.
> > > > > > >
> > > > > > > Those issues are actually not reported by lc-compliance, but by
> > > > > > > libcamera itself. For the OV5640 camera sensor, the fixes have been
> > > > > > > posted to the linux-media mailing list (see [3], and in particular
> > > > > > > patches 15/28, 16/28 and 21/28), but not merged yet.
> > > > > > >
> > > > > > > The gc2145 driver will need more work.
> > > > > > >
> > > > > > > [3] https://lore.kernel.org/linux-media/20220513141548.6344-1-sakari.ailus@linux.intel.com
> > > > > > >
> > > > > > > > On 6/24/22 04:46, Jacopo Mondi wrote:
> > > > > > > > > Hello Rafael
> > > > > > > > >
> > > > > > > > >       No longer than a few days ago Pavel sent this message
> > > > > > > > > https://lists.libcamera.org/pipermail/libcamera-devel/2022-June/031340.html
> > > > > > > > >
> > > > > > > > > Hope the two of you can synch
> > > > > > > > >
> > > > > > > > > On Thu, Jun 23, 2022 at 04:37:32PM -0300, Rafael Diniz via libcamera-devel wrote:
> > > > > > > > > > Hi everybody,
> > > > > > > > > >
> > > > > > > > > > I'm working on bringing PinePhone cameras support to Maemo-Leste system
> > > > > > > > > > applications, and I opted for libcamera.
> > > > > > > > > >
> > > > > > > > > > I posted some messages here:
> > > > > > > > > > https://github.com/kbingham/libcamera/issues/28
> > > > > > > > > >
> > > > > > > > > > With the kernel 5.15 with pinephone patches [1] imported from Mobian, I get
> > > > > > > > > > some missing features in both cameras drivers [2]. Before I duplicate
> > > > > > > > > > someone's work - did anyone manage to get a kernel which works with current
> > > > > > > > > > libcamera for Pinephone 1 (not the Pro)?
> > > > > > > > > >
> > > > > > > > > > Cheers,
> > > > > > > > > > Rafael
> > > > > > > > > >
> > > > > > > > > > [1] https://github.com/maemo-leste/pine64-kernel/tree/maemo/beowulf-devel
> > > > > > > > > >
> > > > > > > > > > [2] ./lc-compliance
> > > > > > > > > >
> > > > > > > > > > [6:03:22.948763728] [16718] INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3665-bb84fc6a
> > > > > > > > > > [6:03:22.976465603] [16719] WARN CameraSensor camera_sensor.cpp:212 'gc2145 3-003c': Recommended V4L2 control 0x009a0922 not supported
> > > > > > > > > > [6:03:22.978480561] [16719] ERROR V4L2 v4l2_subdevice.cpp:318 'gc2145 3-003c': Unable to get rectangle 2 on pad 0: Inappropriate ioctl for device
> > > > > > > > > > [6:03:22.979363603] [16719] WARN CameraSensor camera_sensor.cpp:239 'gc2145 3-003c': The PixelArraySize property has been defaulted to 1600x1200
> > > > > > > > > > [6:03:22.979433394] [16719] ERROR V4L2 v4l2_subdevice.cpp:318 'gc2145 3-003c': Unable to get rectangle 1 on pad 0: Inappropriate ioctl for device
> > > > > > > > > > [6:03:22.979499686] [16719] WARN CameraSensor camera_sensor.cpp:250 'gc2145 3-003c': The PixelArrayActiveAreas property has been defaulted to (0, 0)/1600x1200
> > > > > > > > > > [6:03:22.979599769] [16719] ERROR V4L2 v4l2_subdevice.cpp:318 'gc2145 3-003c': Unable to get rectangle 0 on pad 0: Inappropriate ioctl for device
> > > > > > > > > > [6:03:22.979663478] [16719] WARN CameraSensor camera_sensor.cpp:258 'gc2145 3-003c': Failed to retrieve the sensor crop rectangle
> > > > > > > > > > [6:03:22.979719186] [16719] WARN CameraSensor camera_sensor.cpp:264 'gc2145 3-003c': The sensor kernel driver needs to be fixed
> > > > > > > > > > [6:03:22.979773644] [16719] WARN CameraSensor camera_sensor.cpp:266 'gc2145 3-003c': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
> > > > > > > > > > [6:03:22.979853436] [16719] ERROR CameraSensor camera_sensor.cpp:287 'gc2145 3-003c': Mandatory V4L2 control 0x009e0902 not available
> > > > > > > > > > [6:03:22.979915686] [16719] ERROR CameraSensor camera_sensor.cpp:287 'gc2145 3-003c': Mandatory V4L2 control 0x009f0902 not available
> > > > > > > > > > [6:03:22.979973686] [16719] ERROR CameraSensor camera_sensor.cpp:287 'gc2145 3-003c': Mandatory V4L2 control 0x009e0901 not available
> > > > > > > > > > [6:03:22.980280644] [16719] ERROR CameraSensor camera_sensor.cpp:295 'gc2145 3-003c': The sensor kernel driver needs to be fixed
> > > > > > > > > > [6:03:22.980343811] [16719] ERROR CameraSensor camera_sensor.cpp:297 'gc2145 3-003c': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
> > > > > > > > > > [6:03:22.981451561] [16719] ERROR SimplePipeline simple.cpp:1309 No valid pipeline for sensor 'gc2145 3-003c', skipping
> > > > > > > > > > [6:03:22.986176478] [16719] WARN CameraSensor camera_sensor.cpp:212 'ov5640 3-004c': Recommended V4L2 control 0x009a0922 not supported
> > > > > > > > > > [6:03:22.986392019] [16719] ERROR V4L2 v4l2_subdevice.cpp:318 'ov5640 3-004c': Unable to get rectangle 2 on pad 0: Inappropriate ioctl for device
> > > > > > > > > > [6:03:22.986487478] [16719] WARN CameraSensor camera_sensor.cpp:239 'ov5640 3-004c': The PixelArraySize property has been defaulted to 2592x1944
> > > > > > > > > > [6:03:22.986555228] [16719] ERROR V4L2 v4l2_subdevice.cpp:318 'ov5640 3-004c': Unable to get rectangle 1 on pad 0: Inappropriate ioctl for device
> > > > > > > > > > [6:03:22.986618769] [16719] WARN CameraSensor camera_sensor.cpp:250 'ov5640 3-004c': The PixelArrayActiveAreas property has been defaulted to (0, 0)/2592x1944
> > > > > > > > > > [6:03:22.986690769] [16719] ERROR V4L2 v4l2_subdevice.cpp:318 'ov5640 3-004c': Unable to get rectangle 0 on pad 0: Inappropriate ioctl for device
> > > > > > > > > > [6:03:22.986751686] [16719] WARN CameraSensor camera_sensor.cpp:258 'ov5640 3-004c': Failed to retrieve the sensor crop rectangle
> > > > > > > > > > [6:03:22.986807353] [16719] WARN CameraSensor camera_sensor.cpp:264 'ov5640 3-004c': The sensor kernel driver needs to be fixed
> > > > > > > > > > [6:03:22.988926894] [16719] WARN CameraSensor camera_sensor.cpp:266 'ov5640 3-004c': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
> > > > > > > > > > [6:03:22.990680353] [16719] ERROR CameraSensor camera_sensor.cpp:287 'ov5640 3-004c': Mandatory V4L2 control 0x009e0902 not available
> > > > > > > > > > [6:03:22.990761353] [16719] ERROR CameraSensor camera_sensor.cpp:287 'ov5640 3-004c': Mandatory V4L2 control 0x009e0901 not available
> > > > > > > > > > [6:03:22.990816561] [16719] ERROR CameraSensor camera_sensor.cpp:295 'ov5640 3-004c': The sensor kernel driver needs to be fixed
> > > > > > > > > > [6:03:22.990869519] [16719] ERROR CameraSensor camera_sensor.cpp:297 'ov5640 3-004c': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
> > > > > > > > > > [6:03:22.991348436] [16719] ERROR SimplePipeline simple.cpp:1309 No valid pipeline for sensor 'ov5640 3-004c', skipping
> >



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20220628/7527ee1f/attachment-0001.sig>


More information about the libcamera-devel mailing list