aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/media/davinci/vpbe_osd.h4
-rw-r--r--include/media/media-device.h9
-rw-r--r--include/media/media-entity.h5
-rw-r--r--include/media/rc-map.h1
-rw-r--r--include/media/s5p_fimc.h56
-rw-r--r--include/media/ths7303.h2
-rw-r--r--include/media/tveeprom.h11
-rw-r--r--include/media/tvp7002.h46
-rw-r--r--include/media/v4l2-chip-ident.h2
-rw-r--r--include/media/v4l2-dev.h1
-rw-r--r--include/uapi/linux/videodev2.h10
11 files changed, 84 insertions, 63 deletions
diff --git a/include/media/davinci/vpbe_osd.h b/include/media/davinci/vpbe_osd.h
index 42628fcfe1bd..de59364d7ed2 100644
--- a/include/media/davinci/vpbe_osd.h
+++ b/include/media/davinci/vpbe_osd.h
@@ -82,9 +82,9 @@ enum osd_pix_format {
82 PIXFMT_4BPP, 82 PIXFMT_4BPP,
83 PIXFMT_8BPP, 83 PIXFMT_8BPP,
84 PIXFMT_RGB565, 84 PIXFMT_RGB565,
85 PIXFMT_YCbCrI, 85 PIXFMT_YCBCRI,
86 PIXFMT_RGB888, 86 PIXFMT_RGB888,
87 PIXFMT_YCrCbI, 87 PIXFMT_YCRCBI,
88 PIXFMT_NV12, 88 PIXFMT_NV12,
89 PIXFMT_OSD_ATTR, 89 PIXFMT_OSD_ATTR,
90}; 90};
diff --git a/include/media/media-device.h b/include/media/media-device.h
index eaade9815bb6..12155a9596c4 100644
--- a/include/media/media-device.h
+++ b/include/media/media-device.h
@@ -45,6 +45,7 @@ struct device;
45 * @entities: List of registered entities 45 * @entities: List of registered entities
46 * @lock: Entities list lock 46 * @lock: Entities list lock
47 * @graph_mutex: Entities graph operation lock 47 * @graph_mutex: Entities graph operation lock
48 * @link_notify: Link state change notification callback
48 * 49 *
49 * This structure represents an abstract high-level media device. It allows easy 50 * This structure represents an abstract high-level media device. It allows easy
50 * access to entities and provides basic media device-level support. The 51 * access to entities and provides basic media device-level support. The
@@ -75,10 +76,14 @@ struct media_device {
75 /* Serializes graph operations. */ 76 /* Serializes graph operations. */
76 struct mutex graph_mutex; 77 struct mutex graph_mutex;
77 78
78 int (*link_notify)(struct media_pad *source, 79 int (*link_notify)(struct media_link *link, u32 flags,
79 struct media_pad *sink, u32 flags); 80 unsigned int notification);
80}; 81};
81 82
83/* Supported link_notify @notification values. */
84#define MEDIA_DEV_NOTIFY_PRE_LINK_CH 0
85#define MEDIA_DEV_NOTIFY_POST_LINK_CH 1
86
82/* media_devnode to media_device */ 87/* media_devnode to media_device */
83#define to_media_device(node) container_of(node, struct media_device, devnode) 88#define to_media_device(node) container_of(node, struct media_device, devnode)
84 89
diff --git a/include/media/media-entity.h b/include/media/media-entity.h
index 0c16f518ee09..06bacf937d61 100644
--- a/include/media/media-entity.h
+++ b/include/media/media-entity.h
@@ -128,11 +128,14 @@ void media_entity_cleanup(struct media_entity *entity);
128 128
129int media_entity_create_link(struct media_entity *source, u16 source_pad, 129int media_entity_create_link(struct media_entity *source, u16 source_pad,
130 struct media_entity *sink, u16 sink_pad, u32 flags); 130 struct media_entity *sink, u16 sink_pad, u32 flags);
131void __media_entity_remove_links(struct media_entity *entity);
132void media_entity_remove_links(struct media_entity *entity);
133
131int __media_entity_setup_link(struct media_link *link, u32 flags); 134int __media_entity_setup_link(struct media_link *link, u32 flags);
132int media_entity_setup_link(struct media_link *link, u32 flags); 135int media_entity_setup_link(struct media_link *link, u32 flags);
133struct media_link *media_entity_find_link(struct media_pad *source, 136struct media_link *media_entity_find_link(struct media_pad *source,
134 struct media_pad *sink); 137 struct media_pad *sink);
135struct media_pad *media_entity_remote_source(struct media_pad *pad); 138struct media_pad *media_entity_remote_pad(struct media_pad *pad);
136 139
137struct media_entity *media_entity_get(struct media_entity *entity); 140struct media_entity *media_entity_get(struct media_entity *entity);
138void media_entity_put(struct media_entity *entity); 141void media_entity_put(struct media_entity *entity);
diff --git a/include/media/rc-map.h b/include/media/rc-map.h
index 5d5d3a30f04a..6628f5d01f52 100644
--- a/include/media/rc-map.h
+++ b/include/media/rc-map.h
@@ -111,6 +111,7 @@ void rc_map_init(void);
111#define RC_MAP_BUDGET_CI_OLD "rc-budget-ci-old" 111#define RC_MAP_BUDGET_CI_OLD "rc-budget-ci-old"
112#define RC_MAP_CINERGY_1400 "rc-cinergy-1400" 112#define RC_MAP_CINERGY_1400 "rc-cinergy-1400"
113#define RC_MAP_CINERGY "rc-cinergy" 113#define RC_MAP_CINERGY "rc-cinergy"
114#define RC_MAP_DELOCK_61959 "rc-delock-61959"
114#define RC_MAP_DIB0700_NEC_TABLE "rc-dib0700-nec" 115#define RC_MAP_DIB0700_NEC_TABLE "rc-dib0700-nec"
115#define RC_MAP_DIB0700_RC5_TABLE "rc-dib0700-rc5" 116#define RC_MAP_DIB0700_RC5_TABLE "rc-dib0700-rc5"
116#define RC_MAP_DIGITALNOW_TINYTWIN "rc-digitalnow-tinytwin" 117#define RC_MAP_DIGITALNOW_TINYTWIN "rc-digitalnow-tinytwin"
diff --git a/include/media/s5p_fimc.h b/include/media/s5p_fimc.h
index f50969025ef3..0afadb663bbd 100644
--- a/include/media/s5p_fimc.h
+++ b/include/media/s5p_fimc.h
@@ -13,6 +13,7 @@
13#define S5P_FIMC_H_ 13#define S5P_FIMC_H_
14 14
15#include <media/media-entity.h> 15#include <media/media-entity.h>
16#include <media/v4l2-dev.h>
16#include <media/v4l2-mediabus.h> 17#include <media/v4l2-mediabus.h>
17 18
18/* 19/*
@@ -140,37 +141,40 @@ struct fimc_fmt {
140#define FMT_FLAGS_YUV (1 << 7) 141#define FMT_FLAGS_YUV (1 << 7)
141}; 142};
142 143
143enum fimc_subdev_index { 144struct exynos_media_pipeline;
144 IDX_SENSOR,
145 IDX_CSIS,
146 IDX_FLITE,
147 IDX_IS_ISP,
148 IDX_FIMC,
149 IDX_MAX,
150};
151 145
152struct media_pipeline; 146/*
153struct v4l2_subdev; 147 * Media pipeline operations to be called from within a video node, i.e. the
148 * last entity within the pipeline. Implemented by related media device driver.
149 */
150struct exynos_media_pipeline_ops {
151 int (*prepare)(struct exynos_media_pipeline *p,
152 struct media_entity *me);
153 int (*unprepare)(struct exynos_media_pipeline *p);
154 int (*open)(struct exynos_media_pipeline *p, struct media_entity *me,
155 bool resume);
156 int (*close)(struct exynos_media_pipeline *p);
157 int (*set_stream)(struct exynos_media_pipeline *p, bool state);
158};
154 159
155struct fimc_pipeline { 160struct exynos_video_entity {
156 struct v4l2_subdev *subdevs[IDX_MAX]; 161 struct video_device vdev;
157 struct media_pipeline *m_pipeline; 162 struct exynos_media_pipeline *pipe;
158}; 163};
159 164
160/* 165struct exynos_media_pipeline {
161 * Media pipeline operations to be called from within the fimc(-lite) 166 struct media_pipeline mp;
162 * video node when it is the last entity of the pipeline. Implemented 167 const struct exynos_media_pipeline_ops *ops;
163 * by corresponding media device driver.
164 */
165struct fimc_pipeline_ops {
166 int (*open)(struct fimc_pipeline *p, struct media_entity *me,
167 bool resume);
168 int (*close)(struct fimc_pipeline *p);
169 int (*set_stream)(struct fimc_pipeline *p, bool state);
170}; 168};
171 169
172#define fimc_pipeline_call(f, op, p, args...) \ 170static inline struct exynos_video_entity *vdev_to_exynos_video_entity(
173 (!(f) ? -ENODEV : (((f)->pipeline_ops && (f)->pipeline_ops->op) ? \ 171 struct video_device *vdev)
174 (f)->pipeline_ops->op((p), ##args) : -ENOIOCTLCMD)) 172{
173 return container_of(vdev, struct exynos_video_entity, vdev);
174}
175
176#define fimc_pipeline_call(ent, op, args...) \
177 (!(ent) ? -ENOENT : (((ent)->pipe->ops && (ent)->pipe->ops->op) ? \
178 (ent)->pipe->ops->op(((ent)->pipe), ##args) : -ENOIOCTLCMD)) \
175 179
176#endif /* S5P_FIMC_H_ */ 180#endif /* S5P_FIMC_H_ */
diff --git a/include/media/ths7303.h b/include/media/ths7303.h
index 980ec51d574d..a7b49297da82 100644
--- a/include/media/ths7303.h
+++ b/include/media/ths7303.h
@@ -30,13 +30,11 @@
30 * @ch_1: Bias value for channel one. 30 * @ch_1: Bias value for channel one.
31 * @ch_2: Bias value for channel two. 31 * @ch_2: Bias value for channel two.
32 * @ch_3: Bias value for channel three. 32 * @ch_3: Bias value for channel three.
33 * @init_enable: initalize on init.
34 */ 33 */
35struct ths7303_platform_data { 34struct ths7303_platform_data {
36 u8 ch_1; 35 u8 ch_1;
37 u8 ch_2; 36 u8 ch_2;
38 u8 ch_3; 37 u8 ch_3;
39 u8 init_enable;
40}; 38};
41 39
42#endif 40#endif
diff --git a/include/media/tveeprom.h b/include/media/tveeprom.h
index a8ad75a9152a..4a1191abd936 100644
--- a/include/media/tveeprom.h
+++ b/include/media/tveeprom.h
@@ -1,6 +1,17 @@
1/* 1/*
2 */ 2 */
3 3
4enum tveeprom_audio_processor {
5 /* No audio processor present */
6 TVEEPROM_AUDPROC_NONE,
7 /* The audio processor is internal to the video processor */
8 TVEEPROM_AUDPROC_INTERNAL,
9 /* The audio processor is a MSPXXXX device */
10 TVEEPROM_AUDPROC_MSP,
11 /* The audio processor is another device */
12 TVEEPROM_AUDPROC_OTHER,
13};
14
4struct tveeprom { 15struct tveeprom {
5 u32 has_radio; 16 u32 has_radio;
6 /* If has_ir == 0, then it is unknown what the IR capabilities are, 17 /* If has_ir == 0, then it is unknown what the IR capabilities are,
diff --git a/include/media/tvp7002.h b/include/media/tvp7002.h
index ee4353459ef5..fadb6afe9ef0 100644
--- a/include/media/tvp7002.h
+++ b/include/media/tvp7002.h
@@ -26,31 +26,29 @@
26#ifndef _TVP7002_H_ 26#ifndef _TVP7002_H_
27#define _TVP7002_H_ 27#define _TVP7002_H_
28 28
29/* Platform-dependent data 29#define TVP7002_MODULE_NAME "tvp7002"
30 * 30
31 * clk_polarity: 31/**
32 * 0 -> data clocked out on rising edge of DATACLK signal 32 * struct tvp7002_config - Platform dependent data
33 * 1 -> data clocked out on falling edge of DATACLK signal 33 *@clk_polarity: Clock polarity
34 * hs_polarity: 34 * 0 - Data clocked out on rising edge of DATACLK signal
35 * 0 -> active low HSYNC output 35 * 1 - Data clocked out on falling edge of DATACLK signal
36 * 1 -> active high HSYNC output 36 *@hs_polarity: HSYNC polarity
37 * sog_polarity: 37 * 0 - Active low HSYNC output, 1 - Active high HSYNC output
38 * 0 -> normal operation 38 *@vs_polarity: VSYNC Polarity
39 * 1 -> operation with polarity inverted 39 * 0 - Active low VSYNC output, 1 - Active high VSYNC output
40 * vs_polarity: 40 *@fid_polarity: Active-high Field ID polarity.
41 * 0 -> active low VSYNC output 41 * 0 - The field ID output is set to logic 1 for an odd field
42 * 1 -> active high VSYNC output 42 * (field 1) and set to logic 0 for an even field (field 0).
43 * fid_polarity: 43 * 1 - Operation with polarity inverted.
44 * 0 -> the field ID output is set to logic 1 for an odd 44 *@sog_polarity: Active high Sync on Green output polarity.
45 * field (field 1) and set to logic 0 for an even 45 * 0 - Normal operation, 1 - Operation with polarity inverted
46 * field (field 0).
47 * 1 -> operation with polarity inverted.
48 */ 46 */
49struct tvp7002_config { 47struct tvp7002_config {
50 u8 clk_polarity; 48 bool clk_polarity;
51 u8 hs_polarity; 49 bool hs_polarity;
52 u8 vs_polarity; 50 bool vs_polarity;
53 u8 fid_polarity; 51 bool fid_polarity;
54 u8 sog_polarity; 52 bool sog_polarity;
55}; 53};
56#endif 54#endif
diff --git a/include/media/v4l2-chip-ident.h b/include/media/v4l2-chip-ident.h
index c259b36bf1e9..543f89c18896 100644
--- a/include/media/v4l2-chip-ident.h
+++ b/include/media/v4l2-chip-ident.h
@@ -52,6 +52,8 @@ enum {
52 V4L2_IDENT_SAA7115 = 105, 52 V4L2_IDENT_SAA7115 = 105,
53 V4L2_IDENT_SAA7118 = 108, 53 V4L2_IDENT_SAA7118 = 108,
54 54
55 V4L2_IDENT_GM7113C = 140,
56
55 /* module saa7127: reserved range 150-199 */ 57 /* module saa7127: reserved range 150-199 */
56 V4L2_IDENT_SAA7127 = 157, 58 V4L2_IDENT_SAA7127 = 157,
57 V4L2_IDENT_SAA7129 = 159, 59 V4L2_IDENT_SAA7129 = 159,
diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h
index 95d1c91770f4..b2c3776a1cff 100644
--- a/include/media/v4l2-dev.h
+++ b/include/media/v4l2-dev.h
@@ -129,7 +129,6 @@ struct video_device
129 129
130 /* Video standard vars */ 130 /* Video standard vars */
131 v4l2_std_id tvnorms; /* Supported tv norms */ 131 v4l2_std_id tvnorms; /* Supported tv norms */
132 v4l2_std_id current_norm; /* Current tvnorm */
133 132
134 /* callbacks */ 133 /* callbacks */
135 void (*release)(struct video_device *vdev); 134 void (*release)(struct video_device *vdev);
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
index f40b41c7e108..2c5e67a45436 100644
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -395,7 +395,7 @@ struct v4l2_pix_format {
395#define V4L2_PIX_FMT_H263 v4l2_fourcc('H', '2', '6', '3') /* H263 */ 395#define V4L2_PIX_FMT_H263 v4l2_fourcc('H', '2', '6', '3') /* H263 */
396#define V4L2_PIX_FMT_MPEG1 v4l2_fourcc('M', 'P', 'G', '1') /* MPEG-1 ES */ 396#define V4L2_PIX_FMT_MPEG1 v4l2_fourcc('M', 'P', 'G', '1') /* MPEG-1 ES */
397#define V4L2_PIX_FMT_MPEG2 v4l2_fourcc('M', 'P', 'G', '2') /* MPEG-2 ES */ 397#define V4L2_PIX_FMT_MPEG2 v4l2_fourcc('M', 'P', 'G', '2') /* MPEG-2 ES */
398#define V4L2_PIX_FMT_MPEG4 v4l2_fourcc('M', 'P', 'G', '4') /* MPEG-4 ES */ 398#define V4L2_PIX_FMT_MPEG4 v4l2_fourcc('M', 'P', 'G', '4') /* MPEG-4 part 2 ES */
399#define V4L2_PIX_FMT_XVID v4l2_fourcc('X', 'V', 'I', 'D') /* Xvid */ 399#define V4L2_PIX_FMT_XVID v4l2_fourcc('X', 'V', 'I', 'D') /* Xvid */
400#define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */ 400#define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */
401#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */ 401#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */
@@ -555,7 +555,7 @@ struct v4l2_jpegcompression {
555 __u32 jpeg_markers; /* Which markers should go into the JPEG 555 __u32 jpeg_markers; /* Which markers should go into the JPEG
556 * output. Unless you exactly know what 556 * output. Unless you exactly know what
557 * you do, leave them untouched. 557 * you do, leave them untouched.
558 * Inluding less markers will make the 558 * Including less markers will make the
559 * resulting code smaller, but there will 559 * resulting code smaller, but there will
560 * be fewer applications which can read it. 560 * be fewer applications which can read it.
561 * The presence of the APP and COM marker 561 * The presence of the APP and COM marker
@@ -567,7 +567,7 @@ struct v4l2_jpegcompression {
567#define V4L2_JPEG_MARKER_DRI (1<<5) /* Define Restart Interval */ 567#define V4L2_JPEG_MARKER_DRI (1<<5) /* Define Restart Interval */
568#define V4L2_JPEG_MARKER_COM (1<<6) /* Comment segment */ 568#define V4L2_JPEG_MARKER_COM (1<<6) /* Comment segment */
569#define V4L2_JPEG_MARKER_APP (1<<7) /* App segment, driver will 569#define V4L2_JPEG_MARKER_APP (1<<7) /* App segment, driver will
570 * allways use APP0 */ 570 * always use APP0 */
571}; 571};
572 572
573/* 573/*
@@ -900,7 +900,7 @@ typedef __u64 v4l2_std_id;
900/* 900/*
901 * "Common" PAL - This macro is there to be compatible with the old 901 * "Common" PAL - This macro is there to be compatible with the old
902 * V4L1 concept of "PAL": /BGDKHI. 902 * V4L1 concept of "PAL": /BGDKHI.
903 * Several PAL standards are mising here: /M, /N and /Nc 903 * Several PAL standards are missing here: /M, /N and /Nc
904 */ 904 */
905#define V4L2_STD_PAL (V4L2_STD_PAL_BG |\ 905#define V4L2_STD_PAL (V4L2_STD_PAL_BG |\
906 V4L2_STD_PAL_DK |\ 906 V4L2_STD_PAL_DK |\
@@ -1790,7 +1790,7 @@ struct v4l2_event_subscription {
1790#define V4L2_CHIP_MATCH_HOST V4L2_CHIP_MATCH_BRIDGE 1790#define V4L2_CHIP_MATCH_HOST V4L2_CHIP_MATCH_BRIDGE
1791#define V4L2_CHIP_MATCH_I2C_DRIVER 1 /* Match against I2C driver name */ 1791#define V4L2_CHIP_MATCH_I2C_DRIVER 1 /* Match against I2C driver name */
1792#define V4L2_CHIP_MATCH_I2C_ADDR 2 /* Match against I2C 7-bit address */ 1792#define V4L2_CHIP_MATCH_I2C_ADDR 2 /* Match against I2C 7-bit address */
1793#define V4L2_CHIP_MATCH_AC97 3 /* Match against anciliary AC97 chip */ 1793#define V4L2_CHIP_MATCH_AC97 3 /* Match against ancillary AC97 chip */
1794#define V4L2_CHIP_MATCH_SUBDEV 4 /* Match against subdev index */ 1794#define V4L2_CHIP_MATCH_SUBDEV 4 /* Match against subdev index */
1795 1795
1796struct v4l2_dbg_match { 1796struct v4l2_dbg_match {