[1] Fix a hang in int10 on starting the server with multiple cards

[2] Fix a server hang on reset with DRI enabled on Radeons
[3] Fix a server hang on reset with DRI enabled on Matrox
[4] Fix screen going into powersaving with Xinerama, Xcursor, and Radeons
[5] Fix an unresolved symbol in the nv driver
[6] Fix a crash in DDC with Riva 128 cards (XFree86 bug 71)
[7] Add some missing manpages to the MAN4 list

PR:		[7] ports/50113
Obtained from:	[1] XFree86 bug 6
		[2] XFree86 bug 94
		[3] Panagiotis Papadakos <papadako@csd.uoc.gr>
		[4] XFree86 bug 90
		[5,6] XFree86 CVS
This commit is contained in:
Eric Anholt 2003-04-06 08:48:25 +00:00
parent 9f7eddb341
commit d42a8c1c29
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=78407
14 changed files with 286 additions and 4 deletions

View File

@ -7,7 +7,7 @@
PORTNAME= Server
PORTVERSION= 4.3.0
PORTREVISION= 2
PORTREVISION= 3
CATEGORIES= x11-servers
MASTER_SITES= ${MASTER_SITE_XFREE:S/$/:x/} \
${MASTER_SITE_LOCAL:S/$/:local/}
@ -32,7 +32,8 @@ DIST_SUBDIR= xc
WRKSRC= ${WRKDIR}/xc
PATCHDIR= ${.CURDIR}/../../x11/XFree86-4-libraries/files
.for pf in patch-savage-pci-id patch-alpha_video.c patch-Pci.h patch-radeondri \
patch-r128_driver.c patch-mga_driver.c patch-xkbInit.c
patch-r128_driver.c patch-mga_driver.c patch-xkbInit.c patch-radeon_dri.c \
patch-mga_dri.c patch-nv_driver.c patch-nv_setup.c patch-int10-generic.c
EXTRA_PATCHES+= ${FILESDIR}/${pf}
.endfor
SCRIPTS_ENV= OSVERSION=${OSVERSION} \
@ -73,6 +74,7 @@ MAN3= XF86VidMode.3 \
MAN4= citron.4 \
dynapro.4 \
elographics.4 \
fbdevhw.4 \
glint.4 \
kbd.4 \
keyboard.4 \
@ -80,8 +82,10 @@ MAN4= citron.4 \
microtouch.4 \
mouse.4 \
mutouch.4 \
nsc.4 \
nv.4 \
r128.4 \
radeon.4 \
rendition.4 \
s3virge.4 \
savage.4 \

View File

@ -0,0 +1,39 @@
Index: programs/Xserver/hw/xfree86/int10/generic.c
===================================================================
RCS file: /home/ncvs/xfree/xc/programs/Xserver/hw/xfree86/int10/generic.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -u -r1.25 -r1.26
--- programs/Xserver/hw/xfree86/int10/generic.c 4 Apr 2002 14:05:51 -0000 1.25
+++ programs/Xserver/hw/xfree86/int10/generic.c 20 Mar 2003 15:11:26 -0000 1.26
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/int10/generic.c,v 1.23 2001/05/28 14:21:56 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/int10/generic.c,v 1.25tsi Exp $ */
/*
* XFree86 int10 module
* execute BIOS int 10h calls in x86 real mode environment
@@ -108,7 +108,7 @@
MapVRam(pInt);
#ifdef _PC
if (!sysMem)
- sysMem = xf86MapVidMem(screen, VIDMEM_FRAMEBUFFER, V_BIOS,
+ sysMem = xf86MapVidMem(screen, VIDMEM_MMIO, V_BIOS,
BIOS_SIZE + SYS_BIOS - V_BIOS);
INTPriv(pInt)->sysMem = sysMem;
@@ -446,12 +446,14 @@
#define OFF(addr) ((addr) & 0xffff)
#if defined _PC
# define HIGH_OFFSET (INTPriv(pInt)->highMemory)
+# define HIGH_BASE V_BIOS
#else
# define HIGH_OFFSET SYS_BIOS
+# define HIGH_BASE SYS_BIOS
#endif
# define SYS(addr) ((addr) >= HIGH_OFFSET)
#define V_ADDR(addr) \
- (SYS(addr) ? ((char*)INTPriv(pInt)->sysMem) + (addr - HIGH_OFFSET) \
+ (SYS(addr) ? ((char*)INTPriv(pInt)->sysMem) + (addr - HIGH_BASE) \
: (((char*)(INTPriv(pInt)->base) + addr)))
#define VRAM_ADDR(addr) (addr - V_RAM)
#define VRAM_BASE (INTPriv(pInt)->vRam)

View File

@ -0,0 +1,16 @@
Index: programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c
===================================================================
RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -u -r1.50 -r1.51
--- programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c 25 Mar 2003 11:20:38 -0000 1.50
+++ programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c 5 Apr 2003 04:00:25 -0000 1.51
@@ -1359,6 +1359,7 @@
if (pMga->irq) {
drmCtlUninstHandler(pMga->drmFD);
pMga->irq = 0;
+ pMga->reg_ien = 0;
}
/* Cleanup DMA */

View File

@ -0,0 +1,16 @@
Index: programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c
===================================================================
RCS file: /home/ncvs/xfree/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -u -r1.103 -r1.104
--- programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c 18 Mar 2003 22:23:30 -0000 1.103
+++ programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c 19 Mar 2003 18:02:49 -0000 1.104
@@ -181,6 +181,7 @@
*/
static const char *vgahwSymbols[] = {
+ "vgaHWUnmapMem",
"vgaHWDPMSSet",
"vgaHWFreeHWRec",
"vgaHWGetHWRec",

View File

@ -0,0 +1,35 @@
Index: programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c
===================================================================
RCS file: /home/ncvs/xfree/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -u -r1.28 -r1.29
--- programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c 12 Mar 2003 21:27:18 -0000 1.28
+++ programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c 4 Apr 2003 00:18:50 -0000 1.29
@@ -24,7 +24,7 @@
/* Hacked together from mga driver and 3.3.4 NVIDIA driver by Jarno Paananen
<jpaana@s2.org> */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c,v 1.27 2003/02/10 23:42:51 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c,v 1.28 2003/03/12 21:27:18 mvojkovi Exp $ */
#include "nv_include.h"
@@ -424,6 +424,9 @@
break;
}
+ if(pNv->riva.Architecture == 3)
+ pNv->riva.PCRTC0 = pNv->riva.PGRAPH;
+
if(pNv->SecondCRTC) {
pNv->riva.PCIO = pNv->riva.PCIO0 + 0x2000;
pNv->riva.PCRTC = pNv->riva.PCRTC0 + 0x800;
@@ -492,7 +495,6 @@
frameBase+0x00C00000, 0x00008000);
NVCommonSetup(pScrn);
- pNv->riva.PCRTC = pNv->riva.PCRTC0 = pNv->riva.PGRAPH;
}
void

View File

@ -0,0 +1,16 @@
Index: programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c
===================================================================
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c,v
retrieving revision 1.23
diff -p -u -r1.23 radeon_cursor.c
--- programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c 2003/02/24 20:34:55 1.23
+++ programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c 2003/04/03 01:19:29
@@ -370,7 +370,7 @@ static void RADEONLoadCursorARGB (ScrnIn
}
if (info->IsSecondary || info->Clone) {
- save2 = INREG(RADEON_CRTC_GEN_CNTL) & ~(CARD32) (3 << 20);
+ save2 = INREG(RADEON_CRTC2_GEN_CNTL) & ~(CARD32) (3 << 20);
save2 |= (CARD32) (2 << 20);
OUTREG(RADEON_CRTC2_GEN_CNTL, save2 & (CARD32)~RADEON_CRTC2_CUR_EN);
}

View File

@ -0,0 +1,15 @@
Index: programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
===================================================================
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c,v
retrieving revision 1.32
diff -p -u -r1.32 radeon_dri.c
--- programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c 2003/02/19 09:17:30 1.32
+++ programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c 2003/03/17 01:43:24
@@ -1585,6 +1585,7 @@ void RADEONDRICloseScreen(ScreenPtr pScr
if (info->irq) {
drmCtlUninstHandler(info->drmFD);
info->irq = 0;
+ info->ModeReg.gen_int_cntl = 0;
}
/* De-allocate vertex buffers */

View File

@ -7,7 +7,7 @@
PORTNAME= Server
PORTVERSION= 4.3.0
PORTREVISION= 2
PORTREVISION= 3
CATEGORIES= x11-servers
MASTER_SITES= ${MASTER_SITE_XFREE:S/$/:x/} \
${MASTER_SITE_LOCAL:S/$/:local/}
@ -32,7 +32,8 @@ DIST_SUBDIR= xc
WRKSRC= ${WRKDIR}/xc
PATCHDIR= ${.CURDIR}/../../x11/XFree86-4-libraries/files
.for pf in patch-savage-pci-id patch-alpha_video.c patch-Pci.h patch-radeondri \
patch-r128_driver.c patch-mga_driver.c patch-xkbInit.c
patch-r128_driver.c patch-mga_driver.c patch-xkbInit.c patch-radeon_dri.c \
patch-mga_dri.c patch-nv_driver.c patch-nv_setup.c patch-int10-generic.c
EXTRA_PATCHES+= ${FILESDIR}/${pf}
.endfor
SCRIPTS_ENV= OSVERSION=${OSVERSION} \
@ -73,6 +74,7 @@ MAN3= XF86VidMode.3 \
MAN4= citron.4 \
dynapro.4 \
elographics.4 \
fbdevhw.4 \
glint.4 \
kbd.4 \
keyboard.4 \
@ -80,8 +82,10 @@ MAN4= citron.4 \
microtouch.4 \
mouse.4 \
mutouch.4 \
nsc.4 \
nv.4 \
r128.4 \
radeon.4 \
rendition.4 \
s3virge.4 \
savage.4 \

View File

@ -0,0 +1,39 @@
Index: programs/Xserver/hw/xfree86/int10/generic.c
===================================================================
RCS file: /home/ncvs/xfree/xc/programs/Xserver/hw/xfree86/int10/generic.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -u -r1.25 -r1.26
--- programs/Xserver/hw/xfree86/int10/generic.c 4 Apr 2002 14:05:51 -0000 1.25
+++ programs/Xserver/hw/xfree86/int10/generic.c 20 Mar 2003 15:11:26 -0000 1.26
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/int10/generic.c,v 1.23 2001/05/28 14:21:56 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/int10/generic.c,v 1.25tsi Exp $ */
/*
* XFree86 int10 module
* execute BIOS int 10h calls in x86 real mode environment
@@ -108,7 +108,7 @@
MapVRam(pInt);
#ifdef _PC
if (!sysMem)
- sysMem = xf86MapVidMem(screen, VIDMEM_FRAMEBUFFER, V_BIOS,
+ sysMem = xf86MapVidMem(screen, VIDMEM_MMIO, V_BIOS,
BIOS_SIZE + SYS_BIOS - V_BIOS);
INTPriv(pInt)->sysMem = sysMem;
@@ -446,12 +446,14 @@
#define OFF(addr) ((addr) & 0xffff)
#if defined _PC
# define HIGH_OFFSET (INTPriv(pInt)->highMemory)
+# define HIGH_BASE V_BIOS
#else
# define HIGH_OFFSET SYS_BIOS
+# define HIGH_BASE SYS_BIOS
#endif
# define SYS(addr) ((addr) >= HIGH_OFFSET)
#define V_ADDR(addr) \
- (SYS(addr) ? ((char*)INTPriv(pInt)->sysMem) + (addr - HIGH_OFFSET) \
+ (SYS(addr) ? ((char*)INTPriv(pInt)->sysMem) + (addr - HIGH_BASE) \
: (((char*)(INTPriv(pInt)->base) + addr)))
#define VRAM_ADDR(addr) (addr - V_RAM)
#define VRAM_BASE (INTPriv(pInt)->vRam)

View File

@ -0,0 +1,16 @@
Index: programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c
===================================================================
RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -u -r1.50 -r1.51
--- programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c 25 Mar 2003 11:20:38 -0000 1.50
+++ programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c 5 Apr 2003 04:00:25 -0000 1.51
@@ -1359,6 +1359,7 @@
if (pMga->irq) {
drmCtlUninstHandler(pMga->drmFD);
pMga->irq = 0;
+ pMga->reg_ien = 0;
}
/* Cleanup DMA */

View File

@ -0,0 +1,16 @@
Index: programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c
===================================================================
RCS file: /home/ncvs/xfree/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -u -r1.103 -r1.104
--- programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c 18 Mar 2003 22:23:30 -0000 1.103
+++ programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c 19 Mar 2003 18:02:49 -0000 1.104
@@ -181,6 +181,7 @@
*/
static const char *vgahwSymbols[] = {
+ "vgaHWUnmapMem",
"vgaHWDPMSSet",
"vgaHWFreeHWRec",
"vgaHWGetHWRec",

View File

@ -0,0 +1,35 @@
Index: programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c
===================================================================
RCS file: /home/ncvs/xfree/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -u -r1.28 -r1.29
--- programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c 12 Mar 2003 21:27:18 -0000 1.28
+++ programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c 4 Apr 2003 00:18:50 -0000 1.29
@@ -24,7 +24,7 @@
/* Hacked together from mga driver and 3.3.4 NVIDIA driver by Jarno Paananen
<jpaana@s2.org> */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c,v 1.27 2003/02/10 23:42:51 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c,v 1.28 2003/03/12 21:27:18 mvojkovi Exp $ */
#include "nv_include.h"
@@ -424,6 +424,9 @@
break;
}
+ if(pNv->riva.Architecture == 3)
+ pNv->riva.PCRTC0 = pNv->riva.PGRAPH;
+
if(pNv->SecondCRTC) {
pNv->riva.PCIO = pNv->riva.PCIO0 + 0x2000;
pNv->riva.PCRTC = pNv->riva.PCRTC0 + 0x800;
@@ -492,7 +495,6 @@
frameBase+0x00C00000, 0x00008000);
NVCommonSetup(pScrn);
- pNv->riva.PCRTC = pNv->riva.PCRTC0 = pNv->riva.PGRAPH;
}
void

View File

@ -0,0 +1,16 @@
Index: programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c
===================================================================
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c,v
retrieving revision 1.23
diff -p -u -r1.23 radeon_cursor.c
--- programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c 2003/02/24 20:34:55 1.23
+++ programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c 2003/04/03 01:19:29
@@ -370,7 +370,7 @@ static void RADEONLoadCursorARGB (ScrnIn
}
if (info->IsSecondary || info->Clone) {
- save2 = INREG(RADEON_CRTC_GEN_CNTL) & ~(CARD32) (3 << 20);
+ save2 = INREG(RADEON_CRTC2_GEN_CNTL) & ~(CARD32) (3 << 20);
save2 |= (CARD32) (2 << 20);
OUTREG(RADEON_CRTC2_GEN_CNTL, save2 & (CARD32)~RADEON_CRTC2_CUR_EN);
}

View File

@ -0,0 +1,15 @@
Index: programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
===================================================================
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c,v
retrieving revision 1.32
diff -p -u -r1.32 radeon_dri.c
--- programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c 2003/02/19 09:17:30 1.32
+++ programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c 2003/03/17 01:43:24
@@ -1585,6 +1585,7 @@ void RADEONDRICloseScreen(ScreenPtr pScr
if (info->irq) {
drmCtlUninstHandler(info->drmFD);
info->irq = 0;
+ info->ModeReg.gen_int_cntl = 0;
}
/* De-allocate vertex buffers */