Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: omap3isp: configure entity functions

For the various subdevices, set the function field.

This fixes v4l2-compliance errors:

$ v4l2-compliance -M0
v4l2-compliance 1.33.0-5410, 32 bits, 64-bit time_t
v4l2-compliance SHA: c12c89c5bd70 2025-10-05 09:58:42

Compliance test for omap3isp device /dev/media0:

Media Driver Info:
Driver name : omap3isp
Model : TI OMAP3 ISP
Serial :
Bus info : platform:480bc000.isp
Media version : 6.17.0
Hardware revision: 0x000000f0 (240)
Driver version : 6.17.0

Required ioctls:
test MEDIA_IOC_DEVICE_INFO: OK
test invalid ioctls: OK

Allow for multiple opens:
test second /dev/media0 open: OK
test MEDIA_IOC_DEVICE_INFO: OK
test for unlimited opens: OK

Media Controller ioctls:
fail: v4l2-test-media.cpp(108): function == MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN
fail: v4l2-test-media.cpp(196): checkFunction(ent.function, true)
test MEDIA_IOC_G_TOPOLOGY: FAIL
fail: v4l2-test-media.cpp(398): num_data_links != num_links
test MEDIA_IOC_ENUM_ENTITIES/LINKS: FAIL
test MEDIA_IOC_SETUP_LINK: OK

Total for omap3isp device /dev/media0: 8, Succeeded: 6, Failed: 2, Warnings: 0

Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>

+6
+1
drivers/media/platform/ti/omap3isp/ispccdc.c
··· 2675 2675 pads[CCDC_PAD_SOURCE_OF].flags = MEDIA_PAD_FL_SOURCE; 2676 2676 2677 2677 me->ops = &ccdc_media_ops; 2678 + me->function = MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV; 2678 2679 ret = media_entity_pads_init(me, CCDC_PADS_NUM, pads); 2679 2680 if (ret < 0) 2680 2681 return ret;
+1
drivers/media/platform/ti/omap3isp/ispccp2.c
··· 1086 1086 pads[CCP2_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE; 1087 1087 1088 1088 me->ops = &ccp2_media_ops; 1089 + me->function = MEDIA_ENT_F_VID_IF_BRIDGE; 1089 1090 ret = media_entity_pads_init(me, CCP2_PADS_NUM, pads); 1090 1091 if (ret < 0) 1091 1092 return ret;
+1
drivers/media/platform/ti/omap3isp/ispcsi2.c
··· 1251 1251 | MEDIA_PAD_FL_MUST_CONNECT; 1252 1252 1253 1253 me->ops = &csi2_media_ops; 1254 + me->function = MEDIA_ENT_F_VID_IF_BRIDGE; 1254 1255 ret = media_entity_pads_init(me, CSI2_PADS_NUM, pads); 1255 1256 if (ret < 0) 1256 1257 return ret;
+1
drivers/media/platform/ti/omap3isp/isppreview.c
··· 2294 2294 pads[PREV_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE; 2295 2295 2296 2296 me->ops = &preview_media_ops; 2297 + me->function = MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER; 2297 2298 ret = media_entity_pads_init(me, PREV_PADS_NUM, pads); 2298 2299 if (ret < 0) 2299 2300 goto error_handler_free;
+1
drivers/media/platform/ti/omap3isp/ispresizer.c
··· 1738 1738 pads[RESZ_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE; 1739 1739 1740 1740 me->ops = &resizer_media_ops; 1741 + me->function = MEDIA_ENT_F_PROC_VIDEO_SCALER; 1741 1742 ret = media_entity_pads_init(me, RESZ_PADS_NUM, pads); 1742 1743 if (ret < 0) 1743 1744 return ret;
+1
drivers/media/platform/ti/omap3isp/ispstat.c
··· 1037 1037 1038 1038 stat->pad.flags = MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_MUST_CONNECT; 1039 1039 me->ops = NULL; 1040 + me->function = MEDIA_ENT_F_PROC_VIDEO_STATISTICS; 1040 1041 1041 1042 return media_entity_pads_init(me, 1, &stat->pad); 1042 1043 }