sis_dac.h revision 72b676d7
1/* $XFree86$ */ 2/* $XdotOrg$ */ 3/* 4 * DAC helper functions (Save/Restore, MemClk, etc) 5 * Definitions and prototypes 6 * 7 * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 1) Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 2) Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 3) The name of the author may not be used to endorse or promote products 18 * derived from this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 21 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 22 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 23 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 24 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 25 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 29 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 * 31 */ 32 33int SiS_compute_vclk(int Clock, int *out_n, int *out_dn, int *out_div, 34 int *out_sbit, int *out_scale); 35void SISDACPreInit(ScrnInfoPtr pScrn); 36void SISLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indicies, 37 LOCO *colors, VisualPtr pVisual); 38void SiSCalcClock(ScrnInfoPtr pScrn, int clock, int max_VLD, 39 unsigned int *vclk); 40void SiSIODump(ScrnInfoPtr pScrn); 41int SiSMemBandWidth(ScrnInfoPtr pScrn, Bool IsForCRT2); 42int SiSMclk(SISPtr pSiS); 43void SiSRestoreBridge(ScrnInfoPtr pScrn, SISRegPtr sisReg); 44void SiS_UpdateGammaCRT2(ScrnInfoPtr pScrn); 45 46extern void SiS6326SetTVReg(ScrnInfoPtr pScrn, CARD8 index, CARD8 data); 47extern UChar SiS6326GetTVReg(ScrnInfoPtr pScrn, CARD8 index); 48extern void SiS6326SetXXReg(ScrnInfoPtr pScrn, CARD8 index, CARD8 data); 49extern UChar SiS6326GetXXReg(ScrnInfoPtr pScrn, CARD8 index); 50 51extern float SiSCalcVRate(DisplayModePtr mode); 52 53extern void SISCalculateGammaRampCRT2(ScrnInfoPtr pScrn); 54 55/* Functions from init.c and init301.c (use their datatypes!) */ 56extern void SiS_UnLockCRT2(struct SiS_Private *SiS_Pr); 57extern void SiS_LockCRT2(struct SiS_Private *SiS_Pr); 58extern void SiS_DisableBridge(struct SiS_Private *SiS_Pr); 59extern void SiS_EnableBridge(struct SiS_Private *SiS_Pr); 60extern unsigned short SiS_GetCH700x(struct SiS_Private *SiS_Pr, unsigned short reg); 61extern void SiS_SetCH700x(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val); 62extern unsigned short SiS_GetCH701x(struct SiS_Private *SiS_Pr, unsigned short reg); 63extern void SiS_SetCH701x(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val); 64extern unsigned short SiS_GetCH70xx(struct SiS_Private *SiS_Pr, unsigned short reg); 65extern void SiS_SetCH70xx(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val); 66extern void SiS_SetCH70xxANDOR(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char orval, unsigned char andval); 67extern void SiS_DDC2Delay(struct SiS_Private *SiS_Pr, unsigned int delaytime); 68extern unsigned short SiS_ReadDDC1Bit(struct SiS_Private *SiS_Pr); 69extern unsigned short SiS_HandleDDC(struct SiS_Private *SiS_Pr, unsigned int VBFlags, int VGAEngine, 70 unsigned short adaptnum, unsigned short DDCdatatype, unsigned char *buffer, 71 unsigned int VBFlags2); 72extern void SiS_SetChrontelGPIO(struct SiS_Private *SiS_Pr, unsigned short myvbinfo); 73extern void SiS_DisplayOn(struct SiS_Private *SiS_Pr); 74extern unsigned char SiS_GetSetModeID(ScrnInfoPtr pScrn, unsigned char id); 75extern void SiS_SetEnableDstn(struct SiS_Private *SiS_Pr, int enable); 76extern void SiS_SetEnableFstn(struct SiS_Private *SiS_Pr, int enable); 77extern void SiSRegInit(struct SiS_Private *SiS_Pr, unsigned short BaseAddr); 78extern void SiSSetLVDSetc(struct SiS_Private *SiS_Pr, unsigned short ModeNo); 79extern void SiS_GetVBType(struct SiS_Private *SiS_Pr); 80/* End of init.c/init301.c imports */ 81