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

📄 saa7134.h

📁 trident tm5600的linux驱动
💻 H
📖 第 1 页 / 共 2 页
字号:
	struct saa7134_pgtable  *pt;};struct saa7134_dmaqueue {	struct saa7134_dev         *dev;	struct saa7134_buf         *curr;	struct list_head           queue;	struct timer_list          timeout;	unsigned int               need_two;};/* video filehandle status */struct saa7134_fh {	struct saa7134_dev         *dev;	unsigned int               radio;	enum v4l2_buf_type         type;	unsigned int               resources;	enum v4l2_priority	   prio;	/* video overlay */	struct v4l2_window         win;	struct v4l2_clip           clips[8];	unsigned int               nclips;	/* video capture */	struct saa7134_format      *fmt;	unsigned int               width,height;	struct videobuf_queue      cap;	struct saa7134_pgtable     pt_cap;	/* vbi capture */	struct videobuf_queue      vbi;	struct saa7134_pgtable     pt_vbi;};/* dmasound dsp status */struct saa7134_dmasound {	struct mutex               lock;	int                        minor_mixer;	int                        minor_dsp;	unsigned int               users_dsp;	/* mixer */	enum saa7134_audio_in      input;	unsigned int               count;	unsigned int               line1;	unsigned int               line2;	/* dsp */	unsigned int               afmt;	unsigned int               rate;	unsigned int               channels;	unsigned int               recording_on;	unsigned int               dma_running;	unsigned int               blocks;	unsigned int               blksize;	unsigned int               bufsize;	struct saa7134_pgtable     pt;	struct videobuf_dmabuf     dma;	wait_queue_head_t          wq;	unsigned int               dma_blk;	unsigned int               read_offset;	unsigned int               read_count;	void *			   priv_data;#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16)	snd_pcm_substream_t        *substream;#else	struct snd_pcm_substream   *substream;#endif};/* ts/mpeg status */struct saa7134_ts {	/* TS capture */	struct saa7134_pgtable     pt_ts;	int                        nr_packets;	int                        nr_bufs;};/* ts/mpeg ops */struct saa7134_mpeg_ops {	enum saa7134_mpeg_type     type;	struct list_head           next;	int                        (*init)(struct saa7134_dev *dev);	int                        (*fini)(struct saa7134_dev *dev);	void                       (*signal_change)(struct saa7134_dev *dev);};enum saa7134_ts_status {	SAA7134_TS_STOPPED,	SAA7134_TS_BUFF_DONE,	SAA7134_TS_STARTED,};/* global device status */struct saa7134_dev {	struct list_head           devlist;	struct mutex               lock;	spinlock_t                 slock;	struct v4l2_prio_state     prio;	/* workstruct for loading modules */	struct work_struct request_module_wk;	/* insmod option/autodetected */	int                        autodetected;	/* various device info */	unsigned int               resources;	struct video_device        *video_dev;	struct video_device        *radio_dev;	struct video_device        *vbi_dev;	struct saa7134_dmasound    dmasound;	/* infrared remote */	int                        has_remote;	struct card_ir		   *remote;	/* pci i/o */	char                       name[32];	int                        nr;	struct pci_dev             *pci;	unsigned char              pci_rev,pci_lat;	__u32                      __iomem *lmmio;	__u8                       __iomem *bmmio;	/* config info */	unsigned int               board;	unsigned int               tuner_type;	unsigned int 		   radio_type;	unsigned char		   tuner_addr;	unsigned char		   radio_addr;	unsigned int               tda9887_conf;	unsigned int               gpio_value;	/* i2c i/o */	struct i2c_adapter         i2c_adap;	struct i2c_client          i2c_client;	unsigned char              eedata[256];	/* video overlay */	struct v4l2_framebuffer    ovbuf;	struct saa7134_format      *ovfmt;	unsigned int               ovenable;	enum v4l2_field            ovfield;	/* video+ts+vbi capture */	struct saa7134_dmaqueue    video_q;	struct saa7134_dmaqueue    vbi_q;	unsigned int               video_fieldcount;	unsigned int               vbi_fieldcount;	/* various v4l controls */	struct saa7134_tvnorm      *tvnorm;              /* video */	struct saa7134_tvaudio     *tvaudio;	unsigned int               ctl_input;	int                        ctl_bright;	int                        ctl_contrast;	int                        ctl_hue;	int                        ctl_saturation;	int                        ctl_freq;	int                        ctl_mute;             /* audio */	int                        ctl_volume;	int                        ctl_invert;           /* private */	int                        ctl_mirror;	int                        ctl_y_odd;	int                        ctl_y_even;	int                        ctl_automute;	/* crop */	struct v4l2_rect           crop_bounds;	struct v4l2_rect           crop_defrect;	struct v4l2_rect           crop_current;	/* other global state info */	unsigned int               automute;	struct saa7134_thread      thread;	struct saa7134_input       *input;	struct saa7134_input       *hw_input;	unsigned int               hw_mute;	int                        last_carrier;	int                        nosignal;	unsigned int               insuspend;	/* SAA7134_MPEG_* */	struct saa7134_ts          ts;	struct saa7134_dmaqueue    ts_q;	enum saa7134_ts_status 	   ts_state;	unsigned int 		   buff_cnt;	struct saa7134_mpeg_ops    *mops;	struct i2c_client 	   *mpeg_i2c_client;	/* SAA7134_MPEG_EMPRESS only */	struct video_device        *empress_dev;	struct videobuf_queue      empress_tsq;	atomic_t 		   empress_users;	struct work_struct         empress_workqueue;	int                        empress_started;#if defined(CONFIG_VIDEO_SAA7134_DVB) || defined(CONFIG_VIDEO_SAA7134_DVB_MODULE)	/* SAA7134_MPEG_DVB only */	struct videobuf_dvb_frontends frontends;	int (*original_demod_sleep)(struct dvb_frontend *fe);	int (*original_set_voltage)(struct dvb_frontend *fe, fe_sec_voltage_t voltage);	int (*original_set_high_voltage)(struct dvb_frontend *fe, long arg);#endif};/* ----------------------------------------------------------- */#define saa_readl(reg)             readl(dev->lmmio + (reg))#define saa_writel(reg,value)      writel((value), dev->lmmio + (reg));#define saa_andorl(reg,mask,value) \  writel((readl(dev->lmmio+(reg)) & ~(mask)) |\  ((value) & (mask)), dev->lmmio+(reg))#define saa_setl(reg,bit)          saa_andorl((reg),(bit),(bit))#define saa_clearl(reg,bit)        saa_andorl((reg),(bit),0)#define saa_readb(reg)             readb(dev->bmmio + (reg))#define saa_writeb(reg,value)      writeb((value), dev->bmmio + (reg));#define saa_andorb(reg,mask,value) \  writeb((readb(dev->bmmio+(reg)) & ~(mask)) |\  ((value) & (mask)), dev->bmmio+(reg))#define saa_setb(reg,bit)          saa_andorb((reg),(bit),(bit))#define saa_clearb(reg,bit)        saa_andorb((reg),(bit),0)#define saa_wait(us) { udelay(us); }#define SAA7134_NORMS	(\		V4L2_STD_PAL    | V4L2_STD_PAL_N | \		V4L2_STD_PAL_Nc | V4L2_STD_SECAM | \		V4L2_STD_NTSC   | V4L2_STD_PAL_M | \		V4L2_STD_PAL_60)/* ----------------------------------------------------------- *//* saa7134-core.c                                              */extern struct list_head  saa7134_devlist;extern int saa7134_no_overlay;void saa7134_track_gpio(struct saa7134_dev *dev, char *msg);void saa7134_set_gpio(struct saa7134_dev *dev, int bit_no, int value);#define SAA7134_PGTABLE_SIZE 4096int saa7134_pgtable_alloc(struct pci_dev *pci, struct saa7134_pgtable *pt);int  saa7134_pgtable_build(struct pci_dev *pci, struct saa7134_pgtable *pt,			   struct scatterlist *list, unsigned int length,			   unsigned int startpage);void saa7134_pgtable_free(struct pci_dev *pci, struct saa7134_pgtable *pt);int saa7134_buffer_count(unsigned int size, unsigned int count);int saa7134_buffer_startpage(struct saa7134_buf *buf);unsigned long saa7134_buffer_base(struct saa7134_buf *buf);int saa7134_buffer_queue(struct saa7134_dev *dev, struct saa7134_dmaqueue *q,			 struct saa7134_buf *buf);void saa7134_buffer_finish(struct saa7134_dev *dev, struct saa7134_dmaqueue *q,			   unsigned int state);void saa7134_buffer_next(struct saa7134_dev *dev, struct saa7134_dmaqueue *q);void saa7134_buffer_timeout(unsigned long data);void saa7134_dma_free(struct videobuf_queue *q,struct saa7134_buf *buf);int saa7134_set_dmabits(struct saa7134_dev *dev);extern int (*saa7134_dmasound_init)(struct saa7134_dev *dev);extern int (*saa7134_dmasound_exit)(struct saa7134_dev *dev);/* ----------------------------------------------------------- *//* saa7134-cards.c                                             */extern struct saa7134_board saa7134_boards[];extern const unsigned int saa7134_bcount;extern struct pci_device_id __devinitdata saa7134_pci_tbl[];extern int saa7134_board_init1(struct saa7134_dev *dev);extern int saa7134_board_init2(struct saa7134_dev *dev);int saa7134_tuner_callback(void *priv, int component, int command, int arg);/* ----------------------------------------------------------- *//* saa7134-i2c.c                                               */int saa7134_i2c_register(struct saa7134_dev *dev);int saa7134_i2c_unregister(struct saa7134_dev *dev);void saa7134_i2c_call_clients(struct saa7134_dev *dev,			      unsigned int cmd, void *arg);int saa7134_i2c_call_saa6752(struct saa7134_dev *dev,			      unsigned int cmd, void *arg);/* ----------------------------------------------------------- *//* saa7134-video.c                                             */extern unsigned int video_debug;extern struct video_device saa7134_video_template;extern struct video_device saa7134_radio_template;int saa7134_s_ctrl_internal(struct saa7134_dev *dev,  struct saa7134_fh *fh, struct v4l2_control *c);int saa7134_g_ctrl_internal(struct saa7134_dev *dev,  struct saa7134_fh *fh, struct v4l2_control *c);int saa7134_queryctrl(struct file *file, void *priv, struct v4l2_queryctrl *c);int saa7134_s_std_internal(struct saa7134_dev *dev,  struct saa7134_fh *fh, v4l2_std_id *id);int saa7134_videoport_init(struct saa7134_dev *dev);void saa7134_set_tvnorm_hw(struct saa7134_dev *dev);int saa7134_video_init1(struct saa7134_dev *dev);int saa7134_video_init2(struct saa7134_dev *dev);void saa7134_irq_video_signalchange(struct saa7134_dev *dev);void saa7134_irq_video_done(struct saa7134_dev *dev, unsigned long status);/* ----------------------------------------------------------- *//* saa7134-ts.c                                                */#define TS_PACKET_SIZE 188 /* TS packets 188 bytes */extern struct videobuf_queue_ops saa7134_ts_qops;int saa7134_ts_init1(struct saa7134_dev *dev);int saa7134_ts_fini(struct saa7134_dev *dev);void saa7134_irq_ts_done(struct saa7134_dev *dev, unsigned long status);int saa7134_ts_register(struct saa7134_mpeg_ops *ops);void saa7134_ts_unregister(struct saa7134_mpeg_ops *ops);int saa7134_ts_init_hw(struct saa7134_dev *dev);/* ----------------------------------------------------------- *//* saa7134-vbi.c                                               */extern struct videobuf_queue_ops saa7134_vbi_qops;extern struct video_device saa7134_vbi_template;int saa7134_vbi_init1(struct saa7134_dev *dev);int saa7134_vbi_fini(struct saa7134_dev *dev);void saa7134_irq_vbi_done(struct saa7134_dev *dev, unsigned long status);/* ----------------------------------------------------------- *//* saa7134-tvaudio.c                                           */int saa7134_tvaudio_rx2mode(u32 rx);void saa7134_tvaudio_setmute(struct saa7134_dev *dev);void saa7134_tvaudio_setinput(struct saa7134_dev *dev,			      struct saa7134_input *in);void saa7134_tvaudio_setvolume(struct saa7134_dev *dev, int level);int saa7134_tvaudio_getstereo(struct saa7134_dev *dev);void saa7134_tvaudio_init(struct saa7134_dev *dev);int saa7134_tvaudio_init2(struct saa7134_dev *dev);int saa7134_tvaudio_fini(struct saa7134_dev *dev);int saa7134_tvaudio_do_scan(struct saa7134_dev *dev);int saa_dsp_writel(struct saa7134_dev *dev, int reg, u32 value);void saa7134_enable_i2s(struct saa7134_dev *dev);/* ----------------------------------------------------------- *//* saa7134-oss.c                                               */extern const struct file_operations saa7134_dsp_fops;extern const struct file_operations saa7134_mixer_fops;int saa7134_oss_init1(struct saa7134_dev *dev);int saa7134_oss_fini(struct saa7134_dev *dev);void saa7134_irq_oss_done(struct saa7134_dev *dev, unsigned long status);/* ----------------------------------------------------------- *//* saa7134-input.c                                             */int  saa7134_input_init1(struct saa7134_dev *dev);void saa7134_input_fini(struct saa7134_dev *dev);void saa7134_input_irq(struct saa7134_dev *dev);void saa7134_set_i2c_ir(struct saa7134_dev *dev, struct IR_i2c *ir);void saa7134_ir_start(struct saa7134_dev *dev, struct card_ir *ir);void saa7134_ir_stop(struct saa7134_dev *dev);/* * Local variables: * c-basic-offset: 8 * End: */

⌨️ 快捷键说明

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