]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: ti: j721e-csi2rx: Fix error handling for media_entity_remote_source_pad_unique()
authorChen Ni <nichen@iscas.ac.cn>
Fri, 22 May 2026 01:57:34 +0000 (09:57 +0800)
committerSakari Ailus <sakari.ailus@linux.intel.com>
Thu, 28 May 2026 18:25:38 +0000 (21:25 +0300)
The media_entity_remote_source_pad_unique() function returns an error
pointer on failure, not NULL. Fix the check to use IS_ERR() and return
PTR_ERR() to correctly handle allocation failures.

Fixes: 982135c0eac6 ("media: ti: j721e-csi2rx: add a subdev for the core device")
Fixes: 3ed9c0a1fdba ("media: ti: j721e-csi2rx: add multistream support")
Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c

index ef74e2da19b686dc2dc7654dc2b626f191f8a578..4769931b19306d16bdfd410095adbd1f7209b4f6 100644 (file)
@@ -887,9 +887,9 @@ static int ti_csi2rx_get_stream(struct ti_csi2rx_ctx *ctx)
 
        /* Get the source pad connected to this ctx */
        pad = media_entity_remote_source_pad_unique(ctx->pad.entity);
-       if (!pad) {
+       if (IS_ERR(pad)) {
                dev_err(csi->dev, "No pad connected to ctx %d\n", ctx->idx);
-               return -ENODEV;
+               return PTR_ERR(pad);
        }
 
        state = v4l2_subdev_get_locked_active_state(&csi->subdev);
@@ -1183,8 +1183,8 @@ static int ti_csi2rx_sd_enable_streams(struct v4l2_subdev *sd,
        spin_unlock_irqrestore(&dma->lock, flags);
 
        remote_pad = media_entity_remote_source_pad_unique(&csi->subdev.entity);
-       if (!remote_pad)
-               return -ENODEV;
+       if (IS_ERR(remote_pad))
+               return PTR_ERR(remote_pad);
        sink_streams = v4l2_subdev_state_xlate_streams(state, pad,
                                                       TI_CSI2RX_PAD_SINK,
                                                       &streams_mask);
@@ -1218,8 +1218,8 @@ static int ti_csi2rx_sd_disable_streams(struct v4l2_subdev *sd,
                writel(0, csi->shim + SHIM_CNTL);
 
        remote_pad = media_entity_remote_source_pad_unique(&csi->subdev.entity);
-       if (!remote_pad)
-               return -ENODEV;
+       if (IS_ERR(remote_pad))
+               return PTR_ERR(remote_pad);
        sink_streams = v4l2_subdev_state_xlate_streams(state, pad,
                                                       TI_CSI2RX_PAD_SINK,
                                                       &streams_mask);