2,10 → 2,9 |
#define __SAA7146_VV__ |
|
#include <linux/videodev2.h> |
#include <drivers/saa7146.h> |
#include <drivers/video-buf.h> |
|
#include <media/saa7146.h> |
#include <media/video-buf.h> |
|
#define MAX_SAA7146_CAPTURE_BUFFERS 32 /* arbitrary */ |
#define BUFFER_TIMEOUT (HZ/2) /* 0.5 seconds */ |
|
26,12 → 25,15 |
u32 num_line_byte; |
}; |
|
#define FORMAT_BYTE_SWAP 0x1 |
#define FORMAT_IS_PLANAR 0x2 |
|
struct saa7146_format { |
char *name; |
int pixelformat; |
u32 pixelformat; |
u32 trans; |
u8 depth; |
int swap; |
u8 flags; |
}; |
|
struct saa7146_standard |
97,6 → 99,8 |
struct videobuf_queue vbi_q; |
struct v4l2_vbi_format vbi_fmt; |
struct timer_list vbi_read_timeout; |
|
unsigned int resources; /* resource management for device open */ |
}; |
|
struct saa7146_vv |
121,7 → 125,7 |
struct saa7146_dmaqueue video_q; |
struct saa7146_fh *streaming; |
enum v4l2_field last_field; |
|
|
/* common: fixme? shouldn't this be in saa7146_fh? |
(this leads to a more complicated question: shall the driver |
store the different settings (for example S_INPUT) for every open |
136,6 → 140,8 |
int current_hps_sync; |
|
struct saa7146_dma d_clipping; /* pointer to clipping memory */ |
|
unsigned int resources; /* resource management for device */ |
}; |
|
#define SAA7146_EXCLUSIVE 0x1 |
149,7 → 155,6 |
}; |
|
/* flags */ |
#define SAA7146_EXT_SWAP_ODD_EVEN 0x1 /* needs odd/even fields swapped */ |
#define SAA7146_USE_PORT_B_FOR_VBI 0x2 /* use input port b for vbi hardware bug workaround */ |
|
struct saa7146_ext_vv |
171,12 → 176,10 |
|
struct saa7146_use_ops { |
void (*init)(struct saa7146_dev *, struct saa7146_vv *); |
void(*open)(struct saa7146_dev *, struct saa7146_fh *); |
void (*release)(struct saa7146_dev *, struct saa7146_fh *,struct file *); |
int(*open)(struct saa7146_dev *, struct file *); |
void (*release)(struct saa7146_dev *, struct file *); |
void (*irq_done)(struct saa7146_dev *, unsigned long status); |
ssize_t (*read)(struct file *, char *, size_t, loff_t *); |
int (*capture_begin)(struct saa7146_fh *); |
int (*capture_end)(struct saa7146_fh *); |
}; |
|
/* from saa7146_fops.c */ |
191,9 → 194,10 |
int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv); |
int saa7146_vv_release(struct saa7146_dev* dev); |
|
/* from saa7146_hlp.c */ |
int saa7146_enable_overlay(struct saa7146_fh *fh); |
void saa7146_disable_overlay(struct saa7146_fh *fh); |
|
/* from saa7146_hlp.c */ |
void saa7146_set_overlay(struct saa7146_dev *dev, struct saa7146_fh *fh, int v); |
void saa7146_set_capture(struct saa7146_dev *dev, struct saa7146_buf *buf, struct saa7146_buf *next); |
void saa7146_write_out_dma(struct saa7146_dev* dev, int which, struct saa7146_video_dma* vdma) ; |
void saa7146_set_hps_source_and_sync(struct saa7146_dev *saa, int source, int sync); |
207,6 → 211,16 |
/* from saa7146_vbi.c */ |
extern struct saa7146_use_ops saa7146_vbi_uops; |
|
/* resource management functions */ |
int saa7146_res_get(struct saa7146_fh *fh, unsigned int bit); |
int saa7146_res_check(struct saa7146_fh *fh, unsigned int bit); |
int saa7146_res_locked(struct saa7146_dev *dev, unsigned int bit); |
void saa7146_res_free(struct saa7146_fh *fh, unsigned int bits); |
|
#define RESOURCE_DMA1_HPS 0x1 |
#define RESOURCE_DMA2_CLP 0x2 |
#define RESOURCE_DMA3_BRS 0x4 |
|
/* saa7146 source inputs */ |
#define SAA7146_HPS_SOURCE_PORT_A 0x00 |
#define SAA7146_HPS_SOURCE_PORT_B 0x01 |