summaryrefslogtreecommitdiffstats
path: root/drivers/media/media-device.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-08-14 12:47:48 -0300
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2016-01-11 12:18:41 -0200
commitbfab2aacccfc144e2cceccb71ec89f1eff1b8c51 (patch)
tree815cf4b3e15e59b00710a75348184debc3619d08 /drivers/media/media-device.c
parentec6e4c950621a1d0db1e9b015ede4a3938fdfd18 (diff)
downloadlinux-stable-bfab2aacccfc144e2cceccb71ec89f1eff1b8c51.tar.gz
linux-stable-bfab2aacccfc144e2cceccb71ec89f1eff1b8c51.tar.bz2
linux-stable-bfab2aacccfc144e2cceccb71ec89f1eff1b8c51.zip
[media] media: use media_gobj inside entities
As entities are graph objects, let's embed media_gobj on it. That ensures an unique ID for entities that can be global along the entire media controller. For now, we'll keep the already existing entity ID. Such field need to be dropped at some point, but for now, let's not do this, to avoid needing to review all drivers and the userspace apps. Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Tested-by: Javier Martinez Canillas <javier@osg.samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/media-device.c')
-rw-r--r--drivers/media/media-device.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
index e429605ca2c3..81d6a130efef 100644
--- a/drivers/media/media-device.c
+++ b/drivers/media/media-device.c
@@ -379,7 +379,6 @@ int __must_check __media_device_register(struct media_device *mdev,
if (WARN_ON(mdev->dev == NULL || mdev->model[0] == 0))
return -EINVAL;
- mdev->entity_id = 1;
INIT_LIST_HEAD(&mdev->entities);
spin_lock_init(&mdev->lock);
mutex_init(&mdev->graph_mutex);
@@ -433,10 +432,8 @@ int __must_check media_device_register_entity(struct media_device *mdev,
entity->parent = mdev;
spin_lock(&mdev->lock);
- if (entity->id == 0)
- entity->id = mdev->entity_id++;
- else
- mdev->entity_id = max(entity->id + 1, mdev->entity_id);
+ /* Initialize media_gobj embedded at the entity */
+ media_gobj_init(mdev, MEDIA_GRAPH_ENTITY, &entity->graph_obj);
list_add_tail(&entity->list, &mdev->entities);
spin_unlock(&mdev->lock);
@@ -459,6 +456,7 @@ void media_device_unregister_entity(struct media_entity *entity)
return;
spin_lock(&mdev->lock);
+ media_gobj_remove(&entity->graph_obj);
list_del(&entity->list);
spin_unlock(&mdev->lock);
entity->parent = NULL;