[media] media framework: rename pads init function to media_entity_pads_init()

With the MC next gen rework, what's left for media_entity_init()
is to just initialize the PADs. However, certain devices, like
a FLASH led/light doesn't have any input or output PAD.

So, there's no reason why calling media_entity_init() would be
mandatory. Also, despite its name, what this function actually
does is to initialize the PADs data. So, rename it to
media_entity_pads_init() in order to reflect that.

The media entity actual init happens during entity register,
at media_device_register_entity(). We should move init of
num_links and num_backlinks to it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
Mauro Carvalho Chehab 2015-12-11 07:44:40 -02:00
parent b83e250833
commit ab22e77cd3
68 changed files with 102 additions and 99 deletions

View File

@ -101,14 +101,18 @@ include/media/media-entity.h. The structure is usually embedded into a
higher-level structure, such as a v4l2_subdev or video_device instance, higher-level structure, such as a v4l2_subdev or video_device instance,
although drivers can allocate entities directly. although drivers can allocate entities directly.
Drivers initialize entities by calling Drivers initialize entity pads by calling
media_entity_init(struct media_entity *entity, u16 num_pads, media_entity_pads_init(struct media_entity *entity, u16 num_pads,
struct media_pad *pads); struct media_pad *pads);
The media_entity name, type, flags, revision and group_id fields can be If no pads are needed, drivers could directly fill entity->num_pads
initialized before or after calling media_entity_init. Entities embedded in with 0 and entity->pads with NULL or to call the above function that
higher-level standard structures can have some of those fields set by the will do the same.
The media_entity name, type, flags, revision and group_id fields should be
initialized before calling media_device_register_entity(). Entities embedded
in higher-level standard structures can have some of those fields set by the
higher-level framework. higher-level framework.
As the number of pads is known in advance, the pads array is not allocated As the number of pads is known in advance, the pads array is not allocated
@ -116,10 +120,10 @@ dynamically but is managed by the entity driver. Most drivers will embed the
pads array in a driver-specific structure, avoiding dynamic allocation. pads array in a driver-specific structure, avoiding dynamic allocation.
Drivers must set the direction of every pad in the pads array before calling Drivers must set the direction of every pad in the pads array before calling
media_entity_init. The function will initialize the other pads fields. media_entity_pads_init. The function will initialize the other pads fields.
Unlike the number of pads, the total number of links isn't always known in Unlike the number of pads, the total number of links isn't always known in
advance by the entity driver. As an initial estimate, media_entity_init advance by the entity driver. As an initial estimate, media_entity_pads_init
pre-allocates a number of links equal to the number of pads. The links array pre-allocates a number of links equal to the number of pads. The links array
will be reallocated if it grows beyond the initial estimate. will be reallocated if it grows beyond the initial estimate.

View File

@ -295,12 +295,12 @@ module owner. This is done for you if you use the i2c helper functions.
If integration with the media framework is needed, you must initialize the If integration with the media framework is needed, you must initialize the
media_entity struct embedded in the v4l2_subdev struct (entity field) by media_entity struct embedded in the v4l2_subdev struct (entity field) by
calling media_entity_init(): calling media_entity_pads_init(), if the entity has pads:
struct media_pad *pads = &my_sd->pads; struct media_pad *pads = &my_sd->pads;
int err; int err;
err = media_entity_init(&sd->entity, npads, pads); err = media_entity_pads_init(&sd->entity, npads, pads);
The pads array must have been previously initialized. There is no need to The pads array must have been previously initialized. There is no need to
manually set the struct media_entity function and name fields, but the manually set the struct media_entity function and name fields, but the
@ -695,12 +695,12 @@ difference is that the inode argument is omitted since it is never used.
If integration with the media framework is needed, you must initialize the If integration with the media framework is needed, you must initialize the
media_entity struct embedded in the video_device struct (entity field) by media_entity struct embedded in the video_device struct (entity field) by
calling media_entity_init(): calling media_entity_pads_init():
struct media_pad *pad = &my_vdev->pad; struct media_pad *pad = &my_vdev->pad;
int err; int err;
err = media_entity_init(&vdev->entity, 1, pad); err = media_entity_pads_init(&vdev->entity, 1, pad);
The pads array must have been previously initialized. There is no need to The pads array must have been previously initialized. There is no need to
manually set the struct media_entity type and name fields. manually set the struct media_entity type and name fields.

View File

@ -289,13 +289,13 @@ struct v4l2_subdev_ops {
然后,你必须用一个唯一的名字初始化 subdev->name并初始化模块的 然后,你必须用一个唯一的名字初始化 subdev->name并初始化模块的
owner 域。若使用 i2c 辅助函数,这些都会帮你处理好。 owner 域。若使用 i2c 辅助函数,这些都会帮你处理好。
若需同媒体框架整合,你必须调用 media_entity_init() 初始化 v4l2_subdev 若需同媒体框架整合,你必须调用 media_entity_pads_init() 初始化 v4l2_subdev
结构体中的 media_entity 结构体entity 域): 结构体中的 media_entity 结构体entity 域):
struct media_pad *pads = &my_sd->pads; struct media_pad *pads = &my_sd->pads;
int err; int err;
err = media_entity_init(&sd->entity, npads, pads); err = media_entity_pads_init(&sd->entity, npads, pads);
pads 数组必须预先初始化。无须手动设置 media_entity 的 type 和 pads 数组必须预先初始化。无须手动设置 media_entity 的 type 和
name 域但如有必要revision 域必须初始化。 name 域但如有必要revision 域必须初始化。
@ -596,13 +596,13 @@ void v4l2_disable_ioctl(struct video_device *vdev, unsigned int cmd);
v4l2_file_operations 结构体是 file_operations 的一个子集。其主要 v4l2_file_operations 结构体是 file_operations 的一个子集。其主要
区别在于:因 inode 参数从未被使用,它将被忽略。 区别在于:因 inode 参数从未被使用,它将被忽略。
如果需要与媒体框架整合,你必须通过调用 media_entity_init() 初始化 如果需要与媒体框架整合,你必须通过调用 media_entity_pads_init() 初始化
嵌入在 video_device 结构体中的 media_entityentity 域)结构体: 嵌入在 video_device 结构体中的 media_entityentity 域)结构体:
struct media_pad *pad = &my_vdev->pad; struct media_pad *pad = &my_vdev->pad;
int err; int err;
err = media_entity_init(&vdev->entity, 1, pad); err = media_entity_pads_init(&vdev->entity, 1, pad);
pads 数组必须预先初始化。没有必要手动设置 media_entity 的 type 和 pads 数组必须预先初始化。没有必要手动设置 media_entity 的 type 和
name 域。 name 域。

View File

@ -245,7 +245,7 @@ static int dvb_create_tsout_entity(struct dvb_device *dvbdev,
entity->function = MEDIA_ENT_F_IO_DTV; entity->function = MEDIA_ENT_F_IO_DTV;
pads->flags = MEDIA_PAD_FL_SINK; pads->flags = MEDIA_PAD_FL_SINK;
ret = media_entity_init(entity, 1, pads); ret = media_entity_pads_init(entity, 1, pads);
if (ret < 0) if (ret < 0)
return ret; return ret;
@ -340,7 +340,7 @@ static int dvb_create_media_entity(struct dvb_device *dvbdev,
} }
if (npads) { if (npads) {
ret = media_entity_init(dvbdev->entity, npads, dvbdev->pads); ret = media_entity_pads_init(dvbdev->entity, npads, dvbdev->pads);
if (ret) if (ret)
return ret; return ret;
} }

View File

@ -768,7 +768,7 @@ static int au8522_probe(struct i2c_client *client,
state->pads[AU8522_PAD_VBI_OUT].flags = MEDIA_PAD_FL_SOURCE; state->pads[AU8522_PAD_VBI_OUT].flags = MEDIA_PAD_FL_SOURCE;
sd->entity.function = MEDIA_ENT_F_ATV_DECODER; sd->entity.function = MEDIA_ENT_F_ATV_DECODER;
ret = media_entity_init(&sd->entity, ARRAY_SIZE(state->pads), ret = media_entity_pads_init(&sd->entity, ARRAY_SIZE(state->pads),
state->pads); state->pads);
if (ret < 0) { if (ret < 0) {
v4l_info(client, "failed to initialize media entity!\n"); v4l_info(client, "failed to initialize media entity!\n");

View File

@ -1158,7 +1158,7 @@ static int ad9389b_probe(struct i2c_client *client, const struct i2c_device_id *
state->rgb_quantization_range_ctrl->is_private = true; state->rgb_quantization_range_ctrl->is_private = true;
state->pad.flags = MEDIA_PAD_FL_SINK; state->pad.flags = MEDIA_PAD_FL_SINK;
err = media_entity_init(&sd->entity, 1, &state->pad); err = media_entity_pads_init(&sd->entity, 1, &state->pad);
if (err) if (err)
goto err_hdl; goto err_hdl;

View File

@ -512,7 +512,7 @@ static int adp1653_probe(struct i2c_client *client,
if (ret) if (ret)
goto free_and_quit; goto free_and_quit;
ret = media_entity_init(&flash->subdev.entity, 0, NULL); ret = media_entity_pads_init(&flash->subdev.entity, 0, NULL);
if (ret < 0) if (ret < 0)
goto free_and_quit; goto free_and_quit;

View File

@ -1214,7 +1214,7 @@ static int adv7180_probe(struct i2c_client *client,
state->pad.flags = MEDIA_PAD_FL_SOURCE; state->pad.flags = MEDIA_PAD_FL_SOURCE;
sd->entity.flags |= MEDIA_ENT_F_ATV_DECODER; sd->entity.flags |= MEDIA_ENT_F_ATV_DECODER;
ret = media_entity_init(&sd->entity, 1, &state->pad); ret = media_entity_pads_init(&sd->entity, 1, &state->pad);
if (ret) if (ret)
goto err_free_ctrl; goto err_free_ctrl;

View File

@ -1482,7 +1482,7 @@ static int adv7511_probe(struct i2c_client *client, const struct i2c_device_id *
state->rgb_quantization_range_ctrl->is_private = true; state->rgb_quantization_range_ctrl->is_private = true;
state->pad.flags = MEDIA_PAD_FL_SINK; state->pad.flags = MEDIA_PAD_FL_SINK;
err = media_entity_init(&sd->entity, 1, &state->pad); err = media_entity_pads_init(&sd->entity, 1, &state->pad);
if (err) if (err)
goto err_hdl; goto err_hdl;

View File

@ -3208,7 +3208,7 @@ static int adv76xx_probe(struct i2c_client *client,
state->pads[i].flags = MEDIA_PAD_FL_SINK; state->pads[i].flags = MEDIA_PAD_FL_SINK;
state->pads[state->source_pad].flags = MEDIA_PAD_FL_SOURCE; state->pads[state->source_pad].flags = MEDIA_PAD_FL_SOURCE;
err = media_entity_init(&sd->entity, state->source_pad + 1, err = media_entity_pads_init(&sd->entity, state->source_pad + 1,
state->pads); state->pads);
if (err) if (err)
goto err_work_queues; goto err_work_queues;

View File

@ -3309,7 +3309,7 @@ static int adv7842_probe(struct i2c_client *client,
adv7842_delayed_work_enable_hotplug); adv7842_delayed_work_enable_hotplug);
state->pad.flags = MEDIA_PAD_FL_SOURCE; state->pad.flags = MEDIA_PAD_FL_SOURCE;
err = media_entity_init(&sd->entity, 1, &state->pad); err = media_entity_pads_init(&sd->entity, 1, &state->pad);
if (err) if (err)
goto err_work_queues; goto err_work_queues;

View File

@ -827,7 +827,7 @@ static int as3645a_probe(struct i2c_client *client,
if (ret < 0) if (ret < 0)
goto done; goto done;
ret = media_entity_init(&flash->subdev.entity, 0, NULL); ret = media_entity_pads_init(&flash->subdev.entity, 0, NULL);
if (ret < 0) if (ret < 0)
goto done; goto done;

View File

@ -5213,7 +5213,7 @@ static int cx25840_probe(struct i2c_client *client,
state->pads[CX25840_PAD_VBI_OUT].flags = MEDIA_PAD_FL_SOURCE; state->pads[CX25840_PAD_VBI_OUT].flags = MEDIA_PAD_FL_SOURCE;
sd->entity.function = MEDIA_ENT_F_ATV_DECODER; sd->entity.function = MEDIA_ENT_F_ATV_DECODER;
ret = media_entity_init(&sd->entity, ARRAY_SIZE(state->pads), ret = media_entity_pads_init(&sd->entity, ARRAY_SIZE(state->pads),
state->pads); state->pads);
if (ret < 0) { if (ret < 0) {
v4l_info(client, "failed to initialize media entity!\n"); v4l_info(client, "failed to initialize media entity!\n");

View File

@ -365,7 +365,7 @@ static int lm3560_subdev_init(struct lm3560_flash *flash,
rval = lm3560_init_controls(flash, led_no); rval = lm3560_init_controls(flash, led_no);
if (rval) if (rval)
goto err_out; goto err_out;
rval = media_entity_init(&flash->subdev_led[led_no].entity, 0, NULL); rval = media_entity_pads_init(&flash->subdev_led[led_no].entity, 0, NULL);
if (rval < 0) if (rval < 0)
goto err_out; goto err_out;
flash->subdev_led[led_no].entity.function = MEDIA_ENT_F_FLASH; flash->subdev_led[led_no].entity.function = MEDIA_ENT_F_FLASH;

View File

@ -282,7 +282,7 @@ static int lm3646_subdev_init(struct lm3646_flash *flash)
rval = lm3646_init_controls(flash); rval = lm3646_init_controls(flash);
if (rval) if (rval)
goto err_out; goto err_out;
rval = media_entity_init(&flash->subdev_led.entity, 0, NULL); rval = media_entity_pads_init(&flash->subdev_led.entity, 0, NULL);
if (rval < 0) if (rval < 0)
goto err_out; goto err_out;
flash->subdev_led.entity.function = MEDIA_ENT_F_FLASH; flash->subdev_led.entity.function = MEDIA_ENT_F_FLASH;

View File

@ -975,7 +975,7 @@ static int m5mols_probe(struct i2c_client *client,
sd->internal_ops = &m5mols_subdev_internal_ops; sd->internal_ops = &m5mols_subdev_internal_ops;
info->pad.flags = MEDIA_PAD_FL_SOURCE; info->pad.flags = MEDIA_PAD_FL_SOURCE;
ret = media_entity_init(&sd->entity, 1, &info->pad); ret = media_entity_pads_init(&sd->entity, 1, &info->pad);
if (ret < 0) if (ret < 0)
return ret; return ret;
sd->entity.function = MEDIA_ENT_F_CAM_SENSOR; sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;

View File

@ -799,7 +799,7 @@ static int mt9m032_probe(struct i2c_client *client,
sensor->subdev.ctrl_handler = &sensor->ctrls; sensor->subdev.ctrl_handler = &sensor->ctrls;
sensor->pad.flags = MEDIA_PAD_FL_SOURCE; sensor->pad.flags = MEDIA_PAD_FL_SOURCE;
ret = media_entity_init(&sensor->subdev.entity, 1, &sensor->pad); ret = media_entity_pads_init(&sensor->subdev.entity, 1, &sensor->pad);
if (ret < 0) if (ret < 0)
goto error_ctrl; goto error_ctrl;

View File

@ -1112,7 +1112,7 @@ static int mt9p031_probe(struct i2c_client *client,
mt9p031->subdev.internal_ops = &mt9p031_subdev_internal_ops; mt9p031->subdev.internal_ops = &mt9p031_subdev_internal_ops;
mt9p031->pad.flags = MEDIA_PAD_FL_SOURCE; mt9p031->pad.flags = MEDIA_PAD_FL_SOURCE;
ret = media_entity_init(&mt9p031->subdev.entity, 1, &mt9p031->pad); ret = media_entity_pads_init(&mt9p031->subdev.entity, 1, &mt9p031->pad);
if (ret < 0) if (ret < 0)
goto done; goto done;

View File

@ -933,7 +933,7 @@ static int mt9t001_probe(struct i2c_client *client,
mt9t001->subdev.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; mt9t001->subdev.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
mt9t001->pad.flags = MEDIA_PAD_FL_SOURCE; mt9t001->pad.flags = MEDIA_PAD_FL_SOURCE;
ret = media_entity_init(&mt9t001->subdev.entity, 1, &mt9t001->pad); ret = media_entity_pads_init(&mt9t001->subdev.entity, 1, &mt9t001->pad);
done: done:
if (ret < 0) { if (ret < 0) {

View File

@ -1046,7 +1046,7 @@ static int mt9v032_probe(struct i2c_client *client,
mt9v032->subdev.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; mt9v032->subdev.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
mt9v032->pad.flags = MEDIA_PAD_FL_SOURCE; mt9v032->pad.flags = MEDIA_PAD_FL_SOURCE;
ret = media_entity_init(&mt9v032->subdev.entity, 1, &mt9v032->pad); ret = media_entity_pads_init(&mt9v032->subdev.entity, 1, &mt9v032->pad);
if (ret < 0) if (ret < 0)
goto err; goto err;

View File

@ -780,7 +780,7 @@ static int noon010_probe(struct i2c_client *client,
info->pad.flags = MEDIA_PAD_FL_SOURCE; info->pad.flags = MEDIA_PAD_FL_SOURCE;
sd->entity.function = MEDIA_ENT_F_CAM_SENSOR; sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
ret = media_entity_init(&sd->entity, 1, &info->pad); ret = media_entity_pads_init(&sd->entity, 1, &info->pad);
if (ret < 0) if (ret < 0)
goto np_err; goto np_err;

View File

@ -1446,7 +1446,7 @@ static int ov2659_probe(struct i2c_client *client,
#if defined(CONFIG_MEDIA_CONTROLLER) #if defined(CONFIG_MEDIA_CONTROLLER)
ov2659->pad.flags = MEDIA_PAD_FL_SOURCE; ov2659->pad.flags = MEDIA_PAD_FL_SOURCE;
sd->entity.function = MEDIA_ENT_F_CAM_SENSOR; sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
ret = media_entity_init(&sd->entity, 1, &ov2659->pad); ret = media_entity_pads_init(&sd->entity, 1, &ov2659->pad);
if (ret < 0) { if (ret < 0) {
v4l2_ctrl_handler_free(&ov2659->ctrls); v4l2_ctrl_handler_free(&ov2659->ctrls);
return ret; return ret;

View File

@ -1501,7 +1501,7 @@ static int ov965x_probe(struct i2c_client *client,
ov965x->pad.flags = MEDIA_PAD_FL_SOURCE; ov965x->pad.flags = MEDIA_PAD_FL_SOURCE;
sd->entity.function = MEDIA_ENT_F_CAM_SENSOR; sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
ret = media_entity_init(&sd->entity, 1, &ov965x->pad); ret = media_entity_pads_init(&sd->entity, 1, &ov965x->pad);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -1690,7 +1690,7 @@ static int s5c73m3_probe(struct i2c_client *client,
state->sensor_pads[S5C73M3_ISP_PAD].flags = MEDIA_PAD_FL_SOURCE; state->sensor_pads[S5C73M3_ISP_PAD].flags = MEDIA_PAD_FL_SOURCE;
sd->entity.function = MEDIA_ENT_F_CAM_SENSOR; sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
ret = media_entity_init(&sd->entity, S5C73M3_NUM_PADS, ret = media_entity_pads_init(&sd->entity, S5C73M3_NUM_PADS,
state->sensor_pads); state->sensor_pads);
if (ret < 0) if (ret < 0)
return ret; return ret;
@ -1706,7 +1706,7 @@ static int s5c73m3_probe(struct i2c_client *client,
state->oif_pads[OIF_SOURCE_PAD].flags = MEDIA_PAD_FL_SOURCE; state->oif_pads[OIF_SOURCE_PAD].flags = MEDIA_PAD_FL_SOURCE;
oif_sd->entity.function = MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN; oif_sd->entity.function = MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN;
ret = media_entity_init(&oif_sd->entity, OIF_NUM_PADS, ret = media_entity_pads_init(&oif_sd->entity, OIF_NUM_PADS,
state->oif_pads); state->oif_pads);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -962,7 +962,7 @@ static int s5k4ecgx_probe(struct i2c_client *client,
priv->pad.flags = MEDIA_PAD_FL_SOURCE; priv->pad.flags = MEDIA_PAD_FL_SOURCE;
sd->entity.function = MEDIA_ENT_F_CAM_SENSOR; sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
ret = media_entity_init(&sd->entity, 1, &priv->pad); ret = media_entity_pads_init(&sd->entity, 1, &priv->pad);
if (ret) if (ret)
return ret; return ret;

View File

@ -1905,7 +1905,7 @@ static int s5k5baf_configure_subdevs(struct s5k5baf *state,
state->cis_pad.flags = MEDIA_PAD_FL_SOURCE; state->cis_pad.flags = MEDIA_PAD_FL_SOURCE;
sd->entity.function = MEDIA_ENT_F_CAM_SENSOR; sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
ret = media_entity_init(&sd->entity, NUM_CIS_PADS, &state->cis_pad); ret = media_entity_pads_init(&sd->entity, NUM_CIS_PADS, &state->cis_pad);
if (ret < 0) if (ret < 0)
goto err; goto err;
@ -1920,7 +1920,7 @@ static int s5k5baf_configure_subdevs(struct s5k5baf *state,
state->pads[PAD_CIS].flags = MEDIA_PAD_FL_SINK; state->pads[PAD_CIS].flags = MEDIA_PAD_FL_SINK;
state->pads[PAD_OUT].flags = MEDIA_PAD_FL_SOURCE; state->pads[PAD_OUT].flags = MEDIA_PAD_FL_SOURCE;
sd->entity.function = MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN; sd->entity.function = MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN;
ret = media_entity_init(&sd->entity, NUM_ISP_PADS, state->pads); ret = media_entity_pads_init(&sd->entity, NUM_ISP_PADS, state->pads);
if (!ret) if (!ret)
return 0; return 0;

View File

@ -333,7 +333,7 @@ static int s5k6a3_probe(struct i2c_client *client,
sensor->format.height = S5K6A3_DEFAULT_HEIGHT; sensor->format.height = S5K6A3_DEFAULT_HEIGHT;
sensor->pad.flags = MEDIA_PAD_FL_SOURCE; sensor->pad.flags = MEDIA_PAD_FL_SOURCE;
ret = media_entity_init(&sd->entity, 1, &sensor->pad); ret = media_entity_pads_init(&sd->entity, 1, &sensor->pad);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -1578,7 +1578,7 @@ static int s5k6aa_probe(struct i2c_client *client,
s5k6aa->pad.flags = MEDIA_PAD_FL_SOURCE; s5k6aa->pad.flags = MEDIA_PAD_FL_SOURCE;
sd->entity.function = MEDIA_ENT_F_CAM_SENSOR; sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
ret = media_entity_init(&sd->entity, 1, &s5k6aa->pad); ret = media_entity_pads_init(&sd->entity, 1, &s5k6aa->pad);
if (ret) if (ret)
return ret; return ret;

View File

@ -2487,11 +2487,11 @@ static int smiapp_register_subdevs(struct smiapp_sensor *sensor)
if (!last) if (!last)
continue; continue;
rval = media_entity_init(&this->sd.entity, rval = media_entity_pads_init(&this->sd.entity,
this->npads, this->pads); this->npads, this->pads);
if (rval) { if (rval) {
dev_err(&client->dev, dev_err(&client->dev,
"media_entity_init failed\n"); "media_entity_pads_init failed\n");
return rval; return rval;
} }
@ -3077,7 +3077,7 @@ static int smiapp_probe(struct i2c_client *client,
sensor->src->sensor = sensor; sensor->src->sensor = sensor;
sensor->src->pads[0].flags = MEDIA_PAD_FL_SOURCE; sensor->src->pads[0].flags = MEDIA_PAD_FL_SOURCE;
rval = media_entity_init(&sensor->src->sd.entity, 2, rval = media_entity_pads_init(&sensor->src->sd.entity, 2,
sensor->src->pads); sensor->src->pads);
if (rval < 0) if (rval < 0)
return rval; return rval;

View File

@ -1889,7 +1889,7 @@ static int tc358743_probe(struct i2c_client *client,
} }
state->pad.flags = MEDIA_PAD_FL_SOURCE; state->pad.flags = MEDIA_PAD_FL_SOURCE;
err = media_entity_init(&sd->entity, 1, &state->pad); err = media_entity_pads_init(&sd->entity, 1, &state->pad);
if (err < 0) if (err < 0)
goto err_hdl; goto err_hdl;

View File

@ -1097,7 +1097,7 @@ tvp514x_probe(struct i2c_client *client, const struct i2c_device_id *id)
decoder->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; decoder->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
decoder->sd.entity.flags |= MEDIA_ENT_F_ATV_DECODER; decoder->sd.entity.flags |= MEDIA_ENT_F_ATV_DECODER;
ret = media_entity_init(&decoder->sd.entity, 1, &decoder->pad); ret = media_entity_pads_init(&decoder->sd.entity, 1, &decoder->pad);
if (ret < 0) { if (ret < 0) {
v4l2_err(sd, "%s decoder driver failed to register !!\n", v4l2_err(sd, "%s decoder driver failed to register !!\n",
sd->name); sd->name);

View File

@ -1014,7 +1014,7 @@ static int tvp7002_probe(struct i2c_client *c, const struct i2c_device_id *id)
device->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; device->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
device->sd.entity.flags |= MEDIA_ENT_F_ATV_DECODER; device->sd.entity.flags |= MEDIA_ENT_F_ATV_DECODER;
error = media_entity_init(&device->sd.entity, 1, &device->pad); error = media_entity_pads_init(&device->sd.entity, 1, &device->pad);
if (error < 0) if (error < 0)
return error; return error;
#endif #endif

View File

@ -623,6 +623,8 @@ int __must_check media_device_register_entity(struct media_device *mdev,
WARN_ON(entity->graph_obj.mdev != NULL); WARN_ON(entity->graph_obj.mdev != NULL);
entity->graph_obj.mdev = mdev; entity->graph_obj.mdev = mdev;
INIT_LIST_HEAD(&entity->links); INIT_LIST_HEAD(&entity->links);
entity->num_links = 0;
entity->num_backlinks = 0;
spin_lock(&mdev->lock); spin_lock(&mdev->lock);
/* Initialize media_gobj embedded at the entity */ /* Initialize media_gobj embedded at the entity */

View File

@ -197,7 +197,7 @@ void media_gobj_remove(struct media_gobj *gobj)
} }
/** /**
* media_entity_init - Initialize a media entity * media_entity_pads_init - Initialize a media entity
* *
* @num_pads: Total number of sink and source pads. * @num_pads: Total number of sink and source pads.
* @pads: Array of 'num_pads' pads. * @pads: Array of 'num_pads' pads.
@ -216,18 +216,15 @@ void media_gobj_remove(struct media_gobj *gobj)
* number of allocated elements. * number of allocated elements.
* *
* The pads array is managed by the entity driver and passed to * The pads array is managed by the entity driver and passed to
* media_entity_init() where its pointer will be stored in the entity structure. * media_entity_pads_init() where its pointer will be stored in the entity structure.
*/ */
int int
media_entity_init(struct media_entity *entity, u16 num_pads, media_entity_pads_init(struct media_entity *entity, u16 num_pads,
struct media_pad *pads) struct media_pad *pads)
{ {
struct media_device *mdev = entity->graph_obj.mdev; struct media_device *mdev = entity->graph_obj.mdev;
unsigned int i; unsigned int i;
entity->group_id = 0;
entity->num_links = 0;
entity->num_backlinks = 0;
entity->num_pads = num_pads; entity->num_pads = num_pads;
entity->pads = pads; entity->pads = pads;
@ -247,7 +244,7 @@ media_entity_init(struct media_entity *entity, u16 num_pads,
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(media_entity_init); EXPORT_SYMBOL_GPL(media_entity_pads_init);
void void
media_entity_cleanup(struct media_entity *entity) media_entity_cleanup(struct media_entity *entity)

View File

@ -1799,7 +1799,7 @@ static int fimc_register_capture_device(struct fimc_dev *fimc,
vid_cap->wb_fmt.code = fmt->mbus_code; vid_cap->wb_fmt.code = fmt->mbus_code;
vid_cap->vd_pad.flags = MEDIA_PAD_FL_SINK; vid_cap->vd_pad.flags = MEDIA_PAD_FL_SINK;
ret = media_entity_init(&vfd->entity, 1, &vid_cap->vd_pad); ret = media_entity_pads_init(&vfd->entity, 1, &vid_cap->vd_pad);
if (ret) if (ret)
goto err_free_ctx; goto err_free_ctx;
@ -1891,7 +1891,7 @@ int fimc_initialize_capture_subdev(struct fimc_dev *fimc)
fimc->vid_cap.sd_pads[FIMC_SD_PAD_SINK_CAM].flags = MEDIA_PAD_FL_SINK; fimc->vid_cap.sd_pads[FIMC_SD_PAD_SINK_CAM].flags = MEDIA_PAD_FL_SINK;
fimc->vid_cap.sd_pads[FIMC_SD_PAD_SINK_FIFO].flags = MEDIA_PAD_FL_SINK; fimc->vid_cap.sd_pads[FIMC_SD_PAD_SINK_FIFO].flags = MEDIA_PAD_FL_SINK;
fimc->vid_cap.sd_pads[FIMC_SD_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE; fimc->vid_cap.sd_pads[FIMC_SD_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE;
ret = media_entity_init(&sd->entity, FIMC_SD_PADS_NUM, ret = media_entity_pads_init(&sd->entity, FIMC_SD_PADS_NUM,
fimc->vid_cap.sd_pads); fimc->vid_cap.sd_pads);
if (ret) if (ret)
return ret; return ret;

View File

@ -616,7 +616,7 @@ int fimc_isp_video_device_register(struct fimc_isp *isp,
vdev->lock = &isp->video_lock; vdev->lock = &isp->video_lock;
iv->pad.flags = MEDIA_PAD_FL_SINK; iv->pad.flags = MEDIA_PAD_FL_SINK;
ret = media_entity_init(&vdev->entity, 1, &iv->pad); ret = media_entity_pads_init(&vdev->entity, 1, &iv->pad);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -708,7 +708,7 @@ int fimc_isp_subdev_create(struct fimc_isp *isp)
isp->subdev_pads[FIMC_ISP_SD_PAD_SINK].flags = MEDIA_PAD_FL_SINK; isp->subdev_pads[FIMC_ISP_SD_PAD_SINK].flags = MEDIA_PAD_FL_SINK;
isp->subdev_pads[FIMC_ISP_SD_PAD_SRC_FIFO].flags = MEDIA_PAD_FL_SOURCE; isp->subdev_pads[FIMC_ISP_SD_PAD_SRC_FIFO].flags = MEDIA_PAD_FL_SOURCE;
isp->subdev_pads[FIMC_ISP_SD_PAD_SRC_DMA].flags = MEDIA_PAD_FL_SOURCE; isp->subdev_pads[FIMC_ISP_SD_PAD_SRC_DMA].flags = MEDIA_PAD_FL_SOURCE;
ret = media_entity_init(&sd->entity, FIMC_ISP_SD_PADS_NUM, ret = media_entity_pads_init(&sd->entity, FIMC_ISP_SD_PADS_NUM,
isp->subdev_pads); isp->subdev_pads);
if (ret) if (ret)
return ret; return ret;

View File

@ -1314,7 +1314,7 @@ static int fimc_lite_subdev_registered(struct v4l2_subdev *sd)
return ret; return ret;
fimc->vd_pad.flags = MEDIA_PAD_FL_SINK; fimc->vd_pad.flags = MEDIA_PAD_FL_SINK;
ret = media_entity_init(&vfd->entity, 1, &fimc->vd_pad); ret = media_entity_pads_init(&vfd->entity, 1, &fimc->vd_pad);
if (ret < 0) if (ret < 0)
return ret; return ret;
@ -1428,7 +1428,7 @@ static int fimc_lite_create_capture_subdev(struct fimc_lite *fimc)
fimc->subdev_pads[FLITE_SD_PAD_SINK].flags = MEDIA_PAD_FL_SINK; fimc->subdev_pads[FLITE_SD_PAD_SINK].flags = MEDIA_PAD_FL_SINK;
fimc->subdev_pads[FLITE_SD_PAD_SOURCE_DMA].flags = MEDIA_PAD_FL_SOURCE; fimc->subdev_pads[FLITE_SD_PAD_SOURCE_DMA].flags = MEDIA_PAD_FL_SOURCE;
fimc->subdev_pads[FLITE_SD_PAD_SOURCE_ISP].flags = MEDIA_PAD_FL_SOURCE; fimc->subdev_pads[FLITE_SD_PAD_SOURCE_ISP].flags = MEDIA_PAD_FL_SOURCE;
ret = media_entity_init(&sd->entity, FLITE_SD_PADS_NUM, ret = media_entity_pads_init(&sd->entity, FLITE_SD_PADS_NUM,
fimc->subdev_pads); fimc->subdev_pads);
if (ret) if (ret)
return ret; return ret;

View File

@ -739,7 +739,7 @@ int fimc_register_m2m_device(struct fimc_dev *fimc,
return PTR_ERR(fimc->m2m.m2m_dev); return PTR_ERR(fimc->m2m.m2m_dev);
} }
ret = media_entity_init(&vfd->entity, 0, NULL); ret = media_entity_pads_init(&vfd->entity, 0, NULL);
if (ret) if (ret)
goto err_me; goto err_me;

View File

@ -866,7 +866,7 @@ static int s5pcsis_probe(struct platform_device *pdev)
state->pads[CSIS_PAD_SINK].flags = MEDIA_PAD_FL_SINK; state->pads[CSIS_PAD_SINK].flags = MEDIA_PAD_FL_SINK;
state->pads[CSIS_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE; state->pads[CSIS_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE;
ret = media_entity_init(&state->sd.entity, ret = media_entity_pads_init(&state->sd.entity,
CSIS_PADS_NUM, state->pads); CSIS_PADS_NUM, state->pads);
if (ret < 0) if (ret < 0)
goto e_clkdis; goto e_clkdis;

View File

@ -2655,7 +2655,7 @@ static int ccdc_init_entities(struct isp_ccdc_device *ccdc)
pads[CCDC_PAD_SOURCE_OF].flags = MEDIA_PAD_FL_SOURCE; pads[CCDC_PAD_SOURCE_OF].flags = MEDIA_PAD_FL_SOURCE;
me->ops = &ccdc_media_ops; me->ops = &ccdc_media_ops;
ret = media_entity_init(me, CCDC_PADS_NUM, pads); ret = media_entity_pads_init(me, CCDC_PADS_NUM, pads);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -1076,7 +1076,7 @@ static int ccp2_init_entities(struct isp_ccp2_device *ccp2)
pads[CCP2_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE; pads[CCP2_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE;
me->ops = &ccp2_media_ops; me->ops = &ccp2_media_ops;
ret = media_entity_init(me, CCP2_PADS_NUM, pads); ret = media_entity_pads_init(me, CCP2_PADS_NUM, pads);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -1250,7 +1250,7 @@ static int csi2_init_entities(struct isp_csi2_device *csi2)
| MEDIA_PAD_FL_MUST_CONNECT; | MEDIA_PAD_FL_MUST_CONNECT;
me->ops = &csi2_media_ops; me->ops = &csi2_media_ops;
ret = media_entity_init(me, CSI2_PADS_NUM, pads); ret = media_entity_pads_init(me, CSI2_PADS_NUM, pads);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -2287,7 +2287,7 @@ static int preview_init_entities(struct isp_prev_device *prev)
pads[PREV_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE; pads[PREV_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE;
me->ops = &preview_media_ops; me->ops = &preview_media_ops;
ret = media_entity_init(me, PREV_PADS_NUM, pads); ret = media_entity_pads_init(me, PREV_PADS_NUM, pads);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -1733,7 +1733,7 @@ static int resizer_init_entities(struct isp_res_device *res)
pads[RESZ_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE; pads[RESZ_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE;
me->ops = &resizer_media_ops; me->ops = &resizer_media_ops;
ret = media_entity_init(me, RESZ_PADS_NUM, pads); ret = media_entity_pads_init(me, RESZ_PADS_NUM, pads);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -1028,7 +1028,7 @@ static int isp_stat_init_entities(struct ispstat *stat, const char *name,
stat->pad.flags = MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_MUST_CONNECT; stat->pad.flags = MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_MUST_CONNECT;
me->ops = NULL; me->ops = NULL;
return media_entity_init(me, 1, &stat->pad); return media_entity_pads_init(me, 1, &stat->pad);
} }
int omap3isp_stat_init(struct ispstat *stat, const char *name, int omap3isp_stat_init(struct ispstat *stat, const char *name,

View File

@ -1368,7 +1368,7 @@ int omap3isp_video_init(struct isp_video *video, const char *name)
if (IS_ERR(video->alloc_ctx)) if (IS_ERR(video->alloc_ctx))
return PTR_ERR(video->alloc_ctx); return PTR_ERR(video->alloc_ctx);
ret = media_entity_init(&video->video.entity, 1, &video->pad); ret = media_entity_pads_init(&video->video.entity, 1, &video->pad);
if (ret < 0) { if (ret < 0) {
vb2_dma_contig_cleanup_ctx(video->alloc_ctx); vb2_dma_contig_cleanup_ctx(video->alloc_ctx);
return ret; return ret;

View File

@ -1144,7 +1144,7 @@ int s3c_camif_register_video_node(struct camif_dev *camif, int idx)
goto err_vd_rel; goto err_vd_rel;
vp->pad.flags = MEDIA_PAD_FL_SINK; vp->pad.flags = MEDIA_PAD_FL_SINK;
ret = media_entity_init(&vfd->entity, 1, &vp->pad); ret = media_entity_pads_init(&vfd->entity, 1, &vp->pad);
if (ret) if (ret)
goto err_vd_rel; goto err_vd_rel;
@ -1559,7 +1559,7 @@ int s3c_camif_create_subdev(struct camif_dev *camif)
camif->pads[CAMIF_SD_PAD_SOURCE_C].flags = MEDIA_PAD_FL_SOURCE; camif->pads[CAMIF_SD_PAD_SOURCE_C].flags = MEDIA_PAD_FL_SOURCE;
camif->pads[CAMIF_SD_PAD_SOURCE_P].flags = MEDIA_PAD_FL_SOURCE; camif->pads[CAMIF_SD_PAD_SOURCE_P].flags = MEDIA_PAD_FL_SOURCE;
ret = media_entity_init(&sd->entity, CAMIF_SD_PADS_NUM, ret = media_entity_pads_init(&sd->entity, CAMIF_SD_PADS_NUM,
camif->pads); camif->pads);
if (ret) if (ret)
return ret; return ret;

View File

@ -219,7 +219,7 @@ int vsp1_entity_init(struct vsp1_device *vsp1, struct vsp1_entity *entity,
entity->pads[num_pads - 1].flags = MEDIA_PAD_FL_SOURCE; entity->pads[num_pads - 1].flags = MEDIA_PAD_FL_SOURCE;
/* Initialize the media entity. */ /* Initialize the media entity. */
return media_entity_init(&entity->subdev.entity, num_pads, return media_entity_pads_init(&entity->subdev.entity, num_pads,
entity->pads); entity->pads);
} }

View File

@ -1192,7 +1192,7 @@ int vsp1_video_init(struct vsp1_video *video, struct vsp1_entity *rwpf)
video->pipe.state = VSP1_PIPELINE_STOPPED; video->pipe.state = VSP1_PIPELINE_STOPPED;
/* Initialize the media entity... */ /* Initialize the media entity... */
ret = media_entity_init(&video->video.entity, 1, &video->pad); ret = media_entity_pads_init(&video->video.entity, 1, &video->pad);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -675,7 +675,7 @@ int xvip_dma_init(struct xvip_composite_device *xdev, struct xvip_dma *dma,
dma->pad.flags = type == V4L2_BUF_TYPE_VIDEO_CAPTURE dma->pad.flags = type == V4L2_BUF_TYPE_VIDEO_CAPTURE
? MEDIA_PAD_FL_SINK : MEDIA_PAD_FL_SOURCE; ? MEDIA_PAD_FL_SINK : MEDIA_PAD_FL_SOURCE;
ret = media_entity_init(&dma->video.entity, 1, &dma->pad); ret = media_entity_pads_init(&dma->video.entity, 1, &dma->pad);
if (ret < 0) if (ret < 0)
goto error; goto error;

View File

@ -838,7 +838,7 @@ static int xtpg_probe(struct platform_device *pdev)
subdev->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; subdev->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
subdev->entity.ops = &xtpg_media_ops; subdev->entity.ops = &xtpg_media_ops;
ret = media_entity_init(&subdev->entity, xtpg->npads, xtpg->pads); ret = media_entity_pads_init(&subdev->entity, xtpg->npads, xtpg->pads);
if (ret < 0) if (ret < 0)
goto error; goto error;

View File

@ -1810,12 +1810,12 @@ static void au0828_analog_create_entities(struct au0828_dev *dev)
/* Initialize Video and VBI pads */ /* Initialize Video and VBI pads */
dev->video_pad.flags = MEDIA_PAD_FL_SINK; dev->video_pad.flags = MEDIA_PAD_FL_SINK;
ret = media_entity_init(&dev->vdev.entity, 1, &dev->video_pad); ret = media_entity_pads_init(&dev->vdev.entity, 1, &dev->video_pad);
if (ret < 0) if (ret < 0)
pr_err("failed to initialize video media entity!\n"); pr_err("failed to initialize video media entity!\n");
dev->vbi_pad.flags = MEDIA_PAD_FL_SINK; dev->vbi_pad.flags = MEDIA_PAD_FL_SINK;
ret = media_entity_init(&dev->vbi_dev.entity, 1, &dev->vbi_pad); ret = media_entity_pads_init(&dev->vbi_dev.entity, 1, &dev->vbi_pad);
if (ret < 0) if (ret < 0)
pr_err("failed to initialize vbi media entity!\n"); pr_err("failed to initialize vbi media entity!\n");
@ -1847,7 +1847,7 @@ static void au0828_analog_create_entities(struct au0828_dev *dev)
break; break;
} }
ret = media_entity_init(ent, 1, &dev->input_pad[i]); ret = media_entity_pads_init(ent, 1, &dev->input_pad[i]);
if (ret < 0) if (ret < 0)
pr_err("failed to initialize input pad[%d]!\n", i); pr_err("failed to initialize input pad[%d]!\n", i);

View File

@ -2175,7 +2175,7 @@ int cx231xx_register_analog_devices(struct cx231xx *dev)
cx231xx_vdev_init(dev, &dev->vdev, &cx231xx_video_template, "video"); cx231xx_vdev_init(dev, &dev->vdev, &cx231xx_video_template, "video");
#if defined(CONFIG_MEDIA_CONTROLLER) #if defined(CONFIG_MEDIA_CONTROLLER)
dev->video_pad.flags = MEDIA_PAD_FL_SINK; dev->video_pad.flags = MEDIA_PAD_FL_SINK;
ret = media_entity_init(&dev->vdev.entity, 1, &dev->video_pad); ret = media_entity_pads_init(&dev->vdev.entity, 1, &dev->video_pad);
if (ret < 0) if (ret < 0)
dev_err(dev->dev, "failed to initialize video media entity!\n"); dev_err(dev->dev, "failed to initialize video media entity!\n");
#endif #endif
@ -2202,7 +2202,7 @@ int cx231xx_register_analog_devices(struct cx231xx *dev)
#if defined(CONFIG_MEDIA_CONTROLLER) #if defined(CONFIG_MEDIA_CONTROLLER)
dev->vbi_pad.flags = MEDIA_PAD_FL_SINK; dev->vbi_pad.flags = MEDIA_PAD_FL_SINK;
ret = media_entity_init(&dev->vbi_dev.entity, 1, &dev->vbi_pad); ret = media_entity_pads_init(&dev->vbi_dev.entity, 1, &dev->vbi_pad);
if (ret < 0) if (ret < 0)
dev_err(dev->dev, "failed to initialize vbi media entity!\n"); dev_err(dev->dev, "failed to initialize vbi media entity!\n");
#endif #endif

View File

@ -94,10 +94,10 @@ static int uvc_mc_init_entity(struct uvc_entity *entity)
strlcpy(entity->subdev.name, entity->name, strlcpy(entity->subdev.name, entity->name,
sizeof(entity->subdev.name)); sizeof(entity->subdev.name));
ret = media_entity_init(&entity->subdev.entity, ret = media_entity_pads_init(&entity->subdev.entity,
entity->num_pads, entity->pads); entity->num_pads, entity->pads);
} else if (entity->vdev != NULL) { } else if (entity->vdev != NULL) {
ret = media_entity_init(&entity->vdev->entity, ret = media_entity_pads_init(&entity->vdev->entity,
entity->num_pads, entity->pads); entity->num_pads, entity->pads);
if (entity->flags & UVC_ENTITY_FLAG_DEFAULT) if (entity->flags & UVC_ENTITY_FLAG_DEFAULT)
entity->vdev->entity.flags |= MEDIA_ENT_FL_DEFAULT; entity->vdev->entity.flags |= MEDIA_ENT_FL_DEFAULT;

View File

@ -701,7 +701,7 @@ register_client:
t->sd.entity.function = MEDIA_ENT_F_TUNER; t->sd.entity.function = MEDIA_ENT_F_TUNER;
t->sd.entity.name = t->name; t->sd.entity.name = t->name;
ret = media_entity_init(&t->sd.entity, TUNER_NUM_PADS, &t->pad[0]); ret = media_entity_pads_init(&t->sd.entity, TUNER_NUM_PADS, &t->pad[0]);
if (ret < 0) { if (ret < 0) {
tuner_err("failed to initialize media entity!\n"); tuner_err("failed to initialize media entity!\n");
kfree(t); kfree(t);

View File

@ -651,7 +651,7 @@ struct v4l2_flash *v4l2_flash_init(
sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
strlcpy(sd->name, config->dev_name, sizeof(sd->name)); strlcpy(sd->name, config->dev_name, sizeof(sd->name));
ret = media_entity_init(&sd->entity, 0, NULL); ret = media_entity_pads_init(&sd->entity, 0, NULL);
if (ret < 0) if (ret < 0)
return ERR_PTR(ret); return ERR_PTR(ret);

View File

@ -1843,7 +1843,7 @@ vpfe_ipipe_init(struct vpfe_ipipe_device *ipipe, struct platform_device *pdev)
v4l2_ctrl_handler_setup(&ipipe->ctrls); v4l2_ctrl_handler_setup(&ipipe->ctrls);
sd->ctrl_handler = &ipipe->ctrls; sd->ctrl_handler = &ipipe->ctrls;
return media_entity_init(me, IPIPE_PADS_NUM, pads); return media_entity_pads_init(me, IPIPE_PADS_NUM, pads);
} }
/* /*

View File

@ -1031,7 +1031,7 @@ int vpfe_ipipeif_init(struct vpfe_ipipeif_device *ipipeif,
ipipeif->output = IPIPEIF_OUTPUT_NONE; ipipeif->output = IPIPEIF_OUTPUT_NONE;
me->ops = &ipipeif_media_ops; me->ops = &ipipeif_media_ops;
ret = media_entity_init(me, IPIPEIF_NUM_PADS, pads); ret = media_entity_pads_init(me, IPIPEIF_NUM_PADS, pads);
if (ret) if (ret)
goto fail; goto fail;

View File

@ -2057,7 +2057,7 @@ int vpfe_isif_init(struct vpfe_isif_device *isif, struct platform_device *pdev)
isif->input = ISIF_INPUT_NONE; isif->input = ISIF_INPUT_NONE;
isif->output = ISIF_OUTPUT_NONE; isif->output = ISIF_OUTPUT_NONE;
me->ops = &isif_media_ops; me->ops = &isif_media_ops;
status = media_entity_init(me, ISIF_PADS_NUM, pads); status = media_entity_pads_init(me, ISIF_PADS_NUM, pads);
if (status) if (status)
goto isif_fail; goto isif_fail;
isif->video_out.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; isif->video_out.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;

View File

@ -1915,7 +1915,7 @@ int vpfe_resizer_init(struct vpfe_resizer_device *vpfe_rsz,
vpfe_rsz->crop_resizer.output2 = RESIZER_CROP_OUTPUT_NONE; vpfe_rsz->crop_resizer.output2 = RESIZER_CROP_OUTPUT_NONE;
vpfe_rsz->crop_resizer.rsz_device = vpfe_rsz; vpfe_rsz->crop_resizer.rsz_device = vpfe_rsz;
me->ops = &resizer_media_ops; me->ops = &resizer_media_ops;
ret = media_entity_init(me, RESIZER_CROP_PADS_NUM, pads); ret = media_entity_pads_init(me, RESIZER_CROP_PADS_NUM, pads);
if (ret) if (ret)
return ret; return ret;
@ -1937,7 +1937,7 @@ int vpfe_resizer_init(struct vpfe_resizer_device *vpfe_rsz,
vpfe_rsz->resizer_a.output = RESIZER_OUTPUT_NONE; vpfe_rsz->resizer_a.output = RESIZER_OUTPUT_NONE;
vpfe_rsz->resizer_a.rsz_device = vpfe_rsz; vpfe_rsz->resizer_a.rsz_device = vpfe_rsz;
me->ops = &resizer_media_ops; me->ops = &resizer_media_ops;
ret = media_entity_init(me, RESIZER_PADS_NUM, pads); ret = media_entity_pads_init(me, RESIZER_PADS_NUM, pads);
if (ret) if (ret)
return ret; return ret;
@ -1959,7 +1959,7 @@ int vpfe_resizer_init(struct vpfe_resizer_device *vpfe_rsz,
vpfe_rsz->resizer_b.output = RESIZER_OUTPUT_NONE; vpfe_rsz->resizer_b.output = RESIZER_OUTPUT_NONE;
vpfe_rsz->resizer_b.rsz_device = vpfe_rsz; vpfe_rsz->resizer_b.rsz_device = vpfe_rsz;
me->ops = &resizer_media_ops; me->ops = &resizer_media_ops;
ret = media_entity_init(me, RESIZER_PADS_NUM, pads); ret = media_entity_pads_init(me, RESIZER_PADS_NUM, pads);
if (ret) if (ret)
return ret; return ret;

View File

@ -1599,7 +1599,7 @@ int vpfe_video_init(struct vpfe_video_device *video, const char *name)
spin_lock_init(&video->irqlock); spin_lock_init(&video->irqlock);
spin_lock_init(&video->dma_queue_lock); spin_lock_init(&video->dma_queue_lock);
mutex_init(&video->lock); mutex_init(&video->lock);
ret = media_entity_init(&video->video_dev.entity, ret = media_entity_pads_init(&video->video_dev.entity,
1, &video->pad); 1, &video->pad);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -1276,7 +1276,7 @@ static int csi2_init_entities(struct iss_csi2_device *csi2, const char *subname)
pads[CSI2_PAD_SINK].flags = MEDIA_PAD_FL_SINK; pads[CSI2_PAD_SINK].flags = MEDIA_PAD_FL_SINK;
me->ops = &csi2_media_ops; me->ops = &csi2_media_ops;
ret = media_entity_init(me, CSI2_PADS_NUM, pads); ret = media_entity_pads_init(me, CSI2_PADS_NUM, pads);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -516,7 +516,7 @@ static int ipipe_init_entities(struct iss_ipipe_device *ipipe)
pads[IPIPE_PAD_SOURCE_VP].flags = MEDIA_PAD_FL_SOURCE; pads[IPIPE_PAD_SOURCE_VP].flags = MEDIA_PAD_FL_SOURCE;
me->ops = &ipipe_media_ops; me->ops = &ipipe_media_ops;
ret = media_entity_init(me, IPIPE_PADS_NUM, pads); ret = media_entity_pads_init(me, IPIPE_PADS_NUM, pads);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -748,7 +748,7 @@ static int ipipeif_init_entities(struct iss_ipipeif_device *ipipeif)
pads[IPIPEIF_PAD_SOURCE_VP].flags = MEDIA_PAD_FL_SOURCE; pads[IPIPEIF_PAD_SOURCE_VP].flags = MEDIA_PAD_FL_SOURCE;
me->ops = &ipipeif_media_ops; me->ops = &ipipeif_media_ops;
ret = media_entity_init(me, IPIPEIF_PADS_NUM, pads); ret = media_entity_pads_init(me, IPIPEIF_PADS_NUM, pads);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -790,7 +790,7 @@ static int resizer_init_entities(struct iss_resizer_device *resizer)
pads[RESIZER_PAD_SOURCE_MEM].flags = MEDIA_PAD_FL_SOURCE; pads[RESIZER_PAD_SOURCE_MEM].flags = MEDIA_PAD_FL_SOURCE;
me->ops = &resizer_media_ops; me->ops = &resizer_media_ops;
ret = media_entity_init(me, RESIZER_PADS_NUM, pads); ret = media_entity_pads_init(me, RESIZER_PADS_NUM, pads);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -1101,7 +1101,7 @@ int omap4iss_video_init(struct iss_video *video, const char *name)
return -EINVAL; return -EINVAL;
} }
ret = media_entity_init(&video->video.entity, 1, &video->pad); ret = media_entity_pads_init(&video->video.entity, 1, &video->pad);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -347,7 +347,7 @@ void media_gobj_init(struct media_device *mdev,
struct media_gobj *gobj); struct media_gobj *gobj);
void media_gobj_remove(struct media_gobj *gobj); void media_gobj_remove(struct media_gobj *gobj);
int media_entity_init(struct media_entity *entity, u16 num_pads, int media_entity_pads_init(struct media_entity *entity, u16 num_pads,
struct media_pad *pads); struct media_pad *pads);
void media_entity_cleanup(struct media_entity *entity); void media_entity_cleanup(struct media_entity *entity);