diff options
Diffstat (limited to 'include/media/v4l2-subdev.h')
-rw-r--r-- | include/media/v4l2-subdev.h | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h index 1562c4ff3a65..257da1a30f66 100644 --- a/include/media/v4l2-subdev.h +++ b/include/media/v4l2-subdev.h | |||
@@ -173,16 +173,20 @@ struct v4l2_subdev_core_ops { | |||
173 | struct v4l2_event_subscription *sub); | 173 | struct v4l2_event_subscription *sub); |
174 | }; | 174 | }; |
175 | 175 | ||
176 | /* s_mode: switch the tuner to a specific tuner mode. Replacement of s_radio. | 176 | /* s_radio: v4l device was opened in radio mode. |
177 | 177 | ||
178 | s_radio: v4l device was opened in Radio mode, to be replaced by s_mode. | 178 | g_frequency: freq->type must be filled in. Normally done by video_ioctl2 |
179 | or the bridge driver. | ||
180 | |||
181 | g_tuner: | ||
182 | s_tuner: vt->type must be filled in. Normally done by video_ioctl2 or the | ||
183 | bridge driver. | ||
179 | 184 | ||
180 | s_type_addr: sets tuner type and its I2C addr. | 185 | s_type_addr: sets tuner type and its I2C addr. |
181 | 186 | ||
182 | s_config: sets tda9887 specific stuff, like port1, port2 and qss | 187 | s_config: sets tda9887 specific stuff, like port1, port2 and qss |
183 | */ | 188 | */ |
184 | struct v4l2_subdev_tuner_ops { | 189 | struct v4l2_subdev_tuner_ops { |
185 | int (*s_mode)(struct v4l2_subdev *sd, enum v4l2_tuner_type); | ||
186 | int (*s_radio)(struct v4l2_subdev *sd); | 190 | int (*s_radio)(struct v4l2_subdev *sd); |
187 | int (*s_frequency)(struct v4l2_subdev *sd, struct v4l2_frequency *freq); | 191 | int (*s_frequency)(struct v4l2_subdev *sd, struct v4l2_frequency *freq); |
188 | int (*g_frequency)(struct v4l2_subdev *sd, struct v4l2_frequency *freq); | 192 | int (*g_frequency)(struct v4l2_subdev *sd, struct v4l2_frequency *freq); |
@@ -225,6 +229,12 @@ struct v4l2_subdev_audio_ops { | |||
225 | 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 |
226 | video input devices. | 230 | video input devices. |
227 | 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 | |||
228 | 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 |
229 | clocks in Hz. An extra flags field allows device specific configuration | 239 | clocks in Hz. An extra flags field allows device specific configuration |
230 | regarding clock frequency dividers, etc. If not used, then set flags | 240 | regarding clock frequency dividers, etc. If not used, then set flags |
@@ -239,6 +249,8 @@ struct v4l2_subdev_audio_ops { | |||
239 | 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 |
240 | s_std() | 250 | s_std() |
241 | 251 | ||
252 | g_dv_preset: get current dv (Digital Video) preset in the sub device. | ||
253 | |||
242 | 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 |
243 | querystd() | 255 | querystd() |
244 | 256 | ||
@@ -255,12 +267,20 @@ struct v4l2_subdev_audio_ops { | |||
255 | 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 |
256 | 268 | ||
257 | 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. | ||
258 | */ | 276 | */ |
259 | struct v4l2_subdev_video_ops { | 277 | struct v4l2_subdev_video_ops { |
260 | 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); |
261 | 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); |
262 | 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); | ||
263 | 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); | ||
264 | int (*g_input_status)(struct v4l2_subdev *sd, u32 *status); | 284 | int (*g_input_status)(struct v4l2_subdev *sd, u32 *status); |
265 | int (*s_stream)(struct v4l2_subdev *sd, int enable); | 285 | int (*s_stream)(struct v4l2_subdev *sd, int enable); |
266 | int (*cropcap)(struct v4l2_subdev *sd, struct v4l2_cropcap *cc); | 286 | int (*cropcap)(struct v4l2_subdev *sd, struct v4l2_cropcap *cc); |
@@ -278,6 +298,8 @@ struct v4l2_subdev_video_ops { | |||
278 | struct v4l2_dv_enum_preset *preset); | 298 | struct v4l2_dv_enum_preset *preset); |
279 | int (*s_dv_preset)(struct v4l2_subdev *sd, | 299 | int (*s_dv_preset)(struct v4l2_subdev *sd, |
280 | 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); | ||
281 | int (*query_dv_preset)(struct v4l2_subdev *sd, | 303 | int (*query_dv_preset)(struct v4l2_subdev *sd, |
282 | struct v4l2_dv_preset *preset); | 304 | struct v4l2_dv_preset *preset); |
283 | int (*s_dv_timings)(struct v4l2_subdev *sd, | 305 | int (*s_dv_timings)(struct v4l2_subdev *sd, |
@@ -294,6 +316,10 @@ struct v4l2_subdev_video_ops { | |||
294 | struct v4l2_mbus_framefmt *fmt); | 316 | struct v4l2_mbus_framefmt *fmt); |
295 | int (*s_mbus_fmt)(struct v4l2_subdev *sd, | 317 | int (*s_mbus_fmt)(struct v4l2_subdev *sd, |
296 | 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); | ||
297 | }; | 323 | }; |
298 | 324 | ||
299 | /* | 325 | /* |
@@ -509,8 +535,6 @@ struct v4l2_subdev { | |||
509 | void *host_priv; | 535 | void *host_priv; |
510 | /* subdev device node */ | 536 | /* subdev device node */ |
511 | struct video_device devnode; | 537 | struct video_device devnode; |
512 | /* number of events to be allocated on open */ | ||
513 | unsigned int nevents; | ||
514 | }; | 538 | }; |
515 | 539 | ||
516 | #define media_entity_to_v4l2_subdev(ent) \ | 540 | #define media_entity_to_v4l2_subdev(ent) \ |