From 31179eebc6675c7d631952e4d10aaeb89f142f00 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 13 Jan 2005 22:52:24 +0000 Subject: [1] Add i810 driver to AMD64 package. [2] Put the manpages from section 4 under 4x. For example, you can do "man 4x vga" to get the X vga(4x) manpage, still do man 4 cirrus to get cirrus(4x), and man -a vga to get both vga manpages. [3] Apply several important-looking fixes to ATI drivers from the stable branch: - Fix mode setting with Mach64 on some laptops. - Don't crash with mach64 for some PCI configurations - Improve hang detection on r128s. (may improve speed in DRI, too) - Avoid a hang on server regen on r128 with DRI. - Fix the DynamicClocks support, which could have caused hangs with DRI on original Radeons. PR: [2] ports/25576 Submitted by: [2] fanf Requested by: [1] peter Obtained from: [3] XORG-6_8-branch --- x11-servers/xorg-server/Makefile | 102 ++++++++++----------- x11-servers/xorg-server/files/patch-ati-591 | 54 +++++++++++ x11-servers/xorg-server/files/patch-atiprobe.c | 18 ++++ x11-servers/xorg-server/files/patch-r128_accel.c | 33 +++++++ x11-servers/xorg-server/files/patch-r128_dri.c | 16 ++++ .../xorg-server/files/patch-radeon_driver.c | 19 ++++ x11-servers/xorg-server/files/patch-radeon_reg.h | 11 +++ x11-servers/xorg-server/files/patch-xorg.cf | 11 +++ x11-servers/xorg-server/pkg-plist | 2 +- x11-servers/xorg-server/scripts/configure | 5 + 10 files changed, 219 insertions(+), 52 deletions(-) create mode 100644 x11-servers/xorg-server/files/patch-ati-591 create mode 100644 x11-servers/xorg-server/files/patch-atiprobe.c create mode 100644 x11-servers/xorg-server/files/patch-r128_accel.c create mode 100644 x11-servers/xorg-server/files/patch-r128_dri.c create mode 100644 x11-servers/xorg-server/files/patch-radeon_driver.c create mode 100644 x11-servers/xorg-server/files/patch-radeon_reg.h create mode 100644 x11-servers/xorg-server/files/patch-xorg.cf (limited to 'x11-servers/xorg-server') diff --git a/x11-servers/xorg-server/Makefile b/x11-servers/xorg-server/Makefile index 4beb4cea3060..eeb687996382 100644 --- a/x11-servers/xorg-server/Makefile +++ b/x11-servers/xorg-server/Makefile @@ -7,7 +7,7 @@ PORTNAME= xorg-server PORTVERSION= 6.8.1 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= x11-servers MASTER_SITES= ${MASTER_SITE_XORG} MASTER_SITE_SUBDIR= X11R6.8.1/tars @@ -39,29 +39,29 @@ MAN1= Xorg.1 \ pcitweak.1 \ xorgcfg.1 \ xorgconfig.1 -MAN4= citron.4 \ - dmc.4 \ - dynapro.4 \ - elographics.4 \ - fbdevhw.4 \ - fpit.4 \ - glint.4 \ - js_x.4 \ - kbd.4 \ - keyboard.4 \ - mga.4 \ - microtouch.4 \ - mouse.4 \ - mutouch.4 \ - palmax.4 \ - penmount.4 \ - r128.4 \ - radeon.4 \ - tdfx.4 \ - tek4957.4 \ - vga.4 \ - void.4 \ - wacom.4 +MAN4= citron.4x \ + dmc.4x \ + dynapro.4x \ + elographics.4x \ + fbdevhw.4x \ + fpit.4x \ + glint.4x \ + js_x.4x \ + kbd.4x \ + keyboard.4x \ + mga.4x \ + microtouch.4x \ + mouse.4x \ + mutouch.4x \ + palmax.4x \ + penmount.4x \ + r128.4x \ + radeon.4x \ + tdfx.4x \ + tek4957.4x \ + vga.4x \ + void.4x \ + wacom.4x MAN5= getconfig.5 \ xorg.conf.5 @@ -81,7 +81,7 @@ IGNORE= is part of X.Org. For switching to X.Org, read UPDATING entry 20040723 PLIST_SUB+= ALPHA_NA="@comment " .else PLIST_SUB+= ALPHA_NA="" -MAN4+= vesa.4 +MAN4+= vesa.4x .endif .if ${ARCH} == ia64 @@ -93,46 +93,46 @@ PLIST_SUB+= IA64_NA="" .if ${ARCH} == sparc64 PLIST_SUB+= SPARC64="" PLIST_SUB+= SPARC64_NA="@comment " -MAN4+= sunbw2.4 \ - suncg14.4 \ - suncg3.4 \ - suncg6.4 \ - sunffb.4 \ - sunleo.4 \ - suntcx.4 +MAN4+= sunbw2.4x \ + suncg14.4x \ + suncg3.4x \ + suncg6.4x \ + sunffb.4x \ + sunleo.4x \ + suntcx.4x .else PLIST_SUB+= SPARC64="@comment " PLIST_SUB+= SPARC64_NA="" -MAN4+= cirrus.4 \ - nv.4 \ - rendition.4 \ - s3virge.4 \ - savage.4 \ - siliconmotion.4 +MAN4+= cirrus.4x \ + nv.4x \ + rendition.4x \ + s3virge.4x \ + savage.4x \ + siliconmotion.4x .endif .if ${ARCH} == i386 PLIST_SUB+= I386="" MAN1+= scanpci.1 -MAN4+= i740.4 \ - i810.4 \ - nsc.4 \ - via.4 \ - vmware.4 +MAN4+= i740.4x \ + nsc.4x \ + via.4x \ + vmware.4x .else PLIST_SUB+= I386="@comment " .endif .if ${ARCH} == amd64 || ${ARCH} == i386 PLIST_SUB+= AMD64_I386="" -MAN4+= apm.4 \ - chips.4 \ - cyrix.4 \ - i128.4 \ - neomagic.4 \ - sis.4 \ - trident.4 \ - tseng.4 +MAN4+= apm.4x \ + chips.4x \ + cyrix.4x \ + i128.4x \ + i810.4x \ + neomagic.4x \ + sis.4x \ + trident.4x \ + tseng.4x .else PLIST_SUB+= AMD64_I386="@comment " .endif diff --git a/x11-servers/xorg-server/files/patch-ati-591 b/x11-servers/xorg-server/files/patch-ati-591 new file mode 100644 index 000000000000..dc8e099f078a --- /dev/null +++ b/x11-servers/xorg-server/files/patch-ati-591 @@ -0,0 +1,54 @@ +Index: programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c +=================================================================== +RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c,v +retrieving revision 1.3 +retrieving revision 1.3.4.1 +diff -u -u -r1.3 -r1.3.4.1 +--- programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c 26 Jul 2004 19:14:58 -0000 1.3 ++++ programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c 15 Dec 2004 07:58:15 -0000 1.3.4.1 +@@ -1918,11 +1918,11 @@ + VBlankEnd += 0x0100U; + + pATI->LCDHBlankWidth = HBlankEnd - HBlankStart; +- pATI->LCDHSyncStart = HSyncStart - HBlankStart - 1; ++ pATI->LCDHSyncStart = HSyncStart - HBlankStart; + pATI->LCDHSyncWidth = HSyncEnd - HSyncStart; + + pATI->LCDVBlankWidth = VBlankEnd - VBlankStart; +- pATI->LCDVSyncStart = VSyncStart - VBlankStart - 1; ++ pATI->LCDVSyncStart = VSyncStart - VBlankStart; + pATI->LCDVSyncWidth = VSyncEnd - VSyncStart; + + HDisplay = HTotal + 5 - pATI->LCDHBlankWidth; +Index: programs/Xserver/hw/xfree86/drivers/ati/ativga.c +=================================================================== +RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c,v +retrieving revision 1.2 +retrieving revision 1.2.4.1 +diff -u -u -r1.2 -r1.2.4.1 +--- programs/Xserver/hw/xfree86/drivers/ati/ativga.c 23 Apr 2004 19:26:46 -0000 1.2 ++++ programs/Xserver/hw/xfree86/drivers/ati/ativga.c 15 Dec 2004 07:58:15 -0000 1.2.4.1 +@@ -185,7 +185,11 @@ + (pATI->Chip >= ATI_CHIP_264CT)) + pMode->CrtcHBlankStart--; + pMode->CrtcHSyncStart = pMode->HSyncStart >> 3; ++ if (pATI->LCDPanelID >= 0) ++ pMode->CrtcHSyncStart--; + pMode->CrtcHSyncEnd = pMode->HSyncEnd >> 3; ++ if (pATI->LCDPanelID >= 0) ++ pMode->CrtcHSyncEnd--; + pMode->CrtcHBlankEnd = (pMode->HTotal >> 3) - 1; + pMode->CrtcHTotal = (pMode->HTotal >> 3) - 5; + pMode->CrtcHSkew = pMode->HSkew; +@@ -327,6 +331,11 @@ + pMode->CrtcVBlankStart++; + else + pMode->CrtcVBlankStart--; ++ if (pATI->LCDPanelID >= 0) ++ { ++ pMode->CrtcVSyncStart--; ++ pMode->CrtcVSyncEnd--; ++ } + pMode->CrtcVBlankEnd--; + if (pATI->Chip < ATI_CHIP_264CT) + pMode->CrtcVBlankEnd--; diff --git a/x11-servers/xorg-server/files/patch-atiprobe.c b/x11-servers/xorg-server/files/patch-atiprobe.c new file mode 100644 index 000000000000..cb7371b1f153 --- /dev/null +++ b/x11-servers/xorg-server/files/patch-atiprobe.c @@ -0,0 +1,18 @@ +Index: programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c +=================================================================== +RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c,v +retrieving revision 1.3 +retrieving revision 1.3.2.2 +diff -u -u -r1.3 -r1.3.2.2 +--- programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c 30 Jul 2004 20:30:51 -0000 1.3 ++++ programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c 15 Dec 2004 08:47:20 -0000 1.3.2.2 +@@ -1554,6 +1560,9 @@ + continue; + + pPCI = pVideo->thisCard; ++ if (pPCI == NULL) ++ continue; ++ + PciReg = pciReadLong(pPCI->tag, PCI_REG_USERCONFIG); + j = PciReg & 0x03U; + if (j == 0x03U) diff --git a/x11-servers/xorg-server/files/patch-r128_accel.c b/x11-servers/xorg-server/files/patch-r128_accel.c new file mode 100644 index 000000000000..6acfe9834a8e --- /dev/null +++ b/x11-servers/xorg-server/files/patch-r128_accel.c @@ -0,0 +1,33 @@ +Index: programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c +=================================================================== +RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c,v +retrieving revision 1.3 +retrieving revision 1.3.4.1 +diff -u -u -r1.3 -r1.3.4.1 +--- programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c 16 Jun 2004 09:43:58 -0000 1.3 ++++ programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c 15 Dec 2004 09:22:02 -0000 1.3.4.1 +@@ -237,17 +237,23 @@ + i = 0; + do { + ret = drmCommandNone(info->drmFD, DRM_R128_CCE_IDLE); +- } while ( ret && errno == EBUSY && i++ < R128_IDLE_RETRY ); ++ } while ( ret && errno == EBUSY && i++ < (R128_IDLE_RETRY * R128_IDLE_RETRY) ); + + if (ret && ret != -EBUSY) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "%s: CCE idle %d\n", __FUNCTION__, ret); + } + ++ if (i > R128_IDLE_RETRY) { ++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, ++ "%s: (DEBUG) CCE idle took i = %d\n", __FUNCTION__, i); ++ } ++ + if (ret == 0) return; + + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Idle timed out, resetting engine...\n"); ++ R128CCE_STOP(pScrn, info); + R128EngineReset(pScrn); + + /* Always restart the engine when doing CCE 2D acceleration */ diff --git a/x11-servers/xorg-server/files/patch-r128_dri.c b/x11-servers/xorg-server/files/patch-r128_dri.c new file mode 100644 index 000000000000..c31694837bcc --- /dev/null +++ b/x11-servers/xorg-server/files/patch-r128_dri.c @@ -0,0 +1,16 @@ +Index: programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c +=================================================================== +RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c,v +retrieving revision 1.4 +retrieving revision 1.4.4.1 +diff -u -u -r1.4 -r1.4.4.1 +--- programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c 10 Jul 2004 14:22:35 -0000 1.4 ++++ programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c 15 Dec 2004 08:53:01 -0000 1.4.4.1 +@@ -1297,6 +1297,7 @@ + if (info->irq) { + drmCtlUninstHandler(info->drmFD); + info->irq = 0; ++ info->gen_int_cntl = 0; + } + + /* De-allocate vertex buffers */ diff --git a/x11-servers/xorg-server/files/patch-radeon_driver.c b/x11-servers/xorg-server/files/patch-radeon_driver.c new file mode 100644 index 000000000000..7361e77a5eaf --- /dev/null +++ b/x11-servers/xorg-server/files/patch-radeon_driver.c @@ -0,0 +1,19 @@ +--- programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c.orig Tue Aug 24 17:30:41 2004 ++++ programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c Thu Jan 13 14:34:17 2005 +@@ -4471,10 +4471,12 @@ + + RADEONSave(pScrn); + +- if (xf86ReturnOptValBool(info->Options, OPTION_DYNAMIC_CLOCKS, FALSE)) { +- RADEONSetDynamicClock(pScrn, 1); +- } else { +- RADEONSetDynamicClock(pScrn, 0); ++ if ((!info->IsSecondary) && info->IsMobility) { ++ if (xf86ReturnOptValBool(info->Options, OPTION_DYNAMIC_CLOCKS, FALSE)) { ++ RADEONSetDynamicClock(pScrn, 1); ++ } else { ++ RADEONSetDynamicClock(pScrn, 0); ++ } + } + + if (info->FBDev) { diff --git a/x11-servers/xorg-server/files/patch-radeon_reg.h b/x11-servers/xorg-server/files/patch-radeon_reg.h new file mode 100644 index 000000000000..4aa8575e4cb2 --- /dev/null +++ b/x11-servers/xorg-server/files/patch-radeon_reg.h @@ -0,0 +1,11 @@ +--- programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h.orig Mon Aug 9 15:37:22 2004 ++++ programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h Thu Jan 13 14:34:17 2005 +@@ -803,7 +803,7 @@ + # define RADEON_MC_MCLK_MAX_DYN_STOP_LAT (1<<12) + # define RADEON_IO_MCLK_MAX_DYN_STOP_LAT (1<<13) + # define RADEON_MC_MCLK_DYN_ENABLE (1 << 14) +-# define RADEON_IO_MCLK_DYN_ENABLE (1 << 14) ++# define RADEON_IO_MCLK_DYN_ENABLE (1 << 15) + #define RADEON_MDGPIO_A_REG 0x01ac + #define RADEON_MDGPIO_EN_REG 0x01b0 + #define RADEON_MDGPIO_MASK 0x0198 diff --git a/x11-servers/xorg-server/files/patch-xorg.cf b/x11-servers/xorg-server/files/patch-xorg.cf new file mode 100644 index 000000000000..794860e862fe --- /dev/null +++ b/x11-servers/xorg-server/files/patch-xorg.cf @@ -0,0 +1,11 @@ +--- config/cf/xorg.cf.orig Sat Jan 1 16:41:46 2005 ++++ config/cf/xorg.cf Sat Jan 1 16:42:18 2005 +@@ -446,7 +446,7 @@ + # ifndef XF86CardDrivers + # define XF86CardDrivers mga glint nv tga s3 s3virge sis rendition \ + neomagic tdfx savage cirrus tseng trident \ +- chips apm i128 ati ark cyrix siliconmotion \ ++ chips apm i128 ati i810 ark cyrix siliconmotion \ + vga dummy vesa \ + XF86OSCardDrivers XF86ExtraCardDrivers + # endif diff --git a/x11-servers/xorg-server/pkg-plist b/x11-servers/xorg-server/pkg-plist index 6ef4d946e931..da6ef8eb22a4 100644 --- a/x11-servers/xorg-server/pkg-plist +++ b/x11-servers/xorg-server/pkg-plist @@ -91,7 +91,7 @@ lib/modules/drivers/atimisc_drv.o lib/modules/drivers/glint_drv.o %%AMD64_I386%%lib/modules/drivers/i128_drv.o %%I386%%lib/modules/drivers/i740_drv.o -%%I386%%lib/modules/drivers/i810_drv.o +%%AMD64_I386%%lib/modules/drivers/i810_drv.o lib/modules/drivers/mga_drv.o %%AMD64_I386%%lib/modules/drivers/neomagic_drv.o %%I386%%lib/modules/drivers/nsc_drv.o diff --git a/x11-servers/xorg-server/scripts/configure b/x11-servers/xorg-server/scripts/configure index 267479720d4d..6c6e349a46d0 100644 --- a/x11-servers/xorg-server/scripts/configure +++ b/x11-servers/xorg-server/scripts/configure @@ -24,6 +24,11 @@ echo "#define BuildGLXLibrary YES" >> $LOCALDEF echo "#define UseInstalledPrograms YES" >> $LOCALDEF echo "#define StandardIncludes -I${PREFIX}/include" >> $LOCALDEF echo "#define BuildXFree86ConfigTools YES" >> $LOCALDEF +echo "#define BuildXFree86ConfigTools YES" >> $LOCALDEF +echo "#define DriverManDir \$(MANSOURCEPATH)4" >> $LOCALDEF +echo "#define DriverManSuffix 4x" >> $LOCALDEF +echo "#define MiscManDir \$(MANSOURCEPATH)7" >> $LOCALDEF +echo "#define MiscManSuffix 7x" >> $LOCALDEF if [ X$WITH_DEBUG != X ]; then export CFLAGS="-g $CFLAGS" -- cgit v1.2.3