summaryrefslogtreecommitdiff
path: root/src/i830.h
diff options
context:
space:
mode:
authorDave Airlie <airlied@linux.ie>2006-03-21 14:19:17 +1100
committerDave Airlie <airlied@linux.ie>2006-06-02 10:01:23 +1000
commit38a403f88d05087de08ad961f0a7a946ab8b3669 (patch)
tree2022cd9eee53d5918435f4bb91e60c05aae150c2 /src/i830.h
parentb9ec6ee94ccee9a5fe69130d34a328752785a805 (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.h47
1 files changed, 29 insertions, 18 deletions
diff --git a/src/i830.h b/src/i830.h
index 4ca622c5..c500e4ee 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -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))