pkgsrc-wip/svgalib/patches/patch-az
2003-07-31 15:12:39 +00:00

49 lines
1.5 KiB
Text

$NetBSD: patch-az,v 1.2 2003/07/31 15:12:40 bencollver Exp $
--- src/r128.c.orig Wed May 30 01:02:14 2001
+++ src/r128.c
@@ -313,7 +313,7 @@ static void R128RestoreMode(R128SavePtr
OUTREG(R128_AMCGPIO_MASK, restore->amcgpio_mask);
OUTREG(R128_AMCGPIO_EN_REG, restore->amcgpio_en_reg);
OUTREG(R128_CLOCK_CNTL_INDEX, restore->clock_cntl_index);
- OUTREG(R128_GEN_RESET_CNTL, restore->gen_reset_cntl);
+// OUTREG(R128_GEN_RESET_CNTL, restore->gen_reset_cntl);
OUTREG(R128_DP_DATATYPE, restore->dp_datatype);
R128RestoreCommonRegisters( restore);
@@ -443,6 +443,10 @@ static void R128InitCommonRegisters(R128
save->mem_vga_wp_sel = 0;
save->mem_vga_rp_sel = 0;
save->bus_cntl = BusCntl;
+
+ save->config_cntl = INREG(R128_CONFIG_CNTL);
+ save->amcgpio_en_reg = INREG(R128_AMCGPIO_EN_REG);
+ save->amcgpio_mask = INREG(R128_AMCGPIO_MASK);
/*
* If bursts are enabled, turn on discards and aborts
*/
@@ -958,6 +962,15 @@ static int r128_test(void)
{
int found, id;
unsigned long buf[64];
+ int _ioperm=0;
+
+ if (getenv("IOPERM") == NULL) {
+ _ioperm=1;
+ if (iopl(3) < 0) {
+ printf("svgalib: cannot get I/O permissions\n");
+ exit(1);
+ }
+ }
found=__svgalib_pci_find_vendor_vga(VENDOR_ID,buf,0);
@@ -966,6 +979,8 @@ static int r128_test(void)
if((id>=0x5350) || (id<=0x4fff)) return 0;
r128_init(0,0,0);
+ if (_ioperm) iopl(0);
+
return 1;
}