radeon_video.h revision 209ff23f
1209ff23fSmrg#ifndef __RADEON_VIDEO_H__ 2209ff23fSmrg#define __RADEON_VIDEO_H__ 3209ff23fSmrg 4209ff23fSmrg#include "xf86i2c.h" 5209ff23fSmrg#include "fi1236.h" 6209ff23fSmrg#include "msp3430.h" 7209ff23fSmrg#include "tda9885.h" 8209ff23fSmrg#include "uda1380.h" 9209ff23fSmrg#include "i2c_def.h" 10209ff23fSmrg 11209ff23fSmrg#include "generic_bus.h" 12209ff23fSmrg#include "theatre.h" 13209ff23fSmrg 14209ff23fSmrg#include "xf86Crtc.h" 15209ff23fSmrg 16209ff23fSmrg/* Xvideo port struct */ 17209ff23fSmrgtypedef struct { 18209ff23fSmrg uint32_t transform_index; 19209ff23fSmrg uint32_t gamma; /* gamma value x 1000 */ 20209ff23fSmrg int brightness; 21209ff23fSmrg int saturation; 22209ff23fSmrg int hue; 23209ff23fSmrg int contrast; 24209ff23fSmrg int red_intensity; 25209ff23fSmrg int green_intensity; 26209ff23fSmrg int blue_intensity; 27209ff23fSmrg 28209ff23fSmrg /* overlay composition mode */ 29209ff23fSmrg int alpha_mode; /* 0 = key mode, 1 = global mode */ 30209ff23fSmrg int ov_alpha; 31209ff23fSmrg int gr_alpha; 32209ff23fSmrg 33209ff23fSmrg /* i2c bus and devices */ 34209ff23fSmrg I2CBusPtr i2c; 35209ff23fSmrg uint32_t radeon_i2c_timing; 36209ff23fSmrg uint32_t radeon_M; 37209ff23fSmrg uint32_t radeon_N; 38209ff23fSmrg uint32_t i2c_status; 39209ff23fSmrg uint32_t i2c_cntl; 40209ff23fSmrg 41209ff23fSmrg FI1236Ptr fi1236; 42209ff23fSmrg uint8_t tuner_type; 43209ff23fSmrg MSP3430Ptr msp3430; 44209ff23fSmrg TDA9885Ptr tda9885; 45209ff23fSmrg UDA1380Ptr uda1380; 46209ff23fSmrg 47209ff23fSmrg /* VIP bus and devices */ 48209ff23fSmrg GENERIC_BUS_Ptr VIP; 49209ff23fSmrg TheatrePtr theatre; 50209ff23fSmrg 51209ff23fSmrg Bool video_stream_active; 52209ff23fSmrg int encoding; 53209ff23fSmrg uint32_t frequency; 54209ff23fSmrg int volume; 55209ff23fSmrg Bool mute; 56209ff23fSmrg int sap_channel; 57209ff23fSmrg int v; 58209ff23fSmrg uint32_t adjustment; /* general purpose variable */ 59209ff23fSmrg 60209ff23fSmrg#define METHOD_BOB 0 61209ff23fSmrg#define METHOD_SINGLE 1 62209ff23fSmrg#define METHOD_WEAVE 2 63209ff23fSmrg#define METHOD_ADAPTIVE 3 64209ff23fSmrg 65209ff23fSmrg int overlay_deinterlacing_method; 66209ff23fSmrg 67209ff23fSmrg int capture_vbi_data; 68209ff23fSmrg 69209ff23fSmrg int dec_brightness; 70209ff23fSmrg int dec_saturation; 71209ff23fSmrg int dec_hue; 72209ff23fSmrg int dec_contrast; 73209ff23fSmrg 74209ff23fSmrg Bool doubleBuffer; 75209ff23fSmrg unsigned char currentBuffer; 76209ff23fSmrg RegionRec clip; 77209ff23fSmrg uint32_t colorKey; 78209ff23fSmrg uint32_t videoStatus; 79209ff23fSmrg Time offTime; 80209ff23fSmrg Time freeTime; 81209ff23fSmrg Bool autopaint_colorkey; 82209ff23fSmrg xf86CrtcPtr desired_crtc; 83209ff23fSmrg 84209ff23fSmrg int size; 85209ff23fSmrg#ifdef USE_EXA 86209ff23fSmrg ExaOffscreenArea *off_screen; 87209ff23fSmrg#endif 88209ff23fSmrg 89209ff23fSmrg void *video_memory; 90209ff23fSmrg int video_offset; 91209ff23fSmrg 92209ff23fSmrg Atom device_id, location_id, instance_id; 93209ff23fSmrg 94209ff23fSmrg /* textured video */ 95209ff23fSmrg Bool textured; 96209ff23fSmrg DrawablePtr pDraw; 97209ff23fSmrg PixmapPtr pPixmap; 98209ff23fSmrg 99209ff23fSmrg uint32_t src_offset; 100209ff23fSmrg uint32_t src_pitch; 101209ff23fSmrg uint8_t *src_addr; 102209ff23fSmrg 103209ff23fSmrg int id; 104209ff23fSmrg int src_w, src_h, dst_w, dst_h; 105209ff23fSmrg int w, h; 106209ff23fSmrg int drw_x, drw_y; 107209ff23fSmrg} RADEONPortPrivRec, *RADEONPortPrivPtr; 108209ff23fSmrg 109209ff23fSmrg 110209ff23fSmrgvoid RADEONInitI2C(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv); 111209ff23fSmrgvoid RADEONResetI2C(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv); 112209ff23fSmrg 113209ff23fSmrgvoid RADEONVIP_init(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv); 114209ff23fSmrgvoid RADEONVIP_reset(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv); 115209ff23fSmrg 116209ff23fSmrguint32_t 117209ff23fSmrgRADEONAllocateMemory(ScrnInfoPtr pScrn, void **mem_struct, int size); 118209ff23fSmrgvoid 119209ff23fSmrgRADEONFreeMemory(ScrnInfoPtr pScrn, void *mem_struct); 120209ff23fSmrg 121209ff23fSmrgint RADEONSetPortAttribute(ScrnInfoPtr, Atom, INT32, pointer); 122209ff23fSmrgint RADEONGetPortAttribute(ScrnInfoPtr, Atom ,INT32 *, pointer); 123209ff23fSmrgvoid RADEONStopVideo(ScrnInfoPtr, pointer, Bool); 124209ff23fSmrgvoid RADEONQueryBestSize(ScrnInfoPtr, Bool, short, short, short, short, 125209ff23fSmrg unsigned int *, unsigned int *, pointer); 126209ff23fSmrgint RADEONQueryImageAttributes(ScrnInfoPtr, int, unsigned short *, 127209ff23fSmrg unsigned short *, int *, int *); 128209ff23fSmrg 129209ff23fSmrgXF86VideoAdaptorPtr 130209ff23fSmrgRADEONSetupImageTexturedVideo(ScreenPtr pScreen); 131209ff23fSmrg 132209ff23fSmrgvoid 133209ff23fSmrgRADEONCopyData(ScrnInfoPtr pScrn, 134209ff23fSmrg unsigned char *src, unsigned char *dst, 135209ff23fSmrg unsigned int srcPitch, unsigned int dstPitch, 136209ff23fSmrg unsigned int h, unsigned int w, unsigned int bpp); 137209ff23fSmrg 138209ff23fSmrgvoid 139209ff23fSmrgRADEONCopyMungedData(ScrnInfoPtr pScrn, 140209ff23fSmrg unsigned char *src1, unsigned char *src2, 141209ff23fSmrg unsigned char *src3, unsigned char *dst1, 142209ff23fSmrg unsigned int srcPitch, unsigned int srcPitch2, 143209ff23fSmrg unsigned int dstPitch, unsigned int h, unsigned int w); 144209ff23fSmrg 145209ff23fSmrg#endif 146