1 | /* $XFree86$ */ |
2 | /* $XdotOrg$ */ |
3 | /* |
4 | * Data and prototypes for init301.c |
5 | * |
6 | * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria |
7 | * |
8 | * If distributed as part of the Linux kernel, the following license terms |
9 | * apply: |
10 | * |
11 | * * This program is free software; you can redistribute it and/or modify |
12 | * * it under the terms of the GNU General Public License as published by |
13 | * * the Free Software Foundation; either version 2 of the named License, |
14 | * * or any later version. |
15 | * * |
16 | * * This program is distributed in the hope that it will be useful, |
17 | * * but WITHOUT ANY WARRANTY; without even the implied warranty of |
18 | * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
19 | * * GNU General Public License for more details. |
20 | * * |
21 | * * You should have received a copy of the GNU General Public License |
22 | * * along with this program; if not, write to the Free Software |
23 | * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA |
24 | * |
25 | * Otherwise, the following license terms apply: |
26 | * |
27 | * * Redistribution and use in source and binary forms, with or without |
28 | * * modification, are permitted provided that the following conditions |
29 | * * are met: |
30 | * * 1) Redistributions of source code must retain the above copyright |
31 | * * notice, this list of conditions and the following disclaimer. |
32 | * * 2) Redistributions in binary form must reproduce the above copyright |
33 | * * notice, this list of conditions and the following disclaimer in the |
34 | * * documentation and/or other materials provided with the distribution. |
35 | * * 3) The name of the author may not be used to endorse or promote products |
36 | * * derived from this software without specific prior written permission. |
37 | * * |
38 | * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
39 | * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
40 | * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
41 | * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
42 | * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
43 | * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
44 | * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
45 | * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
46 | * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
47 | * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
48 | * |
49 | * Author: Thomas Winischhofer <thomas@winischhofer.net> |
50 | * |
51 | */ |
52 | |
53 | #ifndef _INIT301_H_ |
54 | #define _INIT301_H_ |
55 | |
56 | #include "initdef.h" |
57 | |
58 | #include "vgatypes.h" |
59 | #include "vstruct.h" |
60 | #ifdef SIS_CP |
61 | #undef SIS_CP |
62 | #endif |
63 | #include <linux/types.h> |
64 | #include <asm/io.h> |
65 | #include <linux/fb.h> |
66 | #include "sis.h" |
67 | #include <video/sisfb.h> |
68 | |
69 | void SiS_UnLockCRT2(struct SiS_Private *SiS_Pr); |
70 | void SiS_EnableCRT2(struct SiS_Private *SiS_Pr); |
71 | unsigned short SiS_GetRatePtr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex); |
72 | void SiS_WaitRetrace1(struct SiS_Private *SiS_Pr); |
73 | bool SiS_IsDualEdge(struct SiS_Private *SiS_Pr); |
74 | bool SiS_IsVAMode(struct SiS_Private *SiS_Pr); |
75 | void SiS_GetVBInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, |
76 | unsigned short ModeIdIndex, int checkcrt2mode); |
77 | void SiS_SetYPbPr(struct SiS_Private *SiS_Pr); |
78 | void SiS_SetTVMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo, |
79 | unsigned short ModeIdIndex); |
80 | void SiS_GetLCDResInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, |
81 | unsigned short ModeIdIndex); |
82 | unsigned short SiS_GetVCLK2Ptr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, |
83 | unsigned short RefreshRateTableIndex); |
84 | unsigned short SiS_GetResInfo(struct SiS_Private *SiS_Pr,unsigned short ModeNo,unsigned short ModeIdIndex); |
85 | void SiS_DisableBridge(struct SiS_Private *SiS_Pr); |
86 | bool SiS_SetCRT2Group(struct SiS_Private *SiS_Pr, unsigned short ModeNo); |
87 | void SiS_SiS30xBLOn(struct SiS_Private *SiS_Pr); |
88 | void SiS_SiS30xBLOff(struct SiS_Private *SiS_Pr); |
89 | |
90 | void SiS_SetCH700x(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val); |
91 | unsigned short SiS_GetCH700x(struct SiS_Private *SiS_Pr, unsigned short tempax); |
92 | void SiS_SetCH701x(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val); |
93 | unsigned short SiS_GetCH701x(struct SiS_Private *SiS_Pr, unsigned short tempax); |
94 | void SiS_SetCH70xxANDOR(struct SiS_Private *SiS_Pr, unsigned short reg, |
95 | unsigned char orval,unsigned short andval); |
96 | #ifdef CONFIG_FB_SIS_315 |
97 | void SiS_Chrontel701xBLOn(struct SiS_Private *SiS_Pr); |
98 | void SiS_Chrontel701xBLOff(struct SiS_Private *SiS_Pr); |
99 | #endif /* 315 */ |
100 | |
101 | #ifdef CONFIG_FB_SIS_300 |
102 | void SiS_SetChrontelGPIO(struct SiS_Private *SiS_Pr, unsigned short myvbinfo); |
103 | #endif |
104 | |
105 | void SiS_DDC2Delay(struct SiS_Private *SiS_Pr, unsigned int delaytime); |
106 | unsigned short SiS_ReadDDC1Bit(struct SiS_Private *SiS_Pr); |
107 | unsigned short SiS_HandleDDC(struct SiS_Private *SiS_Pr, unsigned int VBFlags, int VGAEngine, |
108 | unsigned short adaptnum, unsigned short DDCdatatype, |
109 | unsigned char *buffer, unsigned int VBFlags2); |
110 | |
111 | extern void SiS_DisplayOff(struct SiS_Private *SiS_Pr); |
112 | extern void SiS_DisplayOn(struct SiS_Private *SiS_Pr); |
113 | extern bool SiS_SearchModeID(struct SiS_Private *, unsigned short *, unsigned short *); |
114 | extern unsigned short SiS_GetModeFlag(struct SiS_Private *SiS_Pr, unsigned short ModeNo, |
115 | unsigned short ModeIdIndex); |
116 | extern unsigned short SiS_GetModePtr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex); |
117 | extern unsigned short SiS_GetColorDepth(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex); |
118 | extern unsigned short SiS_GetOffset(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, |
119 | unsigned short RefreshRateTableIndex); |
120 | extern void SiS_LoadDAC(struct SiS_Private *SiS_Pr, unsigned short ModeNo, |
121 | unsigned short ModeIdIndex); |
122 | extern void SiS_CalcLCDACRT1Timing(struct SiS_Private *SiS_Pr, unsigned short ModeNo, |
123 | unsigned short ModeIdIndex); |
124 | extern void SiS_CalcCRRegisters(struct SiS_Private *SiS_Pr, int depth); |
125 | extern unsigned short SiS_GetRefCRTVCLK(struct SiS_Private *SiS_Pr, unsigned short Index, int UseWide); |
126 | extern unsigned short SiS_GetRefCRT1CRTC(struct SiS_Private *SiS_Pr, unsigned short Index, int UseWide); |
127 | #ifdef CONFIG_FB_SIS_300 |
128 | extern void SiS_GetFIFOThresholdIndex300(struct SiS_Private *SiS_Pr, unsigned short *tempbx, |
129 | unsigned short *tempcl); |
130 | extern unsigned short SiS_GetFIFOThresholdB300(unsigned short tempbx, unsigned short tempcl); |
131 | extern unsigned short SiS_GetLatencyFactor630(struct SiS_Private *SiS_Pr, unsigned short index); |
132 | extern unsigned int sisfb_read_nbridge_pci_dword(struct SiS_Private *SiS_Pr, int reg); |
133 | extern unsigned int sisfb_read_lpc_pci_dword(struct SiS_Private *SiS_Pr, int reg); |
134 | #endif |
135 | |
136 | #endif |
137 | |