Improve output bus setup to include LVDS setup for pre-i915.

This commit is contained in:
Eric Anholt 2006-07-08 15:26:19 -07:00
parent e1064f52b0
commit 5a8f6a486d
1 changed files with 11 additions and 22 deletions

View File

@ -1061,30 +1061,14 @@ I830SetupOutputBusses(ScrnInfoPtr pScrn)
I830I2CInit(pScrn, &pI830->output[i].pDDCBus, GPIOA, "CRTDDC_A");
i++;
/* need to add the output busses for each device
* - this function is very incomplete
* - i915GM has LVDS and TVOUT for example
*/
switch(pI830->PciInfo->chipType) {
case PCI_CHIP_I830_M:
case PCI_CHIP_845_G:
case PCI_CHIP_I855_GM:
case PCI_CHIP_I865_G:
pI830->output[i].type = I830_OUTPUT_DVO;
I830I2CInit(pScrn, &pI830->output[i].pDDCBus, GPIOD, "DVODDC_D");
I830I2CInit(pScrn, &pI830->output[i].pI2CBus, GPIOE, "DVOI2C_E");
i++;
break;
case PCI_CHIP_E7221_G:
/* ??? */
break;
case PCI_CHIP_I915_GM:
case PCI_CHIP_I945_GM:
if (IS_MOBILE(pI830) && !IS_I830(pI830)) {
/* Set up integrated LVDS */
pI830->output[i].type = I830_OUTPUT_LVDS;
I830I2CInit(pScrn, &pI830->output[i].pDDCBus, GPIOC, "LVDSDDC_C");
i++;
case PCI_CHIP_I915_G:
case PCI_CHIP_I945_G:
}
if (IS_I9XX(pI830)) {
/* Set up SDVOB */
pI830->output[i].type = I830_OUTPUT_SDVO;
I830I2CInit(pScrn, &pI830->output[i].pI2CBus, GPIOE, "SDVOCTRL_E");
@ -1096,7 +1080,12 @@ I830SetupOutputBusses(ScrnInfoPtr pScrn)
pI830->output[i].pI2CBus = pI830->output[i-1].pI2CBus;
I830SDVOInit(pScrn, i, SDVOC);
i++;
break;
} else {
/* set up DVO */
pI830->output[i].type = I830_OUTPUT_DVO;
I830I2CInit(pScrn, &pI830->output[i].pDDCBus, GPIOD, "DVODDC_D");
I830I2CInit(pScrn, &pI830->output[i].pI2CBus, GPIOE, "DVOI2C_E");
i++;
}
pI830->num_outputs = i;
}