Re: [PATCH v2 10/18] media: cadence: csi2rx: Populate subdev devnode

From: Tomi Valkeinen
Date: Fri May 28 2021 - 03:35:54 EST


On 28/05/2021 10:24, Pratyush Yadav wrote:
On 28/05/21 10:16AM, Tomi Valkeinen wrote:
On 26/05/2021 18:23, Pratyush Yadav wrote:
The devnode can be used by media-ctl and other userspace tools to
perform configurations on the subdev. Without it, media-ctl returns
ENOENT when setting format on the sensor subdev.

Signed-off-by: Pratyush Yadav <p.yadav@xxxxxx>
---

(no changes since v1)

drivers/media/platform/cadence/cdns-csi2rx.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/media/platform/cadence/cdns-csi2rx.c b/drivers/media/platform/cadence/cdns-csi2rx.c
index 1df21f462f3c..49bed63d5faa 100644
--- a/drivers/media/platform/cadence/cdns-csi2rx.c
+++ b/drivers/media/platform/cadence/cdns-csi2rx.c
@@ -613,6 +613,7 @@ static int csi2rx_probe(struct platform_device *pdev)
csi2rx->pads[CSI2RX_PAD_SINK].flags = MEDIA_PAD_FL_SINK;
for (i = CSI2RX_PAD_SOURCE_STREAM0; i < CSI2RX_PAD_MAX; i++)
csi2rx->pads[i].flags = MEDIA_PAD_FL_SOURCE;
+ csi2rx->subdev.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
ret = media_entity_pads_init(&csi2rx->subdev.entity, CSI2RX_PAD_MAX,
csi2rx->pads);


I don't understand this one. There's nothing to configure in cdns-csi2rx
from userspace, as far as I can see, so why is the dev node needed? And why
would the lack of csi2rx dev node cause sensor subdev config to fail?

Sensor config does not fail. But when I run media-ctl to set the format
on /dev/media0, I get an error message that comes because the devnode
for the bridge does not exist. I was not 100% sure about this patch but
I figured if media-ctl expects it then it should be exposed.

I don't mind dropping this patch. Just want to make sure what the right
thing to do here is. Should every element of the pipeline have a devnode
or not?

Tbh, I don't know. But I don't see why they should have. Also, my test works fine if I remove the devnode here.

What media-ctl parameters did you use which fails?

Tomi