switch (type) {
case MEDIA_GRAPH_ENTITY:
gobj->id = media_gobj_gen_id(type, ++mdev->entity_id);
+ list_add_tail(&gobj->list, &mdev->entities);
break;
case MEDIA_GRAPH_PAD:
gobj->id = media_gobj_gen_id(type, ++mdev->pad_id);
gobj->id = media_gobj_gen_id(type, ++mdev->link_id);
break;
case MEDIA_GRAPH_INTF_DEVNODE:
+ list_add_tail(&gobj->list, &mdev->interfaces);
gobj->id = media_gobj_gen_id(type, ++mdev->intf_devnode_id);
break;
}
*/
void media_gobj_remove(struct media_gobj *gobj)
{
+ /* Remove the object from mdev list */
+ switch (media_type(gobj)) {
+ case MEDIA_GRAPH_ENTITY:
+ case MEDIA_GRAPH_INTF_DEVNODE:
+ list_del(&gobj->list);
+ break;
+ default:
+ break;
+ }
+
dev_dbg_obj(__func__, gobj);
}
INIT_LIST_HEAD(&intf->links);
media_gobj_init(mdev, gobj_type, &intf->graph_obj);
-
- list_add_tail(&intf->list, &mdev->interfaces);
}
/* Functions related to the media interface via device nodes */
void media_devnode_remove(struct media_intf_devnode *devnode)
{
media_gobj_remove(&devnode->intf.graph_obj);
- list_del(&devnode->intf.list);
kfree(devnode);
}
EXPORT_SYMBOL_GPL(media_devnode_remove);