The 4 pads of the links between kisp1_isp and the params and stats entities transmit metadata. This patch adds the flag MEDIA_PAD_FL_METADATA to those pads. In addition it initializes the width and height of the pads formats to 0 since metadata format has no dimensions. This fixes the TODO item: "Fix pad format size for statistics and parameters entities." So the patch also removes this item. Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@xxxxxxxxxxxxx> --- drivers/staging/media/rkisp1/TODO | 1 - drivers/staging/media/rkisp1/rkisp1-isp.c | 10 ++++++---- drivers/staging/media/rkisp1/rkisp1-params.c | 2 +- drivers/staging/media/rkisp1/rkisp1-stats.c | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/staging/media/rkisp1/TODO b/drivers/staging/media/rkisp1/TODO index 0aa9877dd64a..c10e8cb4cc5a 100644 --- a/drivers/staging/media/rkisp1/TODO +++ b/drivers/staging/media/rkisp1/TODO @@ -1,7 +1,6 @@ * Don't use v4l2_async_notifier_parse_fwnode_endpoints_by_port(). e.g. isp_parse_of_endpoints in drivers/media/platform/omap3isp/isp.c cio2_parse_firmware in drivers/media/pci/intel/ipu3/ipu3-cio2.c. -* Fix pad format size for statistics and parameters entities. * Use threaded interrupt for rkisp1_stats_isr(), remove work queue. * Fix checkpatch errors. * Make sure uapi structs have the same size and layout in 32 and 62 bits, diff --git a/drivers/staging/media/rkisp1/rkisp1-isp.c b/drivers/staging/media/rkisp1/rkisp1-isp.c index a41c6ff14009..bca9e3d1d94b 100644 --- a/drivers/staging/media/rkisp1/rkisp1-isp.c +++ b/drivers/staging/media/rkisp1/rkisp1-isp.c @@ -654,8 +654,8 @@ static int rkisp1_isp_init_config(struct v4l2_subdev *sd, RKISP1_ISP_PAD_SINK_PARAMS); src_fmt = v4l2_subdev_get_try_format(sd, cfg, RKISP1_ISP_PAD_SOURCE_STATS); - sink_fmt->width = RKISP1_DEFAULT_WIDTH; - sink_fmt->height = RKISP1_DEFAULT_HEIGHT; + sink_fmt->width = 0; + sink_fmt->height = 0; sink_fmt->field = V4L2_FIELD_NONE; sink_fmt->code = MEDIA_BUS_FMT_FIXED; *src_fmt = *sink_fmt; @@ -1041,9 +1041,11 @@ int rkisp1_isp_register(struct rkisp1_device *rkisp1, pads[RKISP1_ISP_PAD_SINK_VIDEO].flags = MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_MUST_CONNECT; - pads[RKISP1_ISP_PAD_SINK_PARAMS].flags = MEDIA_PAD_FL_SINK; + pads[RKISP1_ISP_PAD_SINK_PARAMS].flags = + MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_METADATA; pads[RKISP1_ISP_PAD_SOURCE_VIDEO].flags = MEDIA_PAD_FL_SOURCE; - pads[RKISP1_ISP_PAD_SOURCE_STATS].flags = MEDIA_PAD_FL_SOURCE; + pads[RKISP1_ISP_PAD_SOURCE_STATS].flags = + MEDIA_PAD_FL_SOURCE | MEDIA_PAD_FL_METADATA; isp->sink_fmt = rkisp1_isp_mbus_info_get(RKISP1_DEF_SINK_PAD_FMT); isp->src_fmt = rkisp1_isp_mbus_info_get(RKISP1_DEF_SRC_PAD_FMT); diff --git a/drivers/staging/media/rkisp1/rkisp1-params.c b/drivers/staging/media/rkisp1/rkisp1-params.c index 44d542caf32b..e934fab50262 100644 --- a/drivers/staging/media/rkisp1/rkisp1-params.c +++ b/drivers/staging/media/rkisp1/rkisp1-params.c @@ -1601,7 +1601,7 @@ int rkisp1_params_register(struct rkisp1_params *params, rkisp1_init_params(params); video_set_drvdata(vdev, params); - node->pad.flags = MEDIA_PAD_FL_SOURCE; + node->pad.flags = MEDIA_PAD_FL_SOURCE | MEDIA_PAD_FL_METADATA; ret = media_entity_pads_init(&vdev->entity, 1, &node->pad); if (ret) goto err_release_queue; diff --git a/drivers/staging/media/rkisp1/rkisp1-stats.c b/drivers/staging/media/rkisp1/rkisp1-stats.c index 6dfcbdc3deb8..c54d69aea7de 100644 --- a/drivers/staging/media/rkisp1/rkisp1-stats.c +++ b/drivers/staging/media/rkisp1/rkisp1-stats.c @@ -481,7 +481,7 @@ int rkisp1_stats_register(struct rkisp1_stats *stats, rkisp1_init_stats(stats); video_set_drvdata(vdev, stats); - node->pad.flags = MEDIA_PAD_FL_SINK; + node->pad.flags = MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_METADATA; ret = media_entity_pads_init(&vdev->entity, 1, &node->pad); if (ret) goto err_release_queue; -- 2.17.1