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