summaryrefslogtreecommitdiff
path: root/src/savage_vbe.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/savage_vbe.c')
-rw-r--r--src/savage_vbe.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/savage_vbe.c b/src/savage_vbe.c
index cf8f417..70059ca 100644
--- a/src/savage_vbe.c
+++ b/src/savage_vbe.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_vbe.c,v 1.14 2003/06/18 16:17:40 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_vbe.c,v 1.9 2001/05/19 02:05:55 dawes Exp $ */
#include "savage_driver.h"
#include "savage_vbe.h"
@@ -92,7 +92,7 @@ SavageSetVESAMode( SavagePtr psav, int n, int Refresh )
SavageClearVM86Regs( psav->pInt10 );
psav->pInt10->ax = 0x4f14; /* S3 extensions */
psav->pInt10->bx = 0x0003; /* set active devices */
- psav->pInt10->cx = psav->PAL ? 0x08 : 0x04;
+ psav->pInt10->cx = psav->iDevInfo;
xf86ExecX86int10( psav->pInt10 );
/* Re-fetch actual device set. */
@@ -123,6 +123,25 @@ SavageSetVESAMode( SavagePtr psav, int n, int Refresh )
}
+void
+SavageSetPanelEnabled( SavagePtr psav, Bool active )
+{
+ int iDevInfo;
+ if( !psav->PanelX )
+ return; /* no panel */
+ iDevInfo = SavageGetDevice( psav );
+ if( active )
+ iDevInfo |= LCD_ACTIVE;
+ else
+ iDevInfo &= ~LCD_ACTIVE;
+ SavageClearVM86Regs( psav->pInt10 );
+ psav->pInt10->ax = 0x4f14; /* S3 extensions */
+ psav->pInt10->bx = 0x0003; /* set active devices */
+ psav->pInt10->cx = iDevInfo;
+ xf86ExecX86int10( psav->pInt10 );
+}
+
+
/* Function to get supported device list. */
static int SavageGetDevice( SavagePtr psav )
@@ -150,7 +169,6 @@ SavageFreeBIOSModeTable( SavagePtr psav, SavageModeTablePtr* ppTable )
xfree( pMode->RefreshRate );
pMode->RefreshRate = NULL;
}
- pMode++;
}
xfree( *ppTable );