Re: [PATCH v10 0/8] Add StarFive Camera Subsystem driver

From: Jack Zhu
Date: Wed Oct 18 2023 - 04:48:37 EST




On 2023/10/18 10:37, Jack Zhu wrote:
> Hi Hans,
>
> Thank you for your comments.
>
> On 2023/10/16 19:40, Hans Verkuil wrote:
>> Hi Jack,
>>
>> On 08/10/2023 10:51, Jack Zhu wrote:
>>> Hi,
>>>
>>> This series is the v10 series that attempts to support the Camera Subsystem
>>> found on StarFive JH7110 SoC.
>>>
>>> This series is based on top of the master branch of media_stage repository,
>>> which is tested with a v4l2-compliance compiled from the git repo
>>> (git://linuxtv.org/v4l-utils.git).
>>
>> I get one smatch warning:
>>
>> drivers/staging/media/starfive/camss/stf-isp.c:122 isp_enum_mbus_code() warn: unsigned 'code->index' is never less than zero.
>>
>> And I also notice that there is no TODO file: staging drivers should have a
>> TODO file explaining what needs to be done to get them out of staging.
>>
>> I'm curious to know that as well :-)
>>
>> It looks like there is a lot of additional development that can be done, since
>> most of the ISP parameters appear to be hardcoded.
>>
>> I also notice something weird in the compliance test output for v4l-subdev0 vs
>> v4l-subdev1:
>>
>>> Compliance test for starfive-camss device /dev/v4l-subdev0:
>>>
>>> Driver Info:
>>> Driver version : 6.6.0
>>> Capabilities : 0x00000000
>>> Media Driver Info:
>>> Driver name : starfive-camss
>>> Model : Starfive Camera Subsystem
>>> Serial :
>>> Bus info : platform:19840000.camss
>>> Media version : 6.6.0
>>> Hardware revision: 0x00000000 (0)
>>> Driver version : 6.6.0
>>> Interface Info:
>>> ID : 0x0300001c
>>> Type : V4L Sub-Device
>>> Entity Info:
>>> ID : 0x00000001 (1)
>>> Name : stf_isp
>>> Function : Image Signal Processor
>>> Pad 0x01000002 : 0: Sink
>>> Link 0x02000014: from remote pad 0x1000010 of entity 'cdns_csi2rx.19800000.csi-bridge' (Video Interface Bridge): Data, Enabled
>>> Pad 0x01000003 : 1: Source
>>> Link 0x0200000c: to remote pad 0x1000009 of entity 'capture_yuv' (V4L2 I/O): Data, Enabled
>>
>> Here it shows the Media Driver Info for v4l-subdev0.
>>
>> <snip>
>>
>>> --------------------------------------------------------------------------------
>>> Compliance test for device /dev/v4l-subdev1:
>>>
>>> Driver Info:
>>> Driver version : 6.6.0
>>> Capabilities : 0x00000000
>>
>> But this does not appear for v4l-subdev1.
>>
>> I can't really tell why it doesn't show that. Can you debug a little bit?
>> The code is in v4l2-compliance.cpp, line 1086:
>>
>> ent_id = mi_media_info_for_fd(media_fd, node.g_fd(), &is_invalid, &node.function);
>>
>> The mi_media_info_for_fd() function calls ioctl(media_fd, MEDIA_IOC_DEVICE_INFO, &mdinfo),
>> and that fails for some reason. It could be that media_fd is invalid (would be weird).
>>
>> This could well be a v4l2-compliance bug that you hit with this driver.
>>
>
> On the test board, /dev/v4l-subdev1 is imx219, and the corresponding directory is
> /sys/dev/char/81:3/device. Media0 does not exist in this directory. Therefore, the media_fd
> obtained through mi_get_media_fd(node.g_fd(), node.bus_info) is invalid.
>
> I don't know why media0 does not exist in /sys/dev/char/81:3/device?
>

Hi Hans,

Could you please comment on this issue? imx219 directly uses the driver file in the
media_stage repository.

Thank you for your time!

--
Regards,

Jack Zhu