Fix probing of the sample CH7017 device I found by allowing GPIO overrides.

It may be that the LVDS chips need to be DVOA and GPIOB only on mobility
devices with them, and DVOC/GPIOE on non-mobility like this 845.  But until
more examples are found, just make this one device probe.
This commit is contained in:
Eric Anholt 2007-10-01 16:23:30 -07:00
parent 219354af21
commit 263d48ad93
2 changed files with 9 additions and 2 deletions

View File

@ -221,6 +221,7 @@ struct _I830DVODriver {
char *modulename;
char *fntablename;
unsigned int dvo_reg;
uint32_t gpio;
int address;
const char **symbols;
I830I2CVidOutputRec *vid_rec;

View File

@ -99,9 +99,10 @@ struct _I830DVODriver i830_dvo_drivers[] =
.type = I830_OUTPUT_DVO_LVDS,
.modulename = "ch7017",
.fntablename = "ch7017_methods",
.dvo_reg = DVOA,
.dvo_reg = DVOC,
.address = 0xea,
.symbols = ch7017_symbols,
.gpio = GPIOE,
}
};
@ -430,7 +431,12 @@ i830_dvo_init(ScrnInfoPtr pScrn)
ret_ptr = NULL;
drv->vid_rec = LoaderSymbol(drv->fntablename);
if (drv->type == I830_OUTPUT_DVO_LVDS)
/* Allow the I2C driver info to specify the GPIO to be used in
* special cases, but otherwise default to what's defined in the spec.
*/
if (drv->gpio != 0)
gpio = drv->gpio;
else if (drv->type == I830_OUTPUT_DVO_LVDS)
gpio = GPIOB;
else
gpio = GPIOE;