Lines Matching defs:pVbe
38 static unsigned char * vbeReadEDID(vbeInfoPtr pVbe);
39 static Bool vbeProbeDDC(vbeInfoPtr pVbe);
158 vbeFree(vbeInfoPtr pVbe)
160 if (!pVbe)
163 xf86Int10FreePages(pVbe->pInt10,pVbe->memory,pVbe->num_pages);
165 if (pVbe->init_int10)
166 xf86FreeInt10(pVbe->pInt10);
167 free(pVbe);
172 vbeProbeDDC(vbeInfoPtr pVbe)
175 int screen = pVbe->pInt10->scrnIndex;
177 if (pVbe->ddc == DDC_NONE)
179 if (pVbe->ddc != DDC_UNCHECKED)
182 pVbe->pInt10->ax = 0x4F15;
183 pVbe->pInt10->bx = 0;
184 pVbe->pInt10->cx = 0;
185 pVbe->pInt10->es = 0;
186 pVbe->pInt10->di = 0;
187 pVbe->pInt10->num = 0x10;
189 xf86ExecX86int10(pVbe->pInt10);
191 if ((pVbe->pInt10->ax & 0xff) != 0x4f) {
193 pVbe->ddc = DDC_NONE;
197 switch ((pVbe->pInt10->ax >> 8) & 0xff) {
200 switch (pVbe->pInt10->bx & 0x3) {
203 pVbe->ddc = DDC_NONE;
207 pVbe->ddc = DDC_1;
211 pVbe->ddc = DDC_2;
215 pVbe->ddc = DDC_1_2;
219 pVbe->ddc = DDC_NONE;
223 if (pVbe->pInt10->bx & 0x4) {
226 pVbe->ddc_blank = TRUE;
228 pVbe->ddc_blank = FALSE;
232 (pVbe->pInt10->bx >> 8) & 0xff);
250 vbeReadEDID(vbeInfoPtr pVbe)
252 int RealOff = pVbe->real_mode_base;
253 pointer page = pVbe->memory;
257 int screen = pVbe->pInt10->scrnIndex;
270 if (!vbeProbeDDC(pVbe)) goto error;
275 pVbe->pInt10->ax = 0x4F15;
276 pVbe->pInt10->bx = 0x01;
277 pVbe->pInt10->cx = 0;
278 pVbe->pInt10->dx = 0;
279 pVbe->pInt10->es = SEG_ADDR(RealOff);
280 pVbe->pInt10->di = SEG_OFF(RealOff);
281 pVbe->pInt10->num = 0x10;
283 xf86ExecX86int10(pVbe->pInt10);
285 if ((pVbe->pInt10->ax & 0xff) != 0x4f) {
289 switch (pVbe->pInt10->ax & 0xff00) {
300 pVbe->pInt10->ax & 0xff00);
309 vbeDoEDID(vbeInfoPtr pVbe, pointer pDDCModule)
315 if (!pVbe) return NULL;
316 if (pVbe->version < 0x200)
321 xf86LoadSubModule(xf86Screens[pVbe->pInt10->scrnIndex], "ddc");
326 DDC_data = vbeReadEDID(pVbe);
331 pMonitor = xf86InterpretEDID(pVbe->pInt10->scrnIndex, DDC_data);
342 VBEGetVBEInfo(vbeInfoPtr pVbe)
349 memset(pVbe->memory, 0, sizeof(VbeInfoBlock));
362 ((char*)pVbe->memory)[0] = 'V';
363 ((char*)pVbe->memory)[1] = 'B';
364 ((char*)pVbe->memory)[2] = 'E';
365 ((char*)pVbe->memory)[3] = '2';
367 pVbe->pInt10->num = 0x10;
368 pVbe->pInt10->ax = 0x4f00;
369 pVbe->pInt10->es = SEG_ADDR(pVbe->real_mode_base);
370 pVbe->pInt10->di = SEG_OFF(pVbe->real_mode_base);
371 xf86ExecX86int10(pVbe->pInt10);
373 if (R16(pVbe->pInt10->ax) != 0x4f)
377 block->VESASignature[0] = ((char*)pVbe->memory)[0];
378 block->VESASignature[1] = ((char*)pVbe->memory)[1];
379 block->VESASignature[2] = ((char*)pVbe->memory)[2];
380 block->VESASignature[3] = ((char*)pVbe->memory)[3];
382 block->VESAVersion = *(CARD16*)(((char*)pVbe->memory) + 4);
385 pStr = GET_UNALIGNED2((((char*)pVbe->memory) + 6));
386 str = xf86int10Addr(pVbe->pInt10, FARP(pStr));
389 block->Capabilities[0] = ((char*)pVbe->memory)[10];
390 block->Capabilities[1] = ((char*)pVbe->memory)[11];
391 block->Capabilities[2] = ((char*)pVbe->memory)[12];
392 block->Capabilities[3] = ((char*)pVbe->memory)[13];
394 pModes = GET_UNALIGNED2((((char*)pVbe->memory) + 14));
395 modes = xf86int10Addr(pVbe->pInt10, FARP(pModes));
403 block->TotalMemory = *(CARD16*)(((char*)pVbe->memory) + 18);
406 memcpy(&block->OemSoftwareRev, ((char*)pVbe->memory) + 20, 236);
408 block->OemSoftwareRev = *(CARD16*)(((char*)pVbe->memory) + 20);
409 pStr = GET_UNALIGNED2((((char*)pVbe->memory) + 22));
410 str = xf86int10Addr(pVbe->pInt10, FARP(pStr));
412 pStr = GET_UNALIGNED2((((char*)pVbe->memory) + 26));
413 str = xf86int10Addr(pVbe->pInt10, FARP(pStr));
415 pStr = GET_UNALIGNED2((((char*)pVbe->memory) + 30));
416 str = xf86int10Addr(pVbe->pInt10, FARP(pStr));
418 memcpy(&block->Reserved, ((char*)pVbe->memory) + 34, 222);
419 memcpy(&block->OemData, ((char*)pVbe->memory) + 256, 256);
439 VBESetVBEMode(vbeInfoPtr pVbe, int mode, VbeCRTCInfoBlock *block)
460 pVbe->pInt10->num = 0x10;
461 pVbe->pInt10->ax = 0x4f02;
462 pVbe->pInt10->bx = mode;
464 pVbe->pInt10->bx |= 1 << 11;
465 memcpy(pVbe->memory, block, sizeof(VbeCRTCInfoBlock));
466 pVbe->pInt10->es = SEG_ADDR(pVbe->real_mode_base);
467 pVbe->pInt10->di = SEG_OFF(pVbe->real_mode_base);
469 pVbe->pInt10->bx &= ~(1 << 11);
471 xf86ExecX86int10(pVbe->pInt10);
473 return (R16(pVbe->pInt10->ax) == 0x4f);
477 VBEGetVBEMode(vbeInfoPtr pVbe, int *mode)
489 pVbe->pInt10->num = 0x10;
490 pVbe->pInt10->ax = 0x4f03;
492 xf86ExecX86int10(pVbe->pInt10);
494 if (R16(pVbe->pInt10->ax) == 0x4f) {
495 *mode = R16(pVbe->pInt10->bx);
504 VBEGetModeInfo(vbeInfoPtr pVbe, int mode)
508 memset(pVbe->memory, 0, sizeof(VbeModeInfoBlock));
522 pVbe->pInt10->num = 0x10;
523 pVbe->pInt10->ax = 0x4f01;
524 pVbe->pInt10->cx = mode;
525 pVbe->pInt10->es = SEG_ADDR(pVbe->real_mode_base);
526 pVbe->pInt10->di = SEG_OFF(pVbe->real_mode_base);
527 xf86ExecX86int10(pVbe->pInt10);
528 if (R16(pVbe->pInt10->ax) != 0x4f)
533 memcpy(block, pVbe->memory, sizeof(*block));
545 VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction function,
589 if ((pVbe->version & 0xff00) > 0x100) {
590 int screen = pVbe->pInt10->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;
605 if ((*memory = xf86Int10AllocPages(pVbe->pInt10, npages,
612 *size = pVbe->pInt10->bx * 64;
619 pVbe->pInt10->num = 0x10;
620 pVbe->pInt10->ax = 0x4f04;
623 pVbe->pInt10->dx = 1;
626 pVbe->pInt10->dx = 2;
631 pVbe->pInt10->cx = 0x000f;
633 pVbe->pInt10->es = SEG_ADDR(*real_mode_pages);
634 pVbe->pInt10->bx = SEG_OFF(*real_mode_pages);
635 xf86ExecX86int10(pVbe->pInt10);
636 return (R16(pVbe->pInt10->ax) == 0x4f);
644 VBEBankSwitch(vbeInfoPtr pVbe, unsigned int iBank, int window)
653 pVbe->pInt10->num = 0x10;
654 pVbe->pInt10->ax = 0x4f05;
655 pVbe->pInt10->bx = window;
656 pVbe->pInt10->dx = iBank;
657 xf86ExecX86int10(pVbe->pInt10);
659 if (R16(pVbe->pInt10->ax) != 0x4f)
666 VBESetGetLogicalScanlineLength(vbeInfoPtr pVbe, vbeScanwidthCommand command,
691 pVbe->pInt10->num = 0x10;
692 pVbe->pInt10->ax = 0x4f06;
693 pVbe->pInt10->bx = command;
695 pVbe->pInt10->cx = width;
696 xf86ExecX86int10(pVbe->pInt10);
698 if (R16(pVbe->pInt10->ax) != 0x4f)
703 *pixels = R16(pVbe->pInt10->cx);
705 *bytes = R16(pVbe->pInt10->bx);
707 *max = R16(pVbe->pInt10->dx);
714 VBESetDisplayStart(vbeInfoPtr pVbe, int x, int y, Bool wait_retrace)
716 pVbe->pInt10->num = 0x10;
717 pVbe->pInt10->ax = 0x4f07;
718 pVbe->pInt10->bx = wait_retrace ? 0x80 : 0x00;
719 pVbe->pInt10->cx = x;
720 pVbe->pInt10->dx = y;
721 xf86ExecX86int10(pVbe->pInt10);
723 if (R16(pVbe->pInt10->ax) != 0x4f)
730 VBEGetDisplayStart(vbeInfoPtr pVbe, int *x, int *y)
732 pVbe->pInt10->num = 0x10;
733 pVbe->pInt10->ax = 0x4f07;
734 pVbe->pInt10->bx = 0x01;
735 xf86ExecX86int10(pVbe->pInt10);
737 if (R16(pVbe->pInt10->ax) != 0x4f)
740 *x = pVbe->pInt10->cx;
741 *y = pVbe->pInt10->dx;
747 VBESetGetDACPaletteFormat(vbeInfoPtr pVbe, int bits)
762 pVbe->pInt10->num = 0x10;
763 pVbe->pInt10->ax = 0x4f08;
765 pVbe->pInt10->bx = 0x01;
767 pVbe->pInt10->bx = (bits & 0x00ff) << 8;
768 xf86ExecX86int10(pVbe->pInt10);
770 if (R16(pVbe->pInt10->ax) != 0x4f)
773 return (bits != 0 ? bits : (pVbe->pInt10->bx >> 8) & 0x00ff);
777 VBESetGetPaletteData(vbeInfoPtr pVbe, Bool set, int first, int num,
807 pVbe->pInt10->num = 0x10;
808 pVbe->pInt10->ax = 0x4f09;
810 pVbe->pInt10->bx = set && wait_retrace ? 0x80 : set ? 0 : 1;
812 pVbe->pInt10->bx = set ? 2 : 3;
813 pVbe->pInt10->cx = num;
814 pVbe->pInt10->dx = first;
815 pVbe->pInt10->es = SEG_ADDR(pVbe->real_mode_base);
816 pVbe->pInt10->di = SEG_OFF(pVbe->real_mode_base);
818 memcpy(pVbe->memory, data, num * sizeof(CARD32));
819 xf86ExecX86int10(pVbe->pInt10);
821 if (R16(pVbe->pInt10->ax) != 0x4f)
828 memcpy(data, pVbe->memory, num * sizeof(CARD32));
834 VBEGetVBEpmi(vbeInfoPtr pVbe)
852 pVbe->pInt10->num = 0x10;
853 pVbe->pInt10->ax = 0x4f0a;
854 pVbe->pInt10->bx = 0;
855 pVbe->pInt10->di = 0;
856 xf86ExecX86int10(pVbe->pInt10);
858 if (R16(pVbe->pInt10->ax) != 0x4f)
862 pmi->seg_tbl = R16(pVbe->pInt10->es);
863 pmi->tbl_off = R16(pVbe->pInt10->di);
864 pmi->tbl_len = R16(pVbe->pInt10->cx);
871 VBEBuildVbeModeList(vbeInfoPtr pVbe, VbeInfoBlock *vbe)
882 if ((mode = VBEGetModeInfo(pVbe, id)) == NULL)
894 xf86DrvMsgVerb(pVbe->pInt10->scrnIndex, X_PROBED, 3,
920 VBEVesaSaveRestore(vbeInfoPtr pVbe, vbeSaveRestorePtr vbe_sr,
925 if (VBE_VERSION_MAJOR(pVbe->version) > 1
930 if ((VBESaveRestore(pVbe,function,
948 (void)VBEGetVBEMode(pVbe, &vbe_sr->stateMode);
951 VBESetVBEMode(pVbe, vbe_sr->stateMode, NULL);
956 VBEGetPixelClock(vbeInfoPtr pVbe, int mode, int clock)
970 pVbe->pInt10->num = 0x10;
971 pVbe->pInt10->ax = 0x4f0b;
972 pVbe->pInt10->bx = 0x00;
973 pVbe->pInt10->cx = clock;
974 pVbe->pInt10->dx = mode;
975 xf86ExecX86int10(pVbe->pInt10);
977 if (R16(pVbe->pInt10->ax) != 0x4f)
980 return pVbe->pInt10->cx;
984 VBEDPMSSet(vbeInfoPtr pVbe, int mode)
996 pVbe->pInt10->num = 0x10;
997 pVbe->pInt10->ax = 0x4f10;
998 pVbe->pInt10->bx = 0x01;
1003 pVbe->pInt10->bx |= 0x100;
1006 pVbe->pInt10->bx |= 0x200;
1009 pVbe->pInt10->bx |= 0x400;
1012 xf86ExecX86int10(pVbe->pInt10);
1013 return (R16(pVbe->pInt10->ax) == 0x4f);
1054 VBEReadPanelID(vbeInfoPtr pVbe)
1056 int RealOff = pVbe->real_mode_base;
1057 pointer page = pVbe->memory;
1059 int screen = pVbe->pInt10->scrnIndex;
1061 pVbe->pInt10->ax = 0x4F11;
1062 pVbe->pInt10->bx = 0x01;
1063 pVbe->pInt10->cx = 0;
1064 pVbe->pInt10->dx = 0;
1065 pVbe->pInt10->es = SEG_ADDR(RealOff);
1066 pVbe->pInt10->di = SEG_OFF(RealOff);
1067 pVbe->pInt10->num = 0x10;
1069 xf86ExecX86int10(pVbe->pInt10);
1071 if ((pVbe->pInt10->ax & 0xff) != 0x4f) {
1076 switch (pVbe->pInt10->ax & 0xff00) {
1087 pVbe->pInt10->ax & 0xff00);