All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrzej Hajda <a.hajda@samsung.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: linux-media@vger.kernel.org,
	Sylwester Nawrocki <s.nawrocki@samsung.com>,
	Sakari Ailus <sakari.ailus@iki.fi>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	hj210.choi@samsung.com, sw0312.kim@samsung.com
Subject: Re: [PATCH RFC v3 1/3] media: added managed media entity initialization
Date: Wed, 19 Jun 2013 12:33:11 +0200	[thread overview]
Message-ID: <51C188E7.4020208@samsung.com> (raw)
In-Reply-To: <2229025.9VJ8P9QgzO@avalon>

On 06/19/2013 12:03 AM, Laurent Pinchart wrote:
> Hi Andrzej,
>
> Thank you for the patch.
>
> On Thursday 16 May 2013 10:14:32 Andrzej Hajda wrote:
>> This patch adds managed versions of initialization
>> function for media entity.
>>
>> Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
>> Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>> ---
>> v3:
>> 	- removed managed cleanup
>> ---
>>  drivers/media/media-entity.c |   44 +++++++++++++++++++++++++++++++++++++++
>>  include/media/media-entity.h |    5 +++++
>>  2 files changed, 49 insertions(+)
>>
>> diff --git a/drivers/media/media-entity.c b/drivers/media/media-entity.c
>> index e1cd132..b1e29a7 100644
>> --- a/drivers/media/media-entity.c
>> +++ b/drivers/media/media-entity.c
>> @@ -82,9 +82,53 @@ void
>>  media_entity_cleanup(struct media_entity *entity)
>>  {
>>  	kfree(entity->links);
>> +	entity->links = NULL;
>>  }
>>  EXPORT_SYMBOL_GPL(media_entity_cleanup);
>>
>> +static void devm_media_entity_release(struct device *dev, void *res)
>> +{
>> +	struct media_entity **entity = res;
>> +
>> +	media_entity_cleanup(*entity);
>> +}
>> +
>> +/**
>> + * devm_media_entity_init - managed media entity initialization
>> + *
>> + * @dev: Device for which @entity belongs to.
>> + * @entity: Entity to be initialized.
>> + * @num_pads: Total number of sink and source pads.
>> + * @pads: Array of 'num_pads' pads.
>> + * @extra_links: Initial estimate of the number of extra links.
>> + *
>> + * This is a managed version of media_entity_init. Entity initialized with
>> + * this function will be automatically cleaned up on driver detach.
>> + */
>> +int
>> +devm_media_entity_init(struct device *dev, struct media_entity *entity,
>> +		       u16 num_pads, struct media_pad *pads, u16 extra_links)
> What kind of users do you see for this function ? Aren't subdev drivers 
> supposed to use the devm_* functions from patch 3/3 instead ? We should at 
> least make it clear in the documentation that drivers must not use both 
> devm_media_entity_init() and devm_v4l2_subdev_i2c_init().
It can be used for media entities which are not part of subdev.
I will add statement about it.
Besides subdev, for now only video_device uses media entity.
I am not 100% sure about advantages of adding devm_media_entity_init -
currently only 7 drivers in kernel uses video_device and
media_entity_cleanup in those drivers is called not as straightforward
as in subdevs.
Replacing it with managed version would require deeper analysis :)
>
>> +{
>> +	struct media_entity **dr;
>> +	int rc;
>> +
>> +	dr = devres_alloc(devm_media_entity_release, sizeof(*dr), GFP_KERNEL);
>> +	if (!dr)
>> +		return -ENOMEM;
>> +
>> +	rc = media_entity_init(entity, num_pads, pads, extra_links);
>> +	if (rc) {
>> +		devres_free(dr);
>> +		return rc;
>> +	}
>> +
>> +	*dr = entity;
>> +	devres_add(dev, dr);
>> +
>> +	return 0;
>> +}
>> +EXPORT_SYMBOL_GPL(devm_media_entity_init);
>> +
>>  /*
>> ---------------------------------------------------------------------------
>> -- * Graph traversal
>>   */
>> diff --git a/include/media/media-entity.h b/include/media/media-entity.h
>> index 0c16f51..e25730e 100644
>> --- a/include/media/media-entity.h
>> +++ b/include/media/media-entity.h
>> @@ -26,6 +26,8 @@
>>  #include <linux/list.h>
>>  #include <linux/media.h>
>>
>> +struct device;
>> +
>>  struct media_pipeline {
>>  };
>>
>> @@ -126,6 +128,9 @@ int media_entity_init(struct media_entity *entity, u16
>> num_pads, struct media_pad *pads, u16 extra_links);
>>  void media_entity_cleanup(struct media_entity *entity);
>>
>> +int devm_media_entity_init(struct device *dev, struct media_entity *entity,
>> +		u16 num_pads, struct media_pad *pads, u16 extra_links);
>> +
>>  int media_entity_create_link(struct media_entity *source, u16 source_pad,
>>  		struct media_entity *sink, u16 sink_pad, u32 flags);
>>  int __media_entity_setup_link(struct media_link *link, u32 flags);


  reply	other threads:[~2013-06-19 10:33 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-16  8:14 [PATCH RFC v3 0/3] added managed media/v4l2 initialization Andrzej Hajda
2013-05-16  8:14 ` [PATCH RFC v3 1/3] media: added managed media entity initialization Andrzej Hajda
2013-06-18 22:03   ` Laurent Pinchart
2013-06-19 10:33     ` Andrzej Hajda [this message]
2013-06-19 10:36       ` Laurent Pinchart
2013-06-20  6:11         ` Andrzej Hajda
2013-05-16  8:14 ` [PATCH RFC v3 2/3] media: added managed v4l2 control initialization Andrzej Hajda
2013-05-16 22:34   ` Sakari Ailus
2013-05-20 14:24     ` Andrzej Hajda
2013-05-31  1:10       ` Sakari Ailus
2013-05-23 10:39     ` Hans Verkuil
2013-05-31  1:08       ` Sakari Ailus
2013-05-31  7:59         ` Hans Verkuil
2013-06-06 21:41           ` Sakari Ailus
2013-06-09 18:05             ` Sylwester Nawrocki
2013-06-10 13:36               ` Hans Verkuil
2013-05-23 10:40   ` Hans Verkuil
2013-06-18 22:04   ` Laurent Pinchart
2013-05-16  8:14 ` [PATCH RFC v3 3/3] media: added managed v4l2/i2c subdevice initialization Andrzej Hajda
2013-05-23 10:40   ` Hans Verkuil
2013-06-18 22:00   ` Laurent Pinchart
2013-06-19 14:10     ` [PATCH RFC v4] " Andrzej Hajda
2013-08-22 11:10       ` Hans Verkuil
2013-08-22 11:20         ` Sylwester Nawrocki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51C188E7.4020208@samsung.com \
    --to=a.hajda@samsung.com \
    --cc=hj210.choi@samsung.com \
    --cc=kyungmin.park@samsung.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=s.nawrocki@samsung.com \
    --cc=sakari.ailus@iki.fi \
    --cc=sw0312.kim@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.