xserver-multidpi/hw
Bart Trojanowski 66f8001b61 X86EMU: handle CPUID instruction
After trying to switch from X to VT (or just quit) the video-amd driver
attempts to issue INT 10/0 to go to mode 3 (VGA).  The emulator, running
the BIOS code, would then spit out:

        c000:0282: A2 ILLEGAL EXTENDED X86 OPCODE!

The opcode was 0F A2, or CPUID; it was not implemented in the emulator.
This simple patch, against 1.3.0.0, handles the CPUID instruction in one of
two ways:
 1) if ran on __i386__ or __x86_64__ then it calls the CPUID instruction
     directly.
 2) if ran elsewhere it returns a canned 486dx4 set of values for
     function 1.

This fix allows the video-amd driver to switch back to console mode,
with the GSW BIOS.

Thanks to Symbio Technologies for funding my work, and ThinCan for
providing hardware :)

Signed-off-by: Bart Trojanowski <bart@jukie.net>
Acked-by: Eric Anholt <eric@anholt.net>
2008-02-08 10:48:40 -08:00
..
dmx GL: Add GLX compile flags lost in modular X server changes 2007-12-29 00:00:04 +02:00
kdrive Xephyr: One-time keyboard leak fix 2008-01-17 18:43:06 +11:00
vfb Darwin: Use __APPLE__ instead of __DARWIN__ 2007-12-07 18:54:58 -08:00
xfree86 X86EMU: handle CPUID instruction 2008-02-08 10:48:40 -08:00
xgl Merge branch 'master' into XACE-SELINUX 2007-11-19 18:10:46 -05:00
xnest Merge branch 'master' into XACE-SELINUX 2007-12-13 18:38:25 -05:00
xprint Xprint: Clean up generated files 2007-12-14 13:15:26 +02:00
xquartz XQuartz: Moved SetFrontProcess haco to set_front_process 2008-01-17 09:49:25 -08:00
xwin Revert "registry: Register WINDOWSWM extension protocol names." 2007-11-20 17:50:26 -05:00
Makefile.am Darwin: Use __APPLE__ instead of __DARWIN__ 2007-12-07 18:54:58 -08:00