VBESetVBEMode() calls int10 0x4f02 to set a VBE video mode. This can be a
standard mode solely determined by the mode ID or it may be a detailed mode with almost arbitrary mode parameters. The mode parameters are passed to the BIOS in a memory area pointed to by es:di. If bit 11 in the video mode is set this memory area is evaluated. When we don't have such an area (passed to VBESetVBEMode() this function should unset this bit for sanity reasons. (Bugzilla #3329)
This commit is contained in:
parent
f28d644d9f
commit
fddcde777f
|
@ -469,7 +469,8 @@ VBESetVBEMode(vbeInfoPtr pVbe, int mode, VbeCRTCInfoBlock *block)
|
|||
memcpy(pVbe->memory, block, sizeof(VbeCRTCInfoBlock));
|
||||
pVbe->pInt10->es = SEG_ADDR(pVbe->real_mode_base);
|
||||
pVbe->pInt10->di = SEG_OFF(pVbe->real_mode_base);
|
||||
}
|
||||
} else
|
||||
pVbe->pInt10->bx &= ~(1 << 11);
|
||||
|
||||
xf86ExecX86int10(pVbe->pInt10);
|
||||
|
||||
|
|
Loading…
Reference in New Issue