Thread (57 messages) flat view 57 messages, 6 authors, 2023-07-02

Re: [PATCH v5 00/11] Add support for BCM2835 camera interface (unicam)

From: Jean-Michel Hautbois <hidden>
Date: 2022-02-20 14:31:00
Also in: linux-devicetree, linux-media, lkml

Hi Stefan,

On 16/02/2022 21:57, Stefan Wahren wrote:
Hi Jean-Michel,

Am 08.02.22 um 16:50 schrieb Jean-Michel Hautbois:
quoted
Hello !

...

In order to properly configure the media pipeline, it is needed to call
the usual ioctls, and configure routing in order to send the embedded
data from the sensor to the "unicam-embedded" device node :
media=0
media-ctl -d${media} -l "'imx219 2-0010':0->'unicam-subdev':0 [1]"
media-ctl -d${media} -l "'unicam-subdev':1->'unicam-image':0 [1]"
media-ctl -d${media} -v -R "'unicam-subdev' [0/0->1/0[1],0/1->2/0[1]]"
media-ctl -d${media} -V "'imx219 2-0010':0/0 [fmt:SRGGB10_1X10/3280x2464 field:none]"
v4l2-ctl -d0 --set-fmt-video width=3280,height=2464,pixelformat='pRAA',field=none
media-ctl -d${media} -v -V "'imx219 2-0010':0/1 [fmt:METADATA_8/16384x1 field:none]"
media-ctl -d${media} -p
i tried to test the unicam driver on a Raspberry Pi 4 with the imx219
camera (based on 5.17-rc4). The unicam & imx219 driver probes and
/dev/video0 is created.

If a execute the first media-ctl command, it complains with invalid
argument 22. Is there a more fool-proof variant to configure this (a
script or something else)? I never used the unicam driver before.

Here is the output of

$ mediactl -d0 -p
Based on your output, I suppose the issue is the naming of the imx219 
media entity ('imx219 2-0010' vs 'imx219 5-0010').
You could add a '-v' in the line to help you I suppose.

A more bullet-proof version of the commands is certainly doable, not 
sure how though as I would not like to rewrite a libcamera-like command ;-).
Media controller API version 5.17.0

Media device information
------------------------
driver          unicam
model           unicam
serial
bus info        platform:fe801000.csi
hw revision     0x0
driver version  5.17.0

Device topology
- entity 1: unicam-subdev (3 pads, 3 links, 2 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev0
     routes:
         0/0 -> 1/0 [ACTIVE]
         0/1 -> 2/0 [ACTIVE]
     pad0: Sink
         [stream:0 fmt:unknown/0x0]
         [stream:1 fmt:unknown/0x0]
         <- "imx219 5-0010":0 [ENABLED,IMMUTABLE]
     pad1: Source
         [stream:0 fmt:unknown/0x0]
         -> "unicam-image":0 [ENABLED,IMMUTABLE]
     pad2: Source
         [stream:0 fmt:unknown/0x0]
         -> "unicam-embedded":0 [ENABLED,IMMUTABLE]

- entity 5: imx219 5-0010 (1 pad, 1 link, 2 routes)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev1
     routes:
         0/0 -> 0/0 [ACTIVE, IMMUTABLE, SOURCE]
         0/0 -> 0/1 [ACTIVE, SOURCE]
     pad0: Source
         [stream:0 fmt:SRGGB10_1X10/3280x2464 field:none colorspace:raw
          crop.bounds:(8,8)/3280x2464
          crop:(8,8)/3280x2464]
         [stream:1 fmt:METADATA_8/16384x1 field:none
          crop.bounds:(8,8)/3280x2464
          crop:(8,8)/3280x2464]
         -> "unicam-subdev":0 [ENABLED,IMMUTABLE]

- entity 9: unicam-image (1 pad, 1 link, 0 route)
             type Node subtype V4L flags 1
             device node name /dev/video0
     pad0: Sink
         <- "unicam-subdev":1 [ENABLED,IMMUTABLE]

- entity 15: unicam-embedded (1 pad, 1 link, 0 route)
              type Node subtype V4L flags 0
              device node name /dev/video1
     pad0: Sink
         <- "unicam-subdev":2 [ENABLED,IMMUTABLE]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help