1 /* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_proto.h,v 1.11 2004/03/20 01:52:16 mvojkovi Exp $ */
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);
13 Bool NVI2CInit(ScrnInfoPtr pScrn);
14 Bool NVMatchModePrivate(DisplayModePtr mode, uint32_t flags);
17 Bool NVDRIScreenInit(ScrnInfoPtr pScrn);
18 Bool NVDRIFinishScreenInit(ScrnInfoPtr pScrn);
19 void NVDRICloseScreen(ScrnInfoPtr pScrn);
20 extern const char *drmSymbols[], *driSymbols[];
21 Bool NVDRIGetVersion(ScrnInfoPtr pScrn);
24 Bool NVDACInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
25 void NVDACSave(ScrnInfoPtr pScrn, vgaRegPtr vgaReg,
26 NVRegPtr nvReg, Bool saveFonts);
27 void NVDACRestore(ScrnInfoPtr pScrn, vgaRegPtr vgaReg,
28 NVRegPtr nvReg, Bool restoreFonts);
29 void NVDACLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
30 LOCO *colors, VisualPtr pVisual );
31 Bool NVDACi2cInit(ScrnInfoPtr pScrn);
34 void NVInitVideo(ScreenPtr);
35 void NVWaitVSync(ScrnInfoPtr pScrn, int crtc);
36 void NVSetPortDefaults (ScrnInfoPtr pScrn, NVPortPrivPtr pPriv);
37 unsigned int nv_window_belongs_to_crtc(ScrnInfoPtr, int, int, int, int);
40 void RivaEnterLeave(ScrnInfoPtr pScrn, Bool enter);
41 void NVCommonSetup(ScrnInfoPtr pScrn);
44 Bool NVCursorInit(ScreenPtr pScreen);
45 Bool NVCursorInitRandr12(ScreenPtr pScreen);
46 void nv_crtc_show_cursor(xf86CrtcPtr crtc);
47 void nv_crtc_hide_cursor(xf86CrtcPtr crtc);
48 void nv_crtc_set_cursor_position(xf86CrtcPtr crtc, int x, int y);
49 void nv_crtc_set_cursor_colors(xf86CrtcPtr crtc, int bg, int fg);
50 void nv_crtc_load_cursor_image(xf86CrtcPtr crtc, CARD8 *image);
51 void nv_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image);
52 void nv_crtc_fix_nv40_hw_cursor(ScrnInfoPtr pScrn, uint8_t head);
53 void nv_crtc_show_hide_cursor(ScrnInfoPtr pScrn, uint8_t head, Bool show);
56 void NVSync(ScrnInfoPtr pScrn);
57 Bool NVInitDma(ScrnInfoPtr pScrn);
60 Bool NVExaInit(ScreenPtr pScreen);
61 Bool NVExaPixmapIsOnscreen(PixmapPtr pPixmap);
64 void NVCalcStateExt(NVPtr,struct _riva_hw_state *,int,int,int,int,int,int);
65 void NVLoadStateExt(ScrnInfoPtr pScrn,struct _riva_hw_state *);
66 void NVUnloadStateExt(NVPtr,struct _riva_hw_state *);
67 void NVSetStartAddress(NVPtr,CARD32);
70 void NVRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
71 void NVRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
72 void NVRefreshArea16(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
73 void NVRefreshArea32(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
74 void NVPointerMoved(int index, int x, int y);
77 unsigned int NVParseBios(ScrnInfoPtr pScrn);
78 void call_lvds_script(ScrnInfoPtr pScrn, struct dcb_entry *dcbent, int head, enum LVDS_script script, int pxclk);
79 void run_tmds_table(ScrnInfoPtr pScrn, struct dcb_entry *dcbent, int head, int pxclk);
80 int getMNP_single(ScrnInfoPtr pScrn, struct pll_lims *pll_lim, int clk, int *NM, int *log2P);
81 int getMNP_double(ScrnInfoPtr pScrn, struct pll_lims *pll_lim, int clk, int *NM1, int *NM2, int *log2P);
82 bool get_pll_limits(ScrnInfoPtr pScrn, uint32_t limit_match, struct pll_lims *pll_lim);
83 void setup_edid_dual_link_lvds(ScrnInfoPtr pScrn, int pxclk);
86 void NVCrtcSetBase (xf86CrtcPtr crtc, int x, int y, Bool bios_restore);
87 void nv_crtc_init(ScrnInfoPtr pScrn, int crtc_num);
88 void NVCrtcLockUnlock(xf86CrtcPtr crtc, Bool lock);
89 void NVCrtcWriteCRTC(xf86CrtcPtr crtc, uint32_t reg, uint32_t val);
90 void NVCrtcWriteRAMDAC(xf86CrtcPtr crtc, uint32_t reg, uint32_t val);
93 void NvSetupOutputs(ScrnInfoPtr pScrn);
94 uint32_t nv_get_clock_from_crtc(ScrnInfoPtr pScrn, RIVA_HW_STATE *state, uint8_t crtc);
97 uint32_t NVRead(NVPtr pNv, uint32_t reg);
98 void NVWrite(NVPtr pNv, uint32_t reg, uint32_t val);
99 uint32_t NVReadCRTC(NVPtr pNv, int head, uint32_t reg);
100 void NVWriteCRTC(NVPtr pNv, int head, uint32_t reg, uint32_t val);
101 uint32_t NVReadRAMDAC(NVPtr pNv, int head, uint32_t reg);
102 void NVWriteRAMDAC(NVPtr pNv, int head, uint32_t reg, uint32_t val);
103 uint8_t nv_read_tmds(NVPtr pNv, int or, int dl, uint8_t address);
104 int nv_get_digital_bound_head(NVPtr pNv, int or);
105 void nv_write_tmds(NVPtr pNv, int or, int dl, uint8_t address, uint8_t data);
106 void NVWriteVgaCrtc(NVPtr pNv, int head, uint8_t index, uint8_t value);
107 uint8_t NVReadVgaCrtc(NVPtr pNv, int head, uint8_t index);
108 void NVWriteVgaCrtc5758(NVPtr pNv, int head, uint8_t index, uint8_t value);
109 uint8_t NVReadVgaCrtc5758(NVPtr pNv, int head, uint8_t index);
110 uint8_t NVReadPVIO(NVPtr pNv, int head, uint16_t port);
111 void NVWritePVIO(NVPtr pNv, int head, uint16_t port, uint8_t value);
112 void NVWriteVgaSeq(NVPtr pNv, int head, uint8_t index, uint8_t value);
113 uint8_t NVReadVgaSeq(NVPtr pNv, int head, uint8_t index);
114 void NVWriteVgaGr(NVPtr pNv, int head, uint8_t index, uint8_t value);
115 uint8_t NVReadVgaGr(NVPtr pNv, int head, uint8_t index);
116 void NVSetEnablePalette(NVPtr pNv, int head, bool enable);
117 void NVWriteVgaAttr(NVPtr pNv, int head, uint8_t index, uint8_t value);
118 uint8_t NVReadVgaAttr(NVPtr pNv, int head, uint8_t index);
119 void NVVgaSeqReset(NVPtr pNv, int head, bool start);
120 void NVVgaProtect(NVPtr pNv, int head, bool protect);
121 void NVSetOwner(ScrnInfoPtr pScrn, int head);
122 void NVLockVgaCrtc(NVPtr pNv, int head, bool lock);
123 void NVBlankScreen(ScrnInfoPtr pScrn, int head, bool blank);
124 int nv_decode_pll_highregs(NVPtr pNv, uint32_t pll1, uint32_t pll2, bool force_single, int refclk);
125 void nForceUpdateArbitrationSettings (unsigned VClk, unsigned pixelDepth,
126 unsigned *burst, unsigned *lwm,
128 void nv30UpdateArbitrationSettings (NVPtr pNv,
131 void nv10UpdateArbitrationSettings (unsigned VClk,
136 void nv4UpdateArbitrationSettings (unsigned VClk,
141 uint32_t nv_pitch_align(NVPtr pNv, uint32_t width, int bpp);
144 Bool NV_I2CInit(ScrnInfoPtr pScrn, I2CBusPtr *bus_ptr, int i2c_reg, char *name);
146 /* in nv04_video_overlay.c */
147 void NV04PutOverlayImage(ScrnInfoPtr, int, int, int, BoxPtr,
148 int, int, int, int, short, short, short, short,
149 short, short, RegionPtr clipBoxes);
150 int NV04SetOverlayPortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
151 int NV04GetOverlayPortAttribute(ScrnInfoPtr, Atom, INT32 *, pointer);
152 void NV04StopOverlay(ScrnInfoPtr);
154 /* in nv04_video_blitter.c */
155 void NVPutBlitImage(ScrnInfoPtr, int, int, int, BoxPtr,
159 RegionPtr, DrawablePtr);
160 int NVSetBlitPortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
161 int NVGetBlitPortAttribute(ScrnInfoPtr, Atom, INT32 *, pointer);
162 void NVStopBlitVideo(ScrnInfoPtr, pointer, Bool);
165 Bool NVAccelInitNV10TCL(ScrnInfoPtr pScrn);
166 Bool NV10CheckComposite(int, PicturePtr, PicturePtr, PicturePtr);
167 Bool NV10PrepareComposite(int, PicturePtr, PicturePtr, PicturePtr,
168 PixmapPtr, PixmapPtr, PixmapPtr);
169 void NV10Composite(PixmapPtr, int, int, int, int, int, int, int, int);
170 void NV10DoneComposite(PixmapPtr);
172 /* in nv10_video_overlay.c */
173 void NV10PutOverlayImage(ScrnInfoPtr, int, int, int, int, BoxPtr,
174 int, int, int, int, short, short, short, short,
175 short, short, RegionPtr clipBoxes);
176 int NV10SetOverlayPortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
177 int NV10GetOverlayPortAttribute(ScrnInfoPtr, Atom, INT32 *, pointer);
178 void NV10StopOverlay(ScrnInfoPtr);
179 void NV10WriteOverlayParameters(ScrnInfoPtr);
182 Bool NVAccelInitNV30TCL(ScrnInfoPtr pScrn);
183 Bool NV30EXACheckComposite(int, PicturePtr, PicturePtr, PicturePtr);
184 Bool NV30EXAPrepareComposite(int, PicturePtr, PicturePtr, PicturePtr,
185 PixmapPtr, PixmapPtr, PixmapPtr);
186 void NV30EXAComposite(PixmapPtr, int, int, int, int, int, int, int, int);
187 void NV30EXADoneComposite(PixmapPtr);
189 /* in nv30_video_texture.c */
190 int NV30PutTextureImage(ScrnInfoPtr, int, int, int, int, BoxPtr,
191 int, int, int, int, uint16_t, uint16_t,
192 uint16_t, uint16_t, uint16_t, uint16_t,
193 RegionPtr, DrawablePtr, NVPortPrivPtr);
194 void NV30StopTexturedVideo(ScrnInfoPtr, pointer, Bool);
195 int NV30GetTexturePortAttribute(ScrnInfoPtr, Atom, INT32 *, pointer);
196 int NV30SetTexturePortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
199 Bool NVAccelInitNV40TCL(ScrnInfoPtr pScrn);
200 Bool NV40EXACheckComposite(int, PicturePtr, PicturePtr, PicturePtr);
201 Bool NV40EXAPrepareComposite(int, PicturePtr, PicturePtr, PicturePtr,
202 PixmapPtr, PixmapPtr, PixmapPtr);
203 void NV40EXAComposite(PixmapPtr, int, int, int, int, int, int, int, int);
204 void NV40EXADoneComposite(PixmapPtr);
206 /* in nv40_video_texture.c */
207 int NV40PutTextureImage(ScrnInfoPtr, int, int, int, int, BoxPtr,
208 int, int, int, int, uint16_t, uint16_t,
209 uint16_t, uint16_t, uint16_t, uint16_t,
210 RegionPtr, DrawablePtr, NVPortPrivPtr);
211 void NV40StopTexturedVideo(ScrnInfoPtr, pointer, Bool);
212 int NV40GetTexturePortAttribute(ScrnInfoPtr, Atom, INT32 *, pointer);
213 int NV40SetTexturePortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
216 Bool NV50EXAPrepareSolid(PixmapPtr, int, Pixel, Pixel);
217 void NV50EXASolid(PixmapPtr, int, int, int, int);
218 void NV50EXADoneSolid(PixmapPtr);
219 Bool NV50EXAPrepareCopy(PixmapPtr, PixmapPtr, int, int, int, Pixel);
220 void NV50EXACopy(PixmapPtr, int, int, int, int, int, int);
221 void NV50EXADoneCopy(PixmapPtr);
222 Bool NV50EXACheckComposite(int, PicturePtr, PicturePtr, PicturePtr);
223 Bool NV50EXAPrepareComposite(int, PicturePtr, PicturePtr, PicturePtr,
224 PixmapPtr, PixmapPtr, PixmapPtr);
225 void NV50EXAComposite(PixmapPtr, int, int, int, int, int, int, int, int);
226 void NV50EXADoneComposite(PixmapPtr);
227 Bool NV50EXAUploadSIFC(ScrnInfoPtr pScrn, const char *src, int src_pitch,
228 PixmapPtr pdPix, int x, int y, int w, int h, int cpp);
230 /* in nv50_display.c */
231 Bool NV50DispPreInit(ScrnInfoPtr);
232 Bool NV50DispInit(ScrnInfoPtr);
233 void NV50DispShutdown(ScrnInfoPtr);
235 /* in nv50_cursor.c */
236 Bool NV50CursorInit(ScreenPtr);
237 Bool NV50CursorAcquire(ScrnInfoPtr);
238 void NV50CursorRelease(ScrnInfoPtr);
241 void NV50DisplayCommand(ScrnInfoPtr pScrn, uint32_t addr, uint32_t value);
242 void NV50CrtcCommand(nouveauCrtcPtr crtc, uint32_t addr, uint32_t value);
243 void NV50CrtcInit(ScrnInfoPtr pScrn);
244 void NV50CrtcDestroy(ScrnInfoPtr pScrn);
246 /* in nv50_output.c */
247 int NV50OrOffset(nouveauOutputPtr output);
248 void NV50OutputSetup(ScrnInfoPtr pScrn);
249 void NV50OutputDestroy(ScrnInfoPtr pScrn);
252 void NV50DacSetFunctionPointers(nouveauOutputPtr output);
255 void NV50SorSetFunctionPointers(nouveauOutputPtr output);
256 DisplayModePtr GetLVDSNativeMode(ScrnInfoPtr pScrn);
258 /* nv50_connector.c */
259 void NV50ConnectorInit(ScrnInfoPtr pScrn);
260 void NV50ConnectorDestroy(ScrnInfoPtr pScrn);
263 void nv50_crtc_init(ScrnInfoPtr pScrn, int crtc_num);
264 void nv50_output_create(ScrnInfoPtr pScrn);
265 int nv_scaling_mode_lookup(char *name, int size);
267 #endif /* __NV_PROTO_H__ */