diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-21 00:14:42 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-21 00:14:42 -0400 |
commit | f894d18380e7e7ff05f6622ccb75d2881922c6e9 (patch) | |
tree | e3c11b831b68096239a49dec539a49e49c1d90b7 /include | |
parent | d13ff0559fea73f237a01669887d2c10e11d7662 (diff) | |
parent | d20b27478d6ccf7c4c8de4f09db2bdbaec82a6c0 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb
* git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (277 commits)
V4L/DVB (8415): gspca: Infinite loop in i2c_w() of etoms.
V4L/DVB (8414): videodev/cx18: fix get_index bug and error-handling lock-ups
V4L/DVB (8411): videobuf-dma-contig.c: fix 64-bit build for pre-2.6.24 kernels
V4L/DVB (8410): sh_mobile_ceu_camera: fix 64-bit compiler warnings
V4L/DVB (8397): video: convert select VIDEO_ZORAN_ZR36060 into depends on
V4L/DVB (8396): video: Fix Kbuild dependency for VIDEO_IR_I2C
V4L/DVB (8395): saa7134: Fix Kbuild dependency of ir-kbd-i2c
V4L/DVB (8394): ir-common: CodingStyle fix: move EXPORT_SYMBOL_GPL to their proper places
V4L/DVB (8393): media/video: Fix depencencies for VIDEOBUF
V4L/DVB (8392): media/Kconfig: Convert V4L1_COMPAT select into "depends on"
V4L/DVB (8390): videodev: add comment and remove magic number.
V4L/DVB (8389): videodev: simplify get_index()
V4L/DVB (8387): Some cosmetic changes
V4L/DVB (8381): ov7670: fix compile warnings
V4L/DVB (8380): saa7115: use saa7115_auto instead of saa711x as the autodetect driver name.
V4L/DVB (8379): saa7127: Make device detection optional
V4L/DVB (8378): cx18: move cx18_av_vbi_setup to av-core.c and rename to cx18_av_std_setup
V4L/DVB (8377): ivtv/cx18: ensure the default control values are correct
V4L/DVB (8376): cx25840: move cx25840_vbi_setup to core.c and rename to cx25840_std_setup
V4L/DVB (8374): gspca: No conflict of 0c45:6011 with the sn9c102 driver.
...
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/i2c-id.h | 8 | ||||
-rw-r--r-- | include/linux/videodev2.h | 14 | ||||
-rw-r--r-- | include/media/cx2341x.h | 7 | ||||
-rw-r--r-- | include/media/ir-kbd-i2c.h | 3 | ||||
-rw-r--r-- | include/media/pwc-ioctl.h | 3 | ||||
-rw-r--r-- | include/media/saa7146.h | 4 | ||||
-rw-r--r-- | include/media/sh_mobile_ceu.h | 12 | ||||
-rw-r--r-- | include/media/soc_camera.h | 16 | ||||
-rw-r--r-- | include/media/soc_camera_platform.h | 15 | ||||
-rw-r--r-- | include/media/v4l2-dev.h | 83 | ||||
-rw-r--r-- | include/media/v4l2-i2c-drv-legacy.h | 1 | ||||
-rw-r--r-- | include/media/videobuf-dma-contig.h | 32 | ||||
-rw-r--r-- | include/media/videobuf-dma-sg.h | 2 | ||||
-rw-r--r-- | include/media/videobuf-vmalloc.h | 2 |
14 files changed, 135 insertions, 67 deletions
diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h index ef13b7c66df3..4862398e05bf 100644 --- a/include/linux/i2c-id.h +++ b/include/linux/i2c-id.h | |||
@@ -33,15 +33,11 @@ | |||
33 | 33 | ||
34 | #define I2C_DRIVERID_MSP3400 1 | 34 | #define I2C_DRIVERID_MSP3400 1 |
35 | #define I2C_DRIVERID_TUNER 2 | 35 | #define I2C_DRIVERID_TUNER 2 |
36 | #define I2C_DRIVERID_TDA8425 4 /* stereo sound processor */ | ||
37 | #define I2C_DRIVERID_TEA6420 5 /* audio matrix switch */ | 36 | #define I2C_DRIVERID_TEA6420 5 /* audio matrix switch */ |
38 | #define I2C_DRIVERID_TEA6415C 6 /* video matrix switch */ | 37 | #define I2C_DRIVERID_TEA6415C 6 /* video matrix switch */ |
39 | #define I2C_DRIVERID_TDA9840 7 /* stereo sound processor */ | 38 | #define I2C_DRIVERID_TDA9840 7 /* stereo sound processor */ |
40 | #define I2C_DRIVERID_SAA7111A 8 /* video input processor */ | 39 | #define I2C_DRIVERID_SAA7111A 8 /* video input processor */ |
41 | #define I2C_DRIVERID_SAA7185B 13 /* video encoder */ | 40 | #define I2C_DRIVERID_SAA7185B 13 /* video encoder */ |
42 | #define I2C_DRIVERID_TEA6300 18 /* audio mixer */ | ||
43 | #define I2C_DRIVERID_TDA9850 20 /* audio mixer */ | ||
44 | #define I2C_DRIVERID_TDA9855 21 /* audio mixer */ | ||
45 | #define I2C_DRIVERID_SAA7110 22 /* video decoder */ | 41 | #define I2C_DRIVERID_SAA7110 22 /* video decoder */ |
46 | #define I2C_DRIVERID_MGATVO 23 /* Matrox TVOut */ | 42 | #define I2C_DRIVERID_MGATVO 23 /* Matrox TVOut */ |
47 | #define I2C_DRIVERID_SAA5249 24 /* SAA5249 and compatibles */ | 43 | #define I2C_DRIVERID_SAA5249 24 /* SAA5249 and compatibles */ |
@@ -50,9 +46,7 @@ | |||
50 | #define I2C_DRIVERID_TDA7432 27 /* Stereo sound processor */ | 46 | #define I2C_DRIVERID_TDA7432 27 /* Stereo sound processor */ |
51 | #define I2C_DRIVERID_TVMIXER 28 /* Mixer driver for tv cards */ | 47 | #define I2C_DRIVERID_TVMIXER 28 /* Mixer driver for tv cards */ |
52 | #define I2C_DRIVERID_TVAUDIO 29 /* Generic TV sound driver */ | 48 | #define I2C_DRIVERID_TVAUDIO 29 /* Generic TV sound driver */ |
53 | #define I2C_DRIVERID_TDA9873 31 /* TV sound decoder chip */ | ||
54 | #define I2C_DRIVERID_TDA9875 32 /* TV sound decoder chip */ | 49 | #define I2C_DRIVERID_TDA9875 32 /* TV sound decoder chip */ |
55 | #define I2C_DRIVERID_PIC16C54_PV9 33 /* Audio mux/ir receiver */ | ||
56 | #define I2C_DRIVERID_BT819 40 /* video decoder */ | 50 | #define I2C_DRIVERID_BT819 40 /* video decoder */ |
57 | #define I2C_DRIVERID_BT856 41 /* video encoder */ | 51 | #define I2C_DRIVERID_BT856 41 /* video encoder */ |
58 | #define I2C_DRIVERID_VPX3220 42 /* video decoder+vbi/vtxt */ | 52 | #define I2C_DRIVERID_VPX3220 42 /* video decoder+vbi/vtxt */ |
@@ -63,7 +57,6 @@ | |||
63 | #define I2C_DRIVERID_INDYCAM 58 /* SGI IndyCam */ | 57 | #define I2C_DRIVERID_INDYCAM 58 /* SGI IndyCam */ |
64 | #define I2C_DRIVERID_OVCAMCHIP 61 /* OmniVision CMOS image sens. */ | 58 | #define I2C_DRIVERID_OVCAMCHIP 61 /* OmniVision CMOS image sens. */ |
65 | #define I2C_DRIVERID_MAX6900 63 /* MAX6900 real-time clock */ | 59 | #define I2C_DRIVERID_MAX6900 63 /* MAX6900 real-time clock */ |
66 | #define I2C_DRIVERID_TDA9874 66 /* TV sound decoder */ | ||
67 | #define I2C_DRIVERID_SAA6752HS 67 /* MPEG2 encoder */ | 60 | #define I2C_DRIVERID_SAA6752HS 67 /* MPEG2 encoder */ |
68 | #define I2C_DRIVERID_TVEEPROM 68 /* TV EEPROM */ | 61 | #define I2C_DRIVERID_TVEEPROM 68 /* TV EEPROM */ |
69 | #define I2C_DRIVERID_WM8775 69 /* wm8775 audio processor */ | 62 | #define I2C_DRIVERID_WM8775 69 /* wm8775 audio processor */ |
@@ -158,7 +151,6 @@ | |||
158 | #define I2C_HW_SMBUS_W9968CF 0x04000d | 151 | #define I2C_HW_SMBUS_W9968CF 0x04000d |
159 | #define I2C_HW_SMBUS_OV511 0x04000e /* OV511(+) USB 1.1 webcam ICs */ | 152 | #define I2C_HW_SMBUS_OV511 0x04000e /* OV511(+) USB 1.1 webcam ICs */ |
160 | #define I2C_HW_SMBUS_OV518 0x04000f /* OV518(+) USB 1.1 webcam ICs */ | 153 | #define I2C_HW_SMBUS_OV518 0x04000f /* OV518(+) USB 1.1 webcam ICs */ |
161 | #define I2C_HW_SMBUS_OVFX2 0x040011 /* Cypress/OmniVision FX2 webcam */ | ||
162 | #define I2C_HW_SMBUS_CAFE 0x040012 /* Marvell 88ALP01 "CAFE" cam */ | 154 | #define I2C_HW_SMBUS_CAFE 0x040012 /* Marvell 88ALP01 "CAFE" cam */ |
163 | #define I2C_HW_SMBUS_ALI1563 0x040013 | 155 | #define I2C_HW_SMBUS_ALI1563 0x040013 |
164 | 156 | ||
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 4a535ea1e123..2e66a95e8d32 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h | |||
@@ -246,6 +246,7 @@ struct v4l2_capability | |||
246 | #define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 /* Is a sliced VBI output device */ | 246 | #define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 /* Is a sliced VBI output device */ |
247 | #define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */ | 247 | #define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */ |
248 | #define V4L2_CAP_VIDEO_OUTPUT_OVERLAY 0x00000200 /* Can do video output overlay */ | 248 | #define V4L2_CAP_VIDEO_OUTPUT_OVERLAY 0x00000200 /* Can do video output overlay */ |
249 | #define V4L2_CAP_HW_FREQ_SEEK 0x00000400 /* Can do hardware frequency seek */ | ||
249 | 250 | ||
250 | #define V4L2_CAP_TUNER 0x00010000 /* has a tuner */ | 251 | #define V4L2_CAP_TUNER 0x00010000 /* has a tuner */ |
251 | #define V4L2_CAP_AUDIO 0x00020000 /* has audio support */ | 252 | #define V4L2_CAP_AUDIO 0x00020000 /* has audio support */ |
@@ -309,6 +310,7 @@ struct v4l2_pix_format | |||
309 | 310 | ||
310 | /* see http://www.siliconimaging.com/RGB%20Bayer.htm */ | 311 | /* see http://www.siliconimaging.com/RGB%20Bayer.htm */ |
311 | #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B','A','8','1') /* 8 BGBG.. GRGR.. */ | 312 | #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B','A','8','1') /* 8 BGBG.. GRGR.. */ |
313 | #define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G','B','R','G') /* 8 GBGB.. RGRG.. */ | ||
312 | #define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B','Y','R','2') /* 16 BGBG.. GRGR.. */ | 314 | #define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B','Y','R','2') /* 16 BGBG.. GRGR.. */ |
313 | 315 | ||
314 | /* compressed formats */ | 316 | /* compressed formats */ |
@@ -323,6 +325,9 @@ struct v4l2_pix_format | |||
323 | #define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P','W','C','1') /* pwc older webcam */ | 325 | #define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P','W','C','1') /* pwc older webcam */ |
324 | #define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P','W','C','2') /* pwc newer webcam */ | 326 | #define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P','W','C','2') /* pwc newer webcam */ |
325 | #define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E','6','2','5') /* ET61X251 compression */ | 327 | #define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E','6','2','5') /* ET61X251 compression */ |
328 | #define V4L2_PIX_FMT_SPCA501 v4l2_fourcc('S','5','0','1') /* YUYV per line */ | ||
329 | #define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S','5','6','1') /* compressed GBRG bayer */ | ||
330 | #define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P','2','0','7') /* compressed BGGR bayer */ | ||
326 | 331 | ||
327 | /* | 332 | /* |
328 | * F O R M A T E N U M E R A T I O N | 333 | * F O R M A T E N U M E R A T I O N |
@@ -1156,6 +1161,14 @@ struct v4l2_frequency | |||
1156 | __u32 reserved[8]; | 1161 | __u32 reserved[8]; |
1157 | }; | 1162 | }; |
1158 | 1163 | ||
1164 | struct v4l2_hw_freq_seek { | ||
1165 | __u32 tuner; | ||
1166 | enum v4l2_tuner_type type; | ||
1167 | __u32 seek_upward; | ||
1168 | __u32 wrap_around; | ||
1169 | __u32 reserved[8]; | ||
1170 | }; | ||
1171 | |||
1159 | /* | 1172 | /* |
1160 | * A U D I O | 1173 | * A U D I O |
1161 | */ | 1174 | */ |
@@ -1441,6 +1454,7 @@ struct v4l2_chip_ident { | |||
1441 | 1454 | ||
1442 | #define VIDIOC_G_CHIP_IDENT _IOWR ('V', 81, struct v4l2_chip_ident) | 1455 | #define VIDIOC_G_CHIP_IDENT _IOWR ('V', 81, struct v4l2_chip_ident) |
1443 | #endif | 1456 | #endif |
1457 | #define VIDIOC_S_HW_FREQ_SEEK _IOW ('V', 82, struct v4l2_hw_freq_seek) | ||
1444 | 1458 | ||
1445 | #ifdef __OLD_VIDIOC_ | 1459 | #ifdef __OLD_VIDIOC_ |
1446 | /* for compatibility, will go away some day */ | 1460 | /* for compatibility, will go away some day */ |
diff --git a/include/media/cx2341x.h b/include/media/cx2341x.h index 5f4608e88476..9ec4d5889ef5 100644 --- a/include/media/cx2341x.h +++ b/include/media/cx2341x.h | |||
@@ -27,6 +27,7 @@ enum cx2341x_port { | |||
27 | 27 | ||
28 | enum cx2341x_cap { | 28 | enum cx2341x_cap { |
29 | CX2341X_CAP_HAS_SLICED_VBI = 1 << 0, | 29 | CX2341X_CAP_HAS_SLICED_VBI = 1 << 0, |
30 | CX2341X_CAP_HAS_TS = 1 << 1, | ||
30 | }; | 31 | }; |
31 | 32 | ||
32 | struct cx2341x_mpeg_params { | 33 | struct cx2341x_mpeg_params { |
@@ -88,13 +89,13 @@ typedef int (*cx2341x_mbox_func)(void *priv, u32 cmd, int in, int out, | |||
88 | int cx2341x_update(void *priv, cx2341x_mbox_func func, | 89 | int cx2341x_update(void *priv, cx2341x_mbox_func func, |
89 | const struct cx2341x_mpeg_params *old, | 90 | const struct cx2341x_mpeg_params *old, |
90 | const struct cx2341x_mpeg_params *new); | 91 | const struct cx2341x_mpeg_params *new); |
91 | int cx2341x_ctrl_query(struct cx2341x_mpeg_params *params, | 92 | int cx2341x_ctrl_query(const struct cx2341x_mpeg_params *params, |
92 | struct v4l2_queryctrl *qctrl); | 93 | struct v4l2_queryctrl *qctrl); |
93 | const char **cx2341x_ctrl_get_menu(u32 id); | 94 | const char **cx2341x_ctrl_get_menu(const struct cx2341x_mpeg_params *p, u32 id); |
94 | int cx2341x_ext_ctrls(struct cx2341x_mpeg_params *params, int busy, | 95 | int cx2341x_ext_ctrls(struct cx2341x_mpeg_params *params, int busy, |
95 | struct v4l2_ext_controls *ctrls, unsigned int cmd); | 96 | struct v4l2_ext_controls *ctrls, unsigned int cmd); |
96 | void cx2341x_fill_defaults(struct cx2341x_mpeg_params *p); | 97 | void cx2341x_fill_defaults(struct cx2341x_mpeg_params *p); |
97 | void cx2341x_log_status(struct cx2341x_mpeg_params *p, const char *prefix); | 98 | void cx2341x_log_status(const struct cx2341x_mpeg_params *p, const char *prefix); |
98 | 99 | ||
99 | /* Firmware names */ | 100 | /* Firmware names */ |
100 | #define CX2341X_FIRM_ENC_FILENAME "v4l-cx2341x-enc.fw" | 101 | #define CX2341X_FIRM_ENC_FILENAME "v4l-cx2341x-enc.fw" |
diff --git a/include/media/ir-kbd-i2c.h b/include/media/ir-kbd-i2c.h index a455f7ce5ee8..00fa57eb9fde 100644 --- a/include/media/ir-kbd-i2c.h +++ b/include/media/ir-kbd-i2c.h | |||
@@ -19,7 +19,4 @@ struct IR_i2c { | |||
19 | char phys[32]; | 19 | char phys[32]; |
20 | int (*get_key)(struct IR_i2c*, u32*, u32*); | 20 | int (*get_key)(struct IR_i2c*, u32*, u32*); |
21 | }; | 21 | }; |
22 | |||
23 | int get_key_pinnacle_grey(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw); | ||
24 | int get_key_pinnacle_color(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw); | ||
25 | #endif | 22 | #endif |
diff --git a/include/media/pwc-ioctl.h b/include/media/pwc-ioctl.h index adc1254e887e..0f19779c4634 100644 --- a/include/media/pwc-ioctl.h +++ b/include/media/pwc-ioctl.h | |||
@@ -55,8 +55,7 @@ | |||
55 | #include <linux/types.h> | 55 | #include <linux/types.h> |
56 | #include <linux/version.h> | 56 | #include <linux/version.h> |
57 | 57 | ||
58 | 58 | /* Enumeration of image sizes */ | |
59 | /* Enumeration of image sizes */ | ||
60 | #define PSZ_SQCIF 0x00 | 59 | #define PSZ_SQCIF 0x00 |
61 | #define PSZ_QSIF 0x01 | 60 | #define PSZ_QSIF 0x01 |
62 | #define PSZ_QCIF 0x02 | 61 | #define PSZ_QCIF 0x02 |
diff --git a/include/media/saa7146.h b/include/media/saa7146.h index 88b2b5a619aa..2f68f4cd0037 100644 --- a/include/media/saa7146.h +++ b/include/media/saa7146.h | |||
@@ -53,7 +53,7 @@ struct saa7146_vv; | |||
53 | /* saa7146 page table */ | 53 | /* saa7146 page table */ |
54 | struct saa7146_pgtable { | 54 | struct saa7146_pgtable { |
55 | unsigned int size; | 55 | unsigned int size; |
56 | u32 *cpu; | 56 | __le32 *cpu; |
57 | dma_addr_t dma; | 57 | dma_addr_t dma; |
58 | /* used for offsets for u,v planes for planar capture modes */ | 58 | /* used for offsets for u,v planes for planar capture modes */ |
59 | unsigned long offset; | 59 | unsigned long offset; |
@@ -101,7 +101,7 @@ struct saa7146_extension | |||
101 | struct saa7146_dma | 101 | struct saa7146_dma |
102 | { | 102 | { |
103 | dma_addr_t dma_handle; | 103 | dma_addr_t dma_handle; |
104 | u32 *cpu_addr; | 104 | __le32 *cpu_addr; |
105 | }; | 105 | }; |
106 | 106 | ||
107 | struct saa7146_dev | 107 | struct saa7146_dev |
diff --git a/include/media/sh_mobile_ceu.h b/include/media/sh_mobile_ceu.h new file mode 100644 index 000000000000..234a4711d2ec --- /dev/null +++ b/include/media/sh_mobile_ceu.h | |||
@@ -0,0 +1,12 @@ | |||
1 | #ifndef __ASM_SH_MOBILE_CEU_H__ | ||
2 | #define __ASM_SH_MOBILE_CEU_H__ | ||
3 | |||
4 | #include <media/soc_camera.h> | ||
5 | |||
6 | struct sh_mobile_ceu_info { | ||
7 | unsigned long flags; /* SOCAM_... */ | ||
8 | void (*enable_camera)(void); | ||
9 | void (*disable_camera)(void); | ||
10 | }; | ||
11 | |||
12 | #endif /* __ASM_SH_MOBILE_CEU_H__ */ | ||
diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h index 6a8c8be7a1ae..1de98f150e99 100644 --- a/include/media/soc_camera.h +++ b/include/media/soc_camera.h | |||
@@ -13,7 +13,7 @@ | |||
13 | #define SOC_CAMERA_H | 13 | #define SOC_CAMERA_H |
14 | 14 | ||
15 | #include <linux/videodev2.h> | 15 | #include <linux/videodev2.h> |
16 | #include <media/videobuf-dma-sg.h> | 16 | #include <media/videobuf-core.h> |
17 | 17 | ||
18 | struct soc_camera_device { | 18 | struct soc_camera_device { |
19 | struct list_head list; | 19 | struct list_head list; |
@@ -48,15 +48,12 @@ struct soc_camera_device { | |||
48 | struct soc_camera_file { | 48 | struct soc_camera_file { |
49 | struct soc_camera_device *icd; | 49 | struct soc_camera_device *icd; |
50 | struct videobuf_queue vb_vidq; | 50 | struct videobuf_queue vb_vidq; |
51 | spinlock_t *lock; | ||
52 | }; | 51 | }; |
53 | 52 | ||
54 | struct soc_camera_host { | 53 | struct soc_camera_host { |
55 | struct list_head list; | 54 | struct list_head list; |
56 | struct device dev; | 55 | struct device dev; |
57 | unsigned char nr; /* Host number */ | 56 | unsigned char nr; /* Host number */ |
58 | size_t msize; | ||
59 | struct videobuf_queue_ops *vbq_ops; | ||
60 | void *priv; | 57 | void *priv; |
61 | char *drv_name; | 58 | char *drv_name; |
62 | struct soc_camera_host_ops *ops; | 59 | struct soc_camera_host_ops *ops; |
@@ -69,13 +66,13 @@ struct soc_camera_host_ops { | |||
69 | int (*set_fmt_cap)(struct soc_camera_device *, __u32, | 66 | int (*set_fmt_cap)(struct soc_camera_device *, __u32, |
70 | struct v4l2_rect *); | 67 | struct v4l2_rect *); |
71 | int (*try_fmt_cap)(struct soc_camera_device *, struct v4l2_format *); | 68 | int (*try_fmt_cap)(struct soc_camera_device *, struct v4l2_format *); |
69 | void (*init_videobuf)(struct videobuf_queue *, | ||
70 | struct soc_camera_device *); | ||
72 | int (*reqbufs)(struct soc_camera_file *, struct v4l2_requestbuffers *); | 71 | int (*reqbufs)(struct soc_camera_file *, struct v4l2_requestbuffers *); |
73 | int (*querycap)(struct soc_camera_host *, struct v4l2_capability *); | 72 | int (*querycap)(struct soc_camera_host *, struct v4l2_capability *); |
74 | int (*try_bus_param)(struct soc_camera_device *, __u32); | 73 | int (*try_bus_param)(struct soc_camera_device *, __u32); |
75 | int (*set_bus_param)(struct soc_camera_device *, __u32); | 74 | int (*set_bus_param)(struct soc_camera_device *, __u32); |
76 | unsigned int (*poll)(struct file *, poll_table *); | 75 | unsigned int (*poll)(struct file *, poll_table *); |
77 | spinlock_t* (*spinlock_alloc)(struct soc_camera_file *); | ||
78 | void (*spinlock_free)(spinlock_t *); | ||
79 | }; | 76 | }; |
80 | 77 | ||
81 | struct soc_camera_link { | 78 | struct soc_camera_link { |
@@ -156,11 +153,12 @@ static inline struct v4l2_queryctrl const *soc_camera_find_qctrl( | |||
156 | #define SOCAM_DATAWIDTH_8 (1 << 6) | 153 | #define SOCAM_DATAWIDTH_8 (1 << 6) |
157 | #define SOCAM_DATAWIDTH_9 (1 << 7) | 154 | #define SOCAM_DATAWIDTH_9 (1 << 7) |
158 | #define SOCAM_DATAWIDTH_10 (1 << 8) | 155 | #define SOCAM_DATAWIDTH_10 (1 << 8) |
159 | #define SOCAM_PCLK_SAMPLE_RISING (1 << 9) | 156 | #define SOCAM_DATAWIDTH_16 (1 << 9) |
160 | #define SOCAM_PCLK_SAMPLE_FALLING (1 << 10) | 157 | #define SOCAM_PCLK_SAMPLE_RISING (1 << 10) |
158 | #define SOCAM_PCLK_SAMPLE_FALLING (1 << 11) | ||
161 | 159 | ||
162 | #define SOCAM_DATAWIDTH_MASK (SOCAM_DATAWIDTH_8 | SOCAM_DATAWIDTH_9 | \ | 160 | #define SOCAM_DATAWIDTH_MASK (SOCAM_DATAWIDTH_8 | SOCAM_DATAWIDTH_9 | \ |
163 | SOCAM_DATAWIDTH_10) | 161 | SOCAM_DATAWIDTH_10 | SOCAM_DATAWIDTH_16) |
164 | 162 | ||
165 | static inline unsigned long soc_camera_bus_param_compatible( | 163 | static inline unsigned long soc_camera_bus_param_compatible( |
166 | unsigned long camera_flags, unsigned long bus_flags) | 164 | unsigned long camera_flags, unsigned long bus_flags) |
diff --git a/include/media/soc_camera_platform.h b/include/media/soc_camera_platform.h new file mode 100644 index 000000000000..851f18220984 --- /dev/null +++ b/include/media/soc_camera_platform.h | |||
@@ -0,0 +1,15 @@ | |||
1 | #ifndef __SOC_CAMERA_H__ | ||
2 | #define __SOC_CAMERA_H__ | ||
3 | |||
4 | #include <linux/videodev2.h> | ||
5 | |||
6 | struct soc_camera_platform_info { | ||
7 | int iface; | ||
8 | char *format_name; | ||
9 | unsigned long format_depth; | ||
10 | struct v4l2_pix_format format; | ||
11 | unsigned long bus_param; | ||
12 | int (*set_capture)(struct soc_camera_platform_info *info, int enable); | ||
13 | }; | ||
14 | |||
15 | #endif /* __SOC_CAMERA_H__ */ | ||
diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h index 859f7a6f6f67..33f379b1ecfe 100644 --- a/include/media/v4l2-dev.h +++ b/include/media/v4l2-dev.h | |||
@@ -59,8 +59,8 @@ enum v4l2_priority v4l2_prio_max(struct v4l2_prio_state *global); | |||
59 | int v4l2_prio_check(struct v4l2_prio_state *global, enum v4l2_priority *local); | 59 | int v4l2_prio_check(struct v4l2_prio_state *global, enum v4l2_priority *local); |
60 | 60 | ||
61 | /* names for fancy debug output */ | 61 | /* names for fancy debug output */ |
62 | extern char *v4l2_field_names[]; | 62 | extern const char *v4l2_field_names[]; |
63 | extern char *v4l2_type_names[]; | 63 | extern const char *v4l2_type_names[]; |
64 | 64 | ||
65 | /* Compatibility layer interface -- v4l1-compat module */ | 65 | /* Compatibility layer interface -- v4l1-compat module */ |
66 | typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file, | 66 | typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file, |
@@ -96,6 +96,8 @@ struct video_device | |||
96 | int type; /* v4l1 */ | 96 | int type; /* v4l1 */ |
97 | int type2; /* v4l2 */ | 97 | int type2; /* v4l2 */ |
98 | int minor; | 98 | int minor; |
99 | /* attribute to diferentiate multiple indexs on one physical device */ | ||
100 | int index; | ||
99 | 101 | ||
100 | int debug; /* Activates debug level*/ | 102 | int debug; /* Activates debug level*/ |
101 | 103 | ||
@@ -118,74 +120,76 @@ struct video_device | |||
118 | enum v4l2_priority p); | 120 | enum v4l2_priority p); |
119 | 121 | ||
120 | /* VIDIOC_ENUM_FMT handlers */ | 122 | /* VIDIOC_ENUM_FMT handlers */ |
121 | int (*vidioc_enum_fmt_cap) (struct file *file, void *fh, | 123 | int (*vidioc_enum_fmt_vid_cap) (struct file *file, void *fh, |
122 | struct v4l2_fmtdesc *f); | 124 | struct v4l2_fmtdesc *f); |
123 | int (*vidioc_enum_fmt_overlay) (struct file *file, void *fh, | 125 | int (*vidioc_enum_fmt_vid_overlay) (struct file *file, void *fh, |
124 | struct v4l2_fmtdesc *f); | 126 | struct v4l2_fmtdesc *f); |
125 | int (*vidioc_enum_fmt_vbi) (struct file *file, void *fh, | 127 | int (*vidioc_enum_fmt_vid_out) (struct file *file, void *fh, |
126 | struct v4l2_fmtdesc *f); | 128 | struct v4l2_fmtdesc *f); |
127 | int (*vidioc_enum_fmt_vbi_capture) (struct file *file, void *fh, | 129 | #if 1 |
128 | struct v4l2_fmtdesc *f); | 130 | /* deprecated, will be removed in 2.6.28 */ |
129 | int (*vidioc_enum_fmt_video_output)(struct file *file, void *fh, | 131 | int (*vidioc_enum_fmt_vbi_cap) (struct file *file, void *fh, |
130 | struct v4l2_fmtdesc *f); | ||
131 | int (*vidioc_enum_fmt_output_overlay) (struct file *file, void *fh, | ||
132 | struct v4l2_fmtdesc *f); | ||
133 | int (*vidioc_enum_fmt_vbi_output) (struct file *file, void *fh, | ||
134 | struct v4l2_fmtdesc *f); | 132 | struct v4l2_fmtdesc *f); |
133 | #endif | ||
135 | int (*vidioc_enum_fmt_type_private)(struct file *file, void *fh, | 134 | int (*vidioc_enum_fmt_type_private)(struct file *file, void *fh, |
136 | struct v4l2_fmtdesc *f); | 135 | struct v4l2_fmtdesc *f); |
137 | 136 | ||
138 | /* VIDIOC_G_FMT handlers */ | 137 | /* VIDIOC_G_FMT handlers */ |
139 | int (*vidioc_g_fmt_cap) (struct file *file, void *fh, | 138 | int (*vidioc_g_fmt_vid_cap) (struct file *file, void *fh, |
140 | struct v4l2_format *f); | 139 | struct v4l2_format *f); |
141 | int (*vidioc_g_fmt_overlay) (struct file *file, void *fh, | 140 | int (*vidioc_g_fmt_vid_overlay)(struct file *file, void *fh, |
142 | struct v4l2_format *f); | 141 | struct v4l2_format *f); |
143 | int (*vidioc_g_fmt_vbi) (struct file *file, void *fh, | 142 | int (*vidioc_g_fmt_vid_out) (struct file *file, void *fh, |
144 | struct v4l2_format *f); | 143 | struct v4l2_format *f); |
145 | int (*vidioc_g_fmt_vbi_output) (struct file *file, void *fh, | 144 | int (*vidioc_g_fmt_vid_out_overlay)(struct file *file, void *fh, |
146 | struct v4l2_format *f); | 145 | struct v4l2_format *f); |
147 | int (*vidioc_g_fmt_vbi_capture)(struct file *file, void *fh, | 146 | int (*vidioc_g_fmt_vbi_cap) (struct file *file, void *fh, |
148 | struct v4l2_format *f); | 147 | struct v4l2_format *f); |
149 | int (*vidioc_g_fmt_video_output)(struct file *file, void *fh, | 148 | int (*vidioc_g_fmt_vbi_out) (struct file *file, void *fh, |
150 | struct v4l2_format *f); | 149 | struct v4l2_format *f); |
151 | int (*vidioc_g_fmt_output_overlay) (struct file *file, void *fh, | 150 | int (*vidioc_g_fmt_sliced_vbi_cap)(struct file *file, void *fh, |
151 | struct v4l2_format *f); | ||
152 | int (*vidioc_g_fmt_sliced_vbi_out)(struct file *file, void *fh, | ||
152 | struct v4l2_format *f); | 153 | struct v4l2_format *f); |
153 | int (*vidioc_g_fmt_type_private)(struct file *file, void *fh, | 154 | int (*vidioc_g_fmt_type_private)(struct file *file, void *fh, |
154 | struct v4l2_format *f); | 155 | struct v4l2_format *f); |
155 | 156 | ||
156 | /* VIDIOC_S_FMT handlers */ | 157 | /* VIDIOC_S_FMT handlers */ |
157 | int (*vidioc_s_fmt_cap) (struct file *file, void *fh, | 158 | int (*vidioc_s_fmt_vid_cap) (struct file *file, void *fh, |
158 | struct v4l2_format *f); | 159 | struct v4l2_format *f); |
159 | 160 | int (*vidioc_s_fmt_vid_overlay)(struct file *file, void *fh, | |
160 | int (*vidioc_s_fmt_overlay) (struct file *file, void *fh, | ||
161 | struct v4l2_format *f); | 161 | struct v4l2_format *f); |
162 | int (*vidioc_s_fmt_vbi) (struct file *file, void *fh, | 162 | int (*vidioc_s_fmt_vid_out) (struct file *file, void *fh, |
163 | struct v4l2_format *f); | 163 | struct v4l2_format *f); |
164 | int (*vidioc_s_fmt_vbi_output) (struct file *file, void *fh, | 164 | int (*vidioc_s_fmt_vid_out_overlay)(struct file *file, void *fh, |
165 | struct v4l2_format *f); | 165 | struct v4l2_format *f); |
166 | int (*vidioc_s_fmt_vbi_capture)(struct file *file, void *fh, | 166 | int (*vidioc_s_fmt_vbi_cap) (struct file *file, void *fh, |
167 | struct v4l2_format *f); | 167 | struct v4l2_format *f); |
168 | int (*vidioc_s_fmt_video_output)(struct file *file, void *fh, | 168 | int (*vidioc_s_fmt_vbi_out) (struct file *file, void *fh, |
169 | struct v4l2_format *f); | 169 | struct v4l2_format *f); |
170 | int (*vidioc_s_fmt_output_overlay) (struct file *file, void *fh, | 170 | int (*vidioc_s_fmt_sliced_vbi_cap)(struct file *file, void *fh, |
171 | struct v4l2_format *f); | ||
172 | int (*vidioc_s_fmt_sliced_vbi_out)(struct file *file, void *fh, | ||
171 | struct v4l2_format *f); | 173 | struct v4l2_format *f); |
172 | int (*vidioc_s_fmt_type_private)(struct file *file, void *fh, | 174 | int (*vidioc_s_fmt_type_private)(struct file *file, void *fh, |
173 | struct v4l2_format *f); | 175 | struct v4l2_format *f); |
174 | 176 | ||
175 | /* VIDIOC_TRY_FMT handlers */ | 177 | /* VIDIOC_TRY_FMT handlers */ |
176 | int (*vidioc_try_fmt_cap) (struct file *file, void *fh, | 178 | int (*vidioc_try_fmt_vid_cap) (struct file *file, void *fh, |
179 | struct v4l2_format *f); | ||
180 | int (*vidioc_try_fmt_vid_overlay)(struct file *file, void *fh, | ||
177 | struct v4l2_format *f); | 181 | struct v4l2_format *f); |
178 | int (*vidioc_try_fmt_overlay) (struct file *file, void *fh, | 182 | int (*vidioc_try_fmt_vid_out) (struct file *file, void *fh, |
179 | struct v4l2_format *f); | 183 | struct v4l2_format *f); |
180 | int (*vidioc_try_fmt_vbi) (struct file *file, void *fh, | 184 | int (*vidioc_try_fmt_vid_out_overlay)(struct file *file, void *fh, |
181 | struct v4l2_format *f); | 185 | struct v4l2_format *f); |
182 | int (*vidioc_try_fmt_vbi_output) (struct file *file, void *fh, | 186 | int (*vidioc_try_fmt_vbi_cap) (struct file *file, void *fh, |
183 | struct v4l2_format *f); | 187 | struct v4l2_format *f); |
184 | int (*vidioc_try_fmt_vbi_capture)(struct file *file, void *fh, | 188 | int (*vidioc_try_fmt_vbi_out) (struct file *file, void *fh, |
185 | struct v4l2_format *f); | 189 | struct v4l2_format *f); |
186 | int (*vidioc_try_fmt_video_output)(struct file *file, void *fh, | 190 | int (*vidioc_try_fmt_sliced_vbi_cap)(struct file *file, void *fh, |
187 | struct v4l2_format *f); | 191 | struct v4l2_format *f); |
188 | int (*vidioc_try_fmt_output_overlay)(struct file *file, void *fh, | 192 | int (*vidioc_try_fmt_sliced_vbi_out)(struct file *file, void *fh, |
189 | struct v4l2_format *f); | 193 | struct v4l2_format *f); |
190 | int (*vidioc_try_fmt_type_private)(struct file *file, void *fh, | 194 | int (*vidioc_try_fmt_type_private)(struct file *file, void *fh, |
191 | struct v4l2_format *f); | 195 | struct v4l2_format *f); |
@@ -212,8 +216,9 @@ struct video_device | |||
212 | int (*vidioc_streamoff)(struct file *file, void *fh, enum v4l2_buf_type i); | 216 | int (*vidioc_streamoff)(struct file *file, void *fh, enum v4l2_buf_type i); |
213 | 217 | ||
214 | /* Standard handling | 218 | /* Standard handling |
215 | G_STD and ENUMSTD are handled by videodev.c | 219 | ENUMSTD is handled by videodev.c |
216 | */ | 220 | */ |
221 | int (*vidioc_g_std) (struct file *file, void *fh, v4l2_std_id *norm); | ||
217 | int (*vidioc_s_std) (struct file *file, void *fh, v4l2_std_id *norm); | 222 | int (*vidioc_s_std) (struct file *file, void *fh, v4l2_std_id *norm); |
218 | int (*vidioc_querystd) (struct file *file, void *fh, v4l2_std_id *a); | 223 | int (*vidioc_querystd) (struct file *file, void *fh, v4l2_std_id *a); |
219 | 224 | ||
@@ -224,7 +229,7 @@ struct video_device | |||
224 | int (*vidioc_s_input) (struct file *file, void *fh, unsigned int i); | 229 | int (*vidioc_s_input) (struct file *file, void *fh, unsigned int i); |
225 | 230 | ||
226 | /* Output handling */ | 231 | /* Output handling */ |
227 | int (*vidioc_enumoutput) (struct file *file, void *fh, | 232 | int (*vidioc_enum_output) (struct file *file, void *fh, |
228 | struct v4l2_output *a); | 233 | struct v4l2_output *a); |
229 | int (*vidioc_g_output) (struct file *file, void *fh, unsigned int *i); | 234 | int (*vidioc_g_output) (struct file *file, void *fh, unsigned int *i); |
230 | int (*vidioc_s_output) (struct file *file, void *fh, unsigned int i); | 235 | int (*vidioc_s_output) (struct file *file, void *fh, unsigned int i); |
@@ -306,6 +311,8 @@ struct video_device | |||
306 | /* Log status ioctl */ | 311 | /* Log status ioctl */ |
307 | int (*vidioc_log_status) (struct file *file, void *fh); | 312 | int (*vidioc_log_status) (struct file *file, void *fh); |
308 | 313 | ||
314 | int (*vidioc_s_hw_freq_seek) (struct file *file, void *fh, | ||
315 | struct v4l2_hw_freq_seek *a); | ||
309 | 316 | ||
310 | /* Debugging ioctls */ | 317 | /* Debugging ioctls */ |
311 | #ifdef CONFIG_VIDEO_ADV_DEBUG | 318 | #ifdef CONFIG_VIDEO_ADV_DEBUG |
@@ -342,6 +349,8 @@ void *priv; | |||
342 | 349 | ||
343 | /* Version 2 functions */ | 350 | /* Version 2 functions */ |
344 | extern int video_register_device(struct video_device *vfd, int type, int nr); | 351 | extern int video_register_device(struct video_device *vfd, int type, int nr); |
352 | int video_register_device_index(struct video_device *vfd, int type, int nr, | ||
353 | int index); | ||
345 | void video_unregister_device(struct video_device *); | 354 | void video_unregister_device(struct video_device *); |
346 | extern int video_ioctl2(struct inode *inode, struct file *file, | 355 | extern int video_ioctl2(struct inode *inode, struct file *file, |
347 | unsigned int cmd, unsigned long arg); | 356 | unsigned int cmd, unsigned long arg); |
@@ -366,7 +375,7 @@ video_device_create_file(struct video_device *vfd, | |||
366 | { | 375 | { |
367 | int ret = device_create_file(&vfd->class_dev, attr); | 376 | int ret = device_create_file(&vfd->class_dev, attr); |
368 | if (ret < 0) | 377 | if (ret < 0) |
369 | printk(KERN_WARNING "%s error: %d\n", __FUNCTION__, ret); | 378 | printk(KERN_WARNING "%s error: %d\n", __func__, ret); |
370 | return ret; | 379 | return ret; |
371 | } | 380 | } |
372 | static inline void | 381 | static inline void |
diff --git a/include/media/v4l2-i2c-drv-legacy.h b/include/media/v4l2-i2c-drv-legacy.h index 878562278b67..975ffbf4e2c5 100644 --- a/include/media/v4l2-i2c-drv-legacy.h +++ b/include/media/v4l2-i2c-drv-legacy.h | |||
@@ -68,7 +68,6 @@ static int v4l2_i2c_drv_detach_legacy(struct i2c_client *client) | |||
68 | if (err) | 68 | if (err) |
69 | return err; | 69 | return err; |
70 | kfree(client); | 70 | kfree(client); |
71 | |||
72 | return 0; | 71 | return 0; |
73 | } | 72 | } |
74 | 73 | ||
diff --git a/include/media/videobuf-dma-contig.h b/include/media/videobuf-dma-contig.h new file mode 100644 index 000000000000..549386681aab --- /dev/null +++ b/include/media/videobuf-dma-contig.h | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | * helper functions for physically contiguous capture buffers | ||
3 | * | ||
4 | * The functions support hardware lacking scatter gather support | ||
5 | * (i.e. the buffers must be linear in physical memory) | ||
6 | * | ||
7 | * Copyright (c) 2008 Magnus Damm | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License as published by | ||
11 | * the Free Software Foundation; either version 2 | ||
12 | */ | ||
13 | #ifndef _VIDEOBUF_DMA_CONTIG_H | ||
14 | #define _VIDEOBUF_DMA_CONTIG_H | ||
15 | |||
16 | #include <linux/dma-mapping.h> | ||
17 | #include <media/videobuf-core.h> | ||
18 | |||
19 | void videobuf_queue_dma_contig_init(struct videobuf_queue *q, | ||
20 | struct videobuf_queue_ops *ops, | ||
21 | struct device *dev, | ||
22 | spinlock_t *irqlock, | ||
23 | enum v4l2_buf_type type, | ||
24 | enum v4l2_field field, | ||
25 | unsigned int msize, | ||
26 | void *priv); | ||
27 | |||
28 | dma_addr_t videobuf_to_dma_contig(struct videobuf_buffer *buf); | ||
29 | void videobuf_dma_contig_free(struct videobuf_queue *q, | ||
30 | struct videobuf_buffer *buf); | ||
31 | |||
32 | #endif /* _VIDEOBUF_DMA_CONTIG_H */ | ||
diff --git a/include/media/videobuf-dma-sg.h b/include/media/videobuf-dma-sg.h index be8da269ee33..90edd22d343c 100644 --- a/include/media/videobuf-dma-sg.h +++ b/include/media/videobuf-dma-sg.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * helper functions for SG DMA video4linux capture buffers | 2 | * helper functions for SG DMA video4linux capture buffers |
3 | * | 3 | * |
4 | * The functions expect the hardware being able to scatter gatter | 4 | * The functions expect the hardware being able to scatter gather |
5 | * (i.e. the buffers are not linear in physical memory, but fragmented | 5 | * (i.e. the buffers are not linear in physical memory, but fragmented |
6 | * into PAGE_SIZE chunks). They also assume the driver does not need | 6 | * into PAGE_SIZE chunks). They also assume the driver does not need |
7 | * to touch the video data. | 7 | * to touch the video data. |
diff --git a/include/media/videobuf-vmalloc.h b/include/media/videobuf-vmalloc.h index aed39460c154..e87222c6a125 100644 --- a/include/media/videobuf-vmalloc.h +++ b/include/media/videobuf-vmalloc.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * helper functions for vmalloc capture buffers | 2 | * helper functions for vmalloc capture buffers |
3 | * | 3 | * |
4 | * The functions expect the hardware being able to scatter gatter | 4 | * The functions expect the hardware being able to scatter gather |
5 | * (i.e. the buffers are not linear in physical memory, but fragmented | 5 | * (i.e. the buffers are not linear in physical memory, but fragmented |
6 | * into PAGE_SIZE chunks). They also assume the driver does not need | 6 | * into PAGE_SIZE chunks). They also assume the driver does not need |
7 | * to touch the video data. | 7 | * to touch the video data. |