Lines Matching refs:pVbe

38 static unsigned char *vbeReadEDID(vbeInfoPtr pVbe);
39 static Bool vbeProbeDDC(vbeInfoPtr pVbe);
166 vbeFree(vbeInfoPtr pVbe) in vbeFree() argument
168 if (!pVbe) in vbeFree()
171 xf86Int10FreePages(pVbe->pInt10, pVbe->memory, pVbe->num_pages); in vbeFree()
173 if (pVbe->init_int10) in vbeFree()
174 xf86FreeInt10(pVbe->pInt10); in vbeFree()
175 free(pVbe); in vbeFree()
180 vbeProbeDDC(vbeInfoPtr pVbe) in vbeProbeDDC() argument
183 int screen = pVbe->pInt10->pScrn->scrnIndex; in vbeProbeDDC()
185 if (pVbe->ddc == DDC_NONE) in vbeProbeDDC()
187 if (pVbe->ddc != DDC_UNCHECKED) in vbeProbeDDC()
190 pVbe->pInt10->ax = 0x4F15; in vbeProbeDDC()
191 pVbe->pInt10->bx = 0; in vbeProbeDDC()
192 pVbe->pInt10->cx = 0; in vbeProbeDDC()
193 pVbe->pInt10->es = 0; in vbeProbeDDC()
194 pVbe->pInt10->di = 0; in vbeProbeDDC()
195 pVbe->pInt10->num = 0x10; in vbeProbeDDC()
197 xf86ExecX86int10(pVbe->pInt10); in vbeProbeDDC()
199 if ((pVbe->pInt10->ax & 0xff) != 0x4f) { in vbeProbeDDC()
201 pVbe->ddc = DDC_NONE; in vbeProbeDDC()
205 switch ((pVbe->pInt10->ax >> 8) & 0xff) { in vbeProbeDDC()
208 switch (pVbe->pInt10->bx & 0x3) { in vbeProbeDDC()
211 pVbe->ddc = DDC_NONE; in vbeProbeDDC()
215 pVbe->ddc = DDC_1; in vbeProbeDDC()
219 pVbe->ddc = DDC_2; in vbeProbeDDC()
223 pVbe->ddc = DDC_1_2; in vbeProbeDDC()
227 pVbe->ddc = DDC_NONE; in vbeProbeDDC()
231 if (pVbe->pInt10->bx & 0x4) { in vbeProbeDDC()
234 pVbe->ddc_blank = TRUE; in vbeProbeDDC()
237 pVbe->ddc_blank = FALSE; in vbeProbeDDC()
241 (pVbe->pInt10->bx >> 8) & 0xff); in vbeProbeDDC()
259 vbeReadEDID(vbeInfoPtr pVbe) in vbeReadEDID() argument
261 int RealOff = pVbe->real_mode_base; in vbeReadEDID()
262 void *page = pVbe->memory; in vbeReadEDID()
266 ScrnInfoPtr pScrn = pVbe->pInt10->pScrn; in vbeReadEDID()
282 if (!vbeProbeDDC(pVbe)) in vbeReadEDID()
288 pVbe->pInt10->ax = 0x4F15; in vbeReadEDID()
289 pVbe->pInt10->bx = 0x01; in vbeReadEDID()
290 pVbe->pInt10->cx = 0; in vbeReadEDID()
291 pVbe->pInt10->dx = 0; in vbeReadEDID()
292 pVbe->pInt10->es = SEG_ADDR(RealOff); in vbeReadEDID()
293 pVbe->pInt10->di = SEG_OFF(RealOff); in vbeReadEDID()
294 pVbe->pInt10->num = 0x10; in vbeReadEDID()
296 xf86ExecX86int10(pVbe->pInt10); in vbeReadEDID()
298 if ((pVbe->pInt10->ax & 0xff) != 0x4f) { in vbeReadEDID()
302 switch (pVbe->pInt10->ax & 0xff00) { in vbeReadEDID()
313 pVbe->pInt10->ax & 0xff00); in vbeReadEDID()
322 vbeDoEDID(vbeInfoPtr pVbe, void *unused) in vbeDoEDID() argument
326 if (!pVbe) in vbeDoEDID()
328 if (pVbe->version < 0x102) in vbeDoEDID()
331 DDC_data = vbeReadEDID(pVbe); in vbeDoEDID()
336 return xf86InterpretEDID(pVbe->pInt10->pScrn->scrnIndex, DDC_data); in vbeDoEDID()
343 VBEGetVBEInfo(vbeInfoPtr pVbe) in VBEGetVBEInfo() argument
350 memset(pVbe->memory, 0, sizeof(VbeInfoBlock)); in VBEGetVBEInfo()
363 ((char *) pVbe->memory)[0] = 'V'; in VBEGetVBEInfo()
364 ((char *) pVbe->memory)[1] = 'B'; in VBEGetVBEInfo()
365 ((char *) pVbe->memory)[2] = 'E'; in VBEGetVBEInfo()
366 ((char *) pVbe->memory)[3] = '2'; in VBEGetVBEInfo()
368 pVbe->pInt10->num = 0x10; in VBEGetVBEInfo()
369 pVbe->pInt10->ax = 0x4f00; in VBEGetVBEInfo()
370 pVbe->pInt10->es = SEG_ADDR(pVbe->real_mode_base); in VBEGetVBEInfo()
371 pVbe->pInt10->di = SEG_OFF(pVbe->real_mode_base); in VBEGetVBEInfo()
372 xf86ExecX86int10(pVbe->pInt10); in VBEGetVBEInfo()
374 if (R16(pVbe->pInt10->ax) != 0x4f) in VBEGetVBEInfo()
378 block->VESASignature[0] = ((char *) pVbe->memory)[0]; in VBEGetVBEInfo()
379 block->VESASignature[1] = ((char *) pVbe->memory)[1]; in VBEGetVBEInfo()
380 block->VESASignature[2] = ((char *) pVbe->memory)[2]; in VBEGetVBEInfo()
381 block->VESASignature[3] = ((char *) pVbe->memory)[3]; in VBEGetVBEInfo()
383 block->VESAVersion = *(CARD16 *) (((char *) pVbe->memory) + 4); in VBEGetVBEInfo()
386 pStr = GET_UNALIGNED2((((char *) pVbe->memory) + 6)); in VBEGetVBEInfo()
387 str = xf86int10Addr(pVbe->pInt10, FARP(pStr)); in VBEGetVBEInfo()
390 block->Capabilities[0] = ((char *) pVbe->memory)[10]; in VBEGetVBEInfo()
391 block->Capabilities[1] = ((char *) pVbe->memory)[11]; in VBEGetVBEInfo()
392 block->Capabilities[2] = ((char *) pVbe->memory)[12]; in VBEGetVBEInfo()
393 block->Capabilities[3] = ((char *) pVbe->memory)[13]; in VBEGetVBEInfo()
395 pModes = GET_UNALIGNED2((((char *) pVbe->memory) + 14)); in VBEGetVBEInfo()
396 modes = xf86int10Addr(pVbe->pInt10, FARP(pModes)); in VBEGetVBEInfo()
404 block->TotalMemory = *(CARD16 *) (((char *) pVbe->memory) + 18); in VBEGetVBEInfo()
407 memcpy(&block->OemSoftwareRev, ((char *) pVbe->memory) + 20, 236); in VBEGetVBEInfo()
409 block->OemSoftwareRev = *(CARD16 *) (((char *) pVbe->memory) + 20); in VBEGetVBEInfo()
410 pStr = GET_UNALIGNED2((((char *) pVbe->memory) + 22)); in VBEGetVBEInfo()
411 str = xf86int10Addr(pVbe->pInt10, FARP(pStr)); in VBEGetVBEInfo()
413 pStr = GET_UNALIGNED2((((char *) pVbe->memory) + 26)); in VBEGetVBEInfo()
414 str = xf86int10Addr(pVbe->pInt10, FARP(pStr)); in VBEGetVBEInfo()
416 pStr = GET_UNALIGNED2((((char *) pVbe->memory) + 30)); in VBEGetVBEInfo()
417 str = xf86int10Addr(pVbe->pInt10, FARP(pStr)); in VBEGetVBEInfo()
419 memcpy(&block->Reserved, ((char *) pVbe->memory) + 34, 222); in VBEGetVBEInfo()
420 memcpy(&block->OemData, ((char *) pVbe->memory) + 256, 256); in VBEGetVBEInfo()
440 VBESetVBEMode(vbeInfoPtr pVbe, int mode, VbeCRTCInfoBlock * block) in VBESetVBEMode() argument
461 pVbe->pInt10->num = 0x10; in VBESetVBEMode()
462 pVbe->pInt10->ax = 0x4f02; in VBESetVBEMode()
463 pVbe->pInt10->bx = mode; in VBESetVBEMode()
465 pVbe->pInt10->bx |= 1 << 11; in VBESetVBEMode()
466 memcpy(pVbe->memory, block, sizeof(VbeCRTCInfoBlock)); in VBESetVBEMode()
467 pVbe->pInt10->es = SEG_ADDR(pVbe->real_mode_base); in VBESetVBEMode()
468 pVbe->pInt10->di = SEG_OFF(pVbe->real_mode_base); in VBESetVBEMode()
471 pVbe->pInt10->bx &= ~(1 << 11); in VBESetVBEMode()
473 xf86ExecX86int10(pVbe->pInt10); in VBESetVBEMode()
475 return (R16(pVbe->pInt10->ax) == 0x4f); in VBESetVBEMode()
479 VBEGetVBEMode(vbeInfoPtr pVbe, int *mode) in VBEGetVBEMode() argument
491 pVbe->pInt10->num = 0x10; in VBEGetVBEMode()
492 pVbe->pInt10->ax = 0x4f03; in VBEGetVBEMode()
494 xf86ExecX86int10(pVbe->pInt10); in VBEGetVBEMode()
496 if (R16(pVbe->pInt10->ax) == 0x4f) { in VBEGetVBEMode()
497 *mode = R16(pVbe->pInt10->bx); in VBEGetVBEMode()
506 VBEGetModeInfo(vbeInfoPtr pVbe, int mode) in VBEGetModeInfo() argument
510 memset(pVbe->memory, 0, sizeof(VbeModeInfoBlock)); in VBEGetModeInfo()
524 pVbe->pInt10->num = 0x10; in VBEGetModeInfo()
525 pVbe->pInt10->ax = 0x4f01; in VBEGetModeInfo()
526 pVbe->pInt10->cx = mode; in VBEGetModeInfo()
527 pVbe->pInt10->es = SEG_ADDR(pVbe->real_mode_base); in VBEGetModeInfo()
528 pVbe->pInt10->di = SEG_OFF(pVbe->real_mode_base); in VBEGetModeInfo()
529 xf86ExecX86int10(pVbe->pInt10); in VBEGetModeInfo()
530 if (R16(pVbe->pInt10->ax) != 0x4f) in VBEGetModeInfo()
535 memcpy(block, pVbe->memory, sizeof(*block)); in VBEGetModeInfo()
547 VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction function, in VBESaveRestore() argument
589 if ((pVbe->version & 0xff00) > 0x100) { in VBESaveRestore()
590 int screen = pVbe->pInt10->pScrn->scrnIndex; in VBESaveRestore()
595 pVbe->pInt10->num = 0x10; in VBESaveRestore()
596 pVbe->pInt10->ax = 0x4f04; in VBESaveRestore()
597 pVbe->pInt10->dx = 0; in VBESaveRestore()
598 pVbe->pInt10->cx = 0x000f; in VBESaveRestore()
599 xf86ExecX86int10(pVbe->pInt10); in VBESaveRestore()
600 if (R16(pVbe->pInt10->ax) != 0x4f) in VBESaveRestore()
604 int npages = (R16(pVbe->pInt10->bx) * 64) / 4096 + 1; in VBESaveRestore()
606 if ((*memory = xf86Int10AllocPages(pVbe->pInt10, npages, in VBESaveRestore()
613 *size = pVbe->pInt10->bx * 64; in VBESaveRestore()
621 pVbe->pInt10->num = 0x10; in VBESaveRestore()
622 pVbe->pInt10->ax = 0x4f04; in VBESaveRestore()
625 pVbe->pInt10->dx = 1; in VBESaveRestore()
628 pVbe->pInt10->dx = 2; in VBESaveRestore()
633 pVbe->pInt10->cx = 0x000f; in VBESaveRestore()
635 pVbe->pInt10->es = SEG_ADDR(*real_mode_pages); in VBESaveRestore()
636 pVbe->pInt10->bx = SEG_OFF(*real_mode_pages); in VBESaveRestore()
637 xf86ExecX86int10(pVbe->pInt10); in VBESaveRestore()
638 return (R16(pVbe->pInt10->ax) == 0x4f); in VBESaveRestore()
646 VBEBankSwitch(vbeInfoPtr pVbe, unsigned int iBank, int window) in VBEBankSwitch() argument
655 pVbe->pInt10->num = 0x10; in VBEBankSwitch()
656 pVbe->pInt10->ax = 0x4f05; in VBEBankSwitch()
657 pVbe->pInt10->bx = window; in VBEBankSwitch()
658 pVbe->pInt10->dx = iBank; in VBEBankSwitch()
659 xf86ExecX86int10(pVbe->pInt10); in VBEBankSwitch()
661 if (R16(pVbe->pInt10->ax) != 0x4f) in VBEBankSwitch()
668 VBESetGetLogicalScanlineLength(vbeInfoPtr pVbe, vbeScanwidthCommand command, in VBESetGetLogicalScanlineLength() argument
693 pVbe->pInt10->num = 0x10; in VBESetGetLogicalScanlineLength()
694 pVbe->pInt10->ax = 0x4f06; in VBESetGetLogicalScanlineLength()
695 pVbe->pInt10->bx = command; in VBESetGetLogicalScanlineLength()
697 pVbe->pInt10->cx = width; in VBESetGetLogicalScanlineLength()
698 xf86ExecX86int10(pVbe->pInt10); in VBESetGetLogicalScanlineLength()
700 if (R16(pVbe->pInt10->ax) != 0x4f) in VBESetGetLogicalScanlineLength()
705 *pixels = R16(pVbe->pInt10->cx); in VBESetGetLogicalScanlineLength()
707 *bytes = R16(pVbe->pInt10->bx); in VBESetGetLogicalScanlineLength()
709 *max = R16(pVbe->pInt10->dx); in VBESetGetLogicalScanlineLength()
716 VBESetDisplayStart(vbeInfoPtr pVbe, int x, int y, Bool wait_retrace) in VBESetDisplayStart() argument
718 pVbe->pInt10->num = 0x10; in VBESetDisplayStart()
719 pVbe->pInt10->ax = 0x4f07; in VBESetDisplayStart()
720 pVbe->pInt10->bx = wait_retrace ? 0x80 : 0x00; in VBESetDisplayStart()
721 pVbe->pInt10->cx = x; in VBESetDisplayStart()
722 pVbe->pInt10->dx = y; in VBESetDisplayStart()
723 xf86ExecX86int10(pVbe->pInt10); in VBESetDisplayStart()
725 if (R16(pVbe->pInt10->ax) != 0x4f) in VBESetDisplayStart()
732 VBEGetDisplayStart(vbeInfoPtr pVbe, int *x, int *y) in VBEGetDisplayStart() argument
734 pVbe->pInt10->num = 0x10; in VBEGetDisplayStart()
735 pVbe->pInt10->ax = 0x4f07; in VBEGetDisplayStart()
736 pVbe->pInt10->bx = 0x01; in VBEGetDisplayStart()
737 xf86ExecX86int10(pVbe->pInt10); in VBEGetDisplayStart()
739 if (R16(pVbe->pInt10->ax) != 0x4f) in VBEGetDisplayStart()
742 *x = pVbe->pInt10->cx; in VBEGetDisplayStart()
743 *y = pVbe->pInt10->dx; in VBEGetDisplayStart()
749 VBESetGetDACPaletteFormat(vbeInfoPtr pVbe, int bits) in VBESetGetDACPaletteFormat() argument
764 pVbe->pInt10->num = 0x10; in VBESetGetDACPaletteFormat()
765 pVbe->pInt10->ax = 0x4f08; in VBESetGetDACPaletteFormat()
767 pVbe->pInt10->bx = 0x01; in VBESetGetDACPaletteFormat()
769 pVbe->pInt10->bx = (bits & 0x00ff) << 8; in VBESetGetDACPaletteFormat()
770 xf86ExecX86int10(pVbe->pInt10); in VBESetGetDACPaletteFormat()
772 if (R16(pVbe->pInt10->ax) != 0x4f) in VBESetGetDACPaletteFormat()
775 return (bits != 0 ? bits : (pVbe->pInt10->bx >> 8) & 0x00ff); in VBESetGetDACPaletteFormat()
779 VBESetGetPaletteData(vbeInfoPtr pVbe, Bool set, int first, int num, in VBESetGetPaletteData() argument
808 pVbe->pInt10->num = 0x10; in VBESetGetPaletteData()
809 pVbe->pInt10->ax = 0x4f09; in VBESetGetPaletteData()
811 pVbe->pInt10->bx = set && wait_retrace ? 0x80 : set ? 0 : 1; in VBESetGetPaletteData()
813 pVbe->pInt10->bx = set ? 2 : 3; in VBESetGetPaletteData()
814 pVbe->pInt10->cx = num; in VBESetGetPaletteData()
815 pVbe->pInt10->dx = first; in VBESetGetPaletteData()
816 pVbe->pInt10->es = SEG_ADDR(pVbe->real_mode_base); in VBESetGetPaletteData()
817 pVbe->pInt10->di = SEG_OFF(pVbe->real_mode_base); in VBESetGetPaletteData()
819 memcpy(pVbe->memory, data, num * sizeof(CARD32)); in VBESetGetPaletteData()
820 xf86ExecX86int10(pVbe->pInt10); in VBESetGetPaletteData()
822 if (R16(pVbe->pInt10->ax) != 0x4f) in VBESetGetPaletteData()
829 memcpy(data, pVbe->memory, num * sizeof(CARD32)); in VBESetGetPaletteData()
835 VBEGetVBEpmi(vbeInfoPtr pVbe) in VBEGetVBEpmi() argument
853 pVbe->pInt10->num = 0x10; in VBEGetVBEpmi()
854 pVbe->pInt10->ax = 0x4f0a; in VBEGetVBEpmi()
855 pVbe->pInt10->bx = 0; in VBEGetVBEpmi()
856 pVbe->pInt10->di = 0; in VBEGetVBEpmi()
857 xf86ExecX86int10(pVbe->pInt10); in VBEGetVBEpmi()
859 if (R16(pVbe->pInt10->ax) != 0x4f) in VBEGetVBEpmi()
863 pmi->seg_tbl = R16(pVbe->pInt10->es); in VBEGetVBEpmi()
864 pmi->tbl_off = R16(pVbe->pInt10->di); in VBEGetVBEpmi()
865 pmi->tbl_len = R16(pVbe->pInt10->cx); in VBEGetVBEpmi()
872 VBEBuildVbeModeList(vbeInfoPtr pVbe, VbeInfoBlock * vbe)
884 if ((mode = VBEGetModeInfo(pVbe, id)) == NULL)
896 xf86DrvMsgVerb(pVbe->pInt10->pScrn->scrnIndex, X_PROBED, 3,
921 VBEVesaSaveRestore(vbeInfoPtr pVbe, vbeSaveRestorePtr vbe_sr, in VBEVesaSaveRestore() argument
926 if (VBE_VERSION_MAJOR(pVbe->version) > 1 in VBEVesaSaveRestore()
931 if ((VBESaveRestore(pVbe, function, in VBEVesaSaveRestore()
949 (void) VBEGetVBEMode(pVbe, &vbe_sr->stateMode); in VBEVesaSaveRestore()
952 VBESetVBEMode(pVbe, vbe_sr->stateMode, NULL); in VBEVesaSaveRestore()
957 VBEGetPixelClock(vbeInfoPtr pVbe, int mode, int clock) in VBEGetPixelClock() argument
971 pVbe->pInt10->num = 0x10; in VBEGetPixelClock()
972 pVbe->pInt10->ax = 0x4f0b; in VBEGetPixelClock()
973 pVbe->pInt10->bx = 0x00; in VBEGetPixelClock()
974 pVbe->pInt10->cx = clock; in VBEGetPixelClock()
975 pVbe->pInt10->dx = mode; in VBEGetPixelClock()
976 xf86ExecX86int10(pVbe->pInt10); in VBEGetPixelClock()
978 if (R16(pVbe->pInt10->ax) != 0x4f) in VBEGetPixelClock()
981 return pVbe->pInt10->cx; in VBEGetPixelClock()
985 VBEDPMSSet(vbeInfoPtr pVbe, int mode) in VBEDPMSSet() argument
997 pVbe->pInt10->num = 0x10; in VBEDPMSSet()
998 pVbe->pInt10->ax = 0x4f10; in VBEDPMSSet()
999 pVbe->pInt10->bx = 0x01; in VBEDPMSSet()
1004 pVbe->pInt10->bx |= 0x100; in VBEDPMSSet()
1007 pVbe->pInt10->bx |= 0x200; in VBEDPMSSet()
1010 pVbe->pInt10->bx |= 0x400; in VBEDPMSSet()
1013 xf86ExecX86int10(pVbe->pInt10); in VBEDPMSSet()
1014 return (R16(pVbe->pInt10->ax) == 0x4f); in VBEDPMSSet()
1055 VBEReadPanelID(vbeInfoPtr pVbe) in VBEReadPanelID() argument
1057 int RealOff = pVbe->real_mode_base; in VBEReadPanelID()
1058 void *page = pVbe->memory; in VBEReadPanelID()
1060 int screen = pVbe->pInt10->pScrn->scrnIndex; in VBEReadPanelID()
1062 pVbe->pInt10->ax = 0x4F11; in VBEReadPanelID()
1063 pVbe->pInt10->bx = 0x01; in VBEReadPanelID()
1064 pVbe->pInt10->cx = 0; in VBEReadPanelID()
1065 pVbe->pInt10->dx = 0; in VBEReadPanelID()
1066 pVbe->pInt10->es = SEG_ADDR(RealOff); in VBEReadPanelID()
1067 pVbe->pInt10->di = SEG_OFF(RealOff); in VBEReadPanelID()
1068 pVbe->pInt10->num = 0x10; in VBEReadPanelID()
1070 xf86ExecX86int10(pVbe->pInt10); in VBEReadPanelID()
1072 if ((pVbe->pInt10->ax & 0xff) != 0x4f) { in VBEReadPanelID()
1077 switch (pVbe->pInt10->ax & 0xff00) { in VBEReadPanelID()
1090 pVbe->pInt10->ax & 0xff00); in VBEReadPanelID()