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.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
index 2884e3e69cb1..257da1a30f66 100644
--- a/include/media/v4l2-subdev.h
+++ b/include/media/v4l2-subdev.h
@@ -229,6 +229,12 @@ struct v4l2_subdev_audio_ops {
229 s_std_output: set v4l2_std_id for video OUTPUT devices. This is ignored by 229 s_std_output: set v4l2_std_id for video OUTPUT devices. This is ignored by
230 video input devices. 230 video input devices.
231 231
232 g_std_output: get current standard for video OUTPUT devices. This is ignored
233 by video input devices.
234
235 g_tvnorms_output: get v4l2_std_id with all standards supported by video
236 OUTPUT device. This is ignored by video input devices.
237
232 s_crystal_freq: sets the frequency of the crystal used to generate the 238 s_crystal_freq: sets the frequency of the crystal used to generate the
233 clocks in Hz. An extra flags field allows device specific configuration 239 clocks in Hz. An extra flags field allows device specific configuration
234 regarding clock frequency dividers, etc. If not used, then set flags 240 regarding clock frequency dividers, etc. If not used, then set flags
@@ -243,6 +249,8 @@ struct v4l2_subdev_audio_ops {
243 s_dv_preset: set dv (Digital Video) preset in the sub device. Similar to 249 s_dv_preset: set dv (Digital Video) preset in the sub device. Similar to
244 s_std() 250 s_std()
245 251
252 g_dv_preset: get current dv (Digital Video) preset in the sub device.
253
246 query_dv_preset: query dv preset in the sub device. This is similar to 254 query_dv_preset: query dv preset in the sub device. This is similar to
247 querystd() 255 querystd()
248 256
@@ -259,12 +267,20 @@ struct v4l2_subdev_audio_ops {
259 try_mbus_fmt: try to set a pixel format on a video data source 267 try_mbus_fmt: try to set a pixel format on a video data source
260 268
261 s_mbus_fmt: set a pixel format on a video data source 269 s_mbus_fmt: set a pixel format on a video data source
270
271 g_mbus_config: get supported mediabus configurations
272
273 s_mbus_config: set a certain mediabus configuration. This operation is added
274 for compatibility with soc-camera drivers and should not be used by new
275 software.
262 */ 276 */
263struct v4l2_subdev_video_ops { 277struct v4l2_subdev_video_ops {
264 int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config); 278 int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config);
265 int (*s_crystal_freq)(struct v4l2_subdev *sd, u32 freq, u32 flags); 279 int (*s_crystal_freq)(struct v4l2_subdev *sd, u32 freq, u32 flags);
266 int (*s_std_output)(struct v4l2_subdev *sd, v4l2_std_id std); 280 int (*s_std_output)(struct v4l2_subdev *sd, v4l2_std_id std);
281 int (*g_std_output)(struct v4l2_subdev *sd, v4l2_std_id *std);
267 int (*querystd)(struct v4l2_subdev *sd, v4l2_std_id *std); 282 int (*querystd)(struct v4l2_subdev *sd, v4l2_std_id *std);
283 int (*g_tvnorms_output)(struct v4l2_subdev *sd, v4l2_std_id *std);
268 int (*g_input_status)(struct v4l2_subdev *sd, u32 *status); 284 int (*g_input_status)(struct v4l2_subdev *sd, u32 *status);
269 int (*s_stream)(struct v4l2_subdev *sd, int enable); 285 int (*s_stream)(struct v4l2_subdev *sd, int enable);
270 int (*cropcap)(struct v4l2_subdev *sd, struct v4l2_cropcap *cc); 286 int (*cropcap)(struct v4l2_subdev *sd, struct v4l2_cropcap *cc);
@@ -282,6 +298,8 @@ struct v4l2_subdev_video_ops {
282 struct v4l2_dv_enum_preset *preset); 298 struct v4l2_dv_enum_preset *preset);
283 int (*s_dv_preset)(struct v4l2_subdev *sd, 299 int (*s_dv_preset)(struct v4l2_subdev *sd,
284 struct v4l2_dv_preset *preset); 300 struct v4l2_dv_preset *preset);
301 int (*g_dv_preset)(struct v4l2_subdev *sd,
302 struct v4l2_dv_preset *preset);
285 int (*query_dv_preset)(struct v4l2_subdev *sd, 303 int (*query_dv_preset)(struct v4l2_subdev *sd,
286 struct v4l2_dv_preset *preset); 304 struct v4l2_dv_preset *preset);
287 int (*s_dv_timings)(struct v4l2_subdev *sd, 305 int (*s_dv_timings)(struct v4l2_subdev *sd,
@@ -298,6 +316,10 @@ struct v4l2_subdev_video_ops {
298 struct v4l2_mbus_framefmt *fmt); 316 struct v4l2_mbus_framefmt *fmt);
299 int (*s_mbus_fmt)(struct v4l2_subdev *sd, 317 int (*s_mbus_fmt)(struct v4l2_subdev *sd,
300 struct v4l2_mbus_framefmt *fmt); 318 struct v4l2_mbus_framefmt *fmt);
319 int (*g_mbus_config)(struct v4l2_subdev *sd,
320 struct v4l2_mbus_config *cfg);
321 int (*s_mbus_config)(struct v4l2_subdev *sd,
322 const struct v4l2_mbus_config *cfg);
301}; 323};
302 324
303/* 325/*
@@ -513,8 +535,6 @@ struct v4l2_subdev {
513 void *host_priv; 535 void *host_priv;
514 /* subdev device node */ 536 /* subdev device node */
515 struct video_device devnode; 537 struct video_device devnode;
516 /* number of events to be allocated on open */
517 unsigned int nevents;
518}; 538};
519 539
520#define media_entity_to_v4l2_subdev(ent) \ 540#define media_entity_to_v4l2_subdev(ent) \