aboutsummaryrefslogtreecommitdiffstats
path: root/include/media/v4l2-subdev.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/media/v4l2-subdev.h')
-rw-r--r--include/media/v4l2-subdev.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
index da16d2f4a00b..474ef009fd3d 100644
--- a/include/media/v4l2-subdev.h
+++ b/include/media/v4l2-subdev.h
@@ -22,6 +22,7 @@
22#define _V4L2_SUBDEV_H 22#define _V4L2_SUBDEV_H
23 23
24#include <media/v4l2-common.h> 24#include <media/v4l2-common.h>
25#include <media/v4l2-dev.h>
25#include <media/v4l2-mediabus.h> 26#include <media/v4l2-mediabus.h>
26 27
27/* generic v4l2_device notify callback notification values */ 28/* generic v4l2_device notify callback notification values */
@@ -431,9 +432,11 @@ struct v4l2_subdev_internal_ops {
431#define V4L2_SUBDEV_NAME_SIZE 32 432#define V4L2_SUBDEV_NAME_SIZE 32
432 433
433/* Set this flag if this subdev is a i2c device. */ 434/* Set this flag if this subdev is a i2c device. */
434#define V4L2_SUBDEV_FL_IS_I2C (1U << 0) 435#define V4L2_SUBDEV_FL_IS_I2C (1U << 0)
435/* Set this flag if this subdev is a spi device. */ 436/* Set this flag if this subdev is a spi device. */
436#define V4L2_SUBDEV_FL_IS_SPI (1U << 1) 437#define V4L2_SUBDEV_FL_IS_SPI (1U << 1)
438/* Set this flag if this subdev needs a device node. */
439#define V4L2_SUBDEV_FL_HAS_DEVNODE (1U << 2)
437 440
438/* Each instance of a subdev driver should create this struct, either 441/* Each instance of a subdev driver should create this struct, either
439 stand-alone or embedded in a larger struct. 442 stand-alone or embedded in a larger struct.
@@ -455,8 +458,15 @@ struct v4l2_subdev {
455 /* pointer to private data */ 458 /* pointer to private data */
456 void *dev_priv; 459 void *dev_priv;
457 void *host_priv; 460 void *host_priv;
461 /* subdev device node */
462 struct video_device devnode;
458}; 463};
459 464
465#define vdev_to_v4l2_subdev(vdev) \
466 container_of(vdev, struct v4l2_subdev, devnode)
467
468extern const struct v4l2_file_operations v4l2_subdev_fops;
469
460static inline void v4l2_set_subdevdata(struct v4l2_subdev *sd, void *p) 470static inline void v4l2_set_subdevdata(struct v4l2_subdev *sd, void *p)
461{ 471{
462 sd->dev_priv = p; 472 sd->dev_priv = p;