From 256280a989a5688161c66f97a3e054749875a723 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Wed, 29 Mar 2006 19:56:17 +0200 Subject: Add new NEC uPD64031A and uPD64083 i2c drivers From: Hans Verkuil - Add support for the uPD64031A NEC Electronics Ghost Reduction i2c device - Add support for the uPD6408x NEC Electronics 3-Dimensional Y/C separation i2c device. Signed-off-by: Takahiro Adachi Signed-off-by: Takeru Komoriya Signed-off-by: Hans Verkuil --- linux/include/media/upd64031a.h | 41 ++++++++++++++++++++++++++++ linux/include/media/upd64083.h | 59 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 linux/include/media/upd64031a.h create mode 100644 linux/include/media/upd64083.h (limited to 'linux/include') diff --git a/linux/include/media/upd64031a.h b/linux/include/media/upd64031a.h new file mode 100644 index 000000000..ae2d93635 --- /dev/null +++ b/linux/include/media/upd64031a.h @@ -0,0 +1,41 @@ +/* + * upd64031a - NEC Electronics Ghost Reduction input defines + * + * 2006 by Hans Verkuil (hverkuil@xs4all.nl) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef _UPD64031A_H_ +#define _UPD64031A_H_ + +/* Ghost reduction modes */ +#define UPD64031A_GR_ON 0 +#define UPD64031A_GR_OFF 1 +#define UPD64031A_GR_THROUGH 3 + +/* Direct 3D/YCS Connection */ +#define UPD64031A_3DYCS_DISABLE (0 << 2) +#define UPD64031A_3DYCS_COMPOSITE (2 << 2) +#define UPD64031A_3DYCS_SVIDEO (3 << 2) + +/* Composite sync digital separation circuit */ +#define UPD64031A_COMPOSITE_EXTERNAL (1 << 4) + +/* Vertical sync digital separation circuit */ +#define UPD64031A_VERTICAL_EXTERNAL (1 << 5) + +#endif + diff --git a/linux/include/media/upd64083.h b/linux/include/media/upd64083.h new file mode 100644 index 000000000..77f48a8f1 --- /dev/null +++ b/linux/include/media/upd64083.h @@ -0,0 +1,59 @@ +/* + * upd6408x - NEC Electronics 3-Dimensional Y/C separation input defines + * + * 2006 by Hans Verkuil (hverkuil@xs4all.nl) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef _UPD64083_H_ +#define _UPD64083_H_ + +/* There are two bits of information that the driver needs in order + to select the correct routing: the operating mode and the selection + of the Y input (external or internal). + + The first two operating modes expect a composite signal on the Y input, + the second two operating modes use both the Y and C inputs. + + Normally YCS_MODE is used for tuner and composite inputs, and the + YCNR mode is used for S-Video inputs. + + The external Y-ADC is selected when the composite input comes from a + upd64031a ghost reduction device. If this device is not present, or + the input is a S-Video signal, then the internal Y-ADC input should + be used. */ + +/* Operating modes: */ + +/* YCS mode: Y/C separation (burst locked clocking) */ +#define UPD64083_YCS_MODE 0 +/* YCS+ mode: 2D Y/C separation and YCNR (burst locked clocking) */ +#define UPD64083_YCS_PLUS_MODE 1 + +/* Note: the following two modes cannot be used in combination with the + external Y-ADC. */ +/* MNNR mode: frame comb type YNR+C delay (line locked clocking) */ +#define UPD64083_MNNR_MODE 2 +/* YCNR mode: frame recursive YCNR (burst locked clocking) */ +#define UPD64083_YCNR_MODE 3 + +/* Select external Y-ADC: this should be set if this device is used in + combination with the upd64031a ghost reduction device. + Otherwise leave at 0 (use internal Y-ADC). */ +#define UPD64083_EXT_Y_ADC (1 << 2) + +#endif + -- cgit v1.2.3 From f8f26c1536f4aa9e1329fb70979cdab63fdda0c0 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Wed, 29 Mar 2006 20:16:08 +0200 Subject: Remove trailing newlines From: Hans Verkuil Signed-off-by: Hans Verkuil --- linux/include/media/upd64031a.h | 1 - linux/include/media/upd64083.h | 1 - 2 files changed, 2 deletions(-) (limited to 'linux/include') diff --git a/linux/include/media/upd64031a.h b/linux/include/media/upd64031a.h index ae2d93635..3ad6a32e1 100644 --- a/linux/include/media/upd64031a.h +++ b/linux/include/media/upd64031a.h @@ -38,4 +38,3 @@ #define UPD64031A_VERTICAL_EXTERNAL (1 << 5) #endif - diff --git a/linux/include/media/upd64083.h b/linux/include/media/upd64083.h index 77f48a8f1..59b6f32ba 100644 --- a/linux/include/media/upd64083.h +++ b/linux/include/media/upd64083.h @@ -56,4 +56,3 @@ #define UPD64083_EXT_Y_ADC (1 << 2) #endif - -- cgit v1.2.3 From ed85a3383b5c666eb560d2668f43ca85ed925e72 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Wed, 29 Mar 2006 23:02:51 +0200 Subject: Reverted sliced VBI API changes made in videodev2.h. From: Hans Verkuil The sliced VBI defines added in videodev2.h are removed. One define changed the meaning of a old define, thus breaking existing apps, another used more than 16 bits (the max size is u16), and many types were added that were untested and whose payload was undocumented. New types should be shown to exist 'in the wild' and the payload format must be documented in the V4L2 API spec. Signed-off-by: Hans Verkuil --- linux/include/linux/videodev2.h | 64 +++++------------------------------------ 1 file changed, 7 insertions(+), 57 deletions(-) (limited to 'linux/include') diff --git a/linux/include/linux/videodev2.h b/linux/include/linux/videodev2.h index bd2e07390..eb9edd711 100644 --- a/linux/include/linux/videodev2.h +++ b/linux/include/linux/videodev2.h @@ -998,66 +998,16 @@ struct v4l2_sliced_vbi_format /* Teletext World System Teletext (WST), defined on ITU-R BT.653-2 */ -#define V4L2_SLICED_TELETEXT_PAL_B (0x000001) -#define V4L2_SLICED_TELETEXT_PAL_C (0x000002) -#define V4L2_SLICED_TELETEXT_NTSC_B (0x000010) -#define V4L2_SLICED_TELETEXT_SECAM (0x000020) - -/* Teletext North American Broadcast Teletext Specification - (NABTS), defined on ITU-R BT.653-2 */ -#define V4L2_SLICED_TELETEXT_NTSC_C (0x000040) -#define V4L2_SLICED_TELETEXT_NTSC_D (0x000080) - +#define V4L2_SLICED_TELETEXT_B (0x0001) /* Video Program System, defined on ETS 300 231*/ -#define V4L2_SLICED_VPS (0x000400) - +#define V4L2_SLICED_VPS (0x0400) /* Closed Caption, defined on EIA-608 */ -#define V4L2_SLICED_CAPTION_525 (0x001000) -#define V4L2_SLICED_CAPTION_625 (0x002000) - +#define V4L2_SLICED_CAPTION_525 (0x1000) /* Wide Screen System, defined on ITU-R BT1119.1 */ -#define V4L2_SLICED_WSS_625 (0x004000) - -/* Wide Screen System, defined on IEC 61880 */ -#define V4L2_SLICED_WSS_525 (0x008000) - -/* Vertical Interval Timecode (VITC), defined on SMPTE 12M */ -#define V4l2_SLICED_VITC_625 (0x010000) -#define V4l2_SLICED_VITC_525 (0x020000) - -#define V4L2_SLICED_TELETEXT_B (V4L2_SLICED_TELETEXT_PAL_B |\ - V4L2_SLICED_TELETEXT_NTSC_B) - -#define V4L2_SLICED_TELETEXT (V4L2_SLICED_TELETEXT_PAL_B |\ - V4L2_SLICED_TELETEXT_PAL_C |\ - V4L2_SLICED_TELETEXT_SECAM |\ - V4L2_SLICED_TELETEXT_NTSC_B |\ - V4L2_SLICED_TELETEXT_NTSC_C |\ - V4L2_SLICED_TELETEXT_NTSC_D) - -#define V4L2_SLICED_CAPTION (V4L2_SLICED_CAPTION_525 |\ - V4L2_SLICED_CAPTION_625) - -#define V4L2_SLICED_WSS (V4L2_SLICED_WSS_525 |\ - V4L2_SLICED_WSS_625) - -#define V4L2_SLICED_VITC (V4L2_SLICED_VITC_525 |\ - V4L2_SLICED_VITC_625) - -#define V4L2_SLICED_VBI_525 (V4L2_SLICED_TELETEXT_NTSC_B |\ - V4L2_SLICED_TELETEXT_NTSC_C |\ - V4L2_SLICED_TELETEXT_NTSC_D |\ - V4L2_SLICED_CAPTION_525 |\ - V4L2_SLICED_WSS_525 |\ - V4l2_SLICED_VITC_525) - -#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_PAL_B |\ - V4L2_SLICED_TELETEXT_PAL_C |\ - V4L2_SLICED_TELETEXT_SECAM |\ - V4L2_SLICED_VPS |\ - V4L2_SLICED_CAPTION_625 |\ - V4L2_SLICED_WSS_625 |\ - V4l2_SLICED_VITC_625) +#define V4L2_SLICED_WSS_625 (0x4000) + +#define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525) +#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625) struct v4l2_sliced_vbi_cap { -- cgit v1.2.3 From f55b2be52b11947513cc6fc58b8ec2e5b3bea3e3 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Wed, 29 Mar 2006 18:06:26 -0300 Subject: Kernel-sync changes to -git From: Mauro Carvalho Chehab kernel-sync Signed-off-by: Mauro Carvalho Chehab --- linux/include/linux/i2c-id.h | 1 - 1 file changed, 1 deletion(-) (limited to 'linux/include') diff --git a/linux/include/linux/i2c-id.h b/linux/include/linux/i2c-id.h index 6625e4aa2..679b46a6a 100644 --- a/linux/include/linux/i2c-id.h +++ b/linux/include/linux/i2c-id.h @@ -172,7 +172,6 @@ #define I2C_HW_B_RIVA 0x010010 /* Riva based graphics cards */ #define I2C_HW_B_IOC 0x010011 /* IOC bit-wiggling */ #define I2C_HW_B_TSUNA 0x010012 /* DEC Tsunami chipset */ -#define I2C_HW_B_FRODO 0x010013 /* 2d3D SA-1110 Development Board */ #define I2C_HW_B_OMAHA 0x010014 /* Omaha I2C interface (ARM) */ #define I2C_HW_B_GUIDE 0x010015 /* Guide bit-basher */ #define I2C_HW_B_IXP2000 0x010016 /* GPIO on IXP2000 systems */ -- cgit v1.2.3 From 9875f670afe53a6edd3a2b7852b4ee592eef4160 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Fri, 31 Mar 2006 00:55:22 +0200 Subject: Move cx2341x.h to media/cx2341x.h From: Hans Verkuil This header is used by multiple drivers, so keep it in include/media so all drivers can access it. Signed-off-by: Hans Verkuil --- linux/include/media/cx2341x.h | 121 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 linux/include/media/cx2341x.h (limited to 'linux/include') diff --git a/linux/include/media/cx2341x.h b/linux/include/media/cx2341x.h new file mode 100644 index 000000000..7e7dcc072 --- /dev/null +++ b/linux/include/media/cx2341x.h @@ -0,0 +1,121 @@ +/* + cx23415/6 header containing common defines. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef CX2341X_H +#define CX2341X_H + +/* Firmware names */ +#define CX2341X_FIRM_ENC_FILENAME "v4l-cx2341x-enc.fw" +/* Decoder firmware for the cx23415 only */ +#define CX2341X_FIRM_DEC_FILENAME "v4l-cx2341x-dec.fw" + +/* Firmware API commands */ + +/* MPEG decoder API, specific to the cx23415 */ +#define CX2341X_DEC_PING_FW 0x00 +#define CX2341X_DEC_START_PLAYBACK 0x01 +#define CX2341X_DEC_STOP_PLAYBACK 0x02 +#define CX2341X_DEC_SET_PLAYBACK_SPEED 0x03 +#define CX2341X_DEC_STEP_VIDEO 0x05 +#define CX2341X_DEC_SET_DMA_BLOCK_SIZE 0x08 +#define CX2341X_DEC_GET_XFER_INFO 0x09 +#define CX2341X_DEC_GET_DMA_STATUS 0x0a +#define CX2341X_DEC_SCHED_DMA_FROM_HOST 0x0b +#define CX2341X_DEC_PAUSE_PLAYBACK 0x0d +#define CX2341X_DEC_HALT_FW 0x0e +#define CX2341X_DEC_SET_STANDARD 0x10 +#define CX2341X_DEC_GET_VERSION 0x11 +#define CX2341X_DEC_SET_STREAM_INPUT 0x14 +#define CX2341X_DEC_GET_TIMING_INFO 0x15 +#define CX2341X_DEC_SET_AUDIO_MODE 0x16 +#define CX2341X_DEC_SET_EVENT_NOTIFICATION 0x17 +#define CX2341X_DEC_SET_DISPLAY_BUFFERS 0x18 +#define CX2341X_DEC_EXTRACT_VBI 0x19 +#define CX2341X_DEC_SET_DECODER_SOURCE 0x1a +#define CX2341X_DEC_SET_AUDIO_OUTPUT 0x1b +#define CX2341X_DEC_SET_AV_DELAY 0x1c +#define CX2341X_DEC_SET_PREBUFFERING 0x1e + +/* MPEG encoder API */ +#define CX2341X_ENC_PING_FW 0x80 +#define CX2341X_ENC_START_CAPTURE 0x81 +#define CX2341X_ENC_STOP_CAPTURE 0x82 +#define CX2341X_ENC_SET_AUDIO_ID 0x89 +#define CX2341X_ENC_SET_VIDEO_ID 0x8b +#define CX2341X_ENC_SET_PCR_ID 0x8d +#define CX2341X_ENC_SET_FRAME_RATE 0x8f +#define CX2341X_ENC_SET_FRAME_SIZE 0x91 +#define CX2341X_ENC_SET_BIT_RATE 0x95 +#define CX2341X_ENC_SET_GOP_PROPERTIES 0x97 +#define CX2341X_ENC_SET_ASPECT_RATIO 0x99 +#define CX2341X_ENC_SET_DNR_FILTER_MODE 0x9b +#define CX2341X_ENC_SET_DNR_FILTER_PROPS 0x9d +#define CX2341X_ENC_SET_CORING_LEVELS 0x9f +#define CX2341X_ENC_SET_SPATIAL_FILTER_TYPE 0xa1 +#define CX2341X_ENC_SET_3_2_PULLDOWN 0xb1 +#define CX2341X_ENC_SET_VBI_LINE 0xb7 +#define CX2341X_ENC_SET_STREAM_TYPE 0xb9 +#define CX2341X_ENC_SET_OUTPUT_PORT 0xbb +#define CX2341X_ENC_SET_AUDIO_PROPERTIES 0xbd +#define CX2341X_ENC_HALT_FW 0xc3 +#define CX2341X_ENC_GET_VERSION 0xc4 +#define CX2341X_ENC_SET_GOP_CLOSURE 0xc5 +#define CX2341X_ENC_GET_SEQ_END 0xc6 +#define CX2341X_ENC_SET_PGM_INDEX_INFO 0xc7 +#define CX2341X_ENC_SET_VBI_CONFIG 0xc8 +#define CX2341X_ENC_SET_DMA_BLOCK_SIZE 0xc9 +#define CX2341X_ENC_GET_PREV_DMA_INFO_MB_10 0xca +#define CX2341X_ENC_GET_PREV_DMA_INFO_MB_9 0xcb +#define CX2341X_ENC_SCHED_DMA_TO_HOST 0xcc +#define CX2341X_ENC_INITIALIZE_INPUT 0xcd +#define CX2341X_ENC_SET_FRAME_DROP_RATE 0xd0 +#define CX2341X_ENC_PAUSE_ENCODER 0xd2 +#define CX2341X_ENC_REFRESH_INPUT 0xd3 +#define CX2341X_ENC_SET_COPYRIGHT 0xd4 +#define CX2341X_ENC_SET_EVENT_NOTIFICATION 0xd5 +#define CX2341X_ENC_SET_NUM_VSYNC_LINES 0xd6 +#define CX2341X_ENC_SET_PLACEHOLDER 0xd7 +#define CX2341X_ENC_MUTE_VIDEO 0xd9 +#define CX2341X_ENC_MUTE_AUDIO 0xda +#define CX2341X_ENC_UNKNOWN 0xdb +#define CX2341X_ENC_MISC 0xdc + +/* OSD API, specific to the cx23415 */ +#define CX2341X_OSD_GET_FRAMEBUFFER 0x41 +#define CX2341X_OSD_GET_PIXEL_FORMAT 0x42 +#define CX2341X_OSD_SET_PIXEL_FORMAT 0x43 +#define CX2341X_OSD_GET_STATE 0x44 +#define CX2341X_OSD_SET_STATE 0x45 +#define CX2341X_OSD_GET_OSD_COORDS 0x46 +#define CX2341X_OSD_SET_OSD_COORDS 0x47 +#define CX2341X_OSD_GET_SCREEN_COORDS 0x48 +#define CX2341X_OSD_SET_SCREEN_COORDS 0x49 +#define CX2341X_OSD_GET_GLOBAL_ALPHA 0x4a +#define CX2341X_OSD_SET_GLOBAL_ALPHA 0x4b +#define CX2341X_OSD_SET_BLEND_COORDS 0x4c +#define CX2341X_OSD_GET_FLICKER_STATE 0x4f +#define CX2341X_OSD_SET_FLICKER_STATE 0x50 +#define CX2341X_OSD_BLT_COPY 0x52 +#define CX2341X_OSD_BLT_FILL 0x53 +#define CX2341X_OSD_BLT_TEXT 0x54 +#define CX2341X_OSD_SET_FRAMEBUFFER_WINDOW 0x56 +#define CX2341X_OSD_SET_CHROMA_KEY 0x60 +#define CX2341X_OSD_GET_ALPHA_CONTENT_INDEX 0x61 +#define CX2341X_OSD_SET_ALPHA_CONTENT_INDEX 0x62 + +#endif /* CX2341X_H */ -- cgit v1.2.3 From 75ba9961e3fc167c48412d75bc01d55fab89cac0 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Sat, 1 Apr 2006 21:00:18 +0200 Subject: Keep experimental SLICED_VBI defines under an #if 0 From: Hans Verkuil As per request by Mauro the experimental SLICED_VBI defines are back under placed under an #if 0. Signed-off-by: Hans Verkuil --- linux/include/linux/videodev2.h | 67 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) (limited to 'linux/include') diff --git a/linux/include/linux/videodev2.h b/linux/include/linux/videodev2.h index eb9edd711..b87334d72 100644 --- a/linux/include/linux/videodev2.h +++ b/linux/include/linux/videodev2.h @@ -1009,6 +1009,73 @@ struct v4l2_sliced_vbi_format #define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525) #define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625) +#if 0 +/* FIXME: Currently unused defines, needs to be discussed further */ + +/* Teletext World System Teletext + (WST), defined on ITU-R BT.653-2 */ +#define V4L2_SLICED_TELETEXT_PAL_B (0x000001) +#define V4L2_SLICED_TELETEXT_PAL_C (0x000002) +#define V4L2_SLICED_TELETEXT_NTSC_B (0x000010) +#define V4L2_SLICED_TELETEXT_SECAM (0x000020) + +/* Teletext North American Broadcast Teletext Specification + (NABTS), defined on ITU-R BT.653-2 */ +#define V4L2_SLICED_TELETEXT_NTSC_C (0x000040) +#define V4L2_SLICED_TELETEXT_NTSC_D (0x000080) + +/* Video Program System, defined on ETS 300 231*/ +#define V4L2_SLICED_VPS (0x000400) + +/* Closed Caption, defined on EIA-608 */ +#define V4L2_SLICED_CAPTION_525 (0x001000) +#define V4L2_SLICED_CAPTION_625 (0x002000) + +/* Wide Screen System, defined on ITU-R BT1119.1 */ +#define V4L2_SLICED_WSS_625 (0x004000) + +/* Wide Screen System, defined on IEC 61880 */ +#define V4L2_SLICED_WSS_525 (0x008000) + +/* Vertical Interval Timecode (VITC), defined on SMPTE 12M */ +#define V4l2_SLICED_VITC_625 (0x010000) +#define V4l2_SLICED_VITC_525 (0x020000) + +#define V4L2_SLICED_TELETEXT_B (V4L2_SLICED_TELETEXT_PAL_B |\ + V4L2_SLICED_TELETEXT_NTSC_B) + +#define V4L2_SLICED_TELETEXT (V4L2_SLICED_TELETEXT_PAL_B |\ + V4L2_SLICED_TELETEXT_PAL_C |\ + V4L2_SLICED_TELETEXT_SECAM |\ + V4L2_SLICED_TELETEXT_NTSC_B |\ + V4L2_SLICED_TELETEXT_NTSC_C |\ + V4L2_SLICED_TELETEXT_NTSC_D) + +#define V4L2_SLICED_CAPTION (V4L2_SLICED_CAPTION_525 |\ + V4L2_SLICED_CAPTION_625) + +#define V4L2_SLICED_WSS (V4L2_SLICED_WSS_525 |\ + V4L2_SLICED_WSS_625) + +#define V4L2_SLICED_VITC (V4L2_SLICED_VITC_525 |\ + V4L2_SLICED_VITC_625) + +#define V4L2_SLICED_VBI_525 (V4L2_SLICED_TELETEXT_NTSC_B |\ + V4L2_SLICED_TELETEXT_NTSC_C |\ + V4L2_SLICED_TELETEXT_NTSC_D |\ + V4L2_SLICED_CAPTION_525 |\ + V4L2_SLICED_WSS_525 |\ + V4l2_SLICED_VITC_525) + +#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_PAL_B |\ + V4L2_SLICED_TELETEXT_PAL_C |\ + V4L2_SLICED_TELETEXT_SECAM |\ + V4L2_SLICED_VPS |\ + V4L2_SLICED_CAPTION_625 |\ + V4L2_SLICED_WSS_625 |\ + V4l2_SLICED_VITC_625) +#endif + struct v4l2_sliced_vbi_cap { __u16 service_set; -- cgit v1.2.3 From dbe2e81959f002660345a0b09161b230df7765cf Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Sat, 1 Apr 2006 23:03:23 +0200 Subject: Make msp3400 routing defines more consistent From: Hans Verkuil Renamed various msp3400 routing defines to be more consistent and less confusing. Esp. the MSP_DSP_OUT defines were confusing since it is really a DSP input. Signed-off-by: Hans Verkuil --- linux/include/media/msp3400.h | 60 +++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 30 deletions(-) (limited to 'linux/include') diff --git a/linux/include/media/msp3400.h b/linux/include/media/msp3400.h index 0be61a021..6ab854931 100644 --- a/linux/include/media/msp3400.h +++ b/linux/include/media/msp3400.h @@ -80,16 +80,16 @@ */ /* SCART input to DSP selection */ -#define MSP_IN_SCART_1 0 /* Pin SC1_IN */ -#define MSP_IN_SCART_2 1 /* Pin SC2_IN */ -#define MSP_IN_SCART_3 2 /* Pin SC3_IN */ -#define MSP_IN_SCART_4 3 /* Pin SC4_IN */ +#define MSP_IN_SCART1 0 /* Pin SC1_IN */ +#define MSP_IN_SCART2 1 /* Pin SC2_IN */ +#define MSP_IN_SCART3 2 /* Pin SC3_IN */ +#define MSP_IN_SCART4 3 /* Pin SC4_IN */ #define MSP_IN_MONO 6 /* Pin MONO_IN */ #define MSP_IN_MUTE 7 /* Mute DSP input */ #define MSP_SCART_TO_DSP(in) (in) /* Tuner input to demodulator and DSP selection */ -#define MSP_IN_TUNER_1 0 /* Analog Sound IF input pin ANA_IN1 */ -#define MSP_IN_TUNER_2 1 /* Analog Sound IF input pin ANA_IN2 */ +#define MSP_IN_TUNER1 0 /* Analog Sound IF input pin ANA_IN1 */ +#define MSP_IN_TUNER2 1 /* Analog Sound IF input pin ANA_IN2 */ #define MSP_TUNER_TO_DSP(in) ((in) << 3) /* The msp has up to 5 DSP outputs, each output can independently select @@ -109,14 +109,14 @@ DSP. This is currently not implemented. Also not implemented is the multi-channel capable I2S3 input of the 44x0G. If someone can demonstrate a need for one of those features then additional support can be added. */ -#define MSP_DSP_OUT_TUNER 0 /* Tuner output */ -#define MSP_DSP_OUT_SCART 2 /* SCART output */ -#define MSP_DSP_OUT_I2S1 5 /* I2S1 output */ -#define MSP_DSP_OUT_I2S2 6 /* I2S2 output */ -#define MSP_DSP_OUT_I2S3 7 /* I2S3 output */ -#define MSP_DSP_OUT_MAIN_AVC 11 /* MAIN AVC processed output */ -#define MSP_DSP_OUT_MAIN 12 /* MAIN output */ -#define MSP_DSP_OUT_AUX 13 /* AUX output */ +#define MSP_DSP_IN_TUNER 0 /* Tuner DSP input */ +#define MSP_DSP_IN_SCART 2 /* SCART DSP input */ +#define MSP_DSP_IN_I2S1 5 /* I2S1 DSP input */ +#define MSP_DSP_IN_I2S2 6 /* I2S2 DSP input */ +#define MSP_DSP_IN_I2S3 7 /* I2S3 DSP input */ +#define MSP_DSP_IN_MAIN_AVC 11 /* MAIN AVC processed DSP input */ +#define MSP_DSP_IN_MAIN 12 /* MAIN DSP input */ +#define MSP_DSP_IN_AUX 13 /* AUX DSP input */ #define MSP_DSP_TO_MAIN(in) ((in) << 4) #define MSP_DSP_TO_AUX(in) ((in) << 8) #define MSP_DSP_TO_SCART1(in) ((in) << 12) @@ -125,16 +125,16 @@ /* Output SCART select: the SCART outputs can select which input to use. */ -#define MSP_OUT_SCART1 0 /* SCART1 input, bypassing the DSP */ -#define MSP_OUT_SCART2 1 /* SCART2 input, bypassing the DSP */ -#define MSP_OUT_SCART3 2 /* SCART3 input, bypassing the DSP */ -#define MSP_OUT_SCART4 3 /* SCART4 input, bypassing the DSP */ -#define MSP_OUT_SCART1_DA 4 /* DSP SCART1 output */ -#define MSP_OUT_SCART2_DA 5 /* DSP SCART2 output */ -#define MSP_OUT_MONO 6 /* MONO input, bypassing the DSP */ -#define MSP_OUT_MUTE 7 /* MUTE output */ -#define MSP_OUT_TO_SCART1(in) (in) -#define MSP_OUT_TO_SCART2(in) ((in) << 4) +#define MSP_SC_IN_SCART1 0 /* SCART1 input, bypassing the DSP */ +#define MSP_SC_IN_SCART2 1 /* SCART2 input, bypassing the DSP */ +#define MSP_SC_IN_SCART3 2 /* SCART3 input, bypassing the DSP */ +#define MSP_SC_IN_SCART4 3 /* SCART4 input, bypassing the DSP */ +#define MSP_SC_IN_DSP_SCART1 4 /* DSP SCART1 input */ +#define MSP_SC_IN_DSP_SCART2 5 /* DSP SCART2 input */ +#define MSP_SC_IN_MONO 6 /* MONO input, bypassing the DSP */ +#define MSP_SC_IN_MUTE 7 /* MUTE output */ +#define MSP_SC_TO_SCART1(in) (in) +#define MSP_SC_TO_SCART2(in) ((in) << 4) /* Shortcut macros */ #define MSP_INPUT(sc, t, main_aux_src, sc_i2s_src) \ @@ -145,14 +145,14 @@ MSP_DSP_TO_SCART1(sc_i2s_src) | \ MSP_DSP_TO_SCART2(sc_i2s_src) | \ MSP_DSP_TO_I2S(sc_i2s_src)) -#define MSP_INPUT_DEFAULT MSP_INPUT(MSP_IN_SCART_1, MSP_IN_TUNER_1, \ - MSP_DSP_OUT_TUNER, MSP_DSP_OUT_TUNER) +#define MSP_INPUT_DEFAULT MSP_INPUT(MSP_IN_SCART1, MSP_IN_TUNER1, \ + MSP_DSP_IN_TUNER, MSP_DSP_IN_TUNER) #define MSP_OUTPUT(sc) \ - (MSP_OUT_TO_SCART1(sc) | \ - MSP_OUT_TO_SCART2(sc)) + (MSP_SC_TO_SCART1(sc) | \ + MSP_SC_TO_SCART2(sc)) /* This equals the RESET position of the msp3400 ACB register */ -#define MSP_OUTPUT_DEFAULT (MSP_OUT_TO_SCART1(MSP_OUT_SCART3) | \ - MSP_OUT_TO_SCART2(MSP_OUT_SCART1_DA)) +#define MSP_OUTPUT_DEFAULT (MSP_SC_TO_SCART1(MSP_SC_IN_SCART3) | \ + MSP_SC_TO_SCART2(MSP_SC_IN_DSP_SCART1)) /* Tuner inputs vs. msp version */ /* Chip TUNER_1 TUNER_2 -- cgit v1.2.3 From 1022e152b0486dbbc19e49c9bbbdec12a0637418 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Sun, 2 Apr 2006 09:07:01 -0300 Subject: [PATCH] mark f_ops const in the inode From: Arjan van de Ven Mark the f_ops members of inodes as const, as well as fix the ripple-through this causes by places that copy this f_ops and then "do stuff" with it. kernel-sync Signed-off-by: Arjan van de Ven Signed-off-by: Alexey Dobriyan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- linux/include/linux/videodev2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'linux/include') diff --git a/linux/include/linux/videodev2.h b/linux/include/linux/videodev2.h index b87334d72..922980c61 100644 --- a/linux/include/linux/videodev2.h +++ b/linux/include/linux/videodev2.h @@ -84,7 +84,7 @@ struct video_device int minor; /* device ops + callbacks */ - struct file_operations *fops; + const struct file_operations *fops; void (*release)(struct video_device *vfd); #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) -- cgit v1.2.3 From 6c14e144cdc5613c2d56f1a991b87366184c634c Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Sun, 2 Apr 2006 09:36:36 -0300 Subject: Sync I2C ID's From: Mauro Carvalho Chehab kernel-sync Signed-off-by: Mauro Carvalho Chehab --- linux/include/linux/i2c-id.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'linux/include') diff --git a/linux/include/linux/i2c-id.h b/linux/include/linux/i2c-id.h index 679b46a6a..c8b81f419 100644 --- a/linux/include/linux/i2c-id.h +++ b/linux/include/linux/i2c-id.h @@ -108,6 +108,10 @@ #define I2C_DRIVERID_UPD64083 78 /* upd64083 video processor */ #define I2C_DRIVERID_UPD64031A 79 /* upd64031a video processor */ #define I2C_DRIVERID_SAA717X 80 /* saa717x video encoder */ +#define I2C_DRIVERID_DS1672 81 /* Dallas/Maxim DS1672 RTC */ +#define I2C_DRIVERID_X1205 82 /* Xicor/Intersil X1205 RTC */ +#define I2C_DRIVERID_PCF8563 83 /* Philips PCF8563 RTC */ +#define I2C_DRIVERID_RS5C372 84 /* Ricoh RS5C372 RTC */ #define I2C_DRIVERID_I2CDEV 900 #define I2C_DRIVERID_ARP 902 /* SMBus ARP Client */ -- cgit v1.2.3 From 7d27e5f3b2bbe8ca82a41dce5203a67d7595ab09 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Sun, 2 Apr 2006 17:50:42 +0200 Subject: Add support for VIDIOC_INT_S_CRYSTAL_FREQ internal command. From: Hans Verkuil Some saa7115-based cards use a different crystal frequency and a different audio clock generation. Add a new VIDIOC_INT_S_CRYSTAL_FREQ command to be able to set these values. Also change the default APLL setting to 0. It makes no sense to have the audio clock independent from the video clock, this can lead to audio/video synchronization problems. Setting this to 0 is also consistent with the old saa7114.c source and the way the Hauppauge Windows driver sets it. Signed-off-by: Hans Verkuil --- linux/include/media/saa7115.h | 11 ++++++++++- linux/include/media/v4l2-common.h | 11 +++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'linux/include') diff --git a/linux/include/media/saa7115.h b/linux/include/media/saa7115.h index 6b4836f3f..9f0e2285a 100644 --- a/linux/include/media/saa7115.h +++ b/linux/include/media/saa7115.h @@ -1,5 +1,5 @@ /* - saa7115.h - definition for saa7113/4/5 inputs + saa7115.h - definition for saa7113/4/5 inputs and frequency flags Copyright (C) 2006 Hans Verkuil (hverkuil@xs4all.nl) @@ -33,5 +33,14 @@ #define SAA7115_SVIDEO2 8 #define SAA7115_SVIDEO3 9 +/* SAA7115 v4l2_crystal_freq frequency values */ +#define SAA7115_FREQ_32_11_MHZ 32110000 /* 32.11 MHz crystal, SAA7114/5 only */ +#define SAA7115_FREQ_24_576_MHZ 24576000 /* 24.576 MHz crystal */ + +/* SAA7115 v4l2_crystal_freq audio clock control flags */ +#define SAA7115_FREQ_FL_UCGC (1 << 0) /* SA 3A[7], UCGC, SAA7115 only */ +#define SAA7115_FREQ_FL_CGCDIV (1 << 1) /* SA 3A[6], CGCDIV, SAA7115 only */ +#define SAA7115_FREQ_FL_APLL (1 << 2) /* SA 3A[3], APLL, SAA7114/5 only */ + #endif diff --git a/linux/include/media/v4l2-common.h b/linux/include/media/v4l2-common.h index 60c0bc91e..6ffa8eabb 100644 --- a/linux/include/media/v4l2-common.h +++ b/linux/include/media/v4l2-common.h @@ -217,4 +217,15 @@ struct v4l2_routing { #define VIDIOC_INT_S_VIDEO_ROUTING _IOW ('d', 111, struct v4l2_routing) #define VIDIOC_INT_G_VIDEO_ROUTING _IOR ('d', 112, struct v4l2_routing) +struct v4l2_crystal_freq { + u32 freq; /* frequency in Hz of the crystal */ + u32 flags; /* device specific flags */ +}; + +/* Sets the frequency of the crystal used to generate the clocks. + An extra flags field allows device specific configuration regarding + clock frequency dividers, etc. If not used, then set flags to 0. + If the frequency is not supported, then -EINVAL is returned. */ +#define VIDIOC_INT_S_CRYSTAL_FREQ _IOW ('d', 113, struct v4l2_crystal_freq) + #endif /* V4L2_COMMON_H_ */ -- cgit v1.2.3 From cb228051a31b5d0f78a3b3e7e8a960d1658afcf5 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Sun, 2 Apr 2006 18:35:00 +0200 Subject: Fix video input setting of em28xx, use _INT_S_VIDEO_ROUTING in tvp5150 From: Hans Verkuil - Use new routing input defines in em28xx-cards.c - Fix S-Video settings for tvp5150-based cards (input was copied from saa7115 based cards and worked only because S-Video was selected in the default: case) - Replace VIDIOC_S_INPUT by VIDIOC_INT_S_VIDEO_ROUTING in em28xx-video.c - Remove the now obsolete VIDIOC_S_INPUT handler in saa7115.c - Add VIDIOC_INT_G/S_VIDEO_ROUTING in tvp5150.c - Add new media/tvp5150.h with the routing defines. Signed-off-by: Hans Verkuil --- linux/include/media/tvp5150.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 linux/include/media/tvp5150.h (limited to 'linux/include') diff --git a/linux/include/media/tvp5150.h b/linux/include/media/tvp5150.h new file mode 100644 index 000000000..72bd2a2b8 --- /dev/null +++ b/linux/include/media/tvp5150.h @@ -0,0 +1,34 @@ +/* + tvp5150.h - definition for tvp5150 inputs + + Copyright (C) 2006 Hans Verkuil (hverkuil@xs4all.nl) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifndef _TVP5150_H_ +#define _TVP5150_H_ + +/* TVP5150 HW inputs */ +#define TVP5150_COMPOSITE0 0 +#define TVP5150_COMPOSITE1 1 +#define TVP5150_SVIDEO 2 + +/* TVP5150 HW outputs */ +#define TVP5150_NORMAL 0 +#define TVP5150_BLACK_SCREEN 1 + +#endif + -- cgit v1.2.3 From cc7536722d24a3deec8ac51616e26f5dc267f112 Mon Sep 17 00:00:00 2001 From: Michael Krufky Date: Mon, 3 Apr 2006 23:49:27 -0400 Subject: fix warning: assignment discards qualifiers from pointer target type From: Michael Krufky The following warning in all kernels < 2.6.17 is caused by changeset a875912f0aada25949e3201bcd97e177040fa782 : http://linuxtv.org/hg/v4l-dvb?cmd=changeset;node=a875912f0aad videodev.c: In function 'video_open': videodev.c:131: warning: assignment discards qualifiers from pointer target type videodev.c:136: warning: assignment discards qualifiers from pointer target type dvbdev.c: In function 'dvb_device_open': dvbdev.c:105: warning: assignment discards qualifiers from pointer target type This changeset restores backwards-compatability. Signed-off-by: Michael Krufky --- linux/include/linux/videodev2.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'linux/include') diff --git a/linux/include/linux/videodev2.h b/linux/include/linux/videodev2.h index 922980c61..54b8aca85 100644 --- a/linux/include/linux/videodev2.h +++ b/linux/include/linux/videodev2.h @@ -84,7 +84,11 @@ struct video_device int minor; /* device ops + callbacks */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17) const struct file_operations *fops; +#else + struct file_operations *fops; +#endif void (*release)(struct video_device *vfd); #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) -- cgit v1.2.3 From 7c0ef076eb4257ba9803b2312a5e734101900d4b Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Wed, 5 Apr 2006 16:36:51 -0300 Subject: Remove DMX_GET_EVENT and associated data structures From: Andreas Oberritter The ioctl DMX_GET_EVENT has never been implemented. I guess no software is using it because of its lack of implementation. Future software won't use it, too, because this API doesn't make much sense the way it is: Frontend events have their own different API. Scrambling events can't be generated in a useful way by the hardware I know of. Signed-off-by: Andreas Oberritter Signed-off-by: Mauro Carvalho Chehab --- linux/include/linux/dvb/dmx.h | 26 -------------------------- 1 file changed, 26 deletions(-) (limited to 'linux/include') diff --git a/linux/include/linux/dvb/dmx.h b/linux/include/linux/dvb/dmx.h index 2787b8a22..c6a2353c4 100644 --- a/linux/include/linux/dvb/dmx.h +++ b/linux/include/linux/dvb/dmx.h @@ -88,20 +88,6 @@ typedef enum #define DMX_PES_PCR DMX_PES_PCR0 -typedef enum -{ - DMX_SCRAMBLING_EV, - DMX_FRONTEND_EV -} dmx_event_t; - - -typedef enum -{ - DMX_SCRAMBLING_OFF, - DMX_SCRAMBLING_ON -} dmx_scrambling_status_t; - - typedef struct dmx_filter { __u8 filter[DMX_FILTER_SIZE]; @@ -132,17 +118,6 @@ struct dmx_pes_filter_params __u32 flags; }; - -struct dmx_event -{ - dmx_event_t event; - time_t timeStamp; - union - { - dmx_scrambling_status_t scrambling; - } u; -}; - typedef struct dmx_caps { __u32 caps; int num_decoders; @@ -171,7 +146,6 @@ struct dmx_stc { #define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params) #define DMX_SET_PES_FILTER _IOW('o', 44, struct dmx_pes_filter_params) #define DMX_SET_BUFFER_SIZE _IO('o', 45) -#define DMX_GET_EVENT _IOR('o', 46, struct dmx_event) #define DMX_GET_PES_PIDS _IOR('o', 47, __u16[5]) #define DMX_GET_CAPS _IOR('o', 48, dmx_caps_t) #define DMX_SET_SOURCE _IOW('o', 49, dmx_source_t) -- cgit v1.2.3 From c3bf1b32148a59bc0a8e58c126d642236c7febc1 Mon Sep 17 00:00:00 2001 From: Andrew de Quincey Date: Mon, 10 Apr 2006 09:27:37 -0300 Subject: Add sysfs device links to dvb devices From: Andrew de Quincey Currently in /sys/class/dvb/dvbX.demuxY/ we have: dev uevent With the patch, we have (for a PCI DVB device): dev device -> ../../../devices/pci0000:00/0000:00:1e.0/0000:03:0d.0 uevent So userspace tools can (finally) work out which physical device a DVB adapter refers to. Previously you had to kinda look through dmesg and hope that it hadn't been dumped out of the buffer. This makes debugging a lot easier if the system has been up for a long time! This is done by adding an extra 'struct device *' parameter to dvb_register_adapter(). It will work with any kind of standard linux 'device'. Additionally, if someone has an embedded system which does things differently, they can simply supply 'NULL' and the behaviour will be as before - the link will simply not appear. Signed-off-by: Andrew de Quincey Ack'd-by: Manu Abraham Acked-by: Michael Krufky --- linux/include/media/video-buf-dvb.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'linux/include') diff --git a/linux/include/media/video-buf-dvb.h b/linux/include/media/video-buf-dvb.h index 8dcaad6a1..b581aa73c 100644 --- a/linux/include/media/video-buf-dvb.h +++ b/linux/include/media/video-buf-dvb.h @@ -35,7 +35,8 @@ struct videobuf_dvb { int videobuf_dvb_register(struct videobuf_dvb *dvb, struct module *module, - void *adapter_priv); + void *adapter_priv, + struct device *device); void videobuf_dvb_unregister(struct videobuf_dvb *dvb); /* -- cgit v1.2.3 From 8a12d77dcb14376f2521bfc9ff2244a17c113dd3 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Tue, 11 Apr 2006 17:36:49 -0300 Subject: Since we are not using CVS, $Id makes no sense anymore From: Mauro Carvalho Chehab Signed-off-by: Mauro Carvalho Chehab --- linux/include/media/audiochip.h | 1 - linux/include/media/ir-common.h | 1 - linux/include/media/tuner.h | 1 - linux/include/media/tveeprom.h | 1 - linux/include/media/video-buf-dvb.h | 1 - linux/include/media/video-buf.h | 1 - 6 files changed, 6 deletions(-) (limited to 'linux/include') diff --git a/linux/include/media/audiochip.h b/linux/include/media/audiochip.h index 41db54b17..1fd4a2207 100644 --- a/linux/include/media/audiochip.h +++ b/linux/include/media/audiochip.h @@ -1,5 +1,4 @@ /* - * $Id: audiochip.h,v 1.9 2006/01/01 17:17:39 mchehab Exp $ */ #ifndef AUDIOCHIP_H diff --git a/linux/include/media/ir-common.h b/linux/include/media/ir-common.h index 8a2e4c640..302d5b394 100644 --- a/linux/include/media/ir-common.h +++ b/linux/include/media/ir-common.h @@ -1,5 +1,4 @@ /* - * $Id: ir-common.h,v 1.19 2006/01/18 20:41:55 nsh Exp $ * * some common structs and functions to handle infrared remotes via * input layer ... diff --git a/linux/include/media/tuner.h b/linux/include/media/tuner.h index a5471fa67..515680247 100644 --- a/linux/include/media/tuner.h +++ b/linux/include/media/tuner.h @@ -1,5 +1,4 @@ /* - $Id: tuner.h,v 1.76 2006/01/15 17:04:52 hverkuil Exp $ tuner.h - definition for different tuners Copyright (C) 1997 Markus Schroeder (schroedm@uni-duesseldorf.de) diff --git a/linux/include/media/tveeprom.h b/linux/include/media/tveeprom.h index b9c8f7e14..e9fc1a785 100644 --- a/linux/include/media/tveeprom.h +++ b/linux/include/media/tveeprom.h @@ -1,5 +1,4 @@ /* - * $Id: tveeprom.h,v 1.6 2005/11/26 14:43:46 hverkuil Exp $ */ struct tveeprom { diff --git a/linux/include/media/video-buf-dvb.h b/linux/include/media/video-buf-dvb.h index b581aa73c..92545a0a2 100644 --- a/linux/include/media/video-buf-dvb.h +++ b/linux/include/media/video-buf-dvb.h @@ -1,4 +1,3 @@ -/* $Id: video-buf-dvb.h,v 1.8 2005/09/04 11:45:19 mchehab Exp $ */ #include #include #include diff --git a/linux/include/media/video-buf.h b/linux/include/media/video-buf.h index c6be316ce..7f8f6ca81 100644 --- a/linux/include/media/video-buf.h +++ b/linux/include/media/video-buf.h @@ -1,5 +1,4 @@ /* - * $Id: video-buf.h,v 1.11 2005/10/17 21:18:42 mchehab Exp $ * * generic helper functions for video4linux capture buffers, to handle * memory management and PCI DMA. -- cgit v1.2.3 From 24bda047c0558518cdd4845894af9a62fe0cfe36 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Tue, 11 Apr 2006 17:55:53 -0300 Subject: Merge: from V4L1 tree From: Mauro Carvalho Chehab Signed-off-by: Mauro Carvalho Chehab --- linux/include/linux/videodev2.h | 5 +++ linux/include/media/ovcamchip.h | 91 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 linux/include/media/ovcamchip.h (limited to 'linux/include') diff --git a/linux/include/linux/videodev2.h b/linux/include/linux/videodev2.h index 54b8aca85..5d46a8d2a 100644 --- a/linux/include/linux/videodev2.h +++ b/linux/include/linux/videodev2.h @@ -1245,8 +1245,13 @@ extern char *v4l2_type_names[]; /* Compatibility layer interface -- v4l1-compat module */ typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file, unsigned int cmd, void *arg); + +#ifdef CONFIG_VIDEO_V4L1_COMPAT int v4l_compat_translate_ioctl(struct inode *inode, struct file *file, int cmd, void *arg, v4l2_kioctl driver_ioctl); +#else +#define v4l_compat_translate_ioctl(inode,file,cmd,arg,ioctl) -EINVAL +#endif /* 32 Bits compatibility layer for 64 bits processors */ extern long v4l_compat_ioctl32(struct file *file, unsigned int cmd, diff --git a/linux/include/media/ovcamchip.h b/linux/include/media/ovcamchip.h new file mode 100644 index 000000000..773fb09c6 --- /dev/null +++ b/linux/include/media/ovcamchip.h @@ -0,0 +1,91 @@ +/* OmniVision* camera chip driver API + * + * Copyright (c) 1999-2004 Mark McClelland + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. NO WARRANTY OF ANY KIND is expressed or implied. + * + * * OmniVision is a trademark of OmniVision Technologies, Inc. This driver + * is not sponsored or developed by them. + */ + +#ifndef __LINUX_OVCAMCHIP_H +#define __LINUX_OVCAMCHIP_H + +#include "compat.h" +#include +#include + +/* --------------------------------- */ +/* ENUMERATIONS */ +/* --------------------------------- */ + +/* Controls */ +enum { + OVCAMCHIP_CID_CONT, /* Contrast */ + OVCAMCHIP_CID_BRIGHT, /* Brightness */ + OVCAMCHIP_CID_SAT, /* Saturation */ + OVCAMCHIP_CID_HUE, /* Hue */ + OVCAMCHIP_CID_EXP, /* Exposure */ + OVCAMCHIP_CID_FREQ, /* Light frequency */ + OVCAMCHIP_CID_BANDFILT, /* Banding filter */ + OVCAMCHIP_CID_AUTOBRIGHT, /* Auto brightness */ + OVCAMCHIP_CID_AUTOEXP, /* Auto exposure */ + OVCAMCHIP_CID_BACKLIGHT, /* Back light compensation */ + OVCAMCHIP_CID_MIRROR, /* Mirror horizontally */ +}; + +/* Chip types */ +#define NUM_CC_TYPES 9 +enum { + CC_UNKNOWN, + CC_OV76BE, + CC_OV7610, + CC_OV7620, + CC_OV7620AE, + CC_OV6620, + CC_OV6630, + CC_OV6630AE, + CC_OV6630AF, +}; + +/* --------------------------------- */ +/* I2C ADDRESSES */ +/* --------------------------------- */ + +#define OV7xx0_SID (0x42 >> 1) +#define OV6xx0_SID (0xC0 >> 1) + +/* --------------------------------- */ +/* API */ +/* --------------------------------- */ + +struct ovcamchip_control { + __u32 id; + __s32 value; +}; + +struct ovcamchip_window { + int x; + int y; + int width; + int height; + int format; + int quarter; /* Scale width and height down 2x */ + + /* This stuff will be removed eventually */ + int clockdiv; /* Clock divisor setting */ +}; + +/* Commands */ +#define OVCAMCHIP_CMD_Q_SUBTYPE _IOR (0x88, 0x00, int) +#define OVCAMCHIP_CMD_INITIALIZE _IOW (0x88, 0x01, int) +/* You must call OVCAMCHIP_CMD_INITIALIZE before any of commands below! */ +#define OVCAMCHIP_CMD_S_CTRL _IOW (0x88, 0x02, struct ovcamchip_control) +#define OVCAMCHIP_CMD_G_CTRL _IOWR (0x88, 0x03, struct ovcamchip_control) +#define OVCAMCHIP_CMD_S_MODE _IOW (0x88, 0x04, struct ovcamchip_window) +#define OVCAMCHIP_MAX_CMD _IO (0x88, 0x3f) + +#endif -- cgit v1.2.3 From fb70cc5ac6a14c86a9573bbb7ec6b95d32e287bb Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Wed, 19 Apr 2006 23:50:35 +0200 Subject: Add support for Samsung TCPG 6121P30A PAL tuner. From: Hans Verkuil Signed-off-by: Hans Verkuil --- linux/include/media/tuner.h | 1 + 1 file changed, 1 insertion(+) (limited to 'linux/include') diff --git a/linux/include/media/tuner.h b/linux/include/media/tuner.h index 515680247..adf4a3494 100644 --- a/linux/include/media/tuner.h +++ b/linux/include/media/tuner.h @@ -119,6 +119,7 @@ #define TUNER_XCEIVE_XC3028 71 #define TUNER_THOMSON_FE6600 72 /* DViCO FusionHDTV DVB-T Hybrid */ +#define TUNER_SAMSUNG_TCPG_6121P30A 73 /* Hauppauge PVR-500 PAL */ /* tv card specific */ #define TDA9887_PRESENT (1<<0) -- cgit v1.2.3 From 89ea8b07bd06b642101d489dbe88cbc18d707a17 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Sat, 22 Apr 2006 15:22:46 +0200 Subject: Add support for the cx25836/7 video decoder. From: Hans Verkuil Signed-off-by: Scott Alfter Signed-off-by: Hans Verkuil --- linux/include/media/v4l2-common.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'linux/include') diff --git a/linux/include/media/v4l2-common.h b/linux/include/media/v4l2-common.h index 6ffa8eabb..31223f4eb 100644 --- a/linux/include/media/v4l2-common.h +++ b/linux/include/media/v4l2-common.h @@ -118,6 +118,8 @@ enum v4l2_chip_ident { V4L2_IDENT_SAA7129 = 159, /* module cx25840: reserved range 200-249 */ + V4L2_IDENT_CX25836 = 236, + V4L2_IDENT_CX25837 = 237, V4L2_IDENT_CX25840 = 240, V4L2_IDENT_CX25841 = 241, V4L2_IDENT_CX25842 = 242, -- cgit v1.2.3 From 795652e2cf756c5cfa9b4cecb3f066b8ea01eb08 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Mon, 24 Apr 2006 11:26:16 -0300 Subject: Added missing pwc files from previous commit From: Mauro Carvalho Chehab Signed-off-by: Mauro Carvalho Chehab --- linux/include/media/pwc-ioctl.h | 329 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 329 insertions(+) create mode 100644 linux/include/media/pwc-ioctl.h (limited to 'linux/include') diff --git a/linux/include/media/pwc-ioctl.h b/linux/include/media/pwc-ioctl.h new file mode 100644 index 000000000..6e32ef4e2 --- /dev/null +++ b/linux/include/media/pwc-ioctl.h @@ -0,0 +1,329 @@ +#ifndef PWC_IOCTL_H +#define PWC_IOCTL_H + +/* (C) 2001-2004 Nemosoft Unv. + (C) 2004-2006 Luc Saillard (luc@saillard.org) + + NOTE: this version of pwc is an unofficial (modified) release of pwc & pcwx + driver and thus may have bugs that are not present in the original version. + Please send bug reports and support requests to . + The decompression routines have been implemented by reverse-engineering the + Nemosoft binary pwcx module. Caveat emptor. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +/* This is pwc-ioctl.h belonging to PWC 10.0.10 + It contains structures and defines to communicate from user space + directly to the driver. + */ + +/* + Changes + 2001/08/03 Alvarado Added ioctl constants to access methods for + changing white balance and red/blue gains + 2002/12/15 G. H. Fernandez-Toribio VIDIOCGREALSIZE + 2003/12/13 Nemosft Unv. Some modifications to make interfacing to + PWCX easier + 2006/01/01 Luc Saillard Add raw format definition + */ + +/* These are private ioctl() commands, specific for the Philips webcams. + They contain functions not found in other webcams, and settings not + specified in the Video4Linux API. + + The #define names are built up like follows: + VIDIOC VIDeo IOCtl prefix + PWC Philps WebCam + G optional: Get + S optional: Set + ... the function + */ + +#include +#include + +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 10) +/* Compatibility for older kernel */ +typedef __u16 __le16; +#endif + + /* Enumeration of image sizes */ +#define PSZ_SQCIF 0x00 +#define PSZ_QSIF 0x01 +#define PSZ_QCIF 0x02 +#define PSZ_SIF 0x03 +#define PSZ_CIF 0x04 +#define PSZ_VGA 0x05 +#define PSZ_MAX 6 + + +/* The frame rate is encoded in the video_window.flags parameter using + the upper 16 bits, since some flags are defined nowadays. The following + defines provide a mask and shift to filter out this value. + This value can also be passing using the private flag when using v4l2 and + VIDIOC_S_FMT ioctl. + + In 'Snapshot' mode the camera freezes its automatic exposure and colour + balance controls. + */ +#define PWC_FPS_SHIFT 16 +#define PWC_FPS_MASK 0x00FF0000 +#define PWC_FPS_FRMASK 0x003F0000 +#define PWC_FPS_SNAPSHOT 0x00400000 +#define PWC_QLT_MASK 0x03000000 +#define PWC_QLT_SHIFT 24 + + +/* structure for transferring x & y coordinates */ +struct pwc_coord +{ + int x, y; /* guess what */ + int size; /* size, or offset */ +}; + + +/* Used with VIDIOCPWCPROBE */ +struct pwc_probe +{ + char name[32]; + int type; +}; + +struct pwc_serial +{ + char serial[30]; /* String with serial number. Contains terminating 0 */ +}; + +/* pwc_whitebalance.mode values */ +#define PWC_WB_INDOOR 0 +#define PWC_WB_OUTDOOR 1 +#define PWC_WB_FL 2 +#define PWC_WB_MANUAL 3 +#define PWC_WB_AUTO 4 + +/* Used with VIDIOCPWC[SG]AWB (Auto White Balance). + Set mode to one of the PWC_WB_* values above. + *red and *blue are the respective gains of these colour components inside + the camera; range 0..65535 + When 'mode' == PWC_WB_MANUAL, 'manual_red' and 'manual_blue' are set or read; + otherwise undefined. + 'read_red' and 'read_blue' are read-only. +*/ +struct pwc_whitebalance +{ + int mode; + int manual_red, manual_blue; /* R/W */ + int read_red, read_blue; /* R/O */ +}; + +/* + 'control_speed' and 'control_delay' are used in automatic whitebalance mode, + and tell the camera how fast it should react to changes in lighting, and + with how much delay. Valid values are 0..65535. +*/ +struct pwc_wb_speed +{ + int control_speed; + int control_delay; + +}; + +/* Used with VIDIOCPWC[SG]LED */ +struct pwc_leds +{ + int led_on; /* Led on-time; range = 0..25000 */ + int led_off; /* Led off-time; range = 0..25000 */ +}; + +/* Image size (used with GREALSIZE) */ +struct pwc_imagesize +{ + int width; + int height; +}; + +/* Defines and structures for Motorized Pan & Tilt */ +#define PWC_MPT_PAN 0x01 +#define PWC_MPT_TILT 0x02 +#define PWC_MPT_TIMEOUT 0x04 /* for status */ + +/* Set angles; when absolute != 0, the angle is absolute and the + driver calculates the relative offset for you. This can only + be used with VIDIOCPWCSANGLE; VIDIOCPWCGANGLE always returns + absolute angles. + */ +struct pwc_mpt_angles +{ + int absolute; /* write-only */ + int pan; /* degrees * 100 */ + int tilt; /* degress * 100 */ +}; + +/* Range of angles of the camera, both horizontally and vertically. + */ +struct pwc_mpt_range +{ + int pan_min, pan_max; /* degrees * 100 */ + int tilt_min, tilt_max; +}; + +struct pwc_mpt_status +{ + int status; + int time_pan; + int time_tilt; +}; + + +/* This is used for out-of-kernel decompression. With it, you can get + all the necessary information to initialize and use the decompressor + routines in standalone applications. + */ +struct pwc_video_command +{ + int type; /* camera type (645, 675, 730, etc.) */ + int release; /* release number */ + + int size; /* one of PSZ_* */ + int alternate; + int command_len; /* length of USB video command */ + unsigned char command_buf[13]; /* Actual USB video command */ + int bandlength; /* >0 = compressed */ + int frame_size; /* Size of one (un)compressed frame */ +}; + +/* Flags for PWCX subroutines. Not all modules honour all flags. */ +#define PWCX_FLAG_PLANAR 0x0001 +#define PWCX_FLAG_BAYER 0x0008 + + +/* IOCTL definitions */ + + /* Restore user settings */ +#define VIDIOCPWCRUSER _IO('v', 192) + /* Save user settings */ +#define VIDIOCPWCSUSER _IO('v', 193) + /* Restore factory settings */ +#define VIDIOCPWCFACTORY _IO('v', 194) + + /* You can manipulate the compression factor. A compression preference of 0 + means use uncompressed modes when available; 1 is low compression, 2 is + medium and 3 is high compression preferred. Of course, the higher the + compression, the lower the bandwidth used but more chance of artefacts + in the image. The driver automatically chooses a higher compression when + the preferred mode is not available. + */ + /* Set preferred compression quality (0 = uncompressed, 3 = highest compression) */ +#define VIDIOCPWCSCQUAL _IOW('v', 195, int) + /* Get preferred compression quality */ +#define VIDIOCPWCGCQUAL _IOR('v', 195, int) + + +/* Retrieve serial number of camera */ +#define VIDIOCPWCGSERIAL _IOR('v', 198, struct pwc_serial) + + /* This is a probe function; since so many devices are supported, it + becomes difficult to include all the names in programs that want to + check for the enhanced Philips stuff. So in stead, try this PROBE; + it returns a structure with the original name, and the corresponding + Philips type. + To use, fill the structure with zeroes, call PROBE and if that succeeds, + compare the name with that returned from VIDIOCGCAP; they should be the + same. If so, you can be assured it is a Philips (OEM) cam and the type + is valid. + */ +#define VIDIOCPWCPROBE _IOR('v', 199, struct pwc_probe) + + /* Set AGC (Automatic Gain Control); int < 0 = auto, 0..65535 = fixed */ +#define VIDIOCPWCSAGC _IOW('v', 200, int) + /* Get AGC; int < 0 = auto; >= 0 = fixed, range 0..65535 */ +#define VIDIOCPWCGAGC _IOR('v', 200, int) + /* Set shutter speed; int < 0 = auto; >= 0 = fixed, range 0..65535 */ +#define VIDIOCPWCSSHUTTER _IOW('v', 201, int) + + /* Color compensation (Auto White Balance) */ +#define VIDIOCPWCSAWB _IOW('v', 202, struct pwc_whitebalance) +#define VIDIOCPWCGAWB _IOR('v', 202, struct pwc_whitebalance) + + /* Auto WB speed */ +#define VIDIOCPWCSAWBSPEED _IOW('v', 203, struct pwc_wb_speed) +#define VIDIOCPWCGAWBSPEED _IOR('v', 203, struct pwc_wb_speed) + + /* LEDs on/off/blink; int range 0..65535 */ +#define VIDIOCPWCSLED _IOW('v', 205, struct pwc_leds) +#define VIDIOCPWCGLED _IOR('v', 205, struct pwc_leds) + + /* Contour (sharpness); int < 0 = auto, 0..65536 = fixed */ +#define VIDIOCPWCSCONTOUR _IOW('v', 206, int) +#define VIDIOCPWCGCONTOUR _IOR('v', 206, int) + + /* Backlight compensation; 0 = off, otherwise on */ +#define VIDIOCPWCSBACKLIGHT _IOW('v', 207, int) +#define VIDIOCPWCGBACKLIGHT _IOR('v', 207, int) + + /* Flickerless mode; = 0 off, otherwise on */ +#define VIDIOCPWCSFLICKER _IOW('v', 208, int) +#define VIDIOCPWCGFLICKER _IOR('v', 208, int) + + /* Dynamic noise reduction; 0 off, 3 = high noise reduction */ +#define VIDIOCPWCSDYNNOISE _IOW('v', 209, int) +#define VIDIOCPWCGDYNNOISE _IOR('v', 209, int) + + /* Real image size as used by the camera; tells you whether or not there's a gray border around the image */ +#define VIDIOCPWCGREALSIZE _IOR('v', 210, struct pwc_imagesize) + + /* Motorized pan & tilt functions */ +#define VIDIOCPWCMPTRESET _IOW('v', 211, int) +#define VIDIOCPWCMPTGRANGE _IOR('v', 211, struct pwc_mpt_range) +#define VIDIOCPWCMPTSANGLE _IOW('v', 212, struct pwc_mpt_angles) +#define VIDIOCPWCMPTGANGLE _IOR('v', 212, struct pwc_mpt_angles) +#define VIDIOCPWCMPTSTATUS _IOR('v', 213, struct pwc_mpt_status) + + /* Get the USB set-video command; needed for initializing libpwcx */ +#define VIDIOCPWCGVIDCMD _IOR('v', 215, struct pwc_video_command) +struct pwc_table_init_buffer { + int len; + char *buffer; + +}; +#define VIDIOCPWCGVIDTABLE _IOR('v', 216, struct pwc_table_init_buffer) + +/* + * This is private command used when communicating with v4l2. + * In the future all private ioctl will be remove/replace to + * use interface offer by v4l2. + */ + +#define V4L2_CID_PRIVATE_SAVE_USER (V4L2_CID_PRIVATE_BASE + 0) +#define V4L2_CID_PRIVATE_RESTORE_USER (V4L2_CID_PRIVATE_BASE + 1) +#define V4L2_CID_PRIVATE_RESTORE_FACTORY (V4L2_CID_PRIVATE_BASE + 2) +#define V4L2_CID_PRIVATE_COLOUR_MODE (V4L2_CID_PRIVATE_BASE + 3) +#define V4L2_CID_PRIVATE_AUTOCONTOUR (V4L2_CID_PRIVATE_BASE + 4) +#define V4L2_CID_PRIVATE_CONTOUR (V4L2_CID_PRIVATE_BASE + 5) +#define V4L2_CID_PRIVATE_BACKLIGHT (V4L2_CID_PRIVATE_BASE + 6) +#define V4L2_CID_PRIVATE_FLICKERLESS (V4L2_CID_PRIVATE_BASE + 7) +#define V4L2_CID_PRIVATE_NOISE_REDUCTION (V4L2_CID_PRIVATE_BASE + 8) + +struct pwc_raw_frame { + __le16 type; /* type of the webcam */ + __le16 vbandlength; /* Size of 4lines compressed (used by the decompressor) */ + __u8 cmd[4]; /* the four byte of the command (in case of nala, + only the first 3 bytes is filled) */ + __u8 rawframe[0]; /* frame_size = H/4*vbandlength */ +} __attribute__ ((packed)); + + +#endif -- cgit v1.2.3 From e87f301495ed4c2fc6b9d7efc7594f8e4abb5708 Mon Sep 17 00:00:00 2001 From: Michael Krufky Date: Thu, 27 Apr 2006 00:29:17 -0400 Subject: v4l: rename TUNER_LG_TDVS_H062F to TUNER_LG_TDVS_H06XF From: Michael Krufky Signed-off-by: Michael Krufky --- linux/include/media/tuner.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'linux/include') diff --git a/linux/include/media/tuner.h b/linux/include/media/tuner.h index adf4a3494..4548ede84 100644 --- a/linux/include/media/tuner.h +++ b/linux/include/media/tuner.h @@ -108,7 +108,7 @@ #define TUNER_TEA5767 62 /* Only FM Radio Tuner */ #define TUNER_PHILIPS_FMD1216ME_MK3 63 -#define TUNER_LG_TDVS_H062F 64 /* DViCO FusionHDTV 5 */ +#define TUNER_LG_TDVS_H06XF 64 /* TDVS H061F, H062F, H064F */ #define TUNER_YMEC_TVF66T5_B_DFF 65 /* Acorp Y878F */ #define TUNER_LG_TALN 66 #define TUNER_PHILIPS_TD1316 67 -- cgit v1.2.3 From 13a1f108bfa987434a7b60a33837b47dea5f50db Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Thu, 27 Apr 2006 10:17:00 -0300 Subject: AverMedia 6 Eyes AVS6EYES support From: Martin Samuelsson Add support for the AverMedia 6 Eyes MJPEG card. - Updated drivers/media/video/Kconfig with AVS6EYES options. - Added CONFIG_VIDEO_ZORAN_AVS6EYES to drivers/media/video/Makefile. - Added I2C_DRIVERID_BT866 and I2C_DRIVERID_KS0127 to include/linux/i2c-id.h - Added drivers/media/video/ks0127.c, imported and modified from the Marvel project. - Added drivers/media/video/ks0127.h, imported and modified from the Marvel project. - Added drivers/media/video/bt866.c, ported from a 2.4 version by Christer Weinigel. - Added AVS6EYES to drivers/media/video/zoran_card.c - Added input_mux to all cards in drivers/media/video/zoran_card.c - Added input mux module parameter to drivers/media/video/zoran_card.c - Added AVS6EYES to card_type in drivers/media/video/zoran.h - Added input_mux to card_info in drivers/media/video/zoran.h - Upped BUZ_MAX_INPUT in drivers/media/video/zoran.h from 8 to 16, as the AVS6EYES has 10. - Updated Documentation/video4linux/Zoran with information about AVS6EYES. Signed-off-by: Martin Samuelsson Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Mauro Carvalho Chehab --- linux/include/linux/i2c-id.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'linux/include') diff --git a/linux/include/linux/i2c-id.h b/linux/include/linux/i2c-id.h index c8b81f419..748bbf7c3 100644 --- a/linux/include/linux/i2c-id.h +++ b/linux/include/linux/i2c-id.h @@ -112,6 +112,8 @@ #define I2C_DRIVERID_X1205 82 /* Xicor/Intersil X1205 RTC */ #define I2C_DRIVERID_PCF8563 83 /* Philips PCF8563 RTC */ #define I2C_DRIVERID_RS5C372 84 /* Ricoh RS5C372 RTC */ +#define I2C_DRIVERID_BT866 85 /* Conexant bt866 video encoder */ +#define I2C_DRIVERID_KS0127 86 /* Samsung ks0127 video decoder */ #define I2C_DRIVERID_I2CDEV 900 #define I2C_DRIVERID_ARP 902 /* SMBus ARP Client */ -- cgit v1.2.3 From 1aadc904874b153386bc286fba17fb0f73a6e355 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Thu, 27 Apr 2006 10:17:46 -0300 Subject: Git dvb Kconfig fix 2 From: Andrew Morton A trainwreck. Signed-off-by: Andrew Morton Signed-off-by: Mauro Carvalho Chehab --- linux/include/linux/videodev2.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'linux/include') diff --git a/linux/include/linux/videodev2.h b/linux/include/linux/videodev2.h index 5d46a8d2a..6e769cdb0 100644 --- a/linux/include/linux/videodev2.h +++ b/linux/include/linux/videodev2.h @@ -1246,7 +1246,8 @@ extern char *v4l2_type_names[]; typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file, unsigned int cmd, void *arg); -#ifdef CONFIG_VIDEO_V4L1_COMPAT +#if defined(CONFIG_VIDEO_V4L1_COMPAT) || \ + defined(CONFIG_VIDEO_V4L1_COMPAT_MODULE) int v4l_compat_translate_ioctl(struct inode *inode, struct file *file, int cmd, void *arg, v4l2_kioctl driver_ioctl); #else -- cgit v1.2.3 From 53fd6cc3b7515ecc4f2e59732063c4ed7d730fd5 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Tue, 2 May 2006 11:18:17 -0300 Subject: Reverted from previous patch since it is not required From: Mauro Carvalho Chehab kernel-sync: Signed-off-by: Mauro Carvalho Chehab --- linux/include/linux/videodev2.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'linux/include') diff --git a/linux/include/linux/videodev2.h b/linux/include/linux/videodev2.h index 6e769cdb0..5d46a8d2a 100644 --- a/linux/include/linux/videodev2.h +++ b/linux/include/linux/videodev2.h @@ -1246,8 +1246,7 @@ extern char *v4l2_type_names[]; typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file, unsigned int cmd, void *arg); -#if defined(CONFIG_VIDEO_V4L1_COMPAT) || \ - defined(CONFIG_VIDEO_V4L1_COMPAT_MODULE) +#ifdef CONFIG_VIDEO_V4L1_COMPAT int v4l_compat_translate_ioctl(struct inode *inode, struct file *file, int cmd, void *arg, v4l2_kioctl driver_ioctl); #else -- cgit v1.2.3 From e7db9b9952eddc8ac52a8a902ad1af7b048c8e17 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Tue, 2 May 2006 15:44:02 -0300 Subject: Removed obsoleted CVS files From: Mauro Carvalho Chehab Those files were used on cvs tree. they make no sense for hg. kenel-sync: Signed-off-by: Mauro Carvalho Chehab --- linux/include/linux/.cvsignore | 1 - 1 file changed, 1 deletion(-) delete mode 100644 linux/include/linux/.cvsignore (limited to 'linux/include') diff --git a/linux/include/linux/.cvsignore b/linux/include/linux/.cvsignore deleted file mode 100644 index c095fc3ef..000000000 --- a/linux/include/linux/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -dvb \ No newline at end of file -- cgit v1.2.3 From fb92440f40e711054ab1c7cf588f5e1c4991a57d Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Tue, 2 May 2006 16:00:44 -0300 Subject: i2c-compat.h were duplicated at linux/include. removing. From: Mauro Carvalho Chehab This file is meant only to make compatibility with kernel 2.4. Shouldn't stay at linux/*. Signed-off-by: Mauro Carvalho Chehab --- linux/include/media/i2c-compat.h | 57 ---------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 linux/include/media/i2c-compat.h (limited to 'linux/include') diff --git a/linux/include/media/i2c-compat.h b/linux/include/media/i2c-compat.h deleted file mode 100644 index 39fa183fa..000000000 --- a/linux/include/media/i2c-compat.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * $Id: i2c-compat.h,v 1.3 2005/10/16 12:13:58 mchehab Exp $ - * - * some i2c layer compatibility stuff -- to avoid cluttering up the - * i2c modules with tons of #ifdefs - */ - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,66) - -static inline void *i2c_get_adapdata(struct i2c_adapter *dev) -{ - return dev->data; -} - -static inline void i2c_set_adapdata(struct i2c_adapter *dev, void *data) -{ - dev->data = data; -} - -static inline void *i2c_get_clientdata(struct i2c_client *dev) -{ - return dev->data; -} - -static inline void i2c_set_clientdata(struct i2c_client *dev, void *data) -{ - dev->data = data; -} - -#define I2C_DEVNAME(str) .name = str - -static inline char *i2c_clientname(struct i2c_client *c) -{ - return c->name; -} - -static inline void i2c_clients_command(struct i2c_adapter *adap, - unsigned int cmd, void *arg) -{ - int i; - - for (i = 0; i < I2C_CLIENT_MAX; i++) { - if (NULL == adap->clients[i]) - continue; - if (NULL == adap->clients[i]->driver->command) - continue; - adap->clients[i]->driver->command(adap->clients[i],cmd,arg); - } -} - -#endif - -/* - * Local variables: - * c-basic-offset: 8 - * End: - */ -- cgit v1.2.3 From b4d9770fbc462b4f10ebbf8950e94654309352c2 Mon Sep 17 00:00:00 2001 From: Manu Abraham Date: Fri, 5 May 2006 22:24:46 +0400 Subject: Add frontend support for new Delivery systems and modulations -DVB-S2, 8PSK and higher order modulations, some advanced DVB-S2 features require additional support at the demux level -DVB-T, Add support for HP/LP stream selection -DVB-H, Add basic support to the frontend API -DSS, basic frontend API support only, will require additional support at the demux level Ack'd by: Marcel Siegert Acked-by: Andrew de Quincey Ack'd by: Patrick Boettcher Signed-off-by: Manu Abraham --- linux/include/linux/dvb/frontend.h | 530 ++++++++++++++++++++++++++++++++++++- 1 file changed, 529 insertions(+), 1 deletion(-) (limited to 'linux/include') diff --git a/linux/include/linux/dvb/frontend.h b/linux/include/linux/dvb/frontend.h index c8cbd90ba..fe3b69605 100644 --- a/linux/include/linux/dvb/frontend.h +++ b/linux/include/linux/dvb/frontend.h @@ -7,6 +7,8 @@ * Andre Draszik * for convergence integrated media GmbH * + * Copyright (C) 2006 Manu Abraham + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 @@ -249,7 +251,9 @@ struct dvb_frontend_event { */ #define FE_TUNE_MODE_ONESHOT 0x01 - +/** + * FE_GET_INFO, is now a legacy IOCTL as well + */ #define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info) #define FE_DISEQC_RESET_OVERLOAD _IO('o', 62) @@ -267,6 +271,9 @@ struct dvb_frontend_event { #define FE_READ_SNR _IOR('o', 72, __u16) #define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32) +/** + * Legacy IOCTL's + */ #define FE_SET_FRONTEND _IOW('o', 76, struct dvb_frontend_parameters) #define FE_GET_FRONTEND _IOR('o', 77, struct dvb_frontend_parameters) #define FE_SET_FRONTEND_TUNE_MODE _IO('o', 81) /* unsigned int */ @@ -274,4 +281,525 @@ struct dvb_frontend_event { #define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */ +/** + * New operations for new and multiple delivery systems. + * + * References: + * DVB-S: ISO 13818-1/ITU H.222, EN 300 468 + * DVB-S2: EN 300 468, EN 301 210, TR 102 376 + * DVB-C: ISO 13818-1/ITU H.222, EN 300 468, EN 300 429 + * DVB-T: ISO 13818-1/ITU H.222, EN 300 468, EN 300 744 + * DVB-H: EN 300 468, EN 302 304 + */ + +/** + * Supported Delivery systems, some devices + * are capable of supporting multiple delivery systems. + * + * FE_DELSYS_IGNORE, causes the delivery system + * not to be queried. + * + * FE_DELSYS_AUTO, Some devices/drivers, might in + * future be capable of detectinng the delivery system. + */ +enum fe_delsys { + FE_DELSYS_IGNORE = (0 << 0), + FE_DELSYS_DVBS = (1 << 0), + FE_DELSYS_DVBS2 = (1 << 1), + FE_DELSYS_DSS = (1 << 2), + FE_DELSYS_DVBC = (1 << 3), + FE_DELSYS_DVBT = (1 << 4), + FE_DELSYS_DVBH = (1 << 5), + FE_DELSYS_ATSC = (1 << 6), + FE_DELSYS_AUTO = (1 << 31) +}; + +/** + * Supported Transport types, some delivery systems + * support multiple transports too. + * + * FE_MATYPE_IGNORE, causes the transport type not + * to be queried. + * + * FE_MATYPE_AUTO, Some devices/drivers, might + * support auto detecting the transport type, depending + * on some other settings and or hardware features. + * + * NOTE: This is specified by the DVB-S2 specifications + * This change of transport type might require an additional + * change at the PCI bridge level, for some implementations. + */ +enum fe_matype { + FE_MATYPE_IGNORE = (0 << 0), + FE_MATYPE_TRANSPORT = (1 << 0), + FE_MATYPE_GENERIC_PACKET = (1 << 1), + FE_MATYPE_GENERIC_CONTINUOUS = (1 << 2), + FE_MATYPE_RESERVED = (1 << 3), + FE_MATYPE_AUTO = (1 << 31) +}; + +/** + * Supported Stream Priorities + * + * Some delivery systems do have streams having + * different priorities. ie, High priority/Low priority. + * + * NOTE: The default should be the High priority stream. + */ +enum fe_stream { + FE_STREAM_HP = (1 << 0), + FE_STREAM_LP = (1 << 1) +}; + +/** + * Supported Modulations. + * Some devices support multiple modulation types + * + * FE_MOD_IGNORE, causes the modulation type not + * to be queried. + * + * FE_MOD_AUTO, Some devices/drivers, might support + * auto detecting the modulation type, depending on + * some other settings and or hardware features. + */ +enum fe_modulations { + FE_MOD_IGNORE = (0 << 0), + FE_MOD_NONE = (1 << 0), + FE_MOD_BPSK = (1 << 1), + FE_MOD_QPSK = (1 << 2), + FE_MOD_OQPSK = (1 << 3), + FE_MOD_8PSK = (1 << 4), + FE_MOD_16APSK = (1 << 5), + FE_MOD_32APSK = (1 << 6), + FE_MOD_QAM16 = (1 << 7), + FE_MOD_QAM32 = (1 << 8), + FE_MOD_QAM64 = (1 << 9), + FE_MOD_QAM128 = (1 << 10), + FE_MOD_QAM256 = (1 << 11), + FE_MOD_QAM512 = (1 << 12), + FE_MOD_QAM1024 = (1 << 13), + FE_MOD_QAMAUTO = (1 << 14), + FE_MOD_OFDM = (1 << 15), + FE_MOD_COFDM = (1 << 16), + FE_MOD_VSB8 = (1 << 17), + FE_MOD_VSB16 = (1 << 18), + FE_MOD_RSVD = (1 << 19), + FE_MOD_AUTO = (1 << 31) +}; + +/** + * Supported FEC (Forward Error Correction) Code rates + * + * FE_FECRATE_IGNORE, causes the FECRATE type not + * to be queried. + * + * FE_FECRATE_AUTO, Some devices/drivers, might + * support auto detecting the FEC code rate type, depending + * on some other hardware settings and or hardware features. + */ +enum fe_fecrates { + FE_FECRATE_IGNORE = (0 << 0), + FE_FECRATE_NONE = (1 << 0), + FE_FECRATE_1_4 = (1 << 1), + FE_FECRATE_1_3 = (1 << 2), + FE_FECRATE_2_5 = (1 << 3), + FE_FECRATE_1_2 = (1 << 4), + FE_FECRATE_3_5 = (1 << 5), + FE_FECRATE_2_3 = (1 << 6), + FE_FECRATE_3_4 = (1 << 7), + FE_FECRATE_4_5 = (1 << 8), + FE_FECRATE_5_6 = (1 << 9), + FE_FECRATE_6_7 = (1 << 10), + FE_FECRATE_7_8 = (1 << 11), + FE_FECRATE_8_9 = (1 << 12), + FE_FECRATE_9_10 = (1 << 13), + FE_FECRATE_RSVD = (1 << 14), + FE_FECRATE_AUTO = (1 << 31) +}; + +/** + * Supported MODCOD types + * + * The MODCOD types are specific to the DVB-S2 specification + * Some devices directly take the MODCOD values as an input + * or just output the same. + * + * In any case a single frontend will not be able to do + * multiple modulations/code rates at any given point of time. + */ +enum fe_modcod { + FE_MODCOD_DUMMY_PLFRAME = 0, + FE_MODCOD_QPSK_1_4, + FE_MODCOD_QPSK_1_3, + FE_MODCOD_QPSK_2_5, + FE_MODCOD_QPSK_1_2, + FE_MODCOD_QPSK_3_5, + FE_MODCOD_QPSK_2_3, + FE_MODCOD_QPSK_3_4, + FE_MODCOD_QPSK_4_5, + FE_MODCOD_QPSK_5_6, + FE_MODCOD_QPSK_8_9, + FE_MODCOD_QPSK_9_10, + FE_MODCOD_8PSK_3_5, + FE_MODCOD_8PSK_2_3, + FE_MODCOD_8PSK_3_4, + FE_MODCOD_8PSK_5_6, + FE_MODCOD_8PSK_8_9, + FE_MODCOD_8PSK_9_10, + FE_MODCOD_16APSK_2_3, + FE_MODCOD_16APSK_3_4, + FE_MODCOD_16APSK_4_5, + FE_MODCOD_16APSK_5_6, + FE_MODCOD_16APSK_8_9, + FE_MODCOD_16APSK_9_10, + FE_MODCOD_32APSK_3_4, + FE_MODCOD_32APSK_4_5, + FE_MODCOD_32APSK_5_6, + FE_MODCOD_32APSK_8_9, + FE_MODCOD_32APSK_9_10, + FE_MODCOD_RESERVED_1, + FE_MODCOD_BPSK_1_3, + FE_MODCOD_BPSK_1_4, + FE_MODCOD_RESERVED_2 +}; + +/** + * Supported Bandwidth modes + * + * FE_BANDWIDTH_IGNORE, causes the bandwidth not + * to be queried. + * + * FE_BANDWIDTH_AUTO, Some devices/drivers, might + * support auto detecting the Bandwidth, depending + * on some other hardware settings and or hardware features. + */ +enum fe_bandwidths { + FE_BANDWIDTH_IGNORE = (0 << 0), + FE_BANDWIDTH_8_MHZ = (1 << 1), + FE_BANDWIDTH_7_MHZ = (1 << 2), + FE_BANDWIDTH_6_MHZ = (1 << 3), + FE_BANDWIDTH_5_MHZ = (1 << 4), + FE_BANDWIDTH_RESERVED = (1 << 5), + FE_BANDWIDTH_AUTO = (1 << 31) +}; + +/** + * Supported Inversion modes + * + * FE_INVERSION_IGNORE, causes the inversion not + * to be queried. + * + * FE_INVERSION_AUTO, Some devices/drivers, might + * support auto detecting the Inversion, depending + * on some other hardware settings and or hardware features. + * + * NOTE: All current delivery systems need inversion in some + * way or the other, due to hardware implementation specifics. + * and/or others. + */ +enum fe_inversion { + FE_INVERSION_IGNORE = (0 << 0), + FE_INVERSION_OFF = (1 << 0), + FE_INVERSION_ON = (1 << 1), + FE_INVERSION_AUTO = (1 << 31) +}; + +/** + * Supported Transmission modes + * + * FE_TRANSMISSION_MODE_IGNORE, causes the transmission mode + * not to be queried. + * + * FE_TRANSMISSION_MODE_AUTO, Some devices/drivers, might + * support auto detecting the Transmission Mode, depending + * on some other hardware settings and or hardware features. + * + * NOTE: Currently applies to DVB-T and DVB-H only. + */ +enum fe_transmit_modes { + FE_TRANSMISSION_MODE_IGNORE = (0 << 0), + FE_TRANSMISSION_MODE_2K = (1 << 1), + FE_TRANSMISSION_MODE_4K = (1 << 2), + FE_TRANSMISSION_MODE_8K = (1 << 3), + FE_TRANSMISSION_MODE_RESERVED = (1 << 4), + FE_TRANSMISSION_MODE_AUTO = (1 << 31) +}; + +/** + * Supported Guard Intervals + * + * FE_GUARD_INTERVAL_IGNORE, causes the guard interval + * not to be queried. + * + * FE_GUARD_INTERVAL_AUTO, Some devices/drivers, might + * support auto detecting the Transmission Mode, depending + * on some other hardware settings and or hardware features. + * + * NOTE: Currently applies to DVB-T and DVB-H only. + */ +enum fe_guard_intervals { + FE_GUARD_INTERVAL_IGNORE = (0 << 0), + FE_GUARD_INTERVAL_1_32 = (1 << 1), + FE_GUARD_INTERVAL_1_16 = (1 << 2), + FE_GUARD_INTERVAL_1_8 = (1 << 3), + FE_GUARD_INTERVAL_1_4 = (1 << 4), + FE_GUARD_INTERVAL_AUTO = (1 << 31) +}; + +/** + * Supported Hierarchial Modulations + * + * FE_HIERARCHY_IGNORE, causes the hierarchy + * not to be queried. + * + * FE_HIERARCHY_AUTO, Some devices/drivers, might + * support auto detecting the hierarchial modulation, depending + * on some other hardware settings and or hardware features. + * + * NOTE: Currently applies to DVB-T and DVB-H only. + */ +enum fe_hierarchy_info { + FE_HIERARCHY_IGNORE = (0 << 0), + FE_HIERARCHY_OFF = (1 << 1), + FE_HIERARCHY_ON = (1 << 2), + FE_HIERARCHY_AUTO = (1 << 31) +}; + +/** + * Supported Rolloff Rates + * + * FE_ROLLOFF_IGNORE, causes the hierarchy + * not to be queried. + * + * FE_ROLLOFF_AUTO, Some devices/drivers, might + * support auto detecting the hierarchial modulation, depending + * on some other hardware settings and or hardware features. + * + * NOTE: Currently applies to DVB-T and DVB-H only, + * not applicable to DVB-S2, DVB-S2 uses fe_matype + */ +enum fe_rolloff { + FE_ROLLOFF_IGNORE = (0 << 0), + FE_ROLLOFF_1 = (1 << 1), + FE_ROLLOFF_2 = (1 << 2), + FE_ROLLOFF_4 = (1 << 3), + FE_ROLLOFF_AUTO = (1 << 31) +}; + +/** + * Supported Interleaver types + * + * FE_INTERLEAVER_IGNORE, causes the hierarchy + * not to be queried. + * + * FE_INTERLEAVER_AUTO, Some devices/drivers, might + * support auto detecting the hierarchial modulation, depending + * on some other hardware settings and or hardware features. + * + * NOTE: Currently applies only to DVB-H. + */ +enum fe_interleaver { + FE_INTERLEAVER_IGNORE = (0 << 0), + FE_INTERLEAVER_NATIVE = (1 << 1), + FE_INTERLEAVER_INDEPTH = (1 << 2), + FE_INTERLEAVER_AUTO = (1 << 31) +}; + + +/** + * Supported MPE-FEC modes + * + * FE_MPEFEC_IGNORE, causes the mpefec indicator + * not to be queried. + * + * NOTE: MPE-FEC is an indicator according to EN 300 468 + * Currently applies only to DVB-H. + */ +enum fe_mpefec { + FE_MPEFEC_IGNORE = (0 << 0), + FE_MPEFEC_ON = (1 << 1), + FE_MPEFEC_OFF = (1 << 2) +}; + +/** + * Supported Timeslicing mode + * + * FE_TIMESLICING_IGNORE, causes the timeslicing indicator + * not to be queried. + * + * NOTE: Timeslicing is an indicator according to EN 300 468 + * Currently applies only to DVB-H. + */ +enum fe_timeslicing { + FE_TIMESLICING_IGNORE = (0 << 0), + FE_TIMESLICING_ON = (1 << 1), + FE_TIMESLICING_OFF = (1 << 2) +}; + +/** + * DVB-S parameters + */ +struct dvbs_params { + __u32 symbol_rate; + + enum fe_modulations modulation; + enum fe_fecrates fecrate; +}; + +/** + * DVB-S2 parameters + */ +struct dvbs2_params { + __u32 symbol_rate; + + enum fe_modulations modulation; + enum fe_fecrates fecrate; + enum fe_stream streamtype; + enum fe_fecrates coderate_HP; + enum fe_fecrates coderate_LP; +}; + +/** + * DSS parameters + */ +struct dss_params { + __u32 symbol_rate; + + enum fe_modulations modulation; + enum fe_fecrates fecrate; +}; + +/** + * DVB-C parameters + */ +struct dvbc_params { + __u32 symbol_rate; + + enum fe_modulations modulation; + enum fe_fecrates fecrate; +}; + +/** + * DVB-T parameters + */ +struct dvbt_params { + enum fe_modulations constellation; + enum fe_bandwidths bandwidth; + enum fe_fecrates code_rate_HP; + enum fe_fecrates code_rate_LP; + enum fe_transmit_modes transmission_mode; + enum fe_guard_intervals guard_interval; + enum fe_hierarchy_info hierarchy; + enum fe_rolloff alpha; + enum fe_stream stream; +}; + +/** + * DVB-H parameters + */ +struct dvbh_params { + enum fe_modulations constellation; + enum fe_fecrates code_rate_HP; + enum fe_fecrates code_rate_LP; + enum fe_transmit_modes transmission_mode; + enum fe_guard_intervals guard_interval; + enum fe_hierarchy_info hierarchy; + enum fe_rolloff alpha; + enum fe_interleaver interleaver; + enum fe_mpefec mpefec; + enum fe_timeslicing timeslicing; + enum fe_stream stream; + __u32 bandwidth; +}; + +/** + * ATSC parameters + */ +struct atsc_params { + enum fe_modulations modulation; +}; + +/** + * Padding to handle future binary compatibility issues. + * + * NOTE: The padding is a dummy parameter ! + */ +struct pad_params { + __u8 pad[512]; +}; + +/** + * Frontend capability information + */ +struct dvb_frontend_cap { + char name[128]; + + __u32 frequency_min; + __u32 frequency_max; + __u32 frequency_stepsize; + __u32 frequency_tolerance; + __u32 symbol_rate_min; + __u32 symbol_rate_max; + __u32 symbol_rate_tolerance; + + enum fe_delsys delivery; + enum fe_inversion inversion; + + union { + struct dvbs_params dvbs; + struct dvbs2_params dvbs2; + struct dss_params dss; + struct dvbc_params dvbc; + struct dvbt_params dvbt; + struct dvbh_params dvbh; + struct atsc_params atsc; + struct pad_params pad; + } delsys; +}; + +/** + * We have the NEW IOCTL's defined now. This IOCTL + * is supposed to handle all the new delivery systems + * FE_GET_CAPS, gets all the capabilities in one go. + * + * For the GET IOCTL's ie FE_GET_PARAMS and FE_GET_CAPS + * some of the parameters maybe selectively queried by + * setting that relevant parameter to IGNORE. + */ +#define FE_GET_CAPS _IOR('o', 84, struct dvb_frontend_cap) + +/** + * Frontend parameters + */ +struct dvb_frontend_params { + __u32 frequency; + + enum fe_delsys delivery; + enum fe_inversion inversion; + + union { + struct dvbs_params dvbs; + struct dvbs2_params dvbs2; + struct dss_params dss; + struct dvbc_params dvbc; + struct dvbt_params dvbt; + struct dvbh_params dvbh; + struct atsc_params atsc; + struct pad_params pad; + } delsys; +}; + +/** + * We have the NEW IOCTL's defined now. These IOCTL's + * are supposed to handle all the new delivery systems. + * FE_SET_PARAMS, sets all the parameters in one go. + * FE_GET_PARAMS, gets all the parameters in one go. + * + * For the GET IOCTL's ie FE_GET_PARAMS and FE_GET_CAPS + * some of the parameters maybe selectively queried by + * setting that relevant parameter to IGNORE. + */ +#define FE_SET_PARAMS _IOW('o', 82, struct dvb_frontend_params) +#define FE_GET_PARAMS _IOR('o', 83, struct dvb_frontend_params) + #endif /*_DVBFRONTEND_H_*/ -- cgit v1.2.3 From 9a5a7b6c35191d8c0681eba05fa6b2d0e63c4583 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Sun, 7 May 2006 19:10:00 -0300 Subject: revert manu's multiproto patch by his ask. From: Mauro Carvalho Chehab Signed-off-by: Mauro Carvalho Chehab --- linux/include/linux/dvb/frontend.h | 530 +------------------------------------ 1 file changed, 1 insertion(+), 529 deletions(-) (limited to 'linux/include') diff --git a/linux/include/linux/dvb/frontend.h b/linux/include/linux/dvb/frontend.h index fe3b69605..c8cbd90ba 100644 --- a/linux/include/linux/dvb/frontend.h +++ b/linux/include/linux/dvb/frontend.h @@ -7,8 +7,6 @@ * Andre Draszik * for convergence integrated media GmbH * - * Copyright (C) 2006 Manu Abraham - * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 @@ -251,9 +249,7 @@ struct dvb_frontend_event { */ #define FE_TUNE_MODE_ONESHOT 0x01 -/** - * FE_GET_INFO, is now a legacy IOCTL as well - */ + #define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info) #define FE_DISEQC_RESET_OVERLOAD _IO('o', 62) @@ -271,9 +267,6 @@ struct dvb_frontend_event { #define FE_READ_SNR _IOR('o', 72, __u16) #define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32) -/** - * Legacy IOCTL's - */ #define FE_SET_FRONTEND _IOW('o', 76, struct dvb_frontend_parameters) #define FE_GET_FRONTEND _IOR('o', 77, struct dvb_frontend_parameters) #define FE_SET_FRONTEND_TUNE_MODE _IO('o', 81) /* unsigned int */ @@ -281,525 +274,4 @@ struct dvb_frontend_event { #define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */ -/** - * New operations for new and multiple delivery systems. - * - * References: - * DVB-S: ISO 13818-1/ITU H.222, EN 300 468 - * DVB-S2: EN 300 468, EN 301 210, TR 102 376 - * DVB-C: ISO 13818-1/ITU H.222, EN 300 468, EN 300 429 - * DVB-T: ISO 13818-1/ITU H.222, EN 300 468, EN 300 744 - * DVB-H: EN 300 468, EN 302 304 - */ - -/** - * Supported Delivery systems, some devices - * are capable of supporting multiple delivery systems. - * - * FE_DELSYS_IGNORE, causes the delivery system - * not to be queried. - * - * FE_DELSYS_AUTO, Some devices/drivers, might in - * future be capable of detectinng the delivery system. - */ -enum fe_delsys { - FE_DELSYS_IGNORE = (0 << 0), - FE_DELSYS_DVBS = (1 << 0), - FE_DELSYS_DVBS2 = (1 << 1), - FE_DELSYS_DSS = (1 << 2), - FE_DELSYS_DVBC = (1 << 3), - FE_DELSYS_DVBT = (1 << 4), - FE_DELSYS_DVBH = (1 << 5), - FE_DELSYS_ATSC = (1 << 6), - FE_DELSYS_AUTO = (1 << 31) -}; - -/** - * Supported Transport types, some delivery systems - * support multiple transports too. - * - * FE_MATYPE_IGNORE, causes the transport type not - * to be queried. - * - * FE_MATYPE_AUTO, Some devices/drivers, might - * support auto detecting the transport type, depending - * on some other settings and or hardware features. - * - * NOTE: This is specified by the DVB-S2 specifications - * This change of transport type might require an additional - * change at the PCI bridge level, for some implementations. - */ -enum fe_matype { - FE_MATYPE_IGNORE = (0 << 0), - FE_MATYPE_TRANSPORT = (1 << 0), - FE_MATYPE_GENERIC_PACKET = (1 << 1), - FE_MATYPE_GENERIC_CONTINUOUS = (1 << 2), - FE_MATYPE_RESERVED = (1 << 3), - FE_MATYPE_AUTO = (1 << 31) -}; - -/** - * Supported Stream Priorities - * - * Some delivery systems do have streams having - * different priorities. ie, High priority/Low priority. - * - * NOTE: The default should be the High priority stream. - */ -enum fe_stream { - FE_STREAM_HP = (1 << 0), - FE_STREAM_LP = (1 << 1) -}; - -/** - * Supported Modulations. - * Some devices support multiple modulation types - * - * FE_MOD_IGNORE, causes the modulation type not - * to be queried. - * - * FE_MOD_AUTO, Some devices/drivers, might support - * auto detecting the modulation type, depending on - * some other settings and or hardware features. - */ -enum fe_modulations { - FE_MOD_IGNORE = (0 << 0), - FE_MOD_NONE = (1 << 0), - FE_MOD_BPSK = (1 << 1), - FE_MOD_QPSK = (1 << 2), - FE_MOD_OQPSK = (1 << 3), - FE_MOD_8PSK = (1 << 4), - FE_MOD_16APSK = (1 << 5), - FE_MOD_32APSK = (1 << 6), - FE_MOD_QAM16 = (1 << 7), - FE_MOD_QAM32 = (1 << 8), - FE_MOD_QAM64 = (1 << 9), - FE_MOD_QAM128 = (1 << 10), - FE_MOD_QAM256 = (1 << 11), - FE_MOD_QAM512 = (1 << 12), - FE_MOD_QAM1024 = (1 << 13), - FE_MOD_QAMAUTO = (1 << 14), - FE_MOD_OFDM = (1 << 15), - FE_MOD_COFDM = (1 << 16), - FE_MOD_VSB8 = (1 << 17), - FE_MOD_VSB16 = (1 << 18), - FE_MOD_RSVD = (1 << 19), - FE_MOD_AUTO = (1 << 31) -}; - -/** - * Supported FEC (Forward Error Correction) Code rates - * - * FE_FECRATE_IGNORE, causes the FECRATE type not - * to be queried. - * - * FE_FECRATE_AUTO, Some devices/drivers, might - * support auto detecting the FEC code rate type, depending - * on some other hardware settings and or hardware features. - */ -enum fe_fecrates { - FE_FECRATE_IGNORE = (0 << 0), - FE_FECRATE_NONE = (1 << 0), - FE_FECRATE_1_4 = (1 << 1), - FE_FECRATE_1_3 = (1 << 2), - FE_FECRATE_2_5 = (1 << 3), - FE_FECRATE_1_2 = (1 << 4), - FE_FECRATE_3_5 = (1 << 5), - FE_FECRATE_2_3 = (1 << 6), - FE_FECRATE_3_4 = (1 << 7), - FE_FECRATE_4_5 = (1 << 8), - FE_FECRATE_5_6 = (1 << 9), - FE_FECRATE_6_7 = (1 << 10), - FE_FECRATE_7_8 = (1 << 11), - FE_FECRATE_8_9 = (1 << 12), - FE_FECRATE_9_10 = (1 << 13), - FE_FECRATE_RSVD = (1 << 14), - FE_FECRATE_AUTO = (1 << 31) -}; - -/** - * Supported MODCOD types - * - * The MODCOD types are specific to the DVB-S2 specification - * Some devices directly take the MODCOD values as an input - * or just output the same. - * - * In any case a single frontend will not be able to do - * multiple modulations/code rates at any given point of time. - */ -enum fe_modcod { - FE_MODCOD_DUMMY_PLFRAME = 0, - FE_MODCOD_QPSK_1_4, - FE_MODCOD_QPSK_1_3, - FE_MODCOD_QPSK_2_5, - FE_MODCOD_QPSK_1_2, - FE_MODCOD_QPSK_3_5, - FE_MODCOD_QPSK_2_3, - FE_MODCOD_QPSK_3_4, - FE_MODCOD_QPSK_4_5, - FE_MODCOD_QPSK_5_6, - FE_MODCOD_QPSK_8_9, - FE_MODCOD_QPSK_9_10, - FE_MODCOD_8PSK_3_5, - FE_MODCOD_8PSK_2_3, - FE_MODCOD_8PSK_3_4, - FE_MODCOD_8PSK_5_6, - FE_MODCOD_8PSK_8_9, - FE_MODCOD_8PSK_9_10, - FE_MODCOD_16APSK_2_3, - FE_MODCOD_16APSK_3_4, - FE_MODCOD_16APSK_4_5, - FE_MODCOD_16APSK_5_6, - FE_MODCOD_16APSK_8_9, - FE_MODCOD_16APSK_9_10, - FE_MODCOD_32APSK_3_4, - FE_MODCOD_32APSK_4_5, - FE_MODCOD_32APSK_5_6, - FE_MODCOD_32APSK_8_9, - FE_MODCOD_32APSK_9_10, - FE_MODCOD_RESERVED_1, - FE_MODCOD_BPSK_1_3, - FE_MODCOD_BPSK_1_4, - FE_MODCOD_RESERVED_2 -}; - -/** - * Supported Bandwidth modes - * - * FE_BANDWIDTH_IGNORE, causes the bandwidth not - * to be queried. - * - * FE_BANDWIDTH_AUTO, Some devices/drivers, might - * support auto detecting the Bandwidth, depending - * on some other hardware settings and or hardware features. - */ -enum fe_bandwidths { - FE_BANDWIDTH_IGNORE = (0 << 0), - FE_BANDWIDTH_8_MHZ = (1 << 1), - FE_BANDWIDTH_7_MHZ = (1 << 2), - FE_BANDWIDTH_6_MHZ = (1 << 3), - FE_BANDWIDTH_5_MHZ = (1 << 4), - FE_BANDWIDTH_RESERVED = (1 << 5), - FE_BANDWIDTH_AUTO = (1 << 31) -}; - -/** - * Supported Inversion modes - * - * FE_INVERSION_IGNORE, causes the inversion not - * to be queried. - * - * FE_INVERSION_AUTO, Some devices/drivers, might - * support auto detecting the Inversion, depending - * on some other hardware settings and or hardware features. - * - * NOTE: All current delivery systems need inversion in some - * way or the other, due to hardware implementation specifics. - * and/or others. - */ -enum fe_inversion { - FE_INVERSION_IGNORE = (0 << 0), - FE_INVERSION_OFF = (1 << 0), - FE_INVERSION_ON = (1 << 1), - FE_INVERSION_AUTO = (1 << 31) -}; - -/** - * Supported Transmission modes - * - * FE_TRANSMISSION_MODE_IGNORE, causes the transmission mode - * not to be queried. - * - * FE_TRANSMISSION_MODE_AUTO, Some devices/drivers, might - * support auto detecting the Transmission Mode, depending - * on some other hardware settings and or hardware features. - * - * NOTE: Currently applies to DVB-T and DVB-H only. - */ -enum fe_transmit_modes { - FE_TRANSMISSION_MODE_IGNORE = (0 << 0), - FE_TRANSMISSION_MODE_2K = (1 << 1), - FE_TRANSMISSION_MODE_4K = (1 << 2), - FE_TRANSMISSION_MODE_8K = (1 << 3), - FE_TRANSMISSION_MODE_RESERVED = (1 << 4), - FE_TRANSMISSION_MODE_AUTO = (1 << 31) -}; - -/** - * Supported Guard Intervals - * - * FE_GUARD_INTERVAL_IGNORE, causes the guard interval - * not to be queried. - * - * FE_GUARD_INTERVAL_AUTO, Some devices/drivers, might - * support auto detecting the Transmission Mode, depending - * on some other hardware settings and or hardware features. - * - * NOTE: Currently applies to DVB-T and DVB-H only. - */ -enum fe_guard_intervals { - FE_GUARD_INTERVAL_IGNORE = (0 << 0), - FE_GUARD_INTERVAL_1_32 = (1 << 1), - FE_GUARD_INTERVAL_1_16 = (1 << 2), - FE_GUARD_INTERVAL_1_8 = (1 << 3), - FE_GUARD_INTERVAL_1_4 = (1 << 4), - FE_GUARD_INTERVAL_AUTO = (1 << 31) -}; - -/** - * Supported Hierarchial Modulations - * - * FE_HIERARCHY_IGNORE, causes the hierarchy - * not to be queried. - * - * FE_HIERARCHY_AUTO, Some devices/drivers, might - * support auto detecting the hierarchial modulation, depending - * on some other hardware settings and or hardware features. - * - * NOTE: Currently applies to DVB-T and DVB-H only. - */ -enum fe_hierarchy_info { - FE_HIERARCHY_IGNORE = (0 << 0), - FE_HIERARCHY_OFF = (1 << 1), - FE_HIERARCHY_ON = (1 << 2), - FE_HIERARCHY_AUTO = (1 << 31) -}; - -/** - * Supported Rolloff Rates - * - * FE_ROLLOFF_IGNORE, causes the hierarchy - * not to be queried. - * - * FE_ROLLOFF_AUTO, Some devices/drivers, might - * support auto detecting the hierarchial modulation, depending - * on some other hardware settings and or hardware features. - * - * NOTE: Currently applies to DVB-T and DVB-H only, - * not applicable to DVB-S2, DVB-S2 uses fe_matype - */ -enum fe_rolloff { - FE_ROLLOFF_IGNORE = (0 << 0), - FE_ROLLOFF_1 = (1 << 1), - FE_ROLLOFF_2 = (1 << 2), - FE_ROLLOFF_4 = (1 << 3), - FE_ROLLOFF_AUTO = (1 << 31) -}; - -/** - * Supported Interleaver types - * - * FE_INTERLEAVER_IGNORE, causes the hierarchy - * not to be queried. - * - * FE_INTERLEAVER_AUTO, Some devices/drivers, might - * support auto detecting the hierarchial modulation, depending - * on some other hardware settings and or hardware features. - * - * NOTE: Currently applies only to DVB-H. - */ -enum fe_interleaver { - FE_INTERLEAVER_IGNORE = (0 << 0), - FE_INTERLEAVER_NATIVE = (1 << 1), - FE_INTERLEAVER_INDEPTH = (1 << 2), - FE_INTERLEAVER_AUTO = (1 << 31) -}; - - -/** - * Supported MPE-FEC modes - * - * FE_MPEFEC_IGNORE, causes the mpefec indicator - * not to be queried. - * - * NOTE: MPE-FEC is an indicator according to EN 300 468 - * Currently applies only to DVB-H. - */ -enum fe_mpefec { - FE_MPEFEC_IGNORE = (0 << 0), - FE_MPEFEC_ON = (1 << 1), - FE_MPEFEC_OFF = (1 << 2) -}; - -/** - * Supported Timeslicing mode - * - * FE_TIMESLICING_IGNORE, causes the timeslicing indicator - * not to be queried. - * - * NOTE: Timeslicing is an indicator according to EN 300 468 - * Currently applies only to DVB-H. - */ -enum fe_timeslicing { - FE_TIMESLICING_IGNORE = (0 << 0), - FE_TIMESLICING_ON = (1 << 1), - FE_TIMESLICING_OFF = (1 << 2) -}; - -/** - * DVB-S parameters - */ -struct dvbs_params { - __u32 symbol_rate; - - enum fe_modulations modulation; - enum fe_fecrates fecrate; -}; - -/** - * DVB-S2 parameters - */ -struct dvbs2_params { - __u32 symbol_rate; - - enum fe_modulations modulation; - enum fe_fecrates fecrate; - enum fe_stream streamtype; - enum fe_fecrates coderate_HP; - enum fe_fecrates coderate_LP; -}; - -/** - * DSS parameters - */ -struct dss_params { - __u32 symbol_rate; - - enum fe_modulations modulation; - enum fe_fecrates fecrate; -}; - -/** - * DVB-C parameters - */ -struct dvbc_params { - __u32 symbol_rate; - - enum fe_modulations modulation; - enum fe_fecrates fecrate; -}; - -/** - * DVB-T parameters - */ -struct dvbt_params { - enum fe_modulations constellation; - enum fe_bandwidths bandwidth; - enum fe_fecrates code_rate_HP; - enum fe_fecrates code_rate_LP; - enum fe_transmit_modes transmission_mode; - enum fe_guard_intervals guard_interval; - enum fe_hierarchy_info hierarchy; - enum fe_rolloff alpha; - enum fe_stream stream; -}; - -/** - * DVB-H parameters - */ -struct dvbh_params { - enum fe_modulations constellation; - enum fe_fecrates code_rate_HP; - enum fe_fecrates code_rate_LP; - enum fe_transmit_modes transmission_mode; - enum fe_guard_intervals guard_interval; - enum fe_hierarchy_info hierarchy; - enum fe_rolloff alpha; - enum fe_interleaver interleaver; - enum fe_mpefec mpefec; - enum fe_timeslicing timeslicing; - enum fe_stream stream; - __u32 bandwidth; -}; - -/** - * ATSC parameters - */ -struct atsc_params { - enum fe_modulations modulation; -}; - -/** - * Padding to handle future binary compatibility issues. - * - * NOTE: The padding is a dummy parameter ! - */ -struct pad_params { - __u8 pad[512]; -}; - -/** - * Frontend capability information - */ -struct dvb_frontend_cap { - char name[128]; - - __u32 frequency_min; - __u32 frequency_max; - __u32 frequency_stepsize; - __u32 frequency_tolerance; - __u32 symbol_rate_min; - __u32 symbol_rate_max; - __u32 symbol_rate_tolerance; - - enum fe_delsys delivery; - enum fe_inversion inversion; - - union { - struct dvbs_params dvbs; - struct dvbs2_params dvbs2; - struct dss_params dss; - struct dvbc_params dvbc; - struct dvbt_params dvbt; - struct dvbh_params dvbh; - struct atsc_params atsc; - struct pad_params pad; - } delsys; -}; - -/** - * We have the NEW IOCTL's defined now. This IOCTL - * is supposed to handle all the new delivery systems - * FE_GET_CAPS, gets all the capabilities in one go. - * - * For the GET IOCTL's ie FE_GET_PARAMS and FE_GET_CAPS - * some of the parameters maybe selectively queried by - * setting that relevant parameter to IGNORE. - */ -#define FE_GET_CAPS _IOR('o', 84, struct dvb_frontend_cap) - -/** - * Frontend parameters - */ -struct dvb_frontend_params { - __u32 frequency; - - enum fe_delsys delivery; - enum fe_inversion inversion; - - union { - struct dvbs_params dvbs; - struct dvbs2_params dvbs2; - struct dss_params dss; - struct dvbc_params dvbc; - struct dvbt_params dvbt; - struct dvbh_params dvbh; - struct atsc_params atsc; - struct pad_params pad; - } delsys; -}; - -/** - * We have the NEW IOCTL's defined now. These IOCTL's - * are supposed to handle all the new delivery systems. - * FE_SET_PARAMS, sets all the parameters in one go. - * FE_GET_PARAMS, gets all the parameters in one go. - * - * For the GET IOCTL's ie FE_GET_PARAMS and FE_GET_CAPS - * some of the parameters maybe selectively queried by - * setting that relevant parameter to IGNORE. - */ -#define FE_SET_PARAMS _IOW('o', 82, struct dvb_frontend_params) -#define FE_GET_PARAMS _IOR('o', 83, struct dvb_frontend_params) - #endif /*_DVBFRONTEND_H_*/ -- cgit v1.2.3