From 59f75d4bdc11e4f6bfea449347bdbf90c5a1fafc Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Fri, 27 Jan 2012 20:52:29 -0500 Subject: [PATCH] vgabios: Add VBE power management (10h) stub function. Signed-off-by: Kevin O'Connor --- vgasrc/clext.c | 64 +++++++++----------------------------------------- vgasrc/vbe.c | 21 +++++++++++++++++ 2 files changed, 32 insertions(+), 53 deletions(-) diff --git a/vgasrc/clext.c b/vgasrc/clext.c index 0640752..45fab80 100644 --- a/vgasrc/clext.c +++ b/vgasrc/clext.c @@ -315,6 +315,17 @@ is_cirrus_mode(struct vgamode_s *vmode_g) && vmode_g <= &cirrus_modes[ARRAY_SIZE(cirrus_modes)-1].info); } +void +clext_list_modes(u16 seg, u16 *dest, u16 *last) +{ + int i; + for (i=0; ibl == 0x00) { - regs->bx = 0x0f30; - regs->ax = 0x004f; - return; - } - if (regs->bl == 0x01) { - SET_BDA(vbe_flag, regs->bh); - regs->ax = 0x004f; - return; - } - if (regs->bl == 0x02) { - regs->bh = GET_BDA(vbe_flag); - regs->ax = 0x004f; - return; - } - regs->ax = 0x014f; -} - -static void -cirrus_vesa_not_handled(struct bregs *regs) -{ - debug_stub(regs); - regs->ax = 0x014f; -} - -void -cirrus_vesa(struct bregs *regs) -{ - switch (regs->al) { - case 0x10: cirrus_vesa_10h(regs); break; - default: cirrus_vesa_not_handled(regs); break; - } -} - - /**************************************************************** * init ****************************************************************/ diff --git a/vgasrc/vbe.c b/vgasrc/vbe.c index 9e1fe1c..c1b03f0 100644 --- a/vgasrc/vbe.c +++ b/vgasrc/vbe.c @@ -320,6 +320,26 @@ vbe_104f0a(struct bregs *regs) regs->ax = 0x0100; } +static void +vbe_104f10(struct bregs *regs) +{ + switch (regs->bl) { + case 0x00: + regs->bx = 0x0f30; + break; + case 0x01: + SET_BDA(vbe_flag, regs->bh); + break; + case 0x02: + regs->bh = GET_BDA(vbe_flag); + break; + default: + regs->ax = 0x014f; + return; + } + regs->ax = 0x004f; +} + static void vbe_104fXX(struct bregs *regs) { @@ -346,6 +366,7 @@ handle_104f(struct bregs *regs) case 0x07: vbe_104f07(regs); break; case 0x08: vbe_104f08(regs); break; case 0x0a: vbe_104f0a(regs); break; + case 0x10: vbe_104f10(regs); break; default: vbe_104fXX(regs); break; } } -- 2.25.1