[libcamera-devel] Pinephone 1.2 and libcamera

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Jun 28 12:04:22 CEST 2022


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

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list