diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/dvb/dmx.h | 3 | ||||
| -rw-r--r-- | include/linux/i2c-id.h | 1 | ||||
| -rw-r--r-- | include/linux/meye.h | 2 | ||||
| -rw-r--r-- | include/linux/videodev2.h | 55 | ||||
| -rw-r--r-- | include/media/ir-common.h | 3 | ||||
| -rw-r--r-- | include/media/soc_camera.h | 179 | ||||
| -rw-r--r-- | include/media/tuner-types.h | 17 | ||||
| -rw-r--r-- | include/media/tuner.h | 2 | ||||
| -rw-r--r-- | include/media/v4l2-chip-ident.h | 6 | ||||
| -rw-r--r-- | include/media/v4l2-dev.h | 4 | ||||
| -rw-r--r-- | include/media/videobuf-core.h | 24 | ||||
| -rw-r--r-- | include/media/videobuf-dma-sg.h | 17 | ||||
| -rw-r--r-- | include/media/videobuf-dvb.h | 3 | ||||
| -rw-r--r-- | include/media/videobuf-vmalloc.h | 4 |
14 files changed, 287 insertions, 33 deletions
diff --git a/include/linux/dvb/dmx.h b/include/linux/dvb/dmx.h index c6a2353c4e68..402fb7a8d922 100644 --- a/include/linux/dvb/dmx.h +++ b/include/linux/dvb/dmx.h | |||
| @@ -39,9 +39,10 @@ typedef enum | |||
| 39 | DMX_OUT_DECODER, /* Streaming directly to decoder. */ | 39 | DMX_OUT_DECODER, /* Streaming directly to decoder. */ |
| 40 | DMX_OUT_TAP, /* Output going to a memory buffer */ | 40 | DMX_OUT_TAP, /* Output going to a memory buffer */ |
| 41 | /* (to be retrieved via the read command).*/ | 41 | /* (to be retrieved via the read command).*/ |
| 42 | DMX_OUT_TS_TAP /* Output multiplexed into a new TS */ | 42 | DMX_OUT_TS_TAP, /* Output multiplexed into a new TS */ |
| 43 | /* (to be retrieved by reading from the */ | 43 | /* (to be retrieved by reading from the */ |
| 44 | /* logical DVR device). */ | 44 | /* logical DVR device). */ |
| 45 | DMX_OUT_TSDEMUX_TAP /* Like TS_TAP but retrieved from the DMX device */ | ||
| 45 | } dmx_output_t; | 46 | } dmx_output_t; |
| 46 | 47 | ||
| 47 | 48 | ||
diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h index b979112f74e0..32eb8bbe4831 100644 --- a/include/linux/i2c-id.h +++ b/include/linux/i2c-id.h | |||
| @@ -125,6 +125,7 @@ | |||
| 125 | #define I2C_HW_B_CX2341X 0x010020 /* Conexant CX2341X MPEG encoder cards */ | 125 | #define I2C_HW_B_CX2341X 0x010020 /* Conexant CX2341X MPEG encoder cards */ |
| 126 | #define I2C_HW_B_INTELFB 0x010021 /* intel framebuffer driver */ | 126 | #define I2C_HW_B_INTELFB 0x010021 /* intel framebuffer driver */ |
| 127 | #define I2C_HW_B_CX23885 0x010022 /* conexant 23885 based tv cards (bus1) */ | 127 | #define I2C_HW_B_CX23885 0x010022 /* conexant 23885 based tv cards (bus1) */ |
| 128 | #define I2C_HW_B_AU0828 0x010023 /* auvitek au0828 usb bridge */ | ||
| 128 | 129 | ||
| 129 | /* --- PCF 8584 based algorithms */ | 130 | /* --- PCF 8584 based algorithms */ |
| 130 | #define I2C_HW_P_ELEK 0x020002 /* Elektor ISA Bus inteface card */ | 131 | #define I2C_HW_P_ELEK 0x020002 /* Elektor ISA Bus inteface card */ |
diff --git a/include/linux/meye.h b/include/linux/meye.h index 39fd9c8ddd4b..12010ace1f04 100644 --- a/include/linux/meye.h +++ b/include/linux/meye.h | |||
| @@ -58,7 +58,7 @@ struct meye_params { | |||
| 58 | 58 | ||
| 59 | /* V4L2 private controls */ | 59 | /* V4L2 private controls */ |
| 60 | #define V4L2_CID_AGC V4L2_CID_PRIVATE_BASE | 60 | #define V4L2_CID_AGC V4L2_CID_PRIVATE_BASE |
| 61 | #define V4L2_CID_SHARPNESS (V4L2_CID_PRIVATE_BASE + 1) | 61 | #define V4L2_CID_MEYE_SHARPNESS (V4L2_CID_PRIVATE_BASE + 1) |
| 62 | #define V4L2_CID_PICTURE (V4L2_CID_PRIVATE_BASE + 2) | 62 | #define V4L2_CID_PICTURE (V4L2_CID_PRIVATE_BASE + 2) |
| 63 | #define V4L2_CID_JPEGQUAL (V4L2_CID_PRIVATE_BASE + 3) | 63 | #define V4L2_CID_JPEGQUAL (V4L2_CID_PRIVATE_BASE + 3) |
| 64 | #define V4L2_CID_FRAMERATE (V4L2_CID_PRIVATE_BASE + 4) | 64 | #define V4L2_CID_FRAMERATE (V4L2_CID_PRIVATE_BASE + 4) |
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 17a80177a674..c1411189ba6c 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h | |||
| @@ -282,6 +282,7 @@ struct v4l2_pix_format | |||
| 282 | #define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B','G','R','4') /* 32 BGR-8-8-8-8 */ | 282 | #define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B','G','R','4') /* 32 BGR-8-8-8-8 */ |
| 283 | #define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R','G','B','4') /* 32 RGB-8-8-8-8 */ | 283 | #define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R','G','B','4') /* 32 RGB-8-8-8-8 */ |
| 284 | #define V4L2_PIX_FMT_GREY v4l2_fourcc('G','R','E','Y') /* 8 Greyscale */ | 284 | #define V4L2_PIX_FMT_GREY v4l2_fourcc('G','R','E','Y') /* 8 Greyscale */ |
| 285 | #define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y','1','6',' ') /* 16 Greyscale */ | ||
| 285 | #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P','A','L','8') /* 8 8-bit palette */ | 286 | #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P','A','L','8') /* 8 8-bit palette */ |
| 286 | #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y','V','U','9') /* 9 YVU 4:1:0 */ | 287 | #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y','V','U','9') /* 9 YVU 4:1:0 */ |
| 287 | #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y','V','1','2') /* 12 YVU 4:2:0 */ | 288 | #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y','V','1','2') /* 12 YVU 4:2:0 */ |
| @@ -308,6 +309,7 @@ struct v4l2_pix_format | |||
| 308 | 309 | ||
| 309 | /* see http://www.siliconimaging.com/RGB%20Bayer.htm */ | 310 | /* see http://www.siliconimaging.com/RGB%20Bayer.htm */ |
| 310 | #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B','A','8','1') /* 8 BGBG.. GRGR.. */ | 311 | #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B','A','8','1') /* 8 BGBG.. GRGR.. */ |
| 312 | #define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B','Y','R','2') /* 16 BGBG.. GRGR.. */ | ||
| 311 | 313 | ||
| 312 | /* compressed formats */ | 314 | /* compressed formats */ |
| 313 | #define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M','J','P','G') /* Motion-JPEG */ | 315 | #define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M','J','P','G') /* Motion-JPEG */ |
| @@ -793,6 +795,7 @@ struct v4l2_ext_controls | |||
| 793 | /* Values for ctrl_class field */ | 795 | /* Values for ctrl_class field */ |
| 794 | #define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */ | 796 | #define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */ |
| 795 | #define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */ | 797 | #define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */ |
| 798 | #define V4L2_CTRL_CLASS_CAMERA 0x009a0000 /* Camera class controls */ | ||
| 796 | 799 | ||
| 797 | #define V4L2_CTRL_ID_MASK (0x0fffffff) | 800 | #define V4L2_CTRL_ID_MASK (0x0fffffff) |
| 798 | #define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL) | 801 | #define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL) |
| @@ -849,21 +852,37 @@ struct v4l2_querymenu | |||
| 849 | #define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8) | 852 | #define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8) |
| 850 | #define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9) | 853 | #define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9) |
| 851 | #define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10) | 854 | #define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10) |
| 852 | #define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11) | 855 | #define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11) /* Deprecated */ |
| 853 | #define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12) | 856 | #define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12) |
| 854 | #define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13) | 857 | #define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13) |
| 855 | #define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14) | 858 | #define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14) |
| 856 | #define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15) | 859 | #define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15) |
| 857 | #define V4L2_CID_GAMMA (V4L2_CID_BASE+16) | 860 | #define V4L2_CID_GAMMA (V4L2_CID_BASE+16) |
| 858 | #define V4L2_CID_WHITENESS (V4L2_CID_GAMMA) /* ? Not sure */ | 861 | #define V4L2_CID_WHITENESS (V4L2_CID_GAMMA) /* Deprecated */ |
| 859 | #define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17) | 862 | #define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17) |
| 860 | #define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18) | 863 | #define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18) |
| 861 | #define V4L2_CID_GAIN (V4L2_CID_BASE+19) | 864 | #define V4L2_CID_GAIN (V4L2_CID_BASE+19) |
| 862 | #define V4L2_CID_HFLIP (V4L2_CID_BASE+20) | 865 | #define V4L2_CID_HFLIP (V4L2_CID_BASE+20) |
| 863 | #define V4L2_CID_VFLIP (V4L2_CID_BASE+21) | 866 | #define V4L2_CID_VFLIP (V4L2_CID_BASE+21) |
| 864 | #define V4L2_CID_HCENTER (V4L2_CID_BASE+22) | 867 | |
| 865 | #define V4L2_CID_VCENTER (V4L2_CID_BASE+23) | 868 | /* Deprecated, use V4L2_CID_PAN_RESET and V4L2_CID_TILT_RESET */ |
| 866 | #define V4L2_CID_LASTP1 (V4L2_CID_BASE+24) /* last CID + 1 */ | 869 | #define V4L2_CID_HCENTER_DEPRECATED (V4L2_CID_BASE+22) |
| 870 | #define V4L2_CID_VCENTER_DEPRECATED (V4L2_CID_BASE+23) | ||
| 871 | |||
| 872 | #define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24) | ||
| 873 | enum v4l2_power_line_frequency { | ||
| 874 | V4L2_CID_POWER_LINE_FREQUENCY_DISABLED = 0, | ||
| 875 | V4L2_CID_POWER_LINE_FREQUENCY_50HZ = 1, | ||
| 876 | V4L2_CID_POWER_LINE_FREQUENCY_60HZ = 2, | ||
| 877 | }; | ||
| 878 | #define V4L2_CID_HUE_AUTO (V4L2_CID_BASE+25) | ||
| 879 | #define V4L2_CID_WHITE_BALANCE_TEMPERATURE (V4L2_CID_BASE+26) | ||
| 880 | #define V4L2_CID_SHARPNESS (V4L2_CID_BASE+27) | ||
| 881 | #define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28) | ||
| 882 | #define V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29) | ||
| 883 | #define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30) | ||
| 884 | /* last CID + 1 */ | ||
| 885 | #define V4L2_CID_LASTP1 (V4L2_CID_BASE+31) | ||
| 867 | 886 | ||
| 868 | /* MPEG-class control IDs defined by V4L2 */ | 887 | /* MPEG-class control IDs defined by V4L2 */ |
| 869 | #define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) | 888 | #define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) |
| @@ -1051,6 +1070,32 @@ enum v4l2_mpeg_cx2341x_video_median_filter_type { | |||
| 1051 | #define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10) | 1070 | #define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10) |
| 1052 | #define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11) | 1071 | #define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11) |
| 1053 | 1072 | ||
| 1073 | /* Camera class control IDs */ | ||
| 1074 | #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) | ||
| 1075 | #define V4L2_CID_CAMERA_CLASS (V4L2_CTRL_CLASS_CAMERA | 1) | ||
| 1076 | |||
| 1077 | #define V4L2_CID_EXPOSURE_AUTO (V4L2_CID_CAMERA_CLASS_BASE+1) | ||
| 1078 | enum v4l2_exposure_auto_type { | ||
| 1079 | V4L2_EXPOSURE_AUTO = 0, | ||
| 1080 | V4L2_EXPOSURE_MANUAL = 1, | ||
| 1081 | V4L2_EXPOSURE_SHUTTER_PRIORITY = 2, | ||
| 1082 | V4L2_EXPOSURE_APERTURE_PRIORITY = 3 | ||
| 1083 | }; | ||
| 1084 | #define V4L2_CID_EXPOSURE_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+2) | ||
| 1085 | #define V4L2_CID_EXPOSURE_AUTO_PRIORITY (V4L2_CID_CAMERA_CLASS_BASE+3) | ||
| 1086 | |||
| 1087 | #define V4L2_CID_PAN_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+4) | ||
| 1088 | #define V4L2_CID_TILT_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+5) | ||
| 1089 | #define V4L2_CID_PAN_RESET (V4L2_CID_CAMERA_CLASS_BASE+6) | ||
| 1090 | #define V4L2_CID_TILT_RESET (V4L2_CID_CAMERA_CLASS_BASE+7) | ||
| 1091 | |||
| 1092 | #define V4L2_CID_PAN_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+8) | ||
| 1093 | #define V4L2_CID_TILT_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+9) | ||
| 1094 | |||
| 1095 | #define V4L2_CID_FOCUS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+10) | ||
| 1096 | #define V4L2_CID_FOCUS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+11) | ||
| 1097 | #define V4L2_CID_FOCUS_AUTO (V4L2_CID_CAMERA_CLASS_BASE+12) | ||
| 1098 | |||
| 1054 | /* | 1099 | /* |
| 1055 | * T U N I N G | 1100 | * T U N I N G |
| 1056 | */ | 1101 | */ |
diff --git a/include/media/ir-common.h b/include/media/ir-common.h index a4274203f252..bfee8be5d63f 100644 --- a/include/media/ir-common.h +++ b/include/media/ir-common.h | |||
| @@ -107,6 +107,7 @@ extern IR_KEYTAB_TYPE ir_codes_avermedia[IR_KEYTAB_SIZE]; | |||
| 107 | extern IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE]; | 107 | extern IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE]; |
| 108 | extern IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE]; | 108 | extern IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE]; |
| 109 | extern IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE]; | 109 | extern IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE]; |
| 110 | extern IR_KEYTAB_TYPE ir_codes_pixelview_new[IR_KEYTAB_SIZE]; | ||
| 110 | extern IR_KEYTAB_TYPE ir_codes_nebula[IR_KEYTAB_SIZE]; | 111 | extern IR_KEYTAB_TYPE ir_codes_nebula[IR_KEYTAB_SIZE]; |
| 111 | extern IR_KEYTAB_TYPE ir_codes_dntv_live_dvb_t[IR_KEYTAB_SIZE]; | 112 | extern IR_KEYTAB_TYPE ir_codes_dntv_live_dvb_t[IR_KEYTAB_SIZE]; |
| 112 | extern IR_KEYTAB_TYPE ir_codes_iodata_bctv7e[IR_KEYTAB_SIZE]; | 113 | extern IR_KEYTAB_TYPE ir_codes_iodata_bctv7e[IR_KEYTAB_SIZE]; |
| @@ -141,8 +142,10 @@ extern IR_KEYTAB_TYPE ir_codes_encore_enltv[IR_KEYTAB_SIZE]; | |||
| 141 | extern IR_KEYTAB_TYPE ir_codes_tt_1500[IR_KEYTAB_SIZE]; | 142 | extern IR_KEYTAB_TYPE ir_codes_tt_1500[IR_KEYTAB_SIZE]; |
| 142 | extern IR_KEYTAB_TYPE ir_codes_fusionhdtv_mce[IR_KEYTAB_SIZE]; | 143 | extern IR_KEYTAB_TYPE ir_codes_fusionhdtv_mce[IR_KEYTAB_SIZE]; |
| 143 | extern IR_KEYTAB_TYPE ir_codes_behold[IR_KEYTAB_SIZE]; | 144 | extern IR_KEYTAB_TYPE ir_codes_behold[IR_KEYTAB_SIZE]; |
| 145 | extern IR_KEYTAB_TYPE ir_codes_behold_columbus[IR_KEYTAB_SIZE]; | ||
| 144 | extern IR_KEYTAB_TYPE ir_codes_pinnacle_pctv_hd[IR_KEYTAB_SIZE]; | 146 | extern IR_KEYTAB_TYPE ir_codes_pinnacle_pctv_hd[IR_KEYTAB_SIZE]; |
| 145 | extern IR_KEYTAB_TYPE ir_codes_genius_tvgo_a11mce[IR_KEYTAB_SIZE]; | 147 | extern IR_KEYTAB_TYPE ir_codes_genius_tvgo_a11mce[IR_KEYTAB_SIZE]; |
| 148 | extern IR_KEYTAB_TYPE ir_codes_powercolor_real_angel[IR_KEYTAB_SIZE]; | ||
| 146 | 149 | ||
| 147 | #endif | 150 | #endif |
| 148 | 151 | ||
diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h new file mode 100644 index 000000000000..6a8c8be7a1ae --- /dev/null +++ b/include/media/soc_camera.h | |||
| @@ -0,0 +1,179 @@ | |||
| 1 | /* | ||
| 2 | * camera image capture (abstract) bus driver header | ||
| 3 | * | ||
| 4 | * Copyright (C) 2006, Sascha Hauer, Pengutronix | ||
| 5 | * Copyright (C) 2008, Guennadi Liakhovetski <kernel@pengutronix.de> | ||
| 6 | * | ||
| 7 | * This program is free software; you can redistribute it and/or modify | ||
| 8 | * it under the terms of the GNU General Public License version 2 as | ||
| 9 | * published by the Free Software Foundation. | ||
| 10 | */ | ||
| 11 | |||
| 12 | #ifndef SOC_CAMERA_H | ||
| 13 | #define SOC_CAMERA_H | ||
| 14 | |||
| 15 | #include <linux/videodev2.h> | ||
| 16 | #include <media/videobuf-dma-sg.h> | ||
| 17 | |||
| 18 | struct soc_camera_device { | ||
| 19 | struct list_head list; | ||
| 20 | struct device dev; | ||
| 21 | struct device *control; | ||
| 22 | unsigned short width; /* Current window */ | ||
| 23 | unsigned short height; /* sizes */ | ||
| 24 | unsigned short x_min; /* Camera capabilities */ | ||
| 25 | unsigned short y_min; | ||
| 26 | unsigned short x_current; /* Current window location */ | ||
| 27 | unsigned short y_current; | ||
| 28 | unsigned short width_min; | ||
| 29 | unsigned short width_max; | ||
| 30 | unsigned short height_min; | ||
| 31 | unsigned short height_max; | ||
| 32 | unsigned short y_skip_top; /* Lines to skip at the top */ | ||
| 33 | unsigned short gain; | ||
| 34 | unsigned short exposure; | ||
| 35 | unsigned char iface; /* Host number */ | ||
| 36 | unsigned char devnum; /* Device number per host */ | ||
| 37 | unsigned char buswidth; /* See comment in .c */ | ||
| 38 | struct soc_camera_ops *ops; | ||
| 39 | struct video_device *vdev; | ||
| 40 | const struct soc_camera_data_format *current_fmt; | ||
| 41 | const struct soc_camera_data_format *formats; | ||
| 42 | int num_formats; | ||
| 43 | struct module *owner; | ||
| 44 | /* soc_camera.c private count. Only accessed with video_lock held */ | ||
| 45 | int use_count; | ||
| 46 | }; | ||
| 47 | |||
| 48 | struct soc_camera_file { | ||
| 49 | struct soc_camera_device *icd; | ||
| 50 | struct videobuf_queue vb_vidq; | ||
| 51 | spinlock_t *lock; | ||
| 52 | }; | ||
| 53 | |||
| 54 | struct soc_camera_host { | ||
| 55 | struct list_head list; | ||
| 56 | struct device dev; | ||
| 57 | unsigned char nr; /* Host number */ | ||
| 58 | size_t msize; | ||
| 59 | struct videobuf_queue_ops *vbq_ops; | ||
| 60 | void *priv; | ||
| 61 | char *drv_name; | ||
| 62 | struct soc_camera_host_ops *ops; | ||
| 63 | }; | ||
| 64 | |||
| 65 | struct soc_camera_host_ops { | ||
| 66 | struct module *owner; | ||
| 67 | int (*add)(struct soc_camera_device *); | ||
| 68 | void (*remove)(struct soc_camera_device *); | ||
| 69 | int (*set_fmt_cap)(struct soc_camera_device *, __u32, | ||
| 70 | struct v4l2_rect *); | ||
| 71 | int (*try_fmt_cap)(struct soc_camera_device *, struct v4l2_format *); | ||
| 72 | int (*reqbufs)(struct soc_camera_file *, struct v4l2_requestbuffers *); | ||
| 73 | int (*querycap)(struct soc_camera_host *, struct v4l2_capability *); | ||
| 74 | int (*try_bus_param)(struct soc_camera_device *, __u32); | ||
| 75 | int (*set_bus_param)(struct soc_camera_device *, __u32); | ||
| 76 | unsigned int (*poll)(struct file *, poll_table *); | ||
| 77 | spinlock_t* (*spinlock_alloc)(struct soc_camera_file *); | ||
| 78 | void (*spinlock_free)(spinlock_t *); | ||
| 79 | }; | ||
| 80 | |||
| 81 | struct soc_camera_link { | ||
| 82 | /* Camera bus id, used to match a camera and a bus */ | ||
| 83 | int bus_id; | ||
| 84 | /* GPIO number to switch between 8 and 10 bit modes */ | ||
| 85 | unsigned int gpio; | ||
| 86 | }; | ||
| 87 | |||
| 88 | static inline struct soc_camera_device *to_soc_camera_dev(struct device *dev) | ||
| 89 | { | ||
| 90 | return container_of(dev, struct soc_camera_device, dev); | ||
| 91 | } | ||
| 92 | |||
| 93 | static inline struct soc_camera_host *to_soc_camera_host(struct device *dev) | ||
| 94 | { | ||
| 95 | return container_of(dev, struct soc_camera_host, dev); | ||
| 96 | } | ||
| 97 | |||
| 98 | extern int soc_camera_host_register(struct soc_camera_host *ici); | ||
| 99 | extern void soc_camera_host_unregister(struct soc_camera_host *ici); | ||
| 100 | extern int soc_camera_device_register(struct soc_camera_device *icd); | ||
| 101 | extern void soc_camera_device_unregister(struct soc_camera_device *icd); | ||
| 102 | |||
| 103 | extern int soc_camera_video_start(struct soc_camera_device *icd); | ||
| 104 | extern void soc_camera_video_stop(struct soc_camera_device *icd); | ||
| 105 | |||
| 106 | struct soc_camera_data_format { | ||
| 107 | char *name; | ||
| 108 | unsigned int depth; | ||
| 109 | __u32 fourcc; | ||
| 110 | enum v4l2_colorspace colorspace; | ||
| 111 | }; | ||
| 112 | |||
| 113 | struct soc_camera_ops { | ||
| 114 | struct module *owner; | ||
| 115 | int (*probe)(struct soc_camera_device *); | ||
| 116 | void (*remove)(struct soc_camera_device *); | ||
| 117 | int (*init)(struct soc_camera_device *); | ||
| 118 | int (*release)(struct soc_camera_device *); | ||
| 119 | int (*start_capture)(struct soc_camera_device *); | ||
| 120 | int (*stop_capture)(struct soc_camera_device *); | ||
| 121 | int (*set_fmt_cap)(struct soc_camera_device *, __u32, | ||
| 122 | struct v4l2_rect *); | ||
| 123 | int (*try_fmt_cap)(struct soc_camera_device *, struct v4l2_format *); | ||
| 124 | unsigned long (*query_bus_param)(struct soc_camera_device *); | ||
| 125 | int (*set_bus_param)(struct soc_camera_device *, unsigned long); | ||
| 126 | int (*get_chip_id)(struct soc_camera_device *, | ||
| 127 | struct v4l2_chip_ident *); | ||
| 128 | #ifdef CONFIG_VIDEO_ADV_DEBUG | ||
| 129 | int (*get_register)(struct soc_camera_device *, struct v4l2_register *); | ||
| 130 | int (*set_register)(struct soc_camera_device *, struct v4l2_register *); | ||
| 131 | #endif | ||
| 132 | int (*get_control)(struct soc_camera_device *, struct v4l2_control *); | ||
| 133 | int (*set_control)(struct soc_camera_device *, struct v4l2_control *); | ||
| 134 | const struct v4l2_queryctrl *controls; | ||
| 135 | int num_controls; | ||
| 136 | }; | ||
| 137 | |||
| 138 | static inline struct v4l2_queryctrl const *soc_camera_find_qctrl( | ||
| 139 | struct soc_camera_ops *ops, int id) | ||
| 140 | { | ||
| 141 | int i; | ||
| 142 | |||
| 143 | for (i = 0; i < ops->num_controls; i++) | ||
| 144 | if (ops->controls[i].id == id) | ||
| 145 | return &ops->controls[i]; | ||
| 146 | |||
| 147 | return NULL; | ||
| 148 | } | ||
| 149 | |||
| 150 | #define SOCAM_MASTER (1 << 0) | ||
| 151 | #define SOCAM_SLAVE (1 << 1) | ||
| 152 | #define SOCAM_HSYNC_ACTIVE_HIGH (1 << 2) | ||
| 153 | #define SOCAM_HSYNC_ACTIVE_LOW (1 << 3) | ||
| 154 | #define SOCAM_VSYNC_ACTIVE_HIGH (1 << 4) | ||
| 155 | #define SOCAM_VSYNC_ACTIVE_LOW (1 << 5) | ||
| 156 | #define SOCAM_DATAWIDTH_8 (1 << 6) | ||
| 157 | #define SOCAM_DATAWIDTH_9 (1 << 7) | ||
| 158 | #define SOCAM_DATAWIDTH_10 (1 << 8) | ||
| 159 | #define SOCAM_PCLK_SAMPLE_RISING (1 << 9) | ||
| 160 | #define SOCAM_PCLK_SAMPLE_FALLING (1 << 10) | ||
| 161 | |||
| 162 | #define SOCAM_DATAWIDTH_MASK (SOCAM_DATAWIDTH_8 | SOCAM_DATAWIDTH_9 | \ | ||
| 163 | SOCAM_DATAWIDTH_10) | ||
| 164 | |||
| 165 | static inline unsigned long soc_camera_bus_param_compatible( | ||
| 166 | unsigned long camera_flags, unsigned long bus_flags) | ||
| 167 | { | ||
| 168 | unsigned long common_flags, hsync, vsync, pclk; | ||
| 169 | |||
| 170 | common_flags = camera_flags & bus_flags; | ||
| 171 | |||
| 172 | hsync = common_flags & (SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_HSYNC_ACTIVE_LOW); | ||
| 173 | vsync = common_flags & (SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_LOW); | ||
| 174 | pclk = common_flags & (SOCAM_PCLK_SAMPLE_RISING | SOCAM_PCLK_SAMPLE_FALLING); | ||
| 175 | |||
| 176 | return (!hsync || !vsync || !pclk) ? 0 : common_flags; | ||
| 177 | } | ||
| 178 | |||
| 179 | #endif | ||
diff --git a/include/media/tuner-types.h b/include/media/tuner-types.h index b201371416a0..ab03c5344209 100644 --- a/include/media/tuner-types.h +++ b/include/media/tuner-types.h | |||
| @@ -6,10 +6,11 @@ | |||
| 6 | #define __TUNER_TYPES_H__ | 6 | #define __TUNER_TYPES_H__ |
| 7 | 7 | ||
| 8 | enum param_type { | 8 | enum param_type { |
| 9 | TUNER_PARAM_TYPE_RADIO, \ | 9 | TUNER_PARAM_TYPE_RADIO, |
| 10 | TUNER_PARAM_TYPE_PAL, \ | 10 | TUNER_PARAM_TYPE_PAL, |
| 11 | TUNER_PARAM_TYPE_SECAM, \ | 11 | TUNER_PARAM_TYPE_SECAM, |
| 12 | TUNER_PARAM_TYPE_NTSC | 12 | TUNER_PARAM_TYPE_NTSC, |
| 13 | TUNER_PARAM_TYPE_DIGITAL, | ||
| 13 | }; | 14 | }; |
| 14 | 15 | ||
| 15 | struct tuner_range { | 16 | struct tuner_range { |
| @@ -105,6 +106,7 @@ struct tuner_params { | |||
| 105 | the SECAM-L/L' standards. Range: -16:+15 */ | 106 | the SECAM-L/L' standards. Range: -16:+15 */ |
| 106 | signed int default_top_secam_high:5; | 107 | signed int default_top_secam_high:5; |
| 107 | 108 | ||
| 109 | u16 iffreq; | ||
| 108 | 110 | ||
| 109 | unsigned int count; | 111 | unsigned int count; |
| 110 | struct tuner_range *ranges; | 112 | struct tuner_range *ranges; |
| @@ -114,6 +116,13 @@ struct tunertype { | |||
| 114 | char *name; | 116 | char *name; |
| 115 | unsigned int count; | 117 | unsigned int count; |
| 116 | struct tuner_params *params; | 118 | struct tuner_params *params; |
| 119 | |||
| 120 | u16 min; | ||
| 121 | u16 max; | ||
| 122 | u32 stepsize; | ||
| 123 | |||
| 124 | u8 *initdata; | ||
| 125 | u8 *sleepdata; | ||
| 117 | }; | 126 | }; |
| 118 | 127 | ||
| 119 | extern struct tunertype tuners[]; | 128 | extern struct tunertype tuners[]; |
diff --git a/include/media/tuner.h b/include/media/tuner.h index 1bf24a6ed8f1..77068fcc86bd 100644 --- a/include/media/tuner.h +++ b/include/media/tuner.h | |||
| @@ -78,7 +78,7 @@ | |||
| 78 | 78 | ||
| 79 | #define TUNER_HITACHI_NTSC 40 | 79 | #define TUNER_HITACHI_NTSC 40 |
| 80 | #define TUNER_PHILIPS_PAL_MK 41 | 80 | #define TUNER_PHILIPS_PAL_MK 41 |
| 81 | #define TUNER_PHILIPS_ATSC 42 | 81 | #define TUNER_PHILIPS_FCV1236D 42 |
| 82 | #define TUNER_PHILIPS_FM1236_MK3 43 | 82 | #define TUNER_PHILIPS_FM1236_MK3 43 |
| 83 | 83 | ||
| 84 | #define TUNER_PHILIPS_4IN1 44 /* ATI TV Wonder Pro - Conexant */ | 84 | #define TUNER_PHILIPS_4IN1 44 /* ATI TV Wonder Pro - Conexant */ |
diff --git a/include/media/v4l2-chip-ident.h b/include/media/v4l2-chip-ident.h index 032bb75f69c2..0ea0bd85c036 100644 --- a/include/media/v4l2-chip-ident.h +++ b/include/media/v4l2-chip-ident.h | |||
| @@ -153,6 +153,12 @@ enum { | |||
| 153 | V4L2_IDENT_MSP4428G = 44287, | 153 | V4L2_IDENT_MSP4428G = 44287, |
| 154 | V4L2_IDENT_MSP4448G = 44487, | 154 | V4L2_IDENT_MSP4448G = 44487, |
| 155 | V4L2_IDENT_MSP4458G = 44587, | 155 | V4L2_IDENT_MSP4458G = 44587, |
| 156 | |||
| 157 | /* Micron CMOS sensor chips: 45000-45099 */ | ||
| 158 | V4L2_IDENT_MT9M001C12ST = 45000, | ||
| 159 | V4L2_IDENT_MT9M001C12STM = 45005, | ||
| 160 | V4L2_IDENT_MT9V022IX7ATC = 45010, /* No way to detect "normal" I77ATx */ | ||
| 161 | V4L2_IDENT_MT9V022IX7ATM = 45015, /* and "lead free" IA7ATx chips */ | ||
| 156 | }; | 162 | }; |
| 157 | 163 | ||
| 158 | #endif | 164 | #endif |
diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h index f2114459995d..a807d2f86ee8 100644 --- a/include/media/v4l2-dev.h +++ b/include/media/v4l2-dev.h | |||
| @@ -318,6 +318,10 @@ struct video_device | |||
| 318 | int (*vidioc_g_chip_ident) (struct file *file, void *fh, | 318 | int (*vidioc_g_chip_ident) (struct file *file, void *fh, |
| 319 | struct v4l2_chip_ident *chip); | 319 | struct v4l2_chip_ident *chip); |
| 320 | 320 | ||
| 321 | /* For other private ioctls */ | ||
| 322 | int (*vidioc_default) (struct file *file, void *fh, | ||
| 323 | int cmd, void *arg); | ||
| 324 | |||
| 321 | 325 | ||
| 322 | #ifdef OBSOLETE_OWNER /* to be removed soon */ | 326 | #ifdef OBSOLETE_OWNER /* to be removed soon */ |
| 323 | /* obsolete -- fops->owner is used instead */ | 327 | /* obsolete -- fops->owner is used instead */ |
diff --git a/include/media/videobuf-core.h b/include/media/videobuf-core.h index 99033945cdee..5b39a22533fe 100644 --- a/include/media/videobuf-core.h +++ b/include/media/videobuf-core.h | |||
| @@ -13,6 +13,9 @@ | |||
| 13 | * the Free Software Foundation; either version 2 | 13 | * the Free Software Foundation; either version 2 |
| 14 | */ | 14 | */ |
| 15 | 15 | ||
| 16 | #ifndef _VIDEOBUF_CORE_H | ||
| 17 | #define _VIDEOBUF_CORE_H | ||
| 18 | |||
| 16 | #include <linux/poll.h> | 19 | #include <linux/poll.h> |
| 17 | #ifdef CONFIG_VIDEO_V4L1_COMPAT | 20 | #ifdef CONFIG_VIDEO_V4L1_COMPAT |
| 18 | #include <linux/videodev.h> | 21 | #include <linux/videodev.h> |
| @@ -123,7 +126,8 @@ struct videobuf_queue_ops { | |||
| 123 | struct videobuf_qtype_ops { | 126 | struct videobuf_qtype_ops { |
| 124 | u32 magic; | 127 | u32 magic; |
| 125 | 128 | ||
| 126 | void* (*alloc) (size_t size); | 129 | void *(*alloc) (size_t size); |
| 130 | void *(*vmalloc) (struct videobuf_buffer *buf); | ||
| 127 | int (*iolock) (struct videobuf_queue* q, | 131 | int (*iolock) (struct videobuf_queue* q, |
| 128 | struct videobuf_buffer *vb, | 132 | struct videobuf_buffer *vb, |
| 129 | struct v4l2_framebuffer *fbuf); | 133 | struct v4l2_framebuffer *fbuf); |
| @@ -151,7 +155,9 @@ struct videobuf_qtype_ops { | |||
| 151 | struct videobuf_queue { | 155 | struct videobuf_queue { |
| 152 | struct mutex vb_lock; | 156 | struct mutex vb_lock; |
| 153 | spinlock_t *irqlock; | 157 | spinlock_t *irqlock; |
| 154 | void *dev; /* on pci, points to struct pci_dev */ | 158 | struct device *dev; |
| 159 | |||
| 160 | wait_queue_head_t wait; /* wait if queue is empty */ | ||
| 155 | 161 | ||
| 156 | enum v4l2_buf_type type; | 162 | enum v4l2_buf_type type; |
| 157 | unsigned int inputs; /* for V4L2_BUF_FLAG_INPUT */ | 163 | unsigned int inputs; /* for V4L2_BUF_FLAG_INPUT */ |
| @@ -183,9 +189,13 @@ int videobuf_iolock(struct videobuf_queue* q, struct videobuf_buffer *vb, | |||
| 183 | 189 | ||
| 184 | void *videobuf_alloc(struct videobuf_queue* q); | 190 | void *videobuf_alloc(struct videobuf_queue* q); |
| 185 | 191 | ||
| 192 | /* Used on videobuf-dvb */ | ||
| 193 | void *videobuf_queue_to_vmalloc (struct videobuf_queue* q, | ||
| 194 | struct videobuf_buffer *buf); | ||
| 195 | |||
| 186 | void videobuf_queue_core_init(struct videobuf_queue *q, | 196 | void videobuf_queue_core_init(struct videobuf_queue *q, |
| 187 | struct videobuf_queue_ops *ops, | 197 | struct videobuf_queue_ops *ops, |
| 188 | void *dev, | 198 | struct device *dev, |
| 189 | spinlock_t *irqlock, | 199 | spinlock_t *irqlock, |
| 190 | enum v4l2_buf_type type, | 200 | enum v4l2_buf_type type, |
| 191 | enum v4l2_field field, | 201 | enum v4l2_field field, |
| @@ -231,10 +241,4 @@ int videobuf_mmap_free(struct videobuf_queue *q); | |||
| 231 | int videobuf_mmap_mapper(struct videobuf_queue *q, | 241 | int videobuf_mmap_mapper(struct videobuf_queue *q, |
| 232 | struct vm_area_struct *vma); | 242 | struct vm_area_struct *vma); |
| 233 | 243 | ||
| 234 | /* --------------------------------------------------------------------- */ | 244 | #endif |
| 235 | |||
| 236 | /* | ||
| 237 | * Local variables: | ||
| 238 | * c-basic-offset: 8 | ||
| 239 | * End: | ||
| 240 | */ | ||
diff --git a/include/media/videobuf-dma-sg.h b/include/media/videobuf-dma-sg.h index 38105031db23..be8da269ee33 100644 --- a/include/media/videobuf-dma-sg.h +++ b/include/media/videobuf-dma-sg.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * helper functions for PCI 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 gatter |
| 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 |
| @@ -68,9 +68,6 @@ struct videobuf_dmabuf { | |||
| 68 | /* for kernel buffers */ | 68 | /* for kernel buffers */ |
| 69 | void *vmalloc; | 69 | void *vmalloc; |
| 70 | 70 | ||
| 71 | /* Stores the userspace pointer to vmalloc area */ | ||
| 72 | void *varea; | ||
| 73 | |||
| 74 | /* for overlay buffers (pci-pci dma) */ | 71 | /* for overlay buffers (pci-pci dma) */ |
| 75 | dma_addr_t bus_addr; | 72 | dma_addr_t bus_addr; |
| 76 | 73 | ||
| @@ -81,7 +78,7 @@ struct videobuf_dmabuf { | |||
| 81 | int direction; | 78 | int direction; |
| 82 | }; | 79 | }; |
| 83 | 80 | ||
| 84 | struct videbuf_pci_sg_memory | 81 | struct videobuf_dma_sg_memory |
| 85 | { | 82 | { |
| 86 | u32 magic; | 83 | u32 magic; |
| 87 | 84 | ||
| @@ -103,11 +100,11 @@ int videobuf_dma_sync(struct videobuf_queue* q,struct videobuf_dmabuf *dma); | |||
| 103 | int videobuf_dma_unmap(struct videobuf_queue* q,struct videobuf_dmabuf *dma); | 100 | int videobuf_dma_unmap(struct videobuf_queue* q,struct videobuf_dmabuf *dma); |
| 104 | struct videobuf_dmabuf *videobuf_to_dma (struct videobuf_buffer *buf); | 101 | struct videobuf_dmabuf *videobuf_to_dma (struct videobuf_buffer *buf); |
| 105 | 102 | ||
| 106 | void *videobuf_pci_alloc (size_t size); | 103 | void *videobuf_sg_alloc(size_t size); |
| 107 | 104 | ||
| 108 | void videobuf_queue_pci_init(struct videobuf_queue* q, | 105 | void videobuf_queue_sg_init(struct videobuf_queue* q, |
| 109 | struct videobuf_queue_ops *ops, | 106 | struct videobuf_queue_ops *ops, |
| 110 | void *dev, | 107 | struct device *dev, |
| 111 | spinlock_t *irqlock, | 108 | spinlock_t *irqlock, |
| 112 | enum v4l2_buf_type type, | 109 | enum v4l2_buf_type type, |
| 113 | enum v4l2_field field, | 110 | enum v4l2_field field, |
| @@ -117,6 +114,6 @@ void videobuf_queue_pci_init(struct videobuf_queue* q, | |||
| 117 | /*FIXME: these variants are used only on *-alsa code, where videobuf is | 114 | /*FIXME: these variants are used only on *-alsa code, where videobuf is |
| 118 | * used without queue | 115 | * used without queue |
| 119 | */ | 116 | */ |
| 120 | int videobuf_pci_dma_map(struct pci_dev *pci,struct videobuf_dmabuf *dma); | 117 | int videobuf_sg_dma_map(struct device *dev, struct videobuf_dmabuf *dma); |
| 121 | int videobuf_pci_dma_unmap(struct pci_dev *pci,struct videobuf_dmabuf *dma); | 118 | int videobuf_sg_dma_unmap(struct device *dev, struct videobuf_dmabuf *dma); |
| 122 | 119 | ||
diff --git a/include/media/videobuf-dvb.h b/include/media/videobuf-dvb.h index 8233cafdeef6..b77748696329 100644 --- a/include/media/videobuf-dvb.h +++ b/include/media/videobuf-dvb.h | |||
| @@ -27,7 +27,8 @@ struct videobuf_dvb { | |||
| 27 | int videobuf_dvb_register(struct videobuf_dvb *dvb, | 27 | int videobuf_dvb_register(struct videobuf_dvb *dvb, |
| 28 | struct module *module, | 28 | struct module *module, |
| 29 | void *adapter_priv, | 29 | void *adapter_priv, |
| 30 | struct device *device); | 30 | struct device *device, |
| 31 | short *adapter_nr); | ||
| 31 | void videobuf_dvb_unregister(struct videobuf_dvb *dvb); | 32 | void videobuf_dvb_unregister(struct videobuf_dvb *dvb); |
| 32 | 33 | ||
| 33 | /* | 34 | /* |
diff --git a/include/media/videobuf-vmalloc.h b/include/media/videobuf-vmalloc.h index ec63ab0fab93..aed39460c154 100644 --- a/include/media/videobuf-vmalloc.h +++ b/include/media/videobuf-vmalloc.h | |||
| @@ -12,6 +12,8 @@ | |||
| 12 | * it under the terms of the GNU General Public License as published by | 12 | * it under the terms of the GNU General Public License as published by |
| 13 | * the Free Software Foundation; either version 2 | 13 | * the Free Software Foundation; either version 2 |
| 14 | */ | 14 | */ |
| 15 | #ifndef _VIDEOBUF_VMALLOC_H | ||
| 16 | #define _VIDEOBUF_VMALLOC_H | ||
| 15 | 17 | ||
| 16 | #include <media/videobuf-core.h> | 18 | #include <media/videobuf-core.h> |
| 17 | 19 | ||
| @@ -39,3 +41,5 @@ void videobuf_queue_vmalloc_init(struct videobuf_queue* q, | |||
| 39 | void *videobuf_to_vmalloc (struct videobuf_buffer *buf); | 41 | void *videobuf_to_vmalloc (struct videobuf_buffer *buf); |
| 40 | 42 | ||
| 41 | void videobuf_vmalloc_free (struct videobuf_buffer *buf); | 43 | void videobuf_vmalloc_free (struct videobuf_buffer *buf); |
| 44 | |||
| 45 | #endif | ||
