aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-21 14:10:30 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-21 14:10:30 -0500
commite695e10bc996d6f83df7d85f1011c8d00573f68b (patch)
tree3d0ba107ea8fe7d0090e3cfd5e36cdb4abcaab99 /include
parent3a5f10e3708e00c406f154bae412652ec3eb2b48 (diff)
parentf6982d59480953a8f5a84c237a9dabff39f788ce (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (196 commits) V4L/DVB (5253): Qt1010: whitespace / 80 column cleanups V4L/DVB (5252): Qt1010: use ARRAY_SIZE macro when appropriate V4L/DVB (5251): Qt1010: fix compiler warning V4L/DVB (5249): Fix compiler warning in vivi.c V4L/DVB (5247): Stv0297: Enable BER/UNC counting V4L/DVB (5246): Budget-ci: IR handling fixups V4L/DVB (5245): Dvb-ttpci: use i2c gate ctrl from stv0297 frontend driver V4L/DVB (5244): Dvbdev: fix illegal re-usage of fileoperations struct V4L/DVB (5178): Avoid race when deregistering the IR control for dvb-usb V4L/DVB (5240): Qt1010: use i2c_gate_ctrl where appropriate V4L/DVB (5239): Whitespace / 80-column cleanups V4L/DVB (5238): Kconfig: qt1010 should be selected by gl861 and au6610 V4L/DVB (5237): Dvb: add new qt1010 tuner module V4L/DVB (5236): Initial support for Sigmatek DVB-110 DVB-T V4L/DVB (5235): Gl861: use parallel_ts V4L/DVB (5234): Gl861: remove unneeded declaration V4L/DVB (5233): Gl861: correct address of the bulk endpoint V4L/DVB (5232): Gl861: correct oops when loading module V4L/DVB (5231): Gl861: whitespace cleanups V4L/DVB (5230): Gl861: remove NULL entry from gl861_properties ...
Diffstat (limited to 'include')
-rw-r--r--include/linux/videodev2.h71
-rw-r--r--include/media/cx2341x.h4
-rw-r--r--include/media/ir-common.h46
-rw-r--r--include/media/saa7115.h3
-rw-r--r--include/media/v4l2-common.h14
-rw-r--r--include/media/v4l2-dev.h9
-rw-r--r--include/media/video-buf.h3
7 files changed, 119 insertions, 31 deletions
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index d94e2683be52..65a165f918c9 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -1,5 +1,45 @@
1/* 1/*
2 * Video for Linux Two 2 * Video for Linux Two header file
3 *
4 * Copyright (C) 1999-2007 the contributors
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * Alternatively you can redistribute this file under the terms of the
17 * BSD license as stated below:
18 *
19 * Redistribution and use in source and binary forms, with or without
20 * modification, are permitted provided that the following conditions
21 * are met:
22 * 1. Redistributions of source code must retain the above copyright
23 * notice, this list of conditions and the following disclaimer.
24 * 2. Redistributions in binary form must reproduce the above copyright
25 * notice, this list of conditions and the following disclaimer in
26 * the documentation and/or other materials provided with the
27 * distribution.
28 * 3. The names of its contributors may not be used to endorse or promote
29 * products derived from this software without specific prior written
30 * permission.
31 *
32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
35 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
37 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
38 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
39 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
40 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
41 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
42 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3 * 43 *
4 * Header file for v4l or V4L2 drivers and applications 44 * Header file for v4l or V4L2 drivers and applications
5 * with public API. 45 * with public API.
@@ -8,8 +48,9 @@
8 * 48 *
9 * See http://linuxtv.org for more info 49 * See http://linuxtv.org for more info
10 * 50 *
11 * Author: Bill Dirks <bdirks@pacbell.net> 51 * Author: Bill Dirks <bill@thedirks.org>
12 * Justin Schoeman 52 * Justin Schoeman
53 * Hans Verkuil <hverkuil@xs4all.nl>
13 * et al. 54 * et al.
14 */ 55 */
15#ifndef __LINUX_VIDEODEV2_H 56#ifndef __LINUX_VIDEODEV2_H
@@ -90,11 +131,8 @@ enum v4l2_buf_type {
90 V4L2_BUF_TYPE_VIDEO_OVERLAY = 3, 131 V4L2_BUF_TYPE_VIDEO_OVERLAY = 3,
91 V4L2_BUF_TYPE_VBI_CAPTURE = 4, 132 V4L2_BUF_TYPE_VBI_CAPTURE = 4,
92 V4L2_BUF_TYPE_VBI_OUTPUT = 5, 133 V4L2_BUF_TYPE_VBI_OUTPUT = 5,
93#if 1
94 /* Experimental Sliced VBI */
95 V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6, 134 V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6,
96 V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7, 135 V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7,
97#endif
98 V4L2_BUF_TYPE_PRIVATE = 0x80, 136 V4L2_BUF_TYPE_PRIVATE = 0x80,
99}; 137};
100 138
@@ -186,10 +224,8 @@ struct v4l2_capability
186#define V4L2_CAP_VIDEO_OVERLAY 0x00000004 /* Can do video overlay */ 224#define V4L2_CAP_VIDEO_OVERLAY 0x00000004 /* Can do video overlay */
187#define V4L2_CAP_VBI_CAPTURE 0x00000010 /* Is a raw VBI capture device */ 225#define V4L2_CAP_VBI_CAPTURE 0x00000010 /* Is a raw VBI capture device */
188#define V4L2_CAP_VBI_OUTPUT 0x00000020 /* Is a raw VBI output device */ 226#define V4L2_CAP_VBI_OUTPUT 0x00000020 /* Is a raw VBI output device */
189#if 1
190#define V4L2_CAP_SLICED_VBI_CAPTURE 0x00000040 /* Is a sliced VBI capture device */ 227#define V4L2_CAP_SLICED_VBI_CAPTURE 0x00000040 /* Is a sliced VBI capture device */
191#define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 /* Is a sliced VBI output device */ 228#define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 /* Is a sliced VBI output device */
192#endif
193#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */ 229#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */
194 230
195#define V4L2_CAP_TUNER 0x00010000 /* has a tuner */ 231#define V4L2_CAP_TUNER 0x00010000 /* has a tuner */
@@ -1179,7 +1215,6 @@ struct v4l2_vbi_format
1179#define V4L2_VBI_UNSYNC (1<< 0) 1215#define V4L2_VBI_UNSYNC (1<< 0)
1180#define V4L2_VBI_INTERLACED (1<< 1) 1216#define V4L2_VBI_INTERLACED (1<< 1)
1181 1217
1182#if 1
1183/* Sliced VBI 1218/* Sliced VBI
1184 * 1219 *
1185 * This implements is a proposal V4L2 API to allow SLICED VBI 1220 * This implements is a proposal V4L2 API to allow SLICED VBI
@@ -1212,7 +1247,6 @@ struct v4l2_sliced_vbi_format
1212#define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525) 1247#define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525)
1213#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625) 1248#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625)
1214 1249
1215
1216struct v4l2_sliced_vbi_cap 1250struct v4l2_sliced_vbi_cap
1217{ 1251{
1218 __u16 service_set; 1252 __u16 service_set;
@@ -1233,7 +1267,6 @@ struct v4l2_sliced_vbi_data
1233 __u32 reserved; /* must be 0 */ 1267 __u32 reserved; /* must be 0 */
1234 __u8 data[48]; 1268 __u8 data[48];
1235}; 1269};
1236#endif
1237 1270
1238/* 1271/*
1239 * A G G R E G A T E S T R U C T U R E S 1272 * A G G R E G A T E S T R U C T U R E S
@@ -1249,9 +1282,7 @@ struct v4l2_format
1249 struct v4l2_pix_format pix; // V4L2_BUF_TYPE_VIDEO_CAPTURE 1282 struct v4l2_pix_format pix; // V4L2_BUF_TYPE_VIDEO_CAPTURE
1250 struct v4l2_window win; // V4L2_BUF_TYPE_VIDEO_OVERLAY 1283 struct v4l2_window win; // V4L2_BUF_TYPE_VIDEO_OVERLAY
1251 struct v4l2_vbi_format vbi; // V4L2_BUF_TYPE_VBI_CAPTURE 1284 struct v4l2_vbi_format vbi; // V4L2_BUF_TYPE_VBI_CAPTURE
1252#if 1
1253 struct v4l2_sliced_vbi_format sliced; // V4L2_BUF_TYPE_SLICED_VBI_CAPTURE 1285 struct v4l2_sliced_vbi_format sliced; // V4L2_BUF_TYPE_SLICED_VBI_CAPTURE
1254#endif
1255 __u8 raw_data[200]; // user-defined 1286 __u8 raw_data[200]; // user-defined
1256 } fmt; 1287 } fmt;
1257}; 1288};
@@ -1271,6 +1302,17 @@ struct v4l2_streamparm
1271}; 1302};
1272 1303
1273/* 1304/*
1305 * A D V A N C E D D E B U G G I N G
1306 */
1307
1308/* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */
1309struct v4l2_register {
1310 __u64 reg;
1311 __u32 i2c_id; /* I2C driver ID of the I2C chip, or 0 for the host */
1312 __u32 val;
1313};
1314
1315/*
1274 * I O C T L C O D E S F O R V I D E O D E V I C E S 1316 * I O C T L C O D E S F O R V I D E O D E V I C E S
1275 * 1317 *
1276 */ 1318 */
@@ -1328,9 +1370,7 @@ struct v4l2_streamparm
1328#define VIDIOC_ENUMAUDOUT _IOWR ('V', 66, struct v4l2_audioout) 1370#define VIDIOC_ENUMAUDOUT _IOWR ('V', 66, struct v4l2_audioout)
1329#define VIDIOC_G_PRIORITY _IOR ('V', 67, enum v4l2_priority) 1371#define VIDIOC_G_PRIORITY _IOR ('V', 67, enum v4l2_priority)
1330#define VIDIOC_S_PRIORITY _IOW ('V', 68, enum v4l2_priority) 1372#define VIDIOC_S_PRIORITY _IOW ('V', 68, enum v4l2_priority)
1331#if 1
1332#define VIDIOC_G_SLICED_VBI_CAP _IOWR ('V', 69, struct v4l2_sliced_vbi_cap) 1373#define VIDIOC_G_SLICED_VBI_CAP _IOWR ('V', 69, struct v4l2_sliced_vbi_cap)
1333#endif
1334#define VIDIOC_LOG_STATUS _IO ('V', 70) 1374#define VIDIOC_LOG_STATUS _IO ('V', 70)
1335#define VIDIOC_G_EXT_CTRLS _IOWR ('V', 71, struct v4l2_ext_controls) 1375#define VIDIOC_G_EXT_CTRLS _IOWR ('V', 71, struct v4l2_ext_controls)
1336#define VIDIOC_S_EXT_CTRLS _IOWR ('V', 72, struct v4l2_ext_controls) 1376#define VIDIOC_S_EXT_CTRLS _IOWR ('V', 72, struct v4l2_ext_controls)
@@ -1339,6 +1379,9 @@ struct v4l2_streamparm
1339#define VIDIOC_ENUM_FRAMESIZES _IOWR ('V', 74, struct v4l2_frmsizeenum) 1379#define VIDIOC_ENUM_FRAMESIZES _IOWR ('V', 74, struct v4l2_frmsizeenum)
1340#define VIDIOC_ENUM_FRAMEINTERVALS _IOWR ('V', 75, struct v4l2_frmivalenum) 1380#define VIDIOC_ENUM_FRAMEINTERVALS _IOWR ('V', 75, struct v4l2_frmivalenum)
1341#endif 1381#endif
1382/* only implemented if CONFIG_VIDEO_ADV_DEBUG is defined */
1383#define VIDIOC_DBG_S_REGISTER _IOW ('d', 100, struct v4l2_register)
1384#define VIDIOC_DBG_G_REGISTER _IOWR('d', 101, struct v4l2_register)
1342 1385
1343#ifdef __OLD_VIDIOC_ 1386#ifdef __OLD_VIDIOC_
1344/* for compatibility, will go away some day */ 1387/* for compatibility, will go away some day */
diff --git a/include/media/cx2341x.h b/include/media/cx2341x.h
index ecad55bf0162..d758a52cf556 100644
--- a/include/media/cx2341x.h
+++ b/include/media/cx2341x.h
@@ -57,7 +57,6 @@ struct cx2341x_mpeg_params {
57 u16 video_b_frames; 57 u16 video_b_frames;
58 u16 video_gop_size; 58 u16 video_gop_size;
59 u16 video_gop_closure; 59 u16 video_gop_closure;
60 u16 video_pulldown;
61 enum v4l2_mpeg_video_bitrate_mode video_bitrate_mode; 60 enum v4l2_mpeg_video_bitrate_mode video_bitrate_mode;
62 u32 video_bitrate; 61 u32 video_bitrate;
63 u32 video_bitrate_peak; 62 u32 video_bitrate_peak;
@@ -121,8 +120,6 @@ void cx2341x_log_status(struct cx2341x_mpeg_params *p, const char *prefix);
121#define CX2341X_DEC_SET_DISPLAY_BUFFERS 0x18 120#define CX2341X_DEC_SET_DISPLAY_BUFFERS 0x18
122#define CX2341X_DEC_EXTRACT_VBI 0x19 121#define CX2341X_DEC_EXTRACT_VBI 0x19
123#define CX2341X_DEC_SET_DECODER_SOURCE 0x1a 122#define CX2341X_DEC_SET_DECODER_SOURCE 0x1a
124#define CX2341X_DEC_SET_AUDIO_OUTPUT 0x1b
125#define CX2341X_DEC_SET_AV_DELAY 0x1c
126#define CX2341X_DEC_SET_PREBUFFERING 0x1e 123#define CX2341X_DEC_SET_PREBUFFERING 0x1e
127 124
128/* MPEG encoder API */ 125/* MPEG encoder API */
@@ -141,7 +138,6 @@ void cx2341x_log_status(struct cx2341x_mpeg_params *p, const char *prefix);
141#define CX2341X_ENC_SET_DNR_FILTER_PROPS 0x9d 138#define CX2341X_ENC_SET_DNR_FILTER_PROPS 0x9d
142#define CX2341X_ENC_SET_CORING_LEVELS 0x9f 139#define CX2341X_ENC_SET_CORING_LEVELS 0x9f
143#define CX2341X_ENC_SET_SPATIAL_FILTER_TYPE 0xa1 140#define CX2341X_ENC_SET_SPATIAL_FILTER_TYPE 0xa1
144#define CX2341X_ENC_SET_3_2_PULLDOWN 0xb1
145#define CX2341X_ENC_SET_VBI_LINE 0xb7 141#define CX2341X_ENC_SET_VBI_LINE 0xb7
146#define CX2341X_ENC_SET_STREAM_TYPE 0xb9 142#define CX2341X_ENC_SET_STREAM_TYPE 0xb9
147#define CX2341X_ENC_SET_OUTPUT_PORT 0xbb 143#define CX2341X_ENC_SET_OUTPUT_PORT 0xbb
diff --git a/include/media/ir-common.h b/include/media/ir-common.h
index 4bb0ad810179..9807a7c15830 100644
--- a/include/media/ir-common.h
+++ b/include/media/ir-common.h
@@ -36,6 +36,11 @@
36#define IR_KEYCODE(tab,code) (((unsigned)code < IR_KEYTAB_SIZE) \ 36#define IR_KEYCODE(tab,code) (((unsigned)code < IR_KEYTAB_SIZE) \
37 ? tab[code] : KEY_RESERVED) 37 ? tab[code] : KEY_RESERVED)
38 38
39#define RC5_START(x) (((x)>>12)&3)
40#define RC5_TOGGLE(x) (((x)>>11)&1)
41#define RC5_ADDR(x) (((x)>>6)&31)
42#define RC5_INSTR(x) ((x)&63)
43
39struct ir_input_state { 44struct ir_input_state {
40 /* configuration */ 45 /* configuration */
41 int ir_type; 46 int ir_type;
@@ -48,6 +53,40 @@ struct ir_input_state {
48 int keypressed; /* current state */ 53 int keypressed; /* current state */
49}; 54};
50 55
56/* this was saa7134_ir and bttv_ir, moved here for
57 * rc5 decoding. */
58struct card_ir {
59 struct input_dev *dev;
60 struct ir_input_state ir;
61 char name[32];
62 char phys[32];
63
64 /* Usual gpio signalling */
65
66 u32 mask_keycode;
67 u32 mask_keydown;
68 u32 mask_keyup;
69 u32 polling;
70 u32 last_gpio;
71 int shift_by;
72 int start; // What should RC5_START() be
73 int addr; // What RC5_ADDR() should be.
74 int rc5_key_timeout;
75 int rc5_remote_gap;
76 struct work_struct work;
77 struct timer_list timer;
78
79 /* RC5 gpio */
80 u32 rc5_gpio;
81 struct timer_list timer_end; /* timer_end for code completion */
82 struct timer_list timer_keyup; /* timer_end for key release */
83 u32 last_rc5; /* last good rc5 code */
84 u32 last_bit; /* last raw bit seen */
85 u32 code; /* raw code under construction */
86 struct timeval base_time; /* time of last seen code */
87 int active; /* building raw code */
88};
89
51void ir_input_init(struct input_dev *dev, struct ir_input_state *ir, 90void ir_input_init(struct input_dev *dev, struct ir_input_state *ir,
52 int ir_type, IR_KEYTAB_TYPE *ir_codes); 91 int ir_type, IR_KEYTAB_TYPE *ir_codes);
53void ir_input_nokey(struct input_dev *dev, struct ir_input_state *ir); 92void ir_input_nokey(struct input_dev *dev, struct ir_input_state *ir);
@@ -58,6 +97,10 @@ int ir_dump_samples(u32 *samples, int count);
58int ir_decode_biphase(u32 *samples, int count, int low, int high); 97int ir_decode_biphase(u32 *samples, int count, int low, int high);
59int ir_decode_pulsedistance(u32 *samples, int count, int low, int high); 98int ir_decode_pulsedistance(u32 *samples, int count, int low, int high);
60 99
100u32 ir_rc5_decode(unsigned int code);
101void ir_rc5_timer_end(unsigned long data);
102void ir_rc5_timer_keyup(unsigned long data);
103
61/* Keymaps to be used by other modules */ 104/* Keymaps to be used by other modules */
62 105
63extern IR_KEYTAB_TYPE ir_codes_empty[IR_KEYTAB_SIZE]; 106extern IR_KEYTAB_TYPE ir_codes_empty[IR_KEYTAB_SIZE];
@@ -94,6 +137,9 @@ extern IR_KEYTAB_TYPE ir_codes_npgtech[IR_KEYTAB_SIZE];
94extern IR_KEYTAB_TYPE ir_codes_norwood[IR_KEYTAB_SIZE]; 137extern IR_KEYTAB_TYPE ir_codes_norwood[IR_KEYTAB_SIZE];
95extern IR_KEYTAB_TYPE ir_codes_proteus_2309[IR_KEYTAB_SIZE]; 138extern IR_KEYTAB_TYPE ir_codes_proteus_2309[IR_KEYTAB_SIZE];
96extern IR_KEYTAB_TYPE ir_codes_budget_ci_old[IR_KEYTAB_SIZE]; 139extern IR_KEYTAB_TYPE ir_codes_budget_ci_old[IR_KEYTAB_SIZE];
140extern IR_KEYTAB_TYPE ir_codes_asus_pc39[IR_KEYTAB_SIZE];
141extern IR_KEYTAB_TYPE ir_codes_encore_enltv[IR_KEYTAB_SIZE];
142extern IR_KEYTAB_TYPE ir_codes_tt_1500[IR_KEYTAB_SIZE];
97 143
98#endif 144#endif
99 145
diff --git a/include/media/saa7115.h b/include/media/saa7115.h
index 9f0e2285a099..f677dfb9d373 100644
--- a/include/media/saa7115.h
+++ b/include/media/saa7115.h
@@ -42,5 +42,8 @@
42#define SAA7115_FREQ_FL_CGCDIV (1 << 1) /* SA 3A[6], CGCDIV, SAA7115 only */ 42#define SAA7115_FREQ_FL_CGCDIV (1 << 1) /* SA 3A[6], CGCDIV, SAA7115 only */
43#define SAA7115_FREQ_FL_APLL (1 << 2) /* SA 3A[3], APLL, SAA7114/5 only */ 43#define SAA7115_FREQ_FL_APLL (1 << 2) /* SA 3A[3], APLL, SAA7114/5 only */
44 44
45#define SAA7115_IPORT_ON 1
46#define SAA7115_IPORT_OFF 0
47
45#endif 48#endif
46 49
diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h
index 91b19921f958..244e440edb53 100644
--- a/include/media/v4l2-common.h
+++ b/include/media/v4l2-common.h
@@ -64,9 +64,6 @@
64/* Prints the ioctl in a human-readable format */ 64/* Prints the ioctl in a human-readable format */
65extern void v4l_printk_ioctl(unsigned int cmd); 65extern void v4l_printk_ioctl(unsigned int cmd);
66 66
67/* Prints the ioctl and arg in a human-readable format */
68extern void v4l_printk_ioctl_arg(char *s,unsigned int cmd, void *arg);
69
70/* Use this macro for non-I2C drivers. Pass the driver name as the first arg. */ 67/* Use this macro for non-I2C drivers. Pass the driver name as the first arg. */
71#define v4l_print_ioctl(name, cmd) \ 68#define v4l_print_ioctl(name, cmd) \
72 do { \ 69 do { \
@@ -99,13 +96,6 @@ u32 v4l2_ctrl_next(const u32 * const *ctrl_classes, u32 id);
99 96
100/* Internal ioctls */ 97/* Internal ioctls */
101 98
102/* VIDIOC_INT_G_REGISTER and VIDIOC_INT_S_REGISTER */
103struct v4l2_register {
104 u32 i2c_id; /* I2C driver ID of the I2C chip. 0 for the I2C adapter. */
105 unsigned long reg;
106 u32 val;
107};
108
109/* VIDIOC_INT_DECODE_VBI_LINE */ 99/* VIDIOC_INT_DECODE_VBI_LINE */
110struct v4l2_decode_vbi_line { 100struct v4l2_decode_vbi_line {
111 u32 is_second_field; /* Set to 0 for the first (odd) field, 101 u32 is_second_field; /* Set to 0 for the first (odd) field,
@@ -175,9 +165,7 @@ enum v4l2_chip_ident {
175 Replacement of TUNER_SET_STANDBY. */ 165 Replacement of TUNER_SET_STANDBY. */
176#define VIDIOC_INT_S_STANDBY _IOW('d', 94, u32) 166#define VIDIOC_INT_S_STANDBY _IOW('d', 94, u32)
177 167
178/* only implemented if CONFIG_VIDEO_ADV_DEBUG is defined */ 168/* 100, 101 used by VIDIOC_DBG_[SG]_REGISTER */
179#define VIDIOC_INT_S_REGISTER _IOW ('d', 100, struct v4l2_register)
180#define VIDIOC_INT_G_REGISTER _IOWR('d', 101, struct v4l2_register)
181 169
182/* Generic reset command. The argument selects which subsystems to reset. 170/* Generic reset command. The argument selects which subsystems to reset.
183 Passing 0 will always reset the whole chip. */ 171 Passing 0 will always reset the whole chip. */
diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h
index fb96472a1bd3..aeec56992ef5 100644
--- a/include/media/v4l2-dev.h
+++ b/include/media/v4l2-dev.h
@@ -296,6 +296,15 @@ struct video_device
296 int (*vidioc_log_status) (struct file *file, void *fh); 296 int (*vidioc_log_status) (struct file *file, void *fh);
297 297
298 298
299 /* Debugging ioctls */
300#ifdef CONFIG_VIDEO_ADV_DEBUG
301 int (*vidioc_g_register) (struct file *file, void *fh,
302 struct v4l2_register *reg);
303 int (*vidioc_s_register) (struct file *file, void *fh,
304 struct v4l2_register *reg);
305#endif
306
307
299#ifdef OBSOLETE_OWNER /* to be removed soon */ 308#ifdef OBSOLETE_OWNER /* to be removed soon */
300/* obsolete -- fops->owner is used instead */ 309/* obsolete -- fops->owner is used instead */
301struct module *owner; 310struct module *owner;
diff --git a/include/media/video-buf.h b/include/media/video-buf.h
index 1115a256969f..d6f079476db3 100644
--- a/include/media/video-buf.h
+++ b/include/media/video-buf.h
@@ -78,6 +78,9 @@ struct videobuf_dmabuf {
78 /* for kernel buffers */ 78 /* for kernel buffers */
79 void *vmalloc; 79 void *vmalloc;
80 80
81 /* Stores the userspace pointer to vmalloc area */
82 void *varea;
83
81 /* for overlay buffers (pci-pci dma) */ 84 /* for overlay buffers (pci-pci dma) */
82 dma_addr_t bus_addr; 85 dma_addr_t bus_addr;
83 86