public inbox for linux-staging@lists.linux.dev
 help / color / mirror / Atom feed
From: Jack Zhu <jack.zhu@starfivetech.com>
To: Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Robert Foss <rfoss@kernel.org>, Todor Tomov <todor.too@gmail.com>,
	"bryan.odonoghue@linaro.org" <bryan.odonoghue@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: "linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-staging@lists.linux.dev" <linux-staging@lists.linux.dev>,
	"Changhuang Liang" <changhuang.liang@starfivetech.com>
Subject: Re: [PATCH v9 0/8] Add StarFive Camera Subsystem driver
Date: Thu, 28 Sep 2023 16:40:54 +0800	[thread overview]
Message-ID: <9ac2d04c-ed0c-9940-53b4-b36d6df22afe@starfivetech.com> (raw)
In-Reply-To: <c9eb7857-896f-43dd-b8fe-4711ba202c81@xs4all.nl>



On 2023/9/28 16:22, Hans Verkuil wrote:
> On 28/09/2023 10:12, Jack Zhu wrote:
>> 
>> 
>> On 2023/9/15 17:26, Hans Verkuil wrote:
>>> On 14/09/2023 05:15, Jack Zhu wrote:
>>>> Hi,
>>>>
>>>> This series is the v9 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.
>>>>
>>>> The following are the media graph for the device and the v4l2-compliance
>>>> output.
>>>>
>>>> ===========================================================================
>>>> [the media graph]:
>>>>
>>>> digraph board {
>>>> 	rankdir=TB
>>>> 	n00000001 [label="{{<port0> 0} | stf_isp\n/dev/v4l-subdev0 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
>>>> 	n00000001:port1 -> n00000008 [style=dashed]
>>>> 	n00000004 [label="capture_raw\n/dev/video0", shape=box, style=filled, fillcolor=yellow]
>>>> 	n00000008 [label="capture_yuv\n/dev/video1", shape=box, style=filled, fillcolor=yellow]
>>>> 	n0000000e [label="{{<port0> 0} | cdns_csi2rx.19800000.csi-bridge\n | {<port1> 1 | <port2> 2 | <port3> 3 | <port4> 4}}", shape=Mrecord, style=filled, fillcolor=green]
>>>> 	n0000000e:port1 -> n00000001:port0 [style=dashed]
>>>> 	n0000000e:port1 -> n00000004 [style=dashed]
>>>> 	n00000018 [label="{{} | imx219 6-0010\n/dev/v4l-subdev1 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
>>>> 	n00000018:port0 -> n0000000e:port0 [style=bold]
>>>> }
>>>>
>>>> [the device topology]:
>>>>
>>>> Media controller API version 6.5.0
>>>>
>>>> Media device information
>>>> ------------------------
>>>> driver          starfive-camss
>>>> model           Starfive Camera Subsystem
>>>> serial          
>>>> bus info        platform:19840000.camss
>>>> hw revision     0x0
>>>> driver version  6.5.0
>>>>
>>>> Device topology
>>>> - entity 1: stf_isp (2 pads, 2 links)
>>>>             type V4L2 subdev subtype Unknown flags 0
>>>>             device node name /dev/v4l-subdev0
>>>> 	pad0: Sink
>>>> 		[fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb
>>>> 		 crop.bounds:(0,0)/1920x1080
>>>> 		 crop:(0,0)/1920x1080]
>>>> 		<- "cdns_csi2rx.19800000.csi-bridge":1 []
>>>> 	pad1: Source
>>>> 		[fmt:YUYV8_1_5X8/1920x1080 field:none colorspace:srgb
>>>> 		 crop.bounds:(0,0)/1920x1080
>>>> 		 crop:(0,0)/1920x1080]
>>>> 		-> "capture_yuv":0 []
>>>>
>>>> - entity 4: capture_raw (1 pad, 1 link)
>>>>             type Node subtype V4L flags 0
>>>>             device node name /dev/video0
>>>> 	pad0: Sink
>>>> 		<- "cdns_csi2rx.19800000.csi-bridge":1 []
>>>>
>>>> - entity 8: capture_yuv (1 pad, 1 link)
>>>>             type Node subtype V4L flags 0
>>>>             device node name /dev/video1
>>>> 	pad0: Sink
>>>> 		<- "stf_isp":1 []
>>>>
>>>> - entity 14: cdns_csi2rx.19800000.csi-bridge (5 pads, 3 links)
>>>>              type V4L2 subdev subtype Unknown flags 0
>>>> 	pad0: Sink
>>>> 		<- "imx219 6-0010":0 [ENABLED,IMMUTABLE]
>>>> 	pad1: Source
>>>> 		-> "stf_isp":0 []
>>>> 		-> "capture_raw":0 []
>>>> 	pad2: Source
>>>> 	pad3: Source
>>>> 	pad4: Source
>>>>
>>>> - entity 24: imx219 6-0010 (1 pad, 1 link)
>>>>              type V4L2 subdev subtype Sensor flags 0
>>>>              device node name /dev/v4l-subdev1
>>>> 	pad0: Source
>>>> 		[fmt:SRGGB10_1X10/3280x2464 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range
>>>> 		 crop.bounds:(8,8)/3280x2464
>>>> 		 crop:(8,8)/3280x2464]
>>>> 		-> "cdns_csi2rx.19800000.csi-bridge":0 [ENABLED,IMMUTABLE]
>>>>
>>>> ===========================================================================
>>>> [the v4l2-compliance output]:
>>>>
>>>> v4l2-compliance 1.24.1, 64 bits, 64-bit time_t
>>>
>>> This v4l2-compliance version is from a distro. For driver acceptance you
>>> must test with a v4l2-compliance compiled from the git repo (git://linuxtv.org/v4l-utils.git).
>>>
>>> Also, since this driver uses the media controller, you must run v4l2-compliance
>>> with the -m /dev/mediaX option. This will test the compliance of all devices
>>> reported by the media controller.
>>>
>>>>
>>>> Compliance test for stf camss device /dev/video1:
>>>>
>>>> Driver Info:
>>>> 	Driver name      : stf camss
>>>
>>> The module is called starfive-camss, so shouldn't the driver name reported here
>>> be the same?
>>>
>>>> 	Card type        : Starfive Camera Subsystem
>>>> 	Bus info         : platform:19840000.camss
>>>> 	Driver version   : 6.5.0
>>>> 	Capabilities     : 0x84200001
>>>> 		Video Capture
>>>> 		Streaming
>>>> 		Extended Pix Format
>>>> 		Device Capabilities
>>>> 	Device Caps      : 0x04200001
>>>> 		Video Capture
>>>> 		Streaming
>>>> 		Extended Pix Format
>>>> Media Driver Info:
>>>> 	Driver name      : starfive-camss
>>>
>>> It's correct in the media controller information.
>>>
>>>> 	Model            : Starfive Camera Subsystem
>>>> 	Serial           : 
>>>> 	Bus info         : platform:19840000.camss
>>>> 	Media version    : 6.5.0
>>>> 	Hardware revision: 0x00000000 (0)
>>>> 	Driver version   : 6.5.0
>>>> Interface Info:
>>>> 	ID               : 0x0300000a
>>>> 	Type             : V4L Video
>>>> Entity Info:
>>>> 	ID               : 0x00000008 (8)
>>>> 	Name             : capture_yuv
>>>> 	Function         : V4L2 I/O
>>>> 	Pad 0x01000009   : 0: Sink
>>>> 	  Link 0x0200000c: from remote pad 0x1000003 of entity 'stf_isp' (Unknown Function (00004009)): Data, Enabled
>>>
>>> Hmm, this reports "Unknown Function". I bet that when you run v4l2-compliance
>>> with the -m option it will fail on this. If not, then that's likely a bug in
>>> the compliance test, please let me know if that's the case.
>>>
>> 
>> Hi Hans,
>> 
>> The following is the latest test log, which does not report a failure, but
>> also reports "Unknown Function".
>> 
>> I make the following settings in the stf-isp.c file:
>> v4l2_subdev.entity.function = MEDIA_ENT_F_PROC_VIDEO_ISP;
>> 
> 
> Can you post the output of:
> 
> v4l2-compliance --verbose -M /dev/media0
> 

Output log of the above command:

# 
# v4l2-compliance --verbose -M /dev/media0
v4l2-compliance 1.25.0, 64 bits, 64-bit time_t

Compliance test for starfive-camss device /dev/media0:

Media Driver Info:
	Driver name      : starfive-camss
	Model            : Starfive Camera Subsystem
	Serial           : 
	Bus info         : platform:19840000.camss
	Media version    : 6.5.0
	Hardware revision: 0x00000000 (0)
	Driver version   : 6.5.0

Required ioctls:
	test MEDIA_IOC_DEVICE_INFO: OK
	test invalid ioctls: OK

Allow for multiple opens:
	test second /dev/media0 open: OK
	test MEDIA_IOC_DEVICE_INFO: OK
	test for unlimited opens: OK

Media Controller ioctls:
		Entity: 0x00000001 (Name: 'stf_isp', Function: Unknown Function (00004009))
		Entity: 0x00000004 (Name: 'capture_raw', Function: V4L2 I/O)
		Entity: 0x00000008 (Name: 'capture_yuv', Function: V4L2 I/O)
		Entity: 0x0000000e (Name: 'cdns_csi2rx.19800000.csi-bridge', Function: Video Interface Bridge)
		Entity: 0x00000018 (Name: 'imx219 6-0010', Function: Camera Sensor)
		Interface: 0x03000006 (Type: V4L Video, DevPath: /dev/video0)
		Interface: 0x0300000a (Type: V4L Video, DevPath: /dev/video1)
		Interface: 0x0300001c (Type: V4L Sub-Device, DevPath: /dev/v4l-subdev0)
		Interface: 0x0300001e (Type: V4L Sub-Device, DevPath: /dev/v4l-subdev1)
		Pad: 0x01000002 (0, stf_isp, Sink)
		Pad: 0x01000003 (1, stf_isp, Source)
		Pad: 0x01000005 (0, capture_raw, Sink)
		Pad: 0x01000009 (0, capture_yuv, Sink)
		Pad: 0x0100000f (0, cdns_csi2rx.19800000.csi-bridge, Sink)
		Pad: 0x01000010 (1, cdns_csi2rx.19800000.csi-bridge, Source)
		Pad: 0x01000011 (2, cdns_csi2rx.19800000.csi-bridge, Source)
		Pad: 0x01000012 (3, cdns_csi2rx.19800000.csi-bridge, Source)
		Pad: 0x01000013 (4, cdns_csi2rx.19800000.csi-bridge, Source)
		Pad: 0x01000019 (0, imx219 6-0010, Source)
		Interface Link: 0x02000007 (capture_raw to /dev/video0)
		Interface Link: 0x0200000b (capture_yuv to /dev/video1)
		Data Link: 0x0200000c (stf_isp:1 -> capture_yuv:0, Data, Enabled)
		Data Link: 0x02000014 (cdns_csi2rx.19800000.csi-bridge:1 -> stf_isp:0, Data, Enabled)
		Data Link: 0x02000016 (cdns_csi2rx.19800000.csi-bridge:1 -> capture_raw:0, Data)
		Data Link: 0x0200001a (imx219 6-0010:0 -> cdns_csi2rx.19800000.csi-bridge:0, Data, Enabled, Immutable)
		Interface Link: 0x0200001d (stf_isp to /dev/v4l-subdev0)
		Interface Link: 0x0200001f (imx219 6-0010 to /dev/v4l-subdev1)
	test MEDIA_IOC_G_TOPOLOGY: OK
	Entities: 5 Interfaces: 4 Pads: 10 Links: 8
		Entity: 0x00000001 (Name: 'stf_isp', Type: Unknown V4L2 Sub-Device, DevPath: /dev/v4l-subdev0)
		Entity: 0x00000004 (Name: 'capture_raw', Type: V4L2 I/O, DevPath: /dev/video0)
		Entity: 0x00000008 (Name: 'capture_yuv', Type: V4L2 I/O, DevPath: /dev/video1)
		Entity: 0x0000000e (Name: 'cdns_csi2rx.19800000.csi-bridge', Type: Unknown V4L2 Sub-Device)
		Entity: 0x00000018 (Name: 'imx219 6-0010', Type: Camera Sensor, DevPath: /dev/v4l-subdev1)
	test MEDIA_IOC_ENUM_ENTITIES/LINKS: OK
	test MEDIA_IOC_SETUP_LINK: OK

Total for starfive-camss device /dev/media0: 8, Succeeded: 8, Failed: 0, Warnings: 0
# 

--
Regards,

Jack Zhu

  parent reply	other threads:[~2023-09-28  8:43 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-14  3:15 [PATCH v9 0/8] Add StarFive Camera Subsystem driver Jack Zhu
2023-09-14  3:16 ` [PATCH v9 1/8] media: dt-bindings: Add JH7110 Camera Subsystem Jack Zhu
2023-09-14  3:16 ` [PATCH v9 2/8] media: admin-guide: Add starfive_camss.rst for Starfive " Jack Zhu
2023-09-14  3:16 ` [PATCH v9 3/8] media: staging: media: starfive: camss: Add core driver Jack Zhu
2023-09-14  3:16 ` [PATCH v9 4/8] media: staging: media: starfive: camss: Add video driver Jack Zhu
2023-09-14  3:16 ` [PATCH v9 5/8] media: staging: media: starfive: camss: Add ISP driver Jack Zhu
2023-09-14  3:16 ` [PATCH v9 6/8] media: staging: media: starfive: camss: Add capture driver Jack Zhu
2023-09-14  3:16 ` [PATCH v9 7/8] media: staging: media: starfive: camss: Add interrupt handling Jack Zhu
2023-09-14  3:16 ` [PATCH v9 8/8] media: staging: media: starfive: camss: Register devices Jack Zhu
2023-09-15  9:26 ` [PATCH v9 0/8] Add StarFive Camera Subsystem driver Hans Verkuil
2023-09-18  9:30   ` Jack Zhu
2023-09-20 12:37     ` Hans Verkuil
2023-09-28  8:12   ` Jack Zhu
2023-09-28  8:22     ` Hans Verkuil
2023-09-28  8:29       ` Hans Verkuil
2023-09-28  8:40       ` Jack Zhu [this message]
2023-09-28 12:04         ` Hans Verkuil

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9ac2d04c-ed0c-9940-53b4-b36d6df22afe@starfivetech.com \
    --to=jack.zhu@starfivetech.com \
    --cc=bryan.odonoghue@linaro.org \
    --cc=changhuang.liang@starfivetech.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=mchehab@kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=rfoss@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=todor.too@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox