diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2009-12-09 06:40:08 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-03-22 03:53:20 -0400 |
commit | 61f5db549dde43fb91a8b337f3a4096e4076c2d9 (patch) | |
tree | 0c28bb9dd1aab1b3fc8ce61036677a7790316421 /include/media | |
parent | 2c0ab67be1b4197a4effac89bb0604832e38be8d (diff) |
[media] v4l: Make v4l2_subdev inherit from media_entity
V4L2 subdevices are media entities. As such they need to inherit from
(include) the media_entity structure.
When registering/unregistering the subdevice, the media entity is
automatically registered/unregistered. The entity is acquired on device
open and released on device close.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
Acked-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/v4l2-subdev.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h index 0f9937be53d2..6f51ce4d7ee7 100644 --- a/include/media/v4l2-subdev.h +++ b/include/media/v4l2-subdev.h | |||
@@ -21,6 +21,7 @@ | |||
21 | #ifndef _V4L2_SUBDEV_H | 21 | #ifndef _V4L2_SUBDEV_H |
22 | #define _V4L2_SUBDEV_H | 22 | #define _V4L2_SUBDEV_H |
23 | 23 | ||
24 | #include <media/media-entity.h> | ||
24 | #include <media/v4l2-common.h> | 25 | #include <media/v4l2-common.h> |
25 | #include <media/v4l2-dev.h> | 26 | #include <media/v4l2-dev.h> |
26 | #include <media/v4l2-mediabus.h> | 27 | #include <media/v4l2-mediabus.h> |
@@ -450,6 +451,9 @@ struct v4l2_subdev_internal_ops { | |||
450 | stand-alone or embedded in a larger struct. | 451 | stand-alone or embedded in a larger struct. |
451 | */ | 452 | */ |
452 | struct v4l2_subdev { | 453 | struct v4l2_subdev { |
454 | #if defined(CONFIG_MEDIA_CONTROLLER) | ||
455 | struct media_entity entity; | ||
456 | #endif | ||
453 | struct list_head list; | 457 | struct list_head list; |
454 | struct module *owner; | 458 | struct module *owner; |
455 | u32 flags; | 459 | u32 flags; |
@@ -472,6 +476,8 @@ struct v4l2_subdev { | |||
472 | unsigned int nevents; | 476 | unsigned int nevents; |
473 | }; | 477 | }; |
474 | 478 | ||
479 | #define media_entity_to_v4l2_subdev(ent) \ | ||
480 | container_of(ent, struct v4l2_subdev, entity) | ||
475 | #define vdev_to_v4l2_subdev(vdev) \ | 481 | #define vdev_to_v4l2_subdev(vdev) \ |
476 | container_of(vdev, struct v4l2_subdev, devnode) | 482 | container_of(vdev, struct v4l2_subdev, devnode) |
477 | 483 | ||