diff options
Diffstat (limited to 'xorg-server/hw/xfree86/ramdac/BT.c')
-rw-r--r-- | xorg-server/hw/xfree86/ramdac/BT.c | 158 |
1 files changed, 80 insertions, 78 deletions
diff --git a/xorg-server/hw/xfree86/ramdac/BT.c b/xorg-server/hw/xfree86/ramdac/BT.c index 5aa27a1f8..533344513 100644 --- a/xorg-server/hw/xfree86/ramdac/BT.c +++ b/xorg-server/hw/xfree86/ramdac/BT.c @@ -37,36 +37,37 @@ void BTramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr, - RamDacRegRecPtr ramdacReg) + RamDacRegRecPtr ramdacReg) { - int i; - - /* Here we pass a short, so that we can evaluate a mask too */ - /* So that the mask is the high byte and the data the low byte */ - /* Just the command/status registers */ - for (i=0x06;i<0x0A;i++) - (*ramdacPtr->WriteDAC) - (pScrn, i, (ramdacReg->DacRegs[i] & 0xFF00) >> 8, - ramdacReg->DacRegs[i]); + int i; + + /* Here we pass a short, so that we can evaluate a mask too */ + /* So that the mask is the high byte and the data the low byte */ + /* Just the command/status registers */ + for (i = 0x06; i < 0x0A; i++) + (*ramdacPtr->WriteDAC) + (pScrn, i, (ramdacReg->DacRegs[i] & 0xFF00) >> 8, + ramdacReg->DacRegs[i]); } void -BTramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr, - RamDacRegRecPtr ramdacReg) +BTramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPtr, + RamDacRegRecPtr ramdacReg) { - int i; - - (*ramdacPtr->ReadAddress)(pScrn, 0); /* Start at index 0 */ - for (i=0;i<768;i++) - ramdacReg->DAC[i] = (*ramdacPtr->ReadData)(pScrn); - - /* Just the command/status registers */ - for (i=0x06;i<0x0A;i++) - ramdacReg->DacRegs[i] = (*ramdacPtr->ReadDAC)(pScrn, i); + int i; + + (*ramdacPtr->ReadAddress) (pScrn, 0); /* Start at index 0 */ + for (i = 0; i < 768; i++) + ramdacReg->DAC[i] = (*ramdacPtr->ReadData) (pScrn); + + /* Just the command/status registers */ + for (i = 0x06; i < 0x0A; i++) + ramdacReg->DacRegs[i] = (*ramdacPtr->ReadDAC) (pScrn, i); } RamDacHelperRecPtr -BTramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs/*, RamDacRecPtr ramdacPtr*/) +BTramdacProbe(ScrnInfoPtr pScrn, + RamDacSupportedInfoRecPtr ramdacs /*, RamDacRecPtr ramdacPtr */ ) { RamDacRecPtr ramdacPtr = RAMDACSCRPTR(pScrn); Bool RamDacIsSupported = FALSE; @@ -75,65 +76,66 @@ BTramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs/*, RamDacRecP int i, status, cmd0; /* Save COMMAND Register 0 */ - cmd0 = (*ramdacPtr->ReadDAC)(pScrn, BT_COMMAND_REG_0); + cmd0 = (*ramdacPtr->ReadDAC) (pScrn, BT_COMMAND_REG_0); /* Ensure were going to access the STATUS Register on next read */ - (*ramdacPtr->WriteDAC)(pScrn, BT_COMMAND_REG_0, 0x7F, 0x00); + (*ramdacPtr->WriteDAC) (pScrn, BT_COMMAND_REG_0, 0x7F, 0x00); - status = (*ramdacPtr->ReadDAC)(pScrn, BT_STATUS_REG); + status = (*ramdacPtr->ReadDAC) (pScrn, BT_STATUS_REG); switch (status) { - case 0x40: - BTramdac_ID = ATT20C504_RAMDAC; - break; - case 0xD0: - BTramdac_ID = ATT20C505_RAMDAC; - break; - default: - xf86DrvMsg(pScrn->scrnIndex, X_PROBED, - "Unknown BT RAMDAC type (0x%x), assuming BT485\n", - status); - case 0x80: - case 0x90: - case 0xA0: - case 0xB0: - case 0x28: /* This is for the DEC TGA - Questionable ? */ - BTramdac_ID = BT485_RAMDAC; - break; + case 0x40: + BTramdac_ID = ATT20C504_RAMDAC; + break; + case 0xD0: + BTramdac_ID = ATT20C505_RAMDAC; + break; + default: + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, + "Unknown BT RAMDAC type (0x%x), assuming BT485\n", status); + case 0x80: + case 0x90: + case 0xA0: + case 0xB0: + case 0x28: /* This is for the DEC TGA - Questionable ? */ + BTramdac_ID = BT485_RAMDAC; + break; } /* Restore COMMAND Register 0 */ - (*ramdacPtr->WriteDAC)(pScrn, BT_COMMAND_REG_0, 0x00, cmd0); + (*ramdacPtr->WriteDAC) (pScrn, BT_COMMAND_REG_0, 0x00, cmd0); if (BTramdac_ID == -1) { - xf86DrvMsg(pScrn->scrnIndex, X_PROBED, - "Cannot determine BT RAMDAC type, aborting\n"); - return NULL; - } else { - xf86DrvMsg(pScrn->scrnIndex, X_PROBED, - "Attached RAMDAC is %s\n", BTramdacDeviceInfo[BTramdac_ID&0xFFFF].DeviceName); + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, + "Cannot determine BT RAMDAC type, aborting\n"); + return NULL; + } + else { + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, + "Attached RAMDAC is %s\n", + BTramdacDeviceInfo[BTramdac_ID & 0xFFFF].DeviceName); } - for (i=0;ramdacs[i].token != -1;i++) { - if (ramdacs[i].token == BTramdac_ID) - RamDacIsSupported = TRUE; + for (i = 0; ramdacs[i].token != -1; i++) { + if (ramdacs[i].token == BTramdac_ID) + RamDacIsSupported = TRUE; } if (!RamDacIsSupported) { - xf86DrvMsg(pScrn->scrnIndex, X_PROBED, - "This BT RAMDAC is NOT supported by this driver, aborting\n"); - return NULL; + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, + "This BT RAMDAC is NOT supported by this driver, aborting\n"); + return NULL; } ramdacHelperPtr = RamDacHelperCreateInfoRec(); - switch(BTramdac_ID) { - case BT485_RAMDAC: - ramdacHelperPtr->SetBpp = BTramdacSetBpp; - break; + switch (BTramdac_ID) { + case BT485_RAMDAC: + ramdacHelperPtr->SetBpp = BTramdacSetBpp; + break; } ramdacPtr->RamDacType = BTramdac_ID; ramdacHelperPtr->RamDacType = BTramdac_ID; ramdacHelperPtr->Save = BTramdacSave; ramdacHelperPtr->Restore = BTramdacRestore; - + return ramdacHelperPtr; } @@ -143,23 +145,23 @@ BTramdacSetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr ramdacReg) /* We need to deal with Direct Colour visuals for 8bpp and other * good stuff for colours */ switch (pScrn->bitsPerPixel) { - case 32: - ramdacReg->DacRegs[BT_COMMAND_REG_1] = 0x10; - break; - case 24: - ramdacReg->DacRegs[BT_COMMAND_REG_1] = 0x10; - break; - case 16: - ramdacReg->DacRegs[BT_COMMAND_REG_1] = 0x38; - break; - case 15: - ramdacReg->DacRegs[BT_COMMAND_REG_1] = 0x30; - break; - case 8: - ramdacReg->DacRegs[BT_COMMAND_REG_1] = 0x40; - break; - case 4: - ramdacReg->DacRegs[BT_COMMAND_REG_1] = 0x60; - break; + case 32: + ramdacReg->DacRegs[BT_COMMAND_REG_1] = 0x10; + break; + case 24: + ramdacReg->DacRegs[BT_COMMAND_REG_1] = 0x10; + break; + case 16: + ramdacReg->DacRegs[BT_COMMAND_REG_1] = 0x38; + break; + case 15: + ramdacReg->DacRegs[BT_COMMAND_REG_1] = 0x30; + break; + case 8: + ramdacReg->DacRegs[BT_COMMAND_REG_1] = 0x40; + break; + case 4: + ramdacReg->DacRegs[BT_COMMAND_REG_1] = 0x60; + break; } } |