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

Stefan Wahren stefan.wahren at i2se.com
Wed Feb 16 12:57:57 PST 2022


Hi Jean-Michel,

Am 08.02.22 um 16:50 schrieb Jean-Michel Hautbois:
> 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

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]



More information about the linux-arm-kernel mailing list