[media] media-entity: add a helper function to create interface

As we'll be adding other interface types in the future, put the
common interface create code on a separate function.

Suggested-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
Mauro Carvalho Chehab 2015-08-28 15:43:36 -03:00
parent 86e2662071
commit 1283f849dc

View file

@ -839,6 +839,18 @@ struct media_pad *media_entity_remote_pad(struct media_pad *pad)
EXPORT_SYMBOL_GPL(media_entity_remote_pad);
static void media_interface_init(struct media_device *mdev,
struct media_interface *intf,
u32 gobj_type,
u32 intf_type, u32 flags)
{
intf->type = intf_type;
intf->flags = flags;
INIT_LIST_HEAD(&intf->links);
media_gobj_init(mdev, gobj_type, &intf->graph_obj);
}
/* Functions related to the media interface via device nodes */
struct media_intf_devnode *media_devnode_create(struct media_device *mdev,
@ -847,23 +859,16 @@ struct media_intf_devnode *media_devnode_create(struct media_device *mdev,
gfp_t gfp_flags)
{
struct media_intf_devnode *devnode;
struct media_interface *intf;
devnode = kzalloc(sizeof(*devnode), gfp_flags);
if (!devnode)
return NULL;
intf = &devnode->intf;
intf->type = type;
intf->flags = flags;
INIT_LIST_HEAD(&intf->links);
devnode->major = major;
devnode->minor = minor;
media_gobj_init(mdev, MEDIA_GRAPH_INTF_DEVNODE,
&devnode->intf.graph_obj);
media_interface_init(mdev, &devnode->intf, MEDIA_GRAPH_INTF_DEVNODE,
type, flags);
return devnode;
}