⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 saa7134.h

📁 trident tm5600的linux驱动
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * * v4l2 device driver for philips saa7134 based TV cards * * (c) 2001,02 Gerd Knorr <kraxel@bytesex.org> * *  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. */#include <linux/version.h>#define SAA7134_VERSION_CODE KERNEL_VERSION(0,2,14)#include <linux/pci.h>#include <linux/i2c.h>#include <linux/videodev2.h>#include <linux/kdev_t.h>#include <linux/input.h>#include <linux/notifier.h>#include <linux/delay.h>#include <linux/mutex.h>#include <asm/io.h>#include "compat.h"#include <media/v4l2-common.h>#include <media/v4l2-ioctl.h>#include <media/tuner.h>#include <media/ir-common.h>#include <media/ir-kbd-i2c.h>#include <media/videobuf-dma-sg.h>#include <sound/core.h>#include <sound/pcm.h>#if defined(CONFIG_VIDEO_SAA7134_DVB) || defined(CONFIG_VIDEO_SAA7134_DVB_MODULE)#include <media/videobuf-dvb.h>#endif#define UNSET (-1U)/* ----------------------------------------------------------- *//* enums                                                       */enum saa7134_tvaudio_mode {	TVAUDIO_FM_MONO       = 1,	TVAUDIO_FM_BG_STEREO  = 2,	TVAUDIO_FM_SAT_STEREO = 3,	TVAUDIO_FM_K_STEREO   = 4,	TVAUDIO_NICAM_AM      = 5,	TVAUDIO_NICAM_FM      = 6,};enum saa7134_audio_in {	TV    = 1,	LINE1 = 2,	LINE2 = 3,	LINE2_LEFT,};enum saa7134_video_out {	CCIR656 = 1,};/* ----------------------------------------------------------- *//* static data                                                 */struct saa7134_tvnorm {	char          *name;	v4l2_std_id   id;	/* video decoder */	unsigned int  sync_control;	unsigned int  luma_control;	unsigned int  chroma_ctrl1;	unsigned int  chroma_gain;	unsigned int  chroma_ctrl2;	unsigned int  vgate_misc;	/* video scaler */	unsigned int  h_start;	unsigned int  h_stop;	unsigned int  video_v_start;	unsigned int  video_v_stop;	unsigned int  vbi_v_start_0;	unsigned int  vbi_v_stop_0;	unsigned int  src_timing;	unsigned int  vbi_v_start_1;};struct saa7134_tvaudio {	char         *name;	v4l2_std_id  std;	enum         saa7134_tvaudio_mode mode;	int          carr1;	int          carr2;};struct saa7134_format {	char           *name;	unsigned int   fourcc;	unsigned int   depth;	unsigned int   pm;	unsigned int   vshift;   /* vertical downsampling (for planar yuv) */	unsigned int   hshift;   /* horizontal downsampling (for planar yuv) */	unsigned int   bswap:1;	unsigned int   wswap:1;	unsigned int   yuv:1;	unsigned int   planar:1;	unsigned int   uvswap:1;};/* ----------------------------------------------------------- *//* card configuration                                          */#define SAA7134_BOARD_NOAUTO        UNSET#define SAA7134_BOARD_UNKNOWN           0#define SAA7134_BOARD_PROTEUS_PRO       1#define SAA7134_BOARD_FLYVIDEO3000      2#define SAA7134_BOARD_FLYVIDEO2000      3#define SAA7134_BOARD_EMPRESS           4#define SAA7134_BOARD_MONSTERTV         5#define SAA7134_BOARD_MD9717            6#define SAA7134_BOARD_TVSTATION_RDS     7#define SAA7134_BOARD_CINERGY400	8#define SAA7134_BOARD_MD5044		9#define SAA7134_BOARD_KWORLD           10#define SAA7134_BOARD_CINERGY600       11#define SAA7134_BOARD_MD7134           12#define SAA7134_BOARD_TYPHOON_90031    13#define SAA7134_BOARD_ELSA             14#define SAA7134_BOARD_ELSA_500TV       15#define SAA7134_BOARD_ASUSTeK_TVFM7134 16#define SAA7134_BOARD_VA1000POWER      17#define SAA7134_BOARD_BMK_MPEX_NOTUNER 18#define SAA7134_BOARD_VIDEOMATE_TV     19#define SAA7134_BOARD_CRONOS_PLUS      20#define SAA7134_BOARD_10MOONSTVMASTER  21#define SAA7134_BOARD_MD2819           22#define SAA7134_BOARD_BMK_MPEX_TUNER   23#define SAA7134_BOARD_TVSTATION_DVR    24#define SAA7134_BOARD_ASUSTEK_TVFM7133	25#define SAA7134_BOARD_PINNACLE_PCTV_STEREO 26#define SAA7134_BOARD_MANLI_MTV002     27#define SAA7134_BOARD_MANLI_MTV001     28#define SAA7134_BOARD_TG3000TV         29#define SAA7134_BOARD_ECS_TVP3XP       30#define SAA7134_BOARD_ECS_TVP3XP_4CB5  31#define SAA7134_BOARD_AVACSSMARTTV     32#define SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER 33#define SAA7134_BOARD_NOVAC_PRIMETV7133 34#define SAA7134_BOARD_AVERMEDIA_STUDIO_305 35#define SAA7134_BOARD_UPMOST_PURPLE_TV 36#define SAA7134_BOARD_ITEMS_MTV005     37#define SAA7134_BOARD_CINERGY200       38#define SAA7134_BOARD_FLYTVPLATINUM_MINI 39#define SAA7134_BOARD_VIDEOMATE_TV_PVR 40#define SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS 41#define SAA7134_BOARD_SABRENT_SBTTVFM  42#define SAA7134_BOARD_ZOLID_XPERT_TV7134 43#define SAA7134_BOARD_EMPIRE_PCI_TV_RADIO_LE 44#define SAA7134_BOARD_AVERMEDIA_STUDIO_307    45#define SAA7134_BOARD_AVERMEDIA_CARDBUS 46#define SAA7134_BOARD_CINERGY400_CARDBUS 47#define SAA7134_BOARD_CINERGY600_MK3   48#define SAA7134_BOARD_VIDEOMATE_GOLD_PLUS 49#define SAA7134_BOARD_PINNACLE_300I_DVBT_PAL 50#define SAA7134_BOARD_PROVIDEO_PV952   51#define SAA7134_BOARD_AVERMEDIA_305    52#define SAA7134_BOARD_ASUSTeK_TVFM7135 53#define SAA7134_BOARD_FLYTVPLATINUM_FM 54#define SAA7134_BOARD_FLYDVBTDUO 55#define SAA7134_BOARD_AVERMEDIA_307    56#define SAA7134_BOARD_AVERMEDIA_GO_007_FM 57#define SAA7134_BOARD_ADS_INSTANT_TV 58#define SAA7134_BOARD_KWORLD_VSTREAM_XPERT 59#define SAA7134_BOARD_FLYDVBT_DUO_CARDBUS 60#define SAA7134_BOARD_PHILIPS_TOUGH 61#define SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII 62#define SAA7134_BOARD_KWORLD_XPERT 63#define SAA7134_BOARD_FLYTV_DIGIMATRIX 64#define SAA7134_BOARD_KWORLD_TERMINATOR 65#define SAA7134_BOARD_YUAN_TUN900 66#define SAA7134_BOARD_BEHOLD_409FM 67#define SAA7134_BOARD_GOTVIEW_7135 68#define SAA7134_BOARD_PHILIPS_EUROPA  69#define SAA7134_BOARD_VIDEOMATE_DVBT_300 70#define SAA7134_BOARD_VIDEOMATE_DVBT_200 71#define SAA7134_BOARD_RTD_VFG7350 72#define SAA7134_BOARD_RTD_VFG7330 73#define SAA7134_BOARD_FLYTVPLATINUM_MINI2 74#define SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180 75#define SAA7134_BOARD_MONSTERTV_MOBILE 76#define SAA7134_BOARD_PINNACLE_PCTV_110i 77#define SAA7134_BOARD_ASUSTeK_P7131_DUAL 78#define SAA7134_BOARD_SEDNA_PC_TV_CARDBUS     79#define SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV 80#define SAA7134_BOARD_PHILIPS_TIGER  81#define SAA7134_BOARD_MSI_TVATANYWHERE_PLUS  82#define SAA7134_BOARD_CINERGY250PCI 83#define SAA7134_BOARD_FLYDVB_TRIO 84#define SAA7134_BOARD_AVERMEDIA_777 85#define SAA7134_BOARD_FLYDVBT_LR301 86#define SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331 87#define SAA7134_BOARD_TEVION_DVBT_220RF 88#define SAA7134_BOARD_ELSA_700TV       89#define SAA7134_BOARD_KWORLD_ATSC110   90#define SAA7134_BOARD_AVERMEDIA_A169_B 91#define SAA7134_BOARD_AVERMEDIA_A169_B1 92#define SAA7134_BOARD_MD7134_BRIDGE_2     93#define SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS 94#define SAA7134_BOARD_FLYVIDEO3000_NTSC 95#define SAA7134_BOARD_MEDION_MD8800_QUADRO 96#define SAA7134_BOARD_FLYDVBS_LR300 97#define SAA7134_BOARD_PROTEUS_2309 98#define SAA7134_BOARD_AVERMEDIA_A16AR   99#define SAA7134_BOARD_ASUS_EUROPA2_HYBRID 100#define SAA7134_BOARD_PINNACLE_PCTV_310i  101#define SAA7134_BOARD_AVERMEDIA_STUDIO_507 102#define SAA7134_BOARD_VIDEOMATE_DVBT_200A  103#define SAA7134_BOARD_HAUPPAUGE_HVR1110    104#define SAA7134_BOARD_CINERGY_HT_PCMCIA    105#define SAA7134_BOARD_ENCORE_ENLTV         106#define SAA7134_BOARD_ENCORE_ENLTV_FM      107#define SAA7134_BOARD_CINERGY_HT_PCI       108#define SAA7134_BOARD_PHILIPS_TIGER_S      109#define SAA7134_BOARD_AVERMEDIA_M102	   110#define SAA7134_BOARD_ASUS_P7131_4871	   111#define SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA 112#define SAA7134_BOARD_ECS_TVP3XP_4CB6  113#define SAA7134_BOARD_KWORLD_DVBT_210 114#define SAA7134_BOARD_SABRENT_TV_PCB05     115#define SAA7134_BOARD_10MOONSTVMASTER3     116#define SAA7134_BOARD_AVERMEDIA_SUPER_007  117#define SAA7134_BOARD_BEHOLD_401  	118#define SAA7134_BOARD_BEHOLD_403  	119#define SAA7134_BOARD_BEHOLD_403FM	120#define SAA7134_BOARD_BEHOLD_405	121#define SAA7134_BOARD_BEHOLD_405FM	122#define SAA7134_BOARD_BEHOLD_407	123#define SAA7134_BOARD_BEHOLD_407FM	124#define SAA7134_BOARD_BEHOLD_409	125#define SAA7134_BOARD_BEHOLD_505FM	126#define SAA7134_BOARD_BEHOLD_507_9FM	127#define SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM 128#define SAA7134_BOARD_BEHOLD_607_9FM	129#define SAA7134_BOARD_BEHOLD_M6		130#define SAA7134_BOARD_TWINHAN_DTV_DVB_3056 131#define SAA7134_BOARD_GENIUS_TVGO_A11MCE   132#define SAA7134_BOARD_PHILIPS_SNAKE        133#define SAA7134_BOARD_CREATIX_CTX953       134#define SAA7134_BOARD_MSI_TVANYWHERE_AD11  135#define SAA7134_BOARD_AVERMEDIA_CARDBUS_506 136#define SAA7134_BOARD_AVERMEDIA_A16D       137#define SAA7134_BOARD_AVERMEDIA_M115       138#define SAA7134_BOARD_VIDEOMATE_T750       139#define SAA7134_BOARD_AVERMEDIA_A700_PRO    140#define SAA7134_BOARD_AVERMEDIA_A700_HYBRID 141#define SAA7134_BOARD_BEHOLD_H6      142#define SAA7134_BOARD_BEHOLD_M63      143#define SAA7134_BOARD_BEHOLD_M6_EXTRA    144#define SAA7134_BOARD_AVERMEDIA_M103    145#define SAA7134_BOARD_ASUSTeK_P7131_ANALOG 146#define SAA7134_BOARD_ASUSTeK_TIGER_3IN1   147#define SAA7134_BOARD_ENCORE_ENLTV_FM53 148#define SAA7134_BOARD_AVERMEDIA_M135A    149#define SAA7134_BOARD_REAL_ANGEL_220     150#define SAA7134_BOARD_ADS_INSTANT_HDTV_PCI  151#define SAA7134_BOARD_ASUSTeK_TIGER         152#define SAA7134_MAXBOARDS 8#define SAA7134_INPUT_MAX 8/* ----------------------------------------------------------- *//* Since we support 2 remote types, lets tell them apart       */#define SAA7134_REMOTE_GPIO  1#define SAA7134_REMOTE_I2C   2/* ----------------------------------------------------------- *//* Video Output Port Register Initialization Options           */#define SET_T_CODE_POLARITY_NON_INVERTED	(1 << 0)#define SET_CLOCK_NOT_DELAYED			(1 << 1)#define SET_CLOCK_INVERTED			(1 << 2)#define SET_VSYNC_OFF				(1 << 3)struct saa7134_input {	char                    *name;	unsigned int            vmux;	enum saa7134_audio_in   amux;	unsigned int            gpio;	unsigned int            tv:1;};enum saa7134_mpeg_type {	SAA7134_MPEG_UNUSED,	SAA7134_MPEG_EMPRESS,	SAA7134_MPEG_DVB,};struct saa7134_board {	char                    *name;	unsigned int            audio_clock;	/* input switching */	unsigned int            gpiomask;	struct saa7134_input    inputs[SAA7134_INPUT_MAX];	struct saa7134_input    radio;	struct saa7134_input    mute;	/* i2c chip info */	unsigned int            tuner_type;	unsigned int		radio_type;	unsigned char		tuner_addr;	unsigned char		radio_addr;	unsigned int            tda9887_conf;	unsigned int            tuner_config;	/* peripheral I/O */	enum saa7134_video_out  video_out;	enum saa7134_mpeg_type  mpeg;	unsigned int            vid_port_opts;};#define card_has_radio(dev)   (NULL != saa7134_boards[dev->board].radio.name)#define card_is_empress(dev)  (SAA7134_MPEG_EMPRESS == saa7134_boards[dev->board].mpeg)#define card_is_dvb(dev)      (SAA7134_MPEG_DVB     == saa7134_boards[dev->board].mpeg)#define card_has_mpeg(dev)    (SAA7134_MPEG_UNUSED  != saa7134_boards[dev->board].mpeg)#define card(dev)             (saa7134_boards[dev->board])#define card_in(dev,n)        (saa7134_boards[dev->board].inputs[n])/* ----------------------------------------------------------- *//* device / file handle status                                 */#define RESOURCE_OVERLAY       1#define RESOURCE_VIDEO         2#define RESOURCE_VBI           4#define INTERLACE_AUTO         0#define INTERLACE_ON           1#define INTERLACE_OFF          2#define BUFFER_TIMEOUT     msecs_to_jiffies(500)  /* 0.5 seconds */struct saa7134_dev;struct saa7134_dma;/* saa7134 page table */struct saa7134_pgtable {	unsigned int               size;	__le32                     *cpu;	dma_addr_t                 dma;};/* tvaudio thread status */struct saa7134_thread {	struct task_struct         *thread;	unsigned int               scan1;	unsigned int               scan2;	unsigned int               mode;	unsigned int		   stopped;};/* buffer for one video/vbi/ts frame */struct saa7134_buf {	/* common v4l buffer stuff -- must be first */	struct videobuf_buffer vb;	/* saa7134 specific */	struct saa7134_format   *fmt;	unsigned int            top_seen;	int (*activate)(struct saa7134_dev *dev,			struct saa7134_buf *buf,			struct saa7134_buf *next);	/* page tables */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -