[libcamera-devel] Pinephone 1.2 and libcamera

Rafael Diniz rafael at riseup.net
Tue Jun 28 12:54:47 CEST 2022


Hi Jacopo, sorry I was not clear.

I mean, support in:
drivers/media/platform/sunxi/sun6i-csi/sun6i_video.c
V4L2_CAP_IO_MC is not there.

Rafael

On 6/28/22 07:40, Jacopo Mondi wrote:
> 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: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20220628/91643a1d/attachment-0001.sig>


More information about the libcamera-devel mailing list