Драйвер ISP Allwinner от Bootlin, как задать дерево устройств

Сейчас так (убраны все поля кроме эндпойнтов для наглядности)

&i2c1 {
    gc0403: camera@3c {
        compatible = "galaxycore,gc0403";
        reg = <0x3c>;
        port {
            gc0403_ep: endpoint {
                remote-endpoint = <&csi1_in_ep>;
                bus-type = <5>;
            };
        };
    };
};
&csi1 {
    ports {
        port@0 {
            reg = <0>;
            csi1_in_ep: endpoint {
                remote-endpoint = <&gc0403_ep>;
                bus-type = <5>;
            };
        };
        port@1{
            reg = <1>;
            };
        port@2 {
            reg = <2>;
            csi1_out_ep: endpoint {
                remote-endpoint = <&isp_in>;
            };
        };
    };
};
&isp {
    ports {
        port@0 {
            reg = <0>;
        };
        port@1 {
            reg = <1>;
            isp_in: endpoint {
                remote-endpoint = <&csi1_out_ep>;
            };
        };
    };
};

Вопрос в том что если не включать сборку ISP то все нормально, появляется медиа устройство камера и можно осуществить захват, пример:

# media-ctl -p
Media controller API version 6.4.16

Media device information
------------------------
driver          sun6i-csi
model           Allwinner A31 CSI Device
serial
bus info        platform:1cb4000.camera
hw revision     0x0
driver version  6.4.16

Device topology
- entity 1: sun6i-csi-bridge (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        pad0: Sink
                [fmt:unknown/0x0]
                <- "m00_f_gc0403 1-003c":0 [ENABLED]
        pad1: Source
                [fmt:unknown/0x0]
                -> "sun6i-csi-capture":0 [ENABLED,IMMUTABLE]

- entity 4: m00_f_gc0403 1-003c (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev1
        pad0: Source
                [fmt:SRGGB10_1X10/768x576@10000/300000 field:none]
                -> "sun6i-csi-bridge":0 [ENABLED]

- entity 12: sun6i-csi-capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video0
        pad0: Sink
                <- "sun6i-csi-bridge":1 [ENABLED,IMMUTABLE]

Если же включить драйвер ISP камера исчезает

# media-ctl -p
Media controller API version 6.4.16

Media device information
------------------------
driver          sun6i-isp
model           Allwinner A31 ISP Device
serial
bus info        platform:1cb8000.isp
hw revision     0x0
driver version  6.4.16

Device topology
- entity 1: sun6i-isp-proc (3 pads, 3 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        pad0: Sink
                [fmt:unknown/0x0]
                <- "sun6i-csi-bridge":1 [ENABLED]
        pad1: Sink
                [fmt:unknown/0x0]
                <- "sun6i-isp-params":0 [ENABLED,IMMUTABLE]
        pad2: Source
                [fmt:unknown/0x0]
                -> "sun6i-isp-capture":0 [ENABLED,IMMUTABLE]

- entity 5: sun6i-isp-capture (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
        pad0: Sink
                <- "sun6i-isp-proc":2 [ENABLED,IMMUTABLE]

- entity 11: sun6i-isp-params (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video1
        pad0: Source
                -> "sun6i-isp-proc":1 [ENABLED,IMMUTABLE]

- entity 17: sun6i-csi-bridge (2 pads, 1 link)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev1
        pad0: Sink
                [fmt:unknown/0x0]
        pad1: Source
                [fmt:unknown/0x0]
                -> "sun6i-isp-proc":0 [ENABLED]

Linux 6.4.17, драйвер камеры был для Linux 3.4, модифицировал минимально, захват с камеры на Linux 5.4.180 например вообще без вопросов ( ну разве что с разрядностью данных еще не разобрался).

Почему не работает драйвер ISP? Нужно ли в дереве устройств еще какое то описание - например csi-capture?


Ответы (0 шт):