[PATCH v4 1/6] media: get rid of unused extra_links param on media_entity_init()
Currently, media_entity_init() creates an array with the links, allocated at init time. It provides a parameter (extra_links) that would allocate more links than the current needs, but this is not used by any driver. As we want to be able to do dynamic link allocation/removal, we'll need to change the implementation of the links. So, before doing that, let's first remove that extra unused parameter, in order to cleanup the interface first. Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com Acked-by: Sakari Ailus sakari.ai...@linux.intel.com diff --git a/Documentation/media-framework.txt b/Documentation/media-framework.txt index f552a75c0e70..2cc6019f7147 100644 --- a/Documentation/media-framework.txt +++ b/Documentation/media-framework.txt @@ -104,7 +104,7 @@ although drivers can allocate entities directly. Drivers initialize entities by calling media_entity_init(struct media_entity *entity, u16 num_pads, - struct media_pad *pads, u16 extra_links); + struct media_pad *pads); The media_entity name, type, flags, revision and group_id fields can be initialized before or after calling media_entity_init. Entities embedded in diff --git a/Documentation/video4linux/v4l2-framework.txt b/Documentation/video4linux/v4l2-framework.txt index 75d5c18d689a..109cc3792534 100644 --- a/Documentation/video4linux/v4l2-framework.txt +++ b/Documentation/video4linux/v4l2-framework.txt @@ -300,7 +300,7 @@ calling media_entity_init(): struct media_pad *pads = my_sd-pads; int err; - err = media_entity_init(sd-entity, npads, pads, 0); + err = media_entity_init(sd-entity, npads, pads); The pads array must have been previously initialized. There is no need to manually set the struct media_entity type and name fields, but the revision @@ -700,7 +700,7 @@ calling media_entity_init(): struct media_pad *pad = my_vdev-pad; int err; - err = media_entity_init(vdev-entity, 1, pad, 0); + err = media_entity_init(vdev-entity, 1, pad); The pads array must have been previously initialized. There is no need to manually set the struct media_entity type and name fields. diff --git a/Documentation/zh_CN/video4linux/v4l2-framework.txt b/Documentation/zh_CN/video4linux/v4l2-framework.txt index 2b828e631e31..ff815cb92031 100644 --- a/Documentation/zh_CN/video4linux/v4l2-framework.txt +++ b/Documentation/zh_CN/video4linux/v4l2-framework.txt @@ -295,7 +295,7 @@ owner ??? i2c ? struct media_pad *pads = my_sd-pads; int err; - err = media_entity_init(sd-entity, npads, pads, 0); + err = media_entity_init(sd-entity, npads, pads); pads media_entity ??? type ??? name revision ? @@ -602,7 +602,7 @@ v4l2_file_operations file_operations ??? struct media_pad *pad = my_vdev-pad; int err; - err = media_entity_init(vdev-entity, 1, pad, 0); + err = media_entity_init(vdev-entity, 1, pad); pads ?? media_entity ??? type ??? name ?? diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c index 13bb57f0457f..2fdcbb5f000a 100644 --- a/drivers/media/dvb-core/dvbdev.c +++ b/drivers/media/dvb-core/dvbdev.c @@ -249,7 +249,7 @@ static void dvb_register_media_device(struct dvb_device *dvbdev, } if (npads) - ret = media_entity_init(dvbdev-entity, npads, dvbdev-pads, 0); + ret = media_entity_init(dvbdev-entity, npads, dvbdev-pads); if (!ret) ret = media_device_register_entity(dvbdev-adapter-mdev, dvbdev-entity); diff --git a/drivers/media/i2c/ad9389b.c b/drivers/media/i2c/ad9389b.c index 69094ab047b1..39d6ee681aeb 100644 --- a/drivers/media/i2c/ad9389b.c +++ b/drivers/media/i2c/ad9389b.c @@ -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-pad.flags = MEDIA_PAD_FL_SINK; - err = media_entity_init(sd-entity, 1, state-pad, 0); + err = media_entity_init(sd-entity, 1, state-pad); if (err) goto err_hdl; diff --git a/drivers/media/i2c/adp1653.c b/drivers/media/i2c/adp1653.c index c70ababce954..5f76997f6e07 100644 --- a/drivers/media/i2c/adp1653.c +++ b/drivers/media/i2c/adp1653.c @@ -512,7 +512,7 @@ static int adp1653_probe(struct i2c_client *client, if (ret) goto free_and_quit; - ret = media_entity_init(flash-subdev.entity, 0, NULL, 0); + ret = media_entity_init(flash-subdev.entity, 0, NULL); if (ret 0) goto free_and_quit; diff --git a/drivers/media/i2c/adv7180.c
Re: [PATCH v4 1/6] media: get rid of unused extra_links param on media_entity_init()
On 08/14/2015 04:56 PM, Mauro Carvalho Chehab wrote: Currently, media_entity_init() creates an array with the links, allocated at init time. It provides a parameter (extra_links) that would allocate more links than the current needs, but this is not used by any driver. As we want to be able to do dynamic link allocation/removal, we'll need to change the implementation of the links. So, before doing that, let's first remove that extra unused parameter, in order to cleanup the interface first. Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com Acked-by: Sakari Ailus sakari.ai...@linux.intel.com Acked-by: Hans Verkuil hans.verk...@cisco.com Thanks! Hans -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v4 1/6] media: get rid of unused extra_links param on media_entity_init()
Hi Mauro, Thank you for the patch. On Friday 14 August 2015 11:56:38 Mauro Carvalho Chehab wrote: Currently, media_entity_init() creates an array with the links, allocated at init time. It provides a parameter (extra_links) that would allocate more links than the current needs, but this is not used by any driver. As we want to be able to do dynamic link allocation/removal, we'll need to change the implementation of the links. So, before doing that, let's first remove that extra unused parameter, in order to cleanup the interface first. Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com Acked-by: Sakari Ailus sakari.ai...@linux.intel.com diff --git a/Documentation/media-framework.txt b/Documentation/media-framework.txt index f552a75c0e70..2cc6019f7147 100644 --- a/Documentation/media-framework.txt +++ b/Documentation/media-framework.txt @@ -104,7 +104,7 @@ although drivers can allocate entities directly. Drivers initialize entities by calling media_entity_init(struct media_entity *entity, u16 num_pads, - struct media_pad *pads, u16 extra_links); + struct media_pad *pads); The media_entity name, type, flags, revision and group_id fields can be initialized before or after calling media_entity_init. Entities embedded in The extra_links parameter is documented later on in this file. Could you replace the paragraph 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 pre-allocates a number of links equal to the number of pads plus an optional number of extra links. The links array will be reallocated if it grows beyond the initial estimate. with 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 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. ? [snip] diff --git a/drivers/media/media-entity.c b/drivers/media/media-entity.c index 4d8e01c7b1b2..78440c7aad94 100644 --- a/drivers/media/media-entity.c +++ b/drivers/media/media-entity.c @@ -30,7 +30,6 @@ * media_entity_init - Initialize a media entity * * @num_pads: Total number of sink and source pads. - * @extra_links: Initial estimate of the number of extra links. * @pads: Array of 'num_pads' pads. * * The total number of pads is an intrinsic property of entities known by the Similarly here, I would rewrite the documentation as * The total number of pads is an intrinsic property of entities known by the * entity driver, while the total number of links depends on hardware design * and is an extrinsic property unknown to the entity driver. However, in most * use cases the number of links can safely be assumed to be equal to or * larger than the number of pads. * * For those reasons the links array can be preallocated based on the number * of pads and will be reallocated later if extra links need to be created. * * This function allocates a links array with enough space to hold at least * 'num_pads' elements. The media_entity::max_links field will be set to the * number of allocated elements. With that fixed, Acked-by: Laurent Pinchart laurent.pinch...@ideasonboard.com And feel free to merge this patch for v4.3 independently of the rest. @@ -52,10 +51,10 @@ */ int media_entity_init(struct media_entity *entity, u16 num_pads, - struct media_pad *pads, u16 extra_links) + struct media_pad *pads) { struct media_link *links; - unsigned int max_links = num_pads + extra_links; + unsigned int max_links = num_pads; unsigned int i; links = kzalloc(max_links * sizeof(links[0]), GFP_KERNEL); -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html