Fix my nv10 cursor.
[nouveau] / src / nv_proto.h
1 /* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_proto.h,v 1.11 2004/03/20 01:52:16 mvojkovi Exp $ */
2
3 #ifndef __NV_PROTO_H__
4 #define __NV_PROTO_H__
5
6 /* in nv_accel_common.c */
7 Bool NVAccelCommonInit(ScrnInfoPtr pScrn);
8 Bool NVAccelGetCtxSurf2DFormatFromPixmap(PixmapPtr pPix, int *fmt_ret);
9 Bool NVAccelGetCtxSurf2DFormatFromPicture(PicturePtr pPix, int *fmt_ret);
10 PixmapPtr NVGetDrawablePixmap(DrawablePtr pDraw);
11
12 /* in nv_driver.c */
13 Bool   NVSwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
14 void   NVAdjustFrame(int scrnIndex, int x, int y, int flags);
15 Bool   NVI2CInit(ScrnInfoPtr pScrn);
16 Bool NVMatchModePrivate(DisplayModePtr mode, uint32_t flags);
17
18 /* in nv_dri.c */
19 Bool NVDRIScreenInit(ScrnInfoPtr pScrn);
20 Bool NVDRIFinishScreenInit(ScrnInfoPtr pScrn);
21 extern const char *drmSymbols[], *driSymbols[];
22 Bool NVDRIGetVersion(ScrnInfoPtr pScrn);
23
24 /* in nv_dac.c */
25 Bool   NVDACInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
26 void   NVDACSave(ScrnInfoPtr pScrn, vgaRegPtr vgaReg,
27                  NVRegPtr nvReg, Bool saveFonts);
28 void   NVDACRestore(ScrnInfoPtr pScrn, vgaRegPtr vgaReg,
29                     NVRegPtr nvReg, Bool restoreFonts);
30 void   NVDACLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
31                         LOCO *colors, VisualPtr pVisual );
32 Bool   NVDACi2cInit(ScrnInfoPtr pScrn);
33
34 /* in nv_video.c */
35 void NVInitVideo(ScreenPtr);
36 void NVWaitVSync(ScrnInfoPtr pScrn, int crtc);
37 void NVSetPortDefaults (ScrnInfoPtr pScrn, NVPortPrivPtr pPriv);
38 unsigned int nv_window_belongs_to_crtc(ScrnInfoPtr, int, int, int, int);
39
40 /* in nv_setup.c */
41 void   RivaEnterLeave(ScrnInfoPtr pScrn, Bool enter);
42 void   NVCommonSetup(ScrnInfoPtr pScrn);
43
44 /* in nv_cursor.c */
45 Bool   NVCursorInit(ScreenPtr pScreen);
46 Bool NVCursorInitRandr12(ScreenPtr pScreen);
47 void nv_crtc_show_cursor(xf86CrtcPtr crtc);
48 void nv_crtc_hide_cursor(xf86CrtcPtr crtc);
49 void nv_crtc_set_cursor_position(xf86CrtcPtr crtc, int x, int y);
50 void nv_crtc_set_cursor_colors(xf86CrtcPtr crtc, int bg, int fg);
51 void nv_crtc_load_cursor_image(xf86CrtcPtr crtc, CARD8 *image);
52 void nv_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image);
53 void nv_crtc_fix_nv40_hw_cursor(ScrnInfoPtr pScrn, uint8_t head);
54 void nv_crtc_show_hide_cursor(ScrnInfoPtr pScrn, uint8_t head, Bool show);
55
56 /* in nv_dma.c */
57 void  NVSync(ScrnInfoPtr pScrn);
58 void  NVResetGraphics(ScrnInfoPtr pScrn);
59 Bool  NVInitDma(ScrnInfoPtr pScrn);
60
61 /* in nv_exa.c */
62 Bool NVExaInit(ScreenPtr pScreen);
63 Bool NVExaPixmapIsOnscreen(PixmapPtr pPixmap);
64
65 /* in nv_hw.c */
66 void NVCalcStateExt(NVPtr,struct _riva_hw_state *,int,int,int,int,int,int);
67 void NVLoadStateExt(ScrnInfoPtr pScrn,struct _riva_hw_state *);
68 void NVUnloadStateExt(NVPtr,struct _riva_hw_state *);
69 void NVSetStartAddress(NVPtr,CARD32);
70
71 /* in nv_shadow.c */
72 void NVRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
73 void NVRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
74 void NVRefreshArea16(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
75 void NVRefreshArea32(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
76 void NVPointerMoved(int index, int x, int y);
77
78 /* in nv_bios.c */
79 unsigned int NVParseBios(ScrnInfoPtr pScrn);
80 void call_lvds_script(ScrnInfoPtr pScrn, int head, int dcb_entry, enum LVDS_script script, int pxclk);
81 void run_tmds_table(ScrnInfoPtr pScrn, int dcb_entry, int head, int pxclk);
82 int getMNP_single(ScrnInfoPtr pScrn, struct pll_lims *pll_lim, int clk, int *NM, int *log2P);
83 int getMNP_double(ScrnInfoPtr pScrn, struct pll_lims *pll_lim, int clk, int *NM1, int *NM2, int *log2P);
84 bool get_pll_limits(ScrnInfoPtr pScrn, uint32_t limit_match, struct pll_lims *pll_lim);
85 void setup_edid_dual_link_lvds(ScrnInfoPtr pScrn, int pxclk);
86
87 /* nv_crtc.c */
88 DisplayModePtr NVCrtcFindClosestMode(xf86CrtcPtr crtc, DisplayModePtr pMode);
89 void NVCrtcSetBase (xf86CrtcPtr crtc, int x, int y, Bool bios_restore);
90 void NVCrtcSetCursor(xf86CrtcPtr crtc, Bool state);
91 void nv_crtc_init(ScrnInfoPtr pScrn, int crtc_num);
92 void NVCrtcLockUnlock(xf86CrtcPtr crtc, Bool lock);
93 xf86OutputPtr NVGetOutputFromCRTC(xf86CrtcPtr crtc);
94 xf86CrtcPtr nv_find_crtc_by_index(ScrnInfoPtr pScrn, int index);
95 uint32_t NVCrtcReadCRTC(xf86CrtcPtr crtc, uint32_t reg);
96 void NVCrtcWriteCRTC(xf86CrtcPtr crtc, uint32_t reg, uint32_t val);
97 uint32_t NVCrtcReadRAMDAC(xf86CrtcPtr crtc, uint32_t reg);
98 void NVCrtcWriteRAMDAC(xf86CrtcPtr crtc, uint32_t reg, uint32_t val);
99
100 /* nv_output.c */
101 void NvSetupOutputs(ScrnInfoPtr pScrn);
102 void NVOutputWriteRAMDAC(xf86OutputPtr output, uint32_t ramdac_reg, uint32_t val);
103 uint32_t NVOutputReadRAMDAC(xf86OutputPtr output, uint32_t ramdac_reg);
104 void NVWriteTMDS(NVPtr pNv, int ramdac, uint32_t tmds_reg, uint32_t val);
105 uint8_t NVReadTMDS(NVPtr pNv, int ramdac, uint32_t tmds_reg);
106 uint32_t nv_get_clock_from_crtc(ScrnInfoPtr pScrn, RIVA_HW_STATE *state, uint8_t crtc);
107 uint32_t nv_calc_tmds_clock_from_pll(xf86OutputPtr output);
108 void nv_set_tmds_registers(xf86OutputPtr output, uint32_t clock, Bool override, Bool crosswired);
109 void NVOutputModeFix(xf86OutputPtr output);
110
111 /* nv_hw.c */
112 uint32_t NVReadCRTC(NVPtr pNv, int head, uint32_t reg);
113 void NVWriteCRTC(NVPtr pNv, int head, uint32_t reg, uint32_t val);
114 uint32_t NVReadRAMDAC(NVPtr pNv, int head, uint32_t reg);
115 void NVWriteRAMDAC(NVPtr pNv, int head, uint32_t reg, uint32_t val);
116 void NVWriteVgaCrtc(NVPtr pNv, int head, uint8_t index, uint8_t value);
117 uint8_t NVReadVgaCrtc(NVPtr pNv, int head, uint8_t index);
118 void NVWriteVgaCrtc5758(NVPtr pNv, int head, uint8_t index, uint8_t value);
119 uint8_t NVReadVgaCrtc5758(NVPtr pNv, int head, uint8_t index);
120 uint8_t NVReadPVIO(NVPtr pNv, int head, uint16_t port);
121 void NVWritePVIO(NVPtr pNv, int head, uint16_t port, uint8_t value);
122 void NVWriteVgaSeq(NVPtr pNv, int head, uint8_t index, uint8_t value);
123 uint8_t NVReadVgaSeq(NVPtr pNv, int head, uint8_t index);
124 void NVWriteVgaGr(NVPtr pNv, int head, uint8_t index, uint8_t value);
125 uint8_t NVReadVgaGr(NVPtr pNv, int head, uint8_t index);
126 void NVSetEnablePalette(NVPtr pNv, int head, bool enable);
127 void NVWriteVgaAttr(NVPtr pNv, int head, uint8_t index, uint8_t value);
128 uint8_t NVReadVgaAttr(NVPtr pNv, int head, uint8_t index);
129 void NVVgaSeqReset(NVPtr pNv, int head, bool start);
130 void NVVgaProtect(NVPtr pNv, int head, bool protect);
131 void NVSetOwner(ScrnInfoPtr pScrn, int head);
132 void NVLockVgaCrtc(NVPtr pNv, int head, bool lock);
133 void NVBlankScreen(ScrnInfoPtr pScrn, int head, bool blank);
134 void nForceUpdateArbitrationSettings (unsigned VClk, unsigned pixelDepth,
135                                       unsigned     *burst, unsigned     *lwm,
136                                       NVPtr        pNv);
137 void nv30UpdateArbitrationSettings (NVPtr        pNv,
138                                     unsigned     *burst,
139                                     unsigned     *lwm);
140 void nv10UpdateArbitrationSettings (unsigned      VClk, 
141                                     unsigned      pixelDepth, 
142                                     unsigned     *burst,
143                                     unsigned     *lwm,
144                                     NVPtr        pNv);
145 void nv4UpdateArbitrationSettings (unsigned      VClk, 
146                                    unsigned      pixelDepth, 
147                                    unsigned     *burst,
148                                    unsigned     *lwm,
149                                    NVPtr        pNv);
150
151 /* in nv_i2c.c */
152 Bool NV_I2CInit(ScrnInfoPtr pScrn, I2CBusPtr *bus_ptr, int i2c_reg, char *name);
153
154 /* in nv04_video_overlay.c */
155 void NV04PutOverlayImage(ScrnInfoPtr, int, int, int, BoxPtr,
156                 int, int, int, int, short, short, short, short,
157                 short, short, RegionPtr clipBoxes);
158 int NV04SetOverlayPortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
159 int NV04GetOverlayPortAttribute(ScrnInfoPtr, Atom, INT32 *, pointer);
160 void NV04StopOverlay(ScrnInfoPtr);
161
162 /* in nv04_video_blitter.c */
163 void NVPutBlitImage(ScrnInfoPtr, int, int, int, BoxPtr,
164                 int, int, int, int,
165                 short, short, short,
166                 short, short, short,
167                 RegionPtr, DrawablePtr);
168 int NVSetBlitPortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
169 int NVGetBlitPortAttribute(ScrnInfoPtr, Atom, INT32 *, pointer);
170 void NVStopBlitVideo(ScrnInfoPtr, pointer, Bool);
171
172 /* in nv10_exa.c */
173 Bool NVAccelInitNV10TCL(ScrnInfoPtr pScrn);
174 Bool NV10CheckComposite(int, PicturePtr, PicturePtr, PicturePtr);
175 Bool NV10PrepareComposite(int, PicturePtr, PicturePtr, PicturePtr,
176                                   PixmapPtr, PixmapPtr, PixmapPtr);
177 void NV10Composite(PixmapPtr, int, int, int, int, int, int, int, int);
178 void NV10DoneComposite(PixmapPtr);
179
180 /* in nv10_video_overlay.c */
181 void NV10PutOverlayImage(ScrnInfoPtr, int, int, int, int, BoxPtr,
182                 int, int, int, int, short, short, short, short, 
183                 short, short, RegionPtr clipBoxes);
184 int NV10SetOverlayPortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
185 int NV10GetOverlayPortAttribute(ScrnInfoPtr, Atom, INT32 *, pointer);
186 void NV10StopOverlay(ScrnInfoPtr);
187 void NV10WriteOverlayParameters(ScrnInfoPtr);
188
189 /* in nv30_exa.c */
190 Bool NVAccelInitNV30TCL(ScrnInfoPtr pScrn);
191 Bool NV30EXACheckComposite(int, PicturePtr, PicturePtr, PicturePtr);
192 Bool NV30EXAPrepareComposite(int, PicturePtr, PicturePtr, PicturePtr,
193                                   PixmapPtr, PixmapPtr, PixmapPtr);
194 void NV30EXAComposite(PixmapPtr, int, int, int, int, int, int, int, int);
195 void NV30EXADoneComposite(PixmapPtr);
196
197 /* in nv30_video_texture.c */
198 int NV30PutTextureImage(ScrnInfoPtr, int, int, int, int, BoxPtr,
199                 int, int, int, int, uint16_t, uint16_t,
200                 uint16_t, uint16_t, uint16_t, uint16_t,
201                 RegionPtr, DrawablePtr, NVPortPrivPtr);
202 void NV30StopTexturedVideo(ScrnInfoPtr, pointer, Bool);
203 int NV30GetTexturePortAttribute(ScrnInfoPtr, Atom, INT32 *, pointer);
204 int NV30SetTexturePortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
205
206 /* in nv40_exa.c */
207 Bool NVAccelInitNV40TCL(ScrnInfoPtr pScrn);
208 Bool NV40EXACheckComposite(int, PicturePtr, PicturePtr, PicturePtr);
209 Bool NV40EXAPrepareComposite(int, PicturePtr, PicturePtr, PicturePtr,
210                                   PixmapPtr, PixmapPtr, PixmapPtr);
211 void NV40EXAComposite(PixmapPtr, int, int, int, int, int, int, int, int);
212 void NV40EXADoneComposite(PixmapPtr);
213
214 /* in nv40_video_texture.c */
215 int NV40PutTextureImage(ScrnInfoPtr, int, int, int, int, BoxPtr,
216                 int, int, int, int, uint16_t, uint16_t,
217                 uint16_t, uint16_t, uint16_t, uint16_t,
218                 RegionPtr, DrawablePtr, NVPortPrivPtr);
219 void NV40StopTexturedVideo(ScrnInfoPtr, pointer, Bool);
220 int NV40GetTexturePortAttribute(ScrnInfoPtr, Atom, INT32 *, pointer);
221 int NV40SetTexturePortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
222
223 /* in nv50_exa.c */
224 Bool NV50EXAPrepareSolid(PixmapPtr, int, Pixel, Pixel);
225 void NV50EXASolid(PixmapPtr, int, int, int, int);
226 void NV50EXADoneSolid(PixmapPtr);
227 Bool NV50EXAPrepareCopy(PixmapPtr, PixmapPtr, int, int, int, Pixel);
228 void NV50EXACopy(PixmapPtr, int, int, int, int, int, int);
229 void NV50EXADoneCopy(PixmapPtr);
230 Bool NV50EXACheckComposite(int, PicturePtr, PicturePtr, PicturePtr);
231 Bool NV50EXAPrepareComposite(int, PicturePtr, PicturePtr, PicturePtr,
232                                   PixmapPtr, PixmapPtr, PixmapPtr);
233 void NV50EXAComposite(PixmapPtr, int, int, int, int, int, int, int, int);
234 void NV50EXADoneComposite(PixmapPtr);
235 Bool NV50EXAUploadSIFC(ScrnInfoPtr pScrn, const char *src, int src_pitch,
236                        PixmapPtr pdPix, int x, int y, int w, int h, int cpp);
237
238 /* in nv50_display.c */
239 Bool NV50CrtcModeFixup(xf86CrtcPtr crtc,
240                 DisplayModePtr mode, DisplayModePtr adjusted_mode);
241 void NV50CrtcPrepare(xf86CrtcPtr crtc);
242 void NV50CrtcModeSet(xf86CrtcPtr crtc, DisplayModePtr mode,
243                 DisplayModePtr adjusted_mode, int x, int y);
244 void NV50CrtcCommit(xf86CrtcPtr crtc);
245 void NV50CrtcSetPClk(xf86CrtcPtr crtc);
246
247 /* in nv50_cursor.c */
248 void NV50SetCursorPosition(xf86CrtcPtr crtc, int x, int y);
249 void NV50CrtcShowCursor(xf86CrtcPtr crtc);
250 void NV50CrtcHideCursor(xf86CrtcPtr crtc);
251 void NV50LoadCursorARGB(xf86CrtcPtr crtc, CARD32 *src);
252
253 /* in nv50_crtc.c */
254 void NV50DispCreateCrtcs(ScrnInfoPtr pScrn);
255 void NV50DisplayCommand(ScrnInfoPtr pScrn, CARD32 addr, CARD32 value);
256 void NV50CrtcCommand(xf86CrtcPtr crtc, CARD32 addr, CARD32 value);
257 void NV50CrtcWrite(xf86CrtcPtr crtc, CARD32 addr, CARD32 value);
258 CARD32 NV50CrtcRead(xf86CrtcPtr crtc, CARD32 addr);
259 void NV50DisplayWrite(ScrnInfoPtr pScrn, CARD32 addr, CARD32 value);
260 CARD32 NV50DisplayRead(ScrnInfoPtr pScrn, CARD32 addr);
261
262 /* in nv50_output.c */
263 void NV50OrWrite(ScrnInfoPtr pScrn, int or, CARD32 addr, CARD32 value);
264 CARD32 NV50OrRead(ScrnInfoPtr pScrn, int or, CARD32 addr);
265 void NV50OutputWrite(xf86OutputPtr output, CARD32 addr, CARD32 value);
266 CARD32 NV50OutputRead(xf86OutputPtr output, CARD32 addr);
267
268
269 #endif /* __NV_PROTO_H__ */
270