Hi, Hans and Sakari, Thanks a lot for the code review, I attached the topology print FYI. Regards, Yong ________________________________________ From: Sakari Ailus [sakari.ailus@xxxxxx] Sent: Friday, June 09, 2017 2:20 AM To: Hans Verkuil Cc: Zhi, Yong; linux-media@xxxxxxxxxxxxxxx; sakari.ailus@xxxxxxxxxxxxxxx; Zheng, Jian Xu; tfiga@xxxxxxxxxxxx; Mani, Rajmohan; Toivonen, Tuukka Subject: Re: [PATCH 11/12] intel-ipu3: Add imgu v4l2 driver Hi Hans, On Tue, Jun 06, 2017 at 11:08:07AM +0200, Hans Verkuil wrote: > > + /* Initialize vdev */ > > + strlcpy(vdev->name, node->name, sizeof(vdev->name)); > > + vdev->release = video_device_release_empty; > > + vdev->fops = &m2m2->v4l2_file_ops; > > + vdev->ioctl_ops = &ipu3_v4l2_ioctl_ops; > > + vdev->lock = &node->lock; > > + vdev->v4l2_dev = &m2m2->v4l2_dev; > > + vdev->queue = &node->vbq; > > + vdev->vfl_dir = node->output ? VFL_DIR_TX : VFL_DIR_RX; > > Why have two video nodes (one tx, one rx) instead of a single m2m device > node? > > I'm not saying this is wrong, I just like to know the rationale for this > design. There are a bunch of outputs from the same input stream. Also the parameters are needed to process the frame, I think there are two OUTPUT devices and five CAPTURE devices. Yong: could you send the media graph of the device, please? -- Regards, Sakari Ailus e-mail: sakari.ailus@xxxxxx XMPP: sailus@xxxxxxxxxxxxxx
Media controller API version 0.1.0 Media device information ------------------------ driver ipu3-imgu model ipu3-imgu serial bus info 0000:00:05.0 hw revision 0x0 driver version 4.12.0 Device topology - entity 1: ipu3-imgu:0 (8 pads, 8 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev0 pad0:Sink stream:0[fmt:UYVY2X8/352x288] link: <- "input":0 [ENABLED,IMMUTABLE] pad1:Sink stream:0[fmt:UYVY2X8/352x288] link: <- "parameters":0 [] pad2:Source stream:0[fmt:UYVY2X8/352x288] link: -> "output":0 [] pad3:Source stream:0[fmt:UYVY2X8/352x288] link: -> "viewfinder":0 [] pad4:Source stream:0[fmt:UYVY2X8/352x288] link: -> "postview":0 [] pad5:Source stream:0[fmt:UYVY2X8/352x288] link: -> "3a stat":0 [] pad6:Source stream:0[fmt:UYVY2X8/352x288] link: -> "dvs stat":0 [] pad7:Source stream:0[fmt:UYVY2X8/352x288] link: -> "lace stat":0 [] - entity 2: input (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video0 pad0:Source link: -> "ipu3-imgu:0":0 [ENABLED,IMMUTABLE] - entity 3: parameters (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video1 pad0:Source link: -> "ipu3-imgu:0":1 [] - entity 4: output (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video2 pad0:Sink link: <- "ipu3-imgu:0":2 [] - entity 5: viewfinder (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video3 pad0:Sink link: <- "ipu3-imgu:0":3 [] - entity 6: postview (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video4 pad0:Sink link: <- "ipu3-imgu:0":4 [] - entity 7: 3a stat (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video5 pad0:Sink link: <- "ipu3-imgu:0":5 [] - entity 8: dvs stat (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video6 pad0:Sink link: <- "ipu3-imgu:0":6 [] - entity 9: lace stat (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video7 pad0:Sink link: <- "ipu3-imgu:0":7 []
Attachment:
imgu-topology.dot
Description: imgu-topology.dot
Attachment:
imgu.png
Description: imgu.png