#define ZORAN_NAME "ZORAN"/* name of the device */
#define ZR_DEVNAME(zr) ((zr)->name)
#define BUZ_MAX_WIDTH (zr->timing->wa) #define BUZ_MAX_HEIGHT (zr->timing->ha) #define BUZ_MIN_WIDTH 32 /* never display less than 32 pixels */ #define BUZ_MIN_HEIGHT 24 /* never display less than 24 rows */
/* jpg-capture/-playback settings */ struct zoran_jpg_settings { /* this bit is used to set everything to default */ int decimation; /* capture decimation settings (tmp_dcm=1 means both fields) */ int hor_dcm, ver_dcm, tmp_dcm; /* field-settings (odd_even=1 (+tmp_dcm=1) means top-field-first) */ int field_per_buff, odd_even; /* crop settings (subframe capture) */ int img_x, img_y, img_width, img_height; /* JPEG-specific capture settings */ struct v4l2_jpegcompression jpg_comp;
};
struct v4l2_subdev *decoder; /* video decoder sub-device */ struct v4l2_subdev *encoder; /* video encoder sub-device */
struct videocodec *codec; /* video codec */ struct videocodec *vfe; /* video front end */
struct mutex lock; /* file ops serialize lock */
u8 initialized; /* flag if zoran has been correctly initialized */ struct card_info card; conststruct tvnorm *timing;
unsignedshort id; /* number of this device */ char name[40]; /* name of this device */ struct pci_dev *pci_dev; /* PCI device */ unsignedchar revision; /* revision of zr36057 */ unsignedchar __iomem *zr36057_mem;/* pointer to mapped IO memory */
spinlock_t spinlock; /* Spinlock */
/* Video for Linux parameters */ int input; /* card's norm and input */
v4l2_std_id norm;
/* Current buffer params */ unsignedint buffer_size;
struct zoran_v4l_settings v4l_settings; /* structure with a lot of things to play with */
/* Buz MJPEG parameters */ enum zoran_codec_mode codec_mode; /* status of codec */ struct zoran_jpg_settings jpg_settings; /* structure with a lot of things to play with */
/* grab queue counts/indices, mask with BUZ_MASK_STAT_COM before using as index */ /* (dma_head - dma_tail) is number active in DMA, must be <= BUZ_NUM_STAT_COM */ /* (value & BUZ_MASK_STAT_COM) corresponds to index in stat_com table */ unsignedlong jpg_que_head; /* Index where to put next buffer which is queued */ unsignedlong jpg_dma_head; /* Index of next buffer which goes into stat_com */ unsignedlong jpg_dma_tail; /* Index of last buffer in stat_com */ unsignedlong jpg_que_tail; /* Index of last buffer in queue */ unsignedlong jpg_seq_num; /* count of frames since grab/play started */ unsignedlong jpg_err_seq; /* last seq_num before error */ unsignedlong jpg_err_shift; unsignedlong jpg_queued_num; /* count of frames queued since grab/play started */ unsignedlong vbseq;
/* zr36057's code buffer table */ /* stat_com[i] is indexed by dma_head/tail & BUZ_MASK_STAT_COM */
__le32 *stat_com;
/* Additional stuff for testing */ unsignedint ghost_int; int intr_counter_GIRQ1; int intr_counter_GIRQ0; int intr_counter_cod_rep_irq; int intr_counter_jpeg_rep_irq; int field_counter; int irq1_in; int irq1_out; int jpeg_in; int jpeg_out; int JPEG_0; int JPEG_1; int end_event_missed; int jpeg_missed; int jpeg_error; int num_errors; int jpeg_max_missed; int jpeg_min_missed; unsignedint prepared; unsignedint queued;
u32 last_isr; unsignedlong frame_num; int running; int buf_in_reserve;
/* * There was something called _ALPHA_BUZ that used the PCI address instead of * the kernel iomapped address for btread/btwrite.
*/ #define btwrite(dat, adr) writel((dat), zr->zr36057_mem + (adr)) #define btread(adr) readl(zr->zr36057_mem + (adr))
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.