diff options
author | Dave Airlie <airlied@linux.ie> | 2006-03-21 14:19:17 +1100 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2006-06-02 10:01:23 +1000 |
commit | 38a403f88d05087de08ad961f0a7a946ab8b3669 (patch) | |
tree | 2022cd9eee53d5918435f4bb91e60c05aae150c2 /src/i830.h | |
parent | b9ec6ee94ccee9a5fe69130d34a328752785a805 (diff) |
i830: move to a cleaner output abstraction
still a bit of work to do in linking pipes to outputs
Diffstat (limited to 'src/i830.h')
-rw-r--r-- | src/i830.h | 47 |
1 files changed, 29 insertions, 18 deletions
@@ -219,17 +219,27 @@ typedef struct _I830SaveRec { /* store information about an Ixxx DVO */ /* The i830->i865 use multiple DVOs with multiple i2cs */ /* the i915, i945 have a single sDVO i2c bus - which is different */ -#define MAX_DVOS 4 +#define MAX_OUTPUTS 6 -#define I830_I2C_BUS_DVO 1 -#define I830_I2C_BUS_SDVO 2 +/* these are outputs from the chip - integrated only + external chips are via DVO or SDVO output */ +#define I830_OUTPUT_UNUSED 0 +#define I830_OUTPUT_ANALOG 1 +#define I830_OUTPUT_DVO 2 +#define I830_OUTPUT_SDVO 3 +#define I830_OUTPUT_LVDS 4 +#define I830_OUTPUT_TVOUT 5 #define I830_I2C_CHIP_NONE 0 #define I830_I2C_CHIP_LVDS 1 #define I830_I2C_CHIP_TMDS 2 #define I830_I2C_CHIP_TVOUT 4 -struct _I830RegI2CDriver { +#define I830_OUTPUT_PIPE_NC 0 +#define I830_OUTPUT_PIPE_A 1 +#define I830_OUTPUT_PIPE_B 2 + +struct _I830DVODriver { int type; char *modulename; char *fntablename; @@ -238,24 +248,25 @@ struct _I830RegI2CDriver { I2CVidOutputRec *vid_rec; void *devpriv; pointer modhandle; - -}; - -struct _I830DVORec { - int bus_type; - int flags; - I2CBusPtr pI2CBus; - I2CBusPtr pDDCBus; - xf86MonPtr MonInfo; - struct _I830RegI2CDriver *i2c_drv; }; -typedef struct _I830SDVORec { +typedef struct _I830SDVODriver { int found; I2CDevRec d; unsigned char sdvo_regs[20]; } I830SDVORec, *I830SDVOPtr; +struct _I830OutputRec { + int type; + int pipe; + int flags; + xf86MonPtr MonInfo; + I2CBusPtr pI2CBus; + I2CBusPtr pDDCBus; + struct _I830DVODriver *i2c_drv; + struct _I830SDVODriver *sdvo_drv; +}; + typedef struct _I830Rec { unsigned char *MMIOBase; unsigned char *FbBase; @@ -482,10 +493,10 @@ typedef struct _I830Rec { int MaxClock; int ddc2; - int num_dvos; + int num_outputs; - struct _I830DVORec dvos[MAX_DVOS]; - I830SDVOPtr sdvo; + struct _I830OutputRec output[MAX_OUTPUTS]; + // I830SDVOPtr sdvo; } I830Rec; #define I830PTR(p) ((I830Ptr)((p)->driverPrivate)) |