summaryrefslogtreecommitdiff
path: root/xc/programs/Xserver
diff options
context:
space:
mode:
authorjhartmann <jhartmann>2000-03-15 21:38:23 +0000
committerjhartmann <jhartmann>2000-03-15 21:38:23 +0000
commit13f3c1ec07fedec0ff2e1e5912e8aa8fc854d189 (patch)
treea2870eea8e6c9950698b209a579e6bfb3bb0dba7 /xc/programs/Xserver
parentdc1f830cec321077c6323a297db166a05af620d7 (diff)
Import of XFree86 4.0X_4_0
Diffstat (limited to 'xc/programs/Xserver')
-rw-r--r--xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/itsy/itsy.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/itsy/itsy.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/itsy/kbd.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/itsy/ts.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kasync.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kcmap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kcolor.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kcurscol.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/kdrive.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kdrive.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kinfo.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kinput.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kkeymap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kkeymap.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kloadmap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kmap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kmode.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/knoop.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/ktest.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/linux/keyboard.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/linux/linux.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/linux/ps2.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3clock.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3cmap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3curs.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3draw.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3draw.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3gc.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3reg.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3reg.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3rtst.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3stub.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sis.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sis.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sisclock.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/siscmap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/siscurs.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sisio.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sisstub.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trident/trident.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trident/trident.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trident/tridentstub.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trio/s3.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trio/s3.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trio/s3clock.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trio/s3cmap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trio/s3curs.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trio/s3stub.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/ts300/ts300.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/vga.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/vga.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/vxworks/vxkbd.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/vxworks/vxmouse.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/vxworks/vxworks.c2
-rw-r--r--xc/programs/Xserver/hw/xfree86/CHANGELOG264
-rw-r--r--xc/programs/Xserver/hw/xfree86/Imakefile8
-rw-r--r--xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h7
-rw-r--r--xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c4
-rw-r--r--xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h6
-rw-r--r--xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h6
-rw-r--r--xc/programs/Xserver/hw/xfree86/XF86Config.cpp1561
-rw-r--r--xc/programs/Xserver/hw/xfree86/XFree86.cpp577
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/Imakefile13
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/compiler.h30
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86.h9
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Bus.c8
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Bus.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Config.c154
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Config.h4
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Configure.c731
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c53
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c14
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Globals.c8
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Helper.c83
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Init.c41
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Mode.c20
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Module.h8
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h6
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Priv.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c34
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86str.h8
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86xv.c90
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86xv.h59
-rw-r--r--xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c14
-rw-r--r--xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c6
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/BugReport55
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/DESIGN2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/Imakefile50
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/Install329
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/LICENSE44
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/OS2.Notes2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README104
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.DECtga27
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.DGA506
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.DGUX695
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.DRI659
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.I1282
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.Linux2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.LynxOS496
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.MGA2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.NetBSD44
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.OS22
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.Oak2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD37
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.P90002
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.S32
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.SCO2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.SOLX862
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.SVR42
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.SiS43
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.Video72
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.WstDig2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.agx2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.apm78
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.ark2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.ati2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.chips16
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.cirrus2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.cyrix59
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.epson2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.fbdev2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.fonts57
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.i74041
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.i810110
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.isc114
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.mouse32
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.neomagic2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.r12826
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.rendition40
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.s3virge4
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.trident2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.tseng2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/RELNOTES631
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/Status223
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc8
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/man/Imakefile22
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml19
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/DGUX.sgml789
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml719
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile99
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml398
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml46
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml510
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml29
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml31
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml64
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml421
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml30
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml36
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml6
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml86
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml10
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml55
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent22
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml58
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml44
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/i810.sgml125
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre4
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml112
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml23
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml23
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml26
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/xinput2
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/Imakefile4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/apm.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c28
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h5
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c164
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c66
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile9
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/ati.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h20
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c8
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c158
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c35
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c21
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c24
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h9
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c46
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h6
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c6
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c40
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cirrus/cirrus.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c6
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c22
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile6
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c116
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile10
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c8
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile8
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint.cpp112
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c20
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c72
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h11
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c142
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile13
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c73
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile20
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/README93
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h57
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c64
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c561
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h20
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dripriv.h24
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c366
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_drm.c59
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c36
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h1
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_sarea.h40
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp19
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h5
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c227
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c531
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile9
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c34
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/neomagic/neomagic.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile6
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c66
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h10
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h5
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c24
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile11
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/README8
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/r128.cpp70
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c64
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c57
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile13
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c126
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c255
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.cpp112
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h8
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.c256
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.h23
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c44
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c41
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c31
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c19
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c48
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c105
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h9
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c57
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/README19
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c27
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c24
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c27
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c27
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp61
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/sis/sis.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c17
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile11
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c82
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c66
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c6
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c26
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile9
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/trident/trident.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c122
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c23
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c48
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c29
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp4
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/Xinstall.sh992
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-excl10
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list23
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/fsrv-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/host.def8
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-excl3
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/mod-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/nest-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-excl5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-list3
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prt-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/set-list5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/vfb-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/xserv-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-list59
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/host.def5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin1-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/lib-excl11
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/prog-excl2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xdm-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list28
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def7
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-excl4
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list38
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def13
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-excl3
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list29
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/host.def8
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/mod-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/prog-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/set-list5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/xserv-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-excl10
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list60
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/fsrv-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/host.def8
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-excl3
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/mod-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/nest-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-excl5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-list3
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prt-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/set-list5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/vfb-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/xserv-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def9
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/mod-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/xserv-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list12
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/fsrv-list3
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/host.def7
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/man-excl6
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/set-list4
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/mod-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def4
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list38
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/host.def7
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list38
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/host.def7
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list38
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/host.def7
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/xserv-list1
-rwxr-xr-xxc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist35
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/common/extras6
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/common/fnon-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/common/host.def19
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/Imakefile14
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/dynapro/dynapro.cpp37
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/keyboard/Imakefile12
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/keyboard/keyboard.cpp97
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.cpp37
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h4
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c27
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/mouse/mouse.cpp152
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/void/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/void/void.cpp29
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/wacom/wacom.cpp37
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c173
-rw-r--r--xc/programs/Xserver/hw/xfree86/int10/Imakefile4
-rw-r--r--xc/programs/Xserver/hw/xfree86/loader/Imakefile9
-rw-r--r--xc/programs/Xserver/hw/xfree86/loader/dixsym.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/loader/xf86sym.c14
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/Imakefile4
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile37
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c96
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_apm.c137
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_ev56.c84
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c308
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile6
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/agpgart.h224
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c5
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c16
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c58
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c4
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c31
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c19
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c4
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/parser/DRI.c5
-rw-r--r--xc/programs/Xserver/hw/xfree86/parser/Device.c7
-rw-r--r--xc/programs/Xserver/hw/xfree86/parser/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/parser/Screen.c6
-rw-r--r--xc/programs/Xserver/hw/xfree86/parser/scan.c24
-rw-r--r--xc/programs/Xserver/hw/xfree86/parser/write.c114
-rw-r--r--xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c55
-rw-r--r--xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c54
-rw-r--r--xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c27
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c8
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf86Version.h12
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h4
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c6
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c4
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c8
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c89
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c3
-rw-r--r--xc/programs/Xserver/hw/xnest/Keyboard.c6
-rw-r--r--xc/programs/Xserver/include/servermd.h24
-rw-r--r--xc/programs/Xserver/mi/mioverlay.c137
-rw-r--r--xc/programs/Xserver/mi/mioverlay.h3
-rw-r--r--xc/programs/Xserver/mi/miscrinit.c3
-rw-r--r--xc/programs/Xserver/mi/mizerarc.c3
-rw-r--r--xc/programs/Xserver/os/utils.c4
-rw-r--r--xc/programs/Xserver/os/xalloc.c6
580 files changed, 17691 insertions, 5202 deletions
diff --git a/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c b/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c
index 1e521d948..8e55df245 100644
--- a/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c
+++ b/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c
@@ -1,5 +1,5 @@
/*
- * $Id: fbdev.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: fbdev.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c,v 1.2 1999/12/30 03:03:08 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c,v 1.3 2000/02/23 20:29:57 dawes Exp $ */
#include "fbdev.h"
diff --git a/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h b/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h
index acf0b08a4..052539bcc 100644
--- a/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h
+++ b/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h
@@ -1,5 +1,5 @@
/*
- * $Id: fbdev.h,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: fbdev.h,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h,v 1.2 1999/12/30 03:03:08 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h,v 1.3 2000/02/23 20:29:58 dawes Exp $ */
#ifndef _FBDEV_H_
#define _FBDEV_H_
diff --git a/xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c b/xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c
index 564b62585..c6da862d6 100644
--- a/xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c
+++ b/xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c
@@ -1,5 +1,5 @@
/*
- * $Id: fbinit.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: fbinit.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c,v 1.2 1999/12/30 03:03:08 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c,v 1.3 2000/02/23 20:29:58 dawes Exp $ */
#include <fbdev.h>
diff --git a/xc/programs/Xserver/hw/kdrive/itsy/itsy.c b/xc/programs/Xserver/hw/kdrive/itsy/itsy.c
index f3ca954bc..b80a8c900 100644
--- a/xc/programs/Xserver/hw/kdrive/itsy/itsy.c
+++ b/xc/programs/Xserver/hw/kdrive/itsy/itsy.c
@@ -1,5 +1,5 @@
/*
- * $Id: itsy.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: itsy.c,v 1.1 1999/11/02 18:39:28 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/itsy.c,v 1.2 1999/12/30 03:03:09 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/itsy.c,v 1.3 2000/02/23 20:29:58 dawes Exp $ */
#include "itsy.h"
diff --git a/xc/programs/Xserver/hw/kdrive/itsy/itsy.h b/xc/programs/Xserver/hw/kdrive/itsy/itsy.h
index bb3ee0d1a..c74eda008 100644
--- a/xc/programs/Xserver/hw/kdrive/itsy/itsy.h
+++ b/xc/programs/Xserver/hw/kdrive/itsy/itsy.h
@@ -1,5 +1,5 @@
/*
- * $Id: itsy.h,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: itsy.h,v 1.1 1999/11/02 18:39:28 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/itsy.h,v 1.1 1999/11/19 13:53:53 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/itsy.h,v 1.2 2000/02/23 20:29:59 dawes Exp $ */
#include "kdrive.h"
#include <stdio.h>
diff --git a/xc/programs/Xserver/hw/kdrive/itsy/kbd.c b/xc/programs/Xserver/hw/kdrive/itsy/kbd.c
index 1914c824e..1cc959e25 100644
--- a/xc/programs/Xserver/hw/kdrive/itsy/kbd.c
+++ b/xc/programs/Xserver/hw/kdrive/itsy/kbd.c
@@ -1,5 +1,5 @@
/*
- * $Id: kbd.c,v 1.1.1.1 2000/01/06 12:55:49 faith Exp $
+ * Id: kbd.c,v 1.1 1999/11/02 18:39:28 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/kbd.c,v 1.1 1999/11/19 13:53:53 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/kbd.c,v 1.2 2000/02/23 20:29:59 dawes Exp $ */
#include "itsy.h"
#include "kkeymap.h"
diff --git a/xc/programs/Xserver/hw/kdrive/itsy/ts.c b/xc/programs/Xserver/hw/kdrive/itsy/ts.c
index 5b2dce9ff..d17afa446 100644
--- a/xc/programs/Xserver/hw/kdrive/itsy/ts.c
+++ b/xc/programs/Xserver/hw/kdrive/itsy/ts.c
@@ -1,5 +1,5 @@
/*
- * $Id: ts.c,v 1.1.1.1 2000/01/06 12:55:49 faith Exp $
+ * Id: ts.c,v 1.1 1999/11/02 18:39:28 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/ts.c,v 1.1 1999/11/19 13:53:54 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/ts.c,v 1.2 2000/02/23 20:29:59 dawes Exp $ */
#define NEED_EVENTS
#include "itsy.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kasync.c b/xc/programs/Xserver/hw/kdrive/kasync.c
index bd5887f61..b76f83226 100644
--- a/xc/programs/Xserver/hw/kdrive/kasync.c
+++ b/xc/programs/Xserver/hw/kdrive/kasync.c
@@ -1,5 +1,5 @@
/*
- * $Id: kasync.c,v 1.1.1.2 2000/02/22 15:42:26 kem Exp $
+ * Id: kasync.c,v 1.3 1999/11/24 04:29:28 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kasync.c,v 1.3 2000/01/21 18:41:49 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kasync.c,v 1.4 2000/02/23 20:29:52 dawes Exp $ */
#include "kdrive.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kcmap.c b/xc/programs/Xserver/hw/kdrive/kcmap.c
index 4cc6f8a8a..934093f4a 100644
--- a/xc/programs/Xserver/hw/kdrive/kcmap.c
+++ b/xc/programs/Xserver/hw/kdrive/kcmap.c
@@ -1,5 +1,5 @@
/*
- * $Id: kcmap.c,v 1.1.1.1 2000/01/06 12:55:45 faith Exp $
+ * Id: kcmap.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kcmap.c,v 1.1 1999/11/19 13:53:48 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kcmap.c,v 1.2 2000/02/23 20:29:52 dawes Exp $ */
#include "kdrive.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kcolor.c b/xc/programs/Xserver/hw/kdrive/kcolor.c
index a1bbd931b..c0f1ccafe 100644
--- a/xc/programs/Xserver/hw/kdrive/kcolor.c
+++ b/xc/programs/Xserver/hw/kdrive/kcolor.c
@@ -1,5 +1,5 @@
/*
- * $Id: kcolor.c,v 1.1.1.1 2000/01/06 12:55:46 faith Exp $
+ * Id: kcolor.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kcolor.c,v 1.2 1999/12/30 03:03:05 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kcolor.c,v 1.3 2000/02/23 20:29:52 dawes Exp $ */
#include "kdrive.h"
#include <stdio.h>
diff --git a/xc/programs/Xserver/hw/kdrive/kcurscol.c b/xc/programs/Xserver/hw/kdrive/kcurscol.c
index db0e06b6c..3327e9044 100644
--- a/xc/programs/Xserver/hw/kdrive/kcurscol.c
+++ b/xc/programs/Xserver/hw/kdrive/kcurscol.c
@@ -1,5 +1,5 @@
/*
- * $Id: kcurscol.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: kcurscol.c,v 1.3 1999/12/21 03:51:56 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
diff --git a/xc/programs/Xserver/hw/kdrive/kdrive.c b/xc/programs/Xserver/hw/kdrive/kdrive.c
index 0b423f3ca..d2e70ce65 100644
--- a/xc/programs/Xserver/hw/kdrive/kdrive.c
+++ b/xc/programs/Xserver/hw/kdrive/kdrive.c
@@ -1,5 +1,5 @@
/*
- * $Id: kdrive.c,v 1.1.1.1 2000/01/06 12:55:46 faith Exp $
+ * Id: kdrive.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.c,v 1.2 1999/12/30 03:03:05 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.c,v 1.3 2000/02/23 20:29:53 dawes Exp $ */
#include "kdrive.h"
#ifdef PSEUDO8
diff --git a/xc/programs/Xserver/hw/kdrive/kdrive.h b/xc/programs/Xserver/hw/kdrive/kdrive.h
index e0c07b391..b5d374e60 100644
--- a/xc/programs/Xserver/hw/kdrive/kdrive.h
+++ b/xc/programs/Xserver/hw/kdrive/kdrive.h
@@ -1,5 +1,5 @@
/*
- * $Id: kdrive.h,v 1.1.1.2 2000/02/22 15:42:26 kem Exp $
+ * Id: kdrive.h,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.h,v 1.3 2000/01/21 01:12:01 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.h,v 1.4 2000/02/23 20:29:53 dawes Exp $ */
#include <stdio.h>
#include "X.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kinfo.c b/xc/programs/Xserver/hw/kdrive/kinfo.c
index da6fbf562..fad2ec055 100644
--- a/xc/programs/Xserver/hw/kdrive/kinfo.c
+++ b/xc/programs/Xserver/hw/kdrive/kinfo.c
@@ -1,5 +1,5 @@
/*
- * $Id: kinfo.c,v 1.1.1.1 2000/01/06 12:55:47 faith Exp $
+ * Id: kinfo.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kinfo.c,v 1.1 1999/11/19 13:53:49 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kinfo.c,v 1.2 2000/02/23 20:29:53 dawes Exp $ */
#include "kdrive.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kinput.c b/xc/programs/Xserver/hw/kdrive/kinput.c
index 373cb6a72..545c6660a 100644
--- a/xc/programs/Xserver/hw/kdrive/kinput.c
+++ b/xc/programs/Xserver/hw/kdrive/kinput.c
@@ -1,5 +1,5 @@
/*
- * $Id: kinput.c,v 1.1.1.1 2000/01/06 12:55:47 faith Exp $
+ * Id: kinput.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kinput.c,v 1.2 1999/12/30 03:03:06 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kinput.c,v 1.3 2000/02/23 20:29:54 dawes Exp $ */
#include "kdrive.h"
#include "inputstr.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kkeymap.c b/xc/programs/Xserver/hw/kdrive/kkeymap.c
index 277b47308..3d2fc663e 100644
--- a/xc/programs/Xserver/hw/kdrive/kkeymap.c
+++ b/xc/programs/Xserver/hw/kdrive/kkeymap.c
@@ -1,5 +1,5 @@
/*
- * $Id: kkeymap.c,v 1.1.1.1 2000/01/06 12:55:47 faith Exp $
+ * Id: kkeymap.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kkeymap.c,v 1.1 1999/11/19 13:53:49 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kkeymap.c,v 1.2 2000/02/23 20:29:54 dawes Exp $ */
#include "kdrive.h"
#include <X11/keysym.h>
diff --git a/xc/programs/Xserver/hw/kdrive/kkeymap.h b/xc/programs/Xserver/hw/kdrive/kkeymap.h
index 2b71b5829..2cb6a7f42 100644
--- a/xc/programs/Xserver/hw/kdrive/kkeymap.h
+++ b/xc/programs/Xserver/hw/kdrive/kkeymap.h
@@ -1,5 +1,5 @@
/*
- * $Id: kkeymap.h,v 1.1.1.1 2000/01/06 12:55:47 faith Exp $
+ * Id: kkeymap.h,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kkeymap.h,v 1.1 1999/11/19 13:53:50 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kkeymap.h,v 1.2 2000/02/23 20:29:54 dawes Exp $ */
/*
* All global variables and functions pertaining to keyboard key mapping
* live in this header file.
diff --git a/xc/programs/Xserver/hw/kdrive/kloadmap.c b/xc/programs/Xserver/hw/kdrive/kloadmap.c
index 0255602b0..54413466a 100644
--- a/xc/programs/Xserver/hw/kdrive/kloadmap.c
+++ b/xc/programs/Xserver/hw/kdrive/kloadmap.c
@@ -1,5 +1,5 @@
/*
- * $Id: kloadmap.c,v 1.1.1.1 2000/01/06 12:55:47 faith Exp $
+ * Id: kloadmap.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kloadmap.c,v 1.1 1999/11/19 13:53:50 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kloadmap.c,v 1.2 2000/02/23 20:29:54 dawes Exp $ */
#include "kdrive.h"
#include "kkeymap.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kmap.c b/xc/programs/Xserver/hw/kdrive/kmap.c
index 38467ff9c..51e30d47f 100644
--- a/xc/programs/Xserver/hw/kdrive/kmap.c
+++ b/xc/programs/Xserver/hw/kdrive/kmap.c
@@ -1,5 +1,5 @@
/*
- * $Id: kmap.c,v 1.1.1.1 2000/01/06 12:55:47 faith Exp $
+ * Id: kmap.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kmap.c,v 1.2 1999/12/30 03:03:06 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kmap.c,v 1.3 2000/02/23 20:29:55 dawes Exp $ */
#include "kdrive.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kmode.c b/xc/programs/Xserver/hw/kdrive/kmode.c
index c18be506e..73ef282f2 100644
--- a/xc/programs/Xserver/hw/kdrive/kmode.c
+++ b/xc/programs/Xserver/hw/kdrive/kmode.c
@@ -1,5 +1,5 @@
/*
- * $Id: kmode.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: kmode.c,v 1.2 1999/12/21 03:50:49 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
diff --git a/xc/programs/Xserver/hw/kdrive/knoop.c b/xc/programs/Xserver/hw/kdrive/knoop.c
index 7710f2655..939fc2514 100644
--- a/xc/programs/Xserver/hw/kdrive/knoop.c
+++ b/xc/programs/Xserver/hw/kdrive/knoop.c
@@ -1,5 +1,5 @@
/*
- * $Id: knoop.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: knoop.c,v 1.2 1999/11/02 06:16:28 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/knoop.c,v 1.1 1999/11/19 13:53:50 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/knoop.c,v 1.2 2000/02/23 20:29:55 dawes Exp $ */
/*
* GC ops that don't do anything
diff --git a/xc/programs/Xserver/hw/kdrive/ktest.c b/xc/programs/Xserver/hw/kdrive/ktest.c
index e2eea8980..3b6439f66 100644
--- a/xc/programs/Xserver/hw/kdrive/ktest.c
+++ b/xc/programs/Xserver/hw/kdrive/ktest.c
@@ -1,5 +1,5 @@
/*
- * $Id: ktest.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: ktest.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/ktest.c,v 1.1 1999/11/19 13:53:50 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/ktest.c,v 1.2 2000/02/23 20:29:55 dawes Exp $ */
#include "kdrive.h"
diff --git a/xc/programs/Xserver/hw/kdrive/linux/keyboard.c b/xc/programs/Xserver/hw/kdrive/linux/keyboard.c
index 2ffde9a3b..f46591bf1 100644
--- a/xc/programs/Xserver/hw/kdrive/linux/keyboard.c
+++ b/xc/programs/Xserver/hw/kdrive/linux/keyboard.c
@@ -1,5 +1,5 @@
/*
- * $Id: keyboard.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: keyboard.c,v 1.2 1999/11/08 06:22:01 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
diff --git a/xc/programs/Xserver/hw/kdrive/linux/linux.c b/xc/programs/Xserver/hw/kdrive/linux/linux.c
index e31c8e73b..af50fd7ec 100644
--- a/xc/programs/Xserver/hw/kdrive/linux/linux.c
+++ b/xc/programs/Xserver/hw/kdrive/linux/linux.c
@@ -1,5 +1,5 @@
/*
- * $Id: linux.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: linux.c,v 1.2 1999/11/23 04:21:09 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
diff --git a/xc/programs/Xserver/hw/kdrive/linux/ps2.c b/xc/programs/Xserver/hw/kdrive/linux/ps2.c
index 6ecf8e1f1..9ab1d59ac 100644
--- a/xc/programs/Xserver/hw/kdrive/linux/ps2.c
+++ b/xc/programs/Xserver/hw/kdrive/linux/ps2.c
@@ -1,5 +1,5 @@
/*
- * $Id: ps2.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: ps2.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3.c b/xc/programs/Xserver/hw/kdrive/savage/s3.c
index 49106a773..d350bfdea 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3.c,v 1.1.1.1 2000/01/06 12:55:49 faith Exp $
+ * Id: s3.c,v 1.3 1999/11/02 08:17:24 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3.c,v 1.2 1999/12/30 03:03:10 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3.c,v 1.3 2000/02/23 20:30:01 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3.h b/xc/programs/Xserver/hw/kdrive/savage/s3.h
index 45f977b31..b88371186 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3.h
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3.h
@@ -1,5 +1,5 @@
/*
- * $Id: s3.h,v 1.1.1.1 2000/01/06 12:55:50 faith Exp $
+ * Id: s3.h,v 1.2 1999/11/02 08:17:24 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3.h,v 1.2 1999/12/30 03:03:10 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3.h,v 1.3 2000/02/23 20:30:02 dawes Exp $ */
#ifndef _S3_H_
#define _S3_H_
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3clock.c b/xc/programs/Xserver/hw/kdrive/savage/s3clock.c
index 060de6213..dcab1cd6b 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3clock.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3clock.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3clock.c,v 1.1.1.1 2000/01/06 12:55:50 faith Exp $
+ * Id: s3clock.c,v 1.2 1999/11/02 06:16:29 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3clock.c,v 1.2 1999/12/30 03:03:11 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3clock.c,v 1.3 2000/02/23 20:30:02 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3cmap.c b/xc/programs/Xserver/hw/kdrive/savage/s3cmap.c
index 150808496..fb334a1f0 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3cmap.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3cmap.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3cmap.c,v 1.1.1.1 2000/01/06 12:55:50 faith Exp $
+ * Id: s3cmap.c,v 1.2 1999/11/02 06:16:29 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3cmap.c,v 1.2 1999/12/30 03:03:11 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3cmap.c,v 1.3 2000/02/23 20:30:02 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3curs.c b/xc/programs/Xserver/hw/kdrive/savage/s3curs.c
index 573f91c17..68fef0682 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3curs.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3curs.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3curs.c,v 1.1.1.1 2000/01/06 12:55:50 faith Exp $
+ * Id: s3curs.c,v 1.2 1999/11/02 06:16:29 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3curs.c,v 1.2 1999/12/30 03:03:11 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3curs.c,v 1.3 2000/02/23 20:30:03 dawes Exp $ */
#include "s3.h"
#include "s3draw.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3draw.c b/xc/programs/Xserver/hw/kdrive/savage/s3draw.c
index 951af0b40..eb6114af9 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3draw.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3draw.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3draw.c,v 1.1.1.1 2000/01/06 12:55:51 faith Exp $
+ * Id: s3draw.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3draw.c,v 1.2 1999/12/30 03:03:11 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3draw.c,v 1.3 2000/02/23 20:30:03 dawes Exp $ */
#include "s3.h"
#include "s3draw.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3draw.h b/xc/programs/Xserver/hw/kdrive/savage/s3draw.h
index 48b6faca5..5c524453d 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3draw.h
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3draw.h
@@ -1,5 +1,5 @@
/*
- * $Id: s3draw.h,v 1.1.1.1 2000/01/06 12:55:51 faith Exp $
+ * Id: s3draw.h,v 1.2 1999/11/02 06:16:29 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3draw.h,v 1.2 1999/12/30 03:03:12 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3draw.h,v 1.3 2000/02/23 20:30:04 dawes Exp $ */
#ifndef _S3DRAW_H_
#define _S3DRAW_H_
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3gc.c b/xc/programs/Xserver/hw/kdrive/savage/s3gc.c
index 5f992724b..6141585d7 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3gc.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3gc.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3gc.c,v 1.1.1.2 2000/02/22 15:42:27 kem Exp $
+ * Id: s3gc.c,v 1.2 1999/11/02 06:16:29 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3gc.c,v 1.3 2000/01/21 01:12:02 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3gc.c,v 1.4 2000/02/23 20:30:04 dawes Exp $ */
#include "s3.h"
#include "s3draw.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3reg.c b/xc/programs/Xserver/hw/kdrive/savage/s3reg.c
index 7efa8e73a..5801402cf 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3reg.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3reg.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3reg.c,v 1.1.1.1 2000/01/06 12:55:52 faith Exp $
+ * Id: s3reg.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3reg.c,v 1.2 1999/12/30 03:03:12 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3reg.c,v 1.3 2000/02/23 20:30:04 dawes Exp $ */
#include "s3reg.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3reg.h b/xc/programs/Xserver/hw/kdrive/savage/s3reg.h
index c7beefc5c..fa8ae20ba 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3reg.h
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3reg.h
@@ -1,5 +1,5 @@
/*
- * $Id: s3reg.h,v 1.1.1.1 2000/01/06 12:55:52 faith Exp $
+ * Id: s3reg.h,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3reg.h,v 1.2 1999/12/30 03:03:12 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3reg.h,v 1.3 2000/02/23 20:30:05 dawes Exp $ */
#ifndef _S3REG_H_
#define _S3REG_H_
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3rtst.c b/xc/programs/Xserver/hw/kdrive/savage/s3rtst.c
index ac67df1a3..3a1d6448b 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3rtst.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3rtst.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3rtst.c,v 1.1.1.1 2000/01/06 12:55:52 faith Exp $
+ * Id: s3rtst.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3rtst.c,v 1.1 1999/11/19 13:53:57 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3rtst.c,v 1.2 2000/02/23 20:30:05 dawes Exp $ */
#include <stdio.h>
#include "s3reg.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3stub.c b/xc/programs/Xserver/hw/kdrive/savage/s3stub.c
index 979cdbf60..5f46b9920 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3stub.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3stub.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3stub.c,v 1.1.1.1 2000/01/06 12:55:52 faith Exp $
+ * Id: s3stub.c,v 1.1 1999/11/02 08:19:15 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3stub.c,v 1.2 1999/12/30 03:03:13 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3stub.c,v 1.3 2000/02/23 20:30:05 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sis.c b/xc/programs/Xserver/hw/kdrive/sis530/sis.c
index 953a8f4ae..c4d1a9b53 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sis.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sis.c
@@ -1,5 +1,5 @@
/*
- * $Id: sis.c,v 1.1.1.1 2000/01/06 12:55:52 faith Exp $
+ * Id: sis.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sis.c,v 1.2 1999/12/30 03:03:14 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sis.c,v 1.3 2000/02/23 20:30:06 dawes Exp $ */
#include "sis.h"
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sis.h b/xc/programs/Xserver/hw/kdrive/sis530/sis.h
index 2bdefe015..d41da8948 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sis.h
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sis.h
@@ -1,5 +1,5 @@
/*
- * $Id: sis.h,v 1.1.1.1 2000/01/06 12:55:53 faith Exp $
+ * Id: sis.h,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sis.h,v 1.2 1999/12/30 03:03:14 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sis.h,v 1.3 2000/02/23 20:30:07 dawes Exp $ */
#ifndef _SIS_H_
#define _SIS_H_
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sisclock.c b/xc/programs/Xserver/hw/kdrive/sis530/sisclock.c
index d90635fae..795c7540b 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sisclock.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sisclock.c
@@ -1,5 +1,5 @@
/*
- * $Id: sisclock.c,v 1.1.1.1 2000/01/06 12:55:53 faith Exp $
+ * Id: sisclock.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisclock.c,v 1.1 1999/11/19 13:53:59 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisclock.c,v 1.2 2000/02/23 20:30:07 dawes Exp $ */
#include "sis.h"
#include <stdio.h>
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/siscmap.c b/xc/programs/Xserver/hw/kdrive/sis530/siscmap.c
index f2c86544b..09ba8ef0a 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/siscmap.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/siscmap.c
@@ -1,5 +1,5 @@
/*
- * $Id: siscmap.c,v 1.1.1.1 2000/01/06 12:55:53 faith Exp $
+ * Id: siscmap.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/siscmap.c,v 1.1 1999/11/19 13:53:59 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/siscmap.c,v 1.2 2000/02/23 20:30:07 dawes Exp $ */
#include "sis.h"
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/siscurs.c b/xc/programs/Xserver/hw/kdrive/sis530/siscurs.c
index 552724013..558ba88f0 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/siscurs.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/siscurs.c
@@ -1,5 +1,5 @@
/*
- * $Id: siscurs.c,v 1.1.1.1 2000/01/06 12:55:53 faith Exp $
+ * Id: siscurs.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/siscurs.c,v 1.1 1999/11/19 13:53:59 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/siscurs.c,v 1.2 2000/02/23 20:30:08 dawes Exp $ */
#include "sis.h"
#include "cursorstr.h"
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c b/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c
index 41942c15b..618bf2bc0 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c
@@ -1,5 +1,5 @@
/*
- * $Id: sisdraw.c,v 1.1.1.1 2000/01/06 12:55:54 faith Exp $
+ * Id: sisdraw.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c,v 1.2 1999/12/30 03:03:14 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c,v 1.3 2000/02/23 20:30:08 dawes Exp $ */
#include "sis.h"
#include "sisdraw.h"
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h b/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h
index fecb38dcd..8979cb635 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h
@@ -1,5 +1,5 @@
/*
- * $Id: sisdraw.h,v 1.1.1.1 2000/01/06 12:55:54 faith Exp $
+ * Id: sisdraw.h,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h,v 1.1 1999/11/19 13:53:59 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h,v 1.2 2000/02/23 20:30:08 dawes Exp $ */
#ifndef _SISDRAW_H_
#define _SISDRAW_H_
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sisio.c b/xc/programs/Xserver/hw/kdrive/sis530/sisio.c
index 6b2edef2c..e1b6a9442 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sisio.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sisio.c
@@ -1,5 +1,5 @@
/*
- * $Id: sisio.c,v 1.1.1.1 2000/01/06 12:55:54 faith Exp $
+ * Id: sisio.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisio.c,v 1.1 1999/11/19 13:54:00 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisio.c,v 1.2 2000/02/23 20:30:09 dawes Exp $ */
#ifdef linux
#define extern
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sisstub.c b/xc/programs/Xserver/hw/kdrive/sis530/sisstub.c
index f0d78f460..afec4050e 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sisstub.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sisstub.c
@@ -1,5 +1,5 @@
/*
- * $Id: sisstub.c,v 1.1.1.1 2000/01/06 12:55:54 faith Exp $
+ * Id: sisstub.c,v 1.1 1999/11/02 08:20:07 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisstub.c,v 1.2 1999/12/30 03:03:15 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisstub.c,v 1.3 2000/02/23 20:30:09 dawes Exp $ */
#include "sis.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trident/trident.c b/xc/programs/Xserver/hw/kdrive/trident/trident.c
index 63986927a..39ddea7f8 100644
--- a/xc/programs/Xserver/hw/kdrive/trident/trident.c
+++ b/xc/programs/Xserver/hw/kdrive/trident/trident.c
@@ -1,5 +1,5 @@
/*
- * $Id: trident.c,v 1.1.1.2 2000/02/22 15:42:28 kem Exp $
+ * Id: trident.c,v 1.2 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/trident.c,v 1.3 2000/01/21 01:12:02 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/trident.c,v 1.4 2000/02/23 20:30:10 dawes Exp $ */
#include "trident.h"
#define extern
diff --git a/xc/programs/Xserver/hw/kdrive/trident/trident.h b/xc/programs/Xserver/hw/kdrive/trident/trident.h
index f0bb0c0f4..2341d31aa 100644
--- a/xc/programs/Xserver/hw/kdrive/trident/trident.h
+++ b/xc/programs/Xserver/hw/kdrive/trident/trident.h
@@ -1,5 +1,5 @@
/*
- * $Id: trident.h,v 1.1.1.1 2000/01/06 12:55:54 faith Exp $
+ * Id: trident.h,v 1.2 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/trident.h,v 1.2 1999/12/30 03:03:16 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/trident.h,v 1.3 2000/02/23 20:30:10 dawes Exp $ */
#ifndef _TRIDENT_H_
#define _TRIDENT_H_
diff --git a/xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c b/xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c
index 721a78e02..4a4ea9289 100644
--- a/xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c
+++ b/xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c
@@ -1,5 +1,5 @@
/*
- * $Id: tridentcurs.c,v 1.1.1.1 2000/01/06 12:55:54 faith Exp $
+ * Id: tridentcurs.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c,v 1.2 1999/12/30 03:03:17 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c,v 1.3 2000/02/23 20:30:10 dawes Exp $ */
#include "trident.h"
#include "cursorstr.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c b/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c
index aa93af3bb..a080da16a 100644
--- a/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c
+++ b/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c
@@ -1,5 +1,5 @@
/*
- * $Id: tridentdraw.c,v 1.1.1.1 2000/01/06 12:55:55 faith Exp $
+ * Id: tridentdraw.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c,v 1.2 1999/12/30 03:03:17 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c,v 1.3 2000/02/23 20:30:11 dawes Exp $ */
#include "trident.h"
#include "tridentdraw.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h b/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h
index 6f4f2d5c1..14a6c922f 100644
--- a/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h
+++ b/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h
@@ -1,5 +1,5 @@
/*
- * $Id: tridentdraw.h,v 1.1.1.1 2000/01/06 12:55:55 faith Exp $
+ * Id: tridentdraw.h,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h,v 1.2 1999/12/30 03:03:18 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h,v 1.3 2000/02/23 20:30:11 dawes Exp $ */
#ifndef _TRIDENTDRAW_H_
#define _TRIDENTDRAW_H_
diff --git a/xc/programs/Xserver/hw/kdrive/trident/tridentstub.c b/xc/programs/Xserver/hw/kdrive/trident/tridentstub.c
index f52c5e1fb..c6c1c0898 100644
--- a/xc/programs/Xserver/hw/kdrive/trident/tridentstub.c
+++ b/xc/programs/Xserver/hw/kdrive/trident/tridentstub.c
@@ -1,5 +1,5 @@
/*
- * $Id: tridentstub.c,v 1.1.1.1 2000/01/06 12:55:55 faith Exp $
+ * Id: tridentstub.c,v 1.1 1999/11/02 08:19:15 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentstub.c,v 1.2 1999/12/30 03:03:18 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentstub.c,v 1.3 2000/02/23 20:30:11 dawes Exp $ */
#include "trident.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trio/s3.c b/xc/programs/Xserver/hw/kdrive/trio/s3.c
index 349e9310e..6ad63ed75 100644
--- a/xc/programs/Xserver/hw/kdrive/trio/s3.c
+++ b/xc/programs/Xserver/hw/kdrive/trio/s3.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3.c,v 1.1.1.1 2000/01/06 12:55:55 faith Exp $
+ * Id: s3.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3.c,v 1.2 1999/12/30 03:03:19 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3.c,v 1.3 2000/02/23 20:30:12 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trio/s3.h b/xc/programs/Xserver/hw/kdrive/trio/s3.h
index 44fa21eaf..bd34edaff 100644
--- a/xc/programs/Xserver/hw/kdrive/trio/s3.h
+++ b/xc/programs/Xserver/hw/kdrive/trio/s3.h
@@ -1,5 +1,5 @@
/*
- * $Id: s3.h,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: s3.h,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3.h,v 1.2 1999/12/30 03:03:19 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3.h,v 1.3 2000/02/23 20:30:12 dawes Exp $ */
#ifndef _S3_H_
#define _S3_H_
diff --git a/xc/programs/Xserver/hw/kdrive/trio/s3clock.c b/xc/programs/Xserver/hw/kdrive/trio/s3clock.c
index e08c93706..c44decab8 100644
--- a/xc/programs/Xserver/hw/kdrive/trio/s3clock.c
+++ b/xc/programs/Xserver/hw/kdrive/trio/s3clock.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3clock.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: s3clock.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3clock.c,v 1.2 1999/12/30 03:03:19 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3clock.c,v 1.3 2000/02/23 20:30:13 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trio/s3cmap.c b/xc/programs/Xserver/hw/kdrive/trio/s3cmap.c
index e09b0a7d1..44bc3d001 100644
--- a/xc/programs/Xserver/hw/kdrive/trio/s3cmap.c
+++ b/xc/programs/Xserver/hw/kdrive/trio/s3cmap.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3cmap.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: s3cmap.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3cmap.c,v 1.1 1999/11/19 13:54:05 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3cmap.c,v 1.2 2000/02/23 20:30:13 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trio/s3curs.c b/xc/programs/Xserver/hw/kdrive/trio/s3curs.c
index e07843fb0..e353b7eb3 100644
--- a/xc/programs/Xserver/hw/kdrive/trio/s3curs.c
+++ b/xc/programs/Xserver/hw/kdrive/trio/s3curs.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3curs.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: s3curs.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3curs.c,v 1.2 1999/12/30 03:03:19 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3curs.c,v 1.3 2000/02/23 20:30:13 dawes Exp $ */
#include "s3.h"
#include "s3draw.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trio/s3stub.c b/xc/programs/Xserver/hw/kdrive/trio/s3stub.c
index 0a4d6991e..750d49ccd 100644
--- a/xc/programs/Xserver/hw/kdrive/trio/s3stub.c
+++ b/xc/programs/Xserver/hw/kdrive/trio/s3stub.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3stub.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: s3stub.c,v 1.1 1999/11/02 08:19:15 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3stub.c,v 1.2 1999/12/30 03:03:20 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3stub.c,v 1.3 2000/02/23 20:30:13 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/ts300/ts300.c b/xc/programs/Xserver/hw/kdrive/ts300/ts300.c
index 22345d5cc..14dccf21f 100644
--- a/xc/programs/Xserver/hw/kdrive/ts300/ts300.c
+++ b/xc/programs/Xserver/hw/kdrive/ts300/ts300.c
@@ -1,5 +1,5 @@
/*
- * $Id: ts300.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: ts300.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/ts300/ts300.c,v 1.2 1999/12/30 03:03:20 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/ts300/ts300.c,v 1.3 2000/02/23 20:30:14 dawes Exp $ */
#include "kdrive.h"
diff --git a/xc/programs/Xserver/hw/kdrive/vga.c b/xc/programs/Xserver/hw/kdrive/vga.c
index 82a868f30..9f52f2ba2 100644
--- a/xc/programs/Xserver/hw/kdrive/vga.c
+++ b/xc/programs/Xserver/hw/kdrive/vga.c
@@ -1,5 +1,5 @@
/*
- * $Id: vga.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: vga.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/vga.c,v 1.2 1999/12/30 03:03:07 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/vga.c,v 1.3 2000/02/23 20:29:56 dawes Exp $ */
#include "vga.h"
#include <stdio.h>
diff --git a/xc/programs/Xserver/hw/kdrive/vga.h b/xc/programs/Xserver/hw/kdrive/vga.h
index 8f2a464b3..e7be1c808 100644
--- a/xc/programs/Xserver/hw/kdrive/vga.h
+++ b/xc/programs/Xserver/hw/kdrive/vga.h
@@ -1,5 +1,5 @@
/*
- * $Id: vga.h,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: vga.h,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/vga.h,v 1.2 1999/12/30 03:03:07 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/vga.h,v 1.3 2000/02/23 20:29:56 dawes Exp $ */
#ifndef _VGA_H_
#define _VGA_H_
diff --git a/xc/programs/Xserver/hw/kdrive/vxworks/vxkbd.c b/xc/programs/Xserver/hw/kdrive/vxworks/vxkbd.c
index 7d9d15725..ab9a00573 100644
--- a/xc/programs/Xserver/hw/kdrive/vxworks/vxkbd.c
+++ b/xc/programs/Xserver/hw/kdrive/vxworks/vxkbd.c
@@ -1,5 +1,5 @@
/*
- * $Id: vxkbd.c,v 1.1.1.1 2000/01/06 12:55:57 faith Exp $
+ * Id: vxkbd.c,v 1.1 1999/11/24 08:35:24 keithp Exp $
*
* Copyright © 1999 Network Computing Devices, Inc. All rights reserved.
*
diff --git a/xc/programs/Xserver/hw/kdrive/vxworks/vxmouse.c b/xc/programs/Xserver/hw/kdrive/vxworks/vxmouse.c
index 010ced6f6..217ddd12e 100644
--- a/xc/programs/Xserver/hw/kdrive/vxworks/vxmouse.c
+++ b/xc/programs/Xserver/hw/kdrive/vxworks/vxmouse.c
@@ -1,5 +1,5 @@
/*
- * $Id: vxmouse.c,v 1.1.1.1 2000/01/06 12:55:57 faith Exp $
+ * Id: vxmouse.c,v 1.1 1999/11/24 08:35:24 keithp Exp $
*
* Copyright © 1999 Network Computing Devices, Inc. All rights reserved.
*
diff --git a/xc/programs/Xserver/hw/kdrive/vxworks/vxworks.c b/xc/programs/Xserver/hw/kdrive/vxworks/vxworks.c
index 54d3a6a10..b7c9fd431 100644
--- a/xc/programs/Xserver/hw/kdrive/vxworks/vxworks.c
+++ b/xc/programs/Xserver/hw/kdrive/vxworks/vxworks.c
@@ -1,5 +1,5 @@
/*
- * $Id: vxworks.c,v 1.1.1.1 2000/01/06 12:55:57 faith Exp $
+ * Id: vxworks.c,v 1.1 1999/11/24 08:35:24 keithp Exp $
*
* Copyright © 1999 Network Computing Devices, Inc. All rights reserved.
*
diff --git a/xc/programs/Xserver/hw/xfree86/CHANGELOG b/xc/programs/Xserver/hw/xfree86/CHANGELOG
index cad750b68..0f9947ad5 100644
--- a/xc/programs/Xserver/hw/xfree86/CHANGELOG
+++ b/xc/programs/Xserver/hw/xfree86/CHANGELOG
@@ -1,3 +1,261 @@
+XFree86 4.0 (8 March 2000)
+3972. Possible fix for a cirrus driver crash when using -configure
+ (David Dawes).
+3971. R128 driver doc update (#3813, Ove Kaaven).
+3970. Update Unicode/ISO 10646 information in the release notes (#3812,
+ Markus Kuhn).
+3969. Fix an apm driver crash when using -configure (#3811, Loic Grenie).
+3968. Release notes updates (David Dawes).
+3967. Major updates to the XF86Config man page (David Dawes).
+3966. Update the Cyrix driver documentation (#3810, Richard Hecker).
+3965. Update the APM driver documentation (#3809, Loic Grenie).
+3964. Fix a name clash in XF86OffscreenImageRec (Mark Vojkovich).
+
+XFree86 3.9.18Za (7 March 2000)
+3963. GCC/egcs bug workaround and other more minor ATI fixes (Marc La France).
+3962. Split HasGlide into HasGlide2 and HasGlide3 (David Dawes).
+3961. Enable known gcc optmisation work arounds by default (David Dawes).
+3960. Fix uninitialized screen function (RestackWindow) (#3806, Keith Packard).
+3959. Added DRI users guide documentation (Brian Paul and Kevin Martin).
+3958. Update the -misc-fixed-* BDF fonts. New glyphs have been added and
+ some old ones fixed. 10x20.bdf and 9x15.bdf now also cover the
+ ISO 8859-6 characters (Arabic), and 18x18ja.bdf covers now all
+ characters necessary to display the full ISO-2022-JP-2 repertoire
+ (#3799, Markus Kuhn).
+3957. Make sure the fbdevhw module is loaded by the glint driver when it
+ is needed, and add some memory barriers to some register access macros
+ (#3804, Michel Dänzer).
+3956. Update the glint driver man page and release notes (#3804,
+ Michel Dänzer).
+3955. Remove some noisy messages from the mga driver (#3803, Mark Vojkovich).
+3954. The last segment in any zero-width polysegment drawing request to
+ a window with more than one clipping rectangle gets dropped in the
+ fb code (#3802, Keith Packard).
+3953. Fix the versions for which HasMTRRSupport is enabled for OpenBSD
+ (#3800, Matthieu Herrb).
+3952. Fix some "ambiguous" else statements in some of the driver Probe()
+ functions (David Dawes).
+3951. Don't make the VBEInit call in the chips driver dependent on the loader
+ server (David Dawes).
+3950. Register vbe symbols as "referenced" with the loader in drivers that
+ use them (David Dawes).
+3949. Fixed the unresolved VBE symbols in the r128 driver and a crash
+ related to referencing vgahw symbols before the module is loaded
+ (Kevin Martin).
+3948. Fix a -configure crash in the tdfx driver (David Dawes).
+3947. Fix a mouse driver bug that prevented the X server from seeing the
+ mouse button 4 and above when three button emulation is enabled
+ (#3773, Yoshihiko Sarumau, Kazutaka Yokota).
+3946. Add NO_GXCOPY to the s3virge driver's imagewrite flags, which fixes
+ a crash (#3783, Kevin Brosius).
+3945. Fix a parser build problem for Interactive Unix, and update the
+ docs (#3796, Michael Rohleder).
+3944. Fix the r128 hw cursor for big endian machines, and enable building
+ the r128 driver for PPC (#3975, Kostas Gewrgiou).
+3943. Update lnxResource.c to allow builds to succeed on PPC platforms
+ (#3795, Kostas Gewrgiou).
+3942. B&H Lucidux fonts (#3794, donated by Charles Bigelow, Kris Holmes
+ from Bigelow and Holmes Inc, with hinting donated by Berthold Horn and
+ Blenda Horn from Y&Y, Inc).
+3941. Doc update for the sis driver (#3793, R Horn).
+3940. Fix an xman build problem on LynxOS (#3792, Thomas Mueller).
+3939. Fix some 24-plane problems with the tga driver, and update the docs
+ (#3789, Martin Lucina).
+3938. Rage 128 documentation update (Kevin Martin).
+3937. Fix an unresolved reference to VErrorF from the int10 module
+ (David Dawes).
+3936. Reduce some of the noise in the server startup messages (David Dawes).
+3935. Static library objects don't use THREADS_CFLAGS (#3790, Matthieu Herrb).
+3934. Fix a fatal error related to shared memory pixmaps in Xinerama (#3788,
+ Mark Vojkovich).
+3933. Fix IA64 build fixes (#3787, Mark Vojkovich).
+3932. Fill out the rendition man page (#3785, Dejan Ilic).
+3931. Update the s3virge man page (#3784, Kevin Brosius).
+3930. Fix the FreeBSD/alpha code to track changes made to the Linux memory
+ mapping code (#3782, Doug Rabson).
+3929. Update email addresses for C&T driver authors (#3781, Nozomi Ytow).
+
+XFree86 3.9.18Z (3 March 2000)
+3928. Restrict the X server -configure option to root, and fix a crash
+ when the server fails to read the first stage config file that it
+ writes when run with this option (David Dawes).
+3927. Modify the parser's xf86WriteConfigFile() function to write the
+ file using the real user id when the real and effective ids are
+ different (David Dawes).
+3926. Fix a problem with VT switching disabling direct rendering 3D apps
+ (Kevin Martin).
+3925. Add an imake parameter called XFree86Devel that can be set in host.def
+ to enable devel-specific settings (like more verbose compiler warnings),
+ and adjust GccWarningOptions to use this (David Dawes).
+3924. Various doc updates, and don't install out of date docs (David Dawes).
+3923. Fix a thread related problem in the Xv client library (Mark Vojkovich).
+3922. Fix a Xinerama problem with XShapeMask (Mark Vojkovich).
+3921. LynxOS documentation and bindist updates, and an os-support fix (#3779,
+ Thomas Mueller).
+3920. Update the wacom input driver to suppor the PL400 model and the
+ stroking pen on the Intuos model (#3778, Frederic Lepied).
+3919. Xterm patch #131 (#3777, Thomas Dickey).
+3918. -
+3917. Add prototypes for xman, and eliminate most of the compiler warnings
+ (#3772, Thomas Dickey).
+3916. Xterm patch #130 (#3771, Thomas Dickey).
+3915. Fix a segfault in XAA caused by reading beyond shared memory bitmaps
+ when hardware clipping is not available (Mark Vojkovich).
+3914. Update the mga man page (Mark Vojkovich).
+3913. A Q&D fix for GLX segment violation in loader server (Marc La France).
+3912. Add Mach64 screen-to-screen copy acceleration (Marc La France).
+3911. IA-64 fixes (Mark Vojkovich).
+3910. Add skeleton man pages for the video and input drivers that don't
+ already have one (David Dawes).
+3909. Add man pages for the mouse, keyboard and void input drivers
+ (David Dawes).
+3908. Enable building the "void" input driver by default (David Dawes).
+3907. Keep xf86RegisterRootWindowProperty from freeing data it didn't
+ allocate (Mark Vojkovich).
+3906. Add an extra file name to the server config file search path --
+ XF86Config-M, where M is the major version number (David Dawes).
+3905. DRI megapatch II. This includes DRI enhancements, 3dfx fixes and
+ updates, updates Mesa to version 3.3 beta, adds new GLX dispatch
+ code and adds i810 2D support (Precision Insight).
+3904. Add SERVER_OVERLAY_VISUALS root window property (Mark Vojkovich).
+3903. Remove unnecessary VGA CRTC unlock/relock in cyrix driver
+ (Marc La France).
+3902. Fix ATI driver's 8514/A probe delay when one isn't present
+ (Marc La France).
+3901. Changes to -configure: ATI driver interface; Move default monitor
+ tolerances to xf86ValidateModes(); Let drivers decide on default depth
+ and mode; Don't "special-case" VGA driver. (Marc La France)
+3900. Fix xc/lib/Imakefile for BuildServersOnly (Marc La France).
+
+XFree86 3.9.18b (29 February 2000)
+3899. Fix a bug in lnx_apm.c that causes fd 0 to be closed instead
+ of the just opened /proc/apm (#3766, Kars de Jong).
+3898. Fix a SuperProbe build problem on UnixWare 7 (#3765, Thanh Ma).
+3897. Mouse doc updates (#3764, Kazutaka Yokota).
+3896. Speed up dashed lines and conic sections in fb, including changing
+ mi to use PolyPoint instead of FillSpans for dashed arcs (#3763,
+ Keith Packard).
+3895. Add shadowfb support to the rendition driver (#3762, Dejan Ilic).
+3894. Allow Rage128 driver to Probe DDC too (Alan Hourihane).
+3893. Allow i740 driver to Probe DDC (using vbe) for -configure, and remove
+ one liner from tdfx driver to enable it too (Alan Hourihane).
+3892. Make GNU make -j workaround separately configurable (Marc La France).
+3891. Replace remaining occurrences of BuildXTT imake symbol with
+ BuildXTrueType (Marc La France).
+3890. Fix some problems using the UTF-8 -locale:
+ - Add proper side (GL/GR) handling to the UTF-8 locale
+ - No more need to define ISO10646-1 in en_US.UTF-8. It is already
+ defined in lcCT.c
+ - The fontset loading routines would access invalid memory when
+ not all fonts for a fontset were found
+ (#3761, Bruno Haible).
+3889. Avoid spurious warnings from the XFree86-Bigfont extension (#3760,
+ Bruno Haible).
+3888. Fix an error in the XtAppMainLoop() man page related to its return
+ behaviour (#3759, Bruno Haible).
+3887. Make it possible for gcc to compile the Linux int10 module with -fPIC
+ (#3758, Bruno Haible).
+3886. Fix typos in fontcacheP.h and RELNOTES (#3757, Bruno Haible).
+3885. Disable stripping programs when they are installed to make it
+ easier to debug problems that may show up within libraries (#3756,
+ Bruno Haible).
+3884. Add support for reading power management events for NetBSD and
+ OpenBSD (#3755, Matthieu Herrb).
+3883. Update Xinstall.sh for NetBSD-current-ELF (#3754, Matthieu Herrb).
+3882. Update NetBSD and OpenBSD bindist files (#3753, Matthieu Herrb).
+3881. Apm driver update, including extending the Rush extension to allow
+ initialisation of the Rush chip in a legal way (#3751, Loic Grenie).
+3880. Xterm patch #129 (#3751, Thomas Dickey).
+3879. Add DDC support to the tdfx driver via the vbe interface (#3750,
+ Jarno Paananen).
+3878. Enable double scan and interlaced modes for the tdfx and nv drivers
+ (#3750, Jarno Paananen).
+3877. Fix 8bpp initialisation problem with the rendition driver (#3749,
+ Dejan Ilic).
+3876. Update the XThrStub library version with that in the 3.3.x branch,
+ and enable thread-safe libraries for OpenBSD 2.6 and later (#3748,
+ Matthieu Herrb).
+3875. Fix some REGION_BROKEN related stuff with the overlays (Mark Vojkovich).
+3874. Fix a bug with unaccelerated pixmap cache uploads when virtualX
+ was larger than the displayWidth (Mark Vojkovich).
+3873. Xinerama changes (Mark Vojkovich).
+ - extend the Xinerama protocol and change the version number to 1.1.
+ - add a new client API in the "Xinerama" namespace with more
+ functionality than the previous "PanoramiX" functions.
+ - move Xinerama functions out of libXext and into libXinerama.a.
+ - some Xinerama bug fixes.
+3872. Add a flags field to the XF86OffscreenImageRec (Mark Vojkovich).
+3871. Fix a malloc/free problem in Xnest on 64-bit platforms (David Dawes).
+3870. Update bindist definition files (David Dawes).
+3869. More installer updates (David Dawes).
+3868. Make -configure generate multihead configs (Alan Hourihane).
+
+XFree86 3.9.18a (25 February 2000)
+3867. Add a preliminary Install document (David Dawes).
+3866. Remove obsolete XF98 and XF68 definitions from xfree86.cf (David Dawes).
+3865. Fix some rendition driver problems (#3746, Dejan Ilic).
+3864. Add build-time support for using fb instead of cfb with the nv
+ driver (#3744, Jarno Paananen).
+3863. Add missing xf86_ansic.h include for the nv driver, and avoid a
+ gcc 2.96-generated memcpy call in Mesa (#3743, Jarno Paananen).
+3862. Glint driver updates:
+ - removed obsolete NoWriteBitmap option
+ - reworked pm2_accel.c (cleaned up swapping/mirroring, removed
+ obsolete hacks)
+ - fixed setting of mode sync flags
+ - fixed PolySegmentThinSolidWrapper functions
+ (#3742, Michel Dänzer).
+3861. Change the positioning of $(XF86INT10LIB) to fix some static server
+ linking problems (#3741, Kevin Brosius).
+3860. Make xclock's -brief option off by default, and document it in the
+ man page (#3740, Nozomi Ytow).
+3859. Improve the default converters set in libX11, and use it for all
+ "one byte" locales (#3737, Ivan Pascal).
+3858. Some improvements to the generic converters set in libX11, including:
+ - some converter optimization
+ - actions that can be done once at initialization step moved to
+ lcGeneric.c
+ - converters from CharSet to MultiByte/WideChar added
+ (#3731, Ivan Pascal).
+3857. Add a "showCurrent" resource for Xaw, which makes the list widget
+ always show the selected item (#3728, Paulo Cesar Pereira de Andrade).
+3856. Use fb for the fbdev driver, and check if the fbdev modes are suitable
+ for the monitor (#3709, Michel Dänzer).
+3855. Add support for finding VT devices for Linux kernels compiled with
+ devfs (#3692, Christopher Sekiya).
+3854. Implmenent the Font Type font properties for the Speedo, Type 1 and
+ TrueType backends (#3688, Juliusz Chroboczek).
+3853. Add an installation script (Xinstall.sh) for installing binary
+ distributions (David Dawes).
+3852. Fix bitmap installation location for xditview (#3724, Harald Koenig).
+3851. Make -probe and -configure deal with vendor-supplied modules again
+ (Marc La France).
+3850. Fix an exposure problem that occured in 8+32 mode when the root
+ window was in depth 24 (Mark Vojkovich).
+3849. The MGA driver now recognizes a "VideoKey" option that sets the
+ default video key for YUV overlays (Mark Vojkovich).
+3848. Add some missing cfbDrawableEnabled checks to the 8+32 and 24+32
+ framebuffers (Mark Vojkovich).
+3847. Fix a segfault introduced by the workaround in 3546 below.
+3846. Fix big endian problems in XAA stipple code (Michel Dänzer).
+3845. Fix xf86MatchPciInstances() to not cause r128 to report detection of
+ other ATI adapters to -probe (Marc La France).
+3844. Fix bug in xf86MatchDevices() with -probe or -configure (Marc La France).
+3843. More compilation fixups (Marc La France).
+3842. Make -probe and -configure use compiled-in driver lists. Make -configure
+ work in the static server (Marc La France).
+3841. A second attempt at fixing DPS compilation (Marc La France).
+3840. Add DDC probing to the -configure option and enable it in the trident
+ driver (Alan Hourihane).
+3839. Bring xditview over from the contrib dist.
+3838. Fix drm free list bug (Jeff Hartmann and Rik Faith, Precision Insight).
+3837. Remove deprecated keywords (Kevin Martin).
+3836. Support for YUV offscreen surfaces in Xv and have the MGA driver
+ offer them (Mark Vojkovich).
+3835. Reorder generic Xv adaptor registration to allow V4L to use
+ driver-managed YUV offscreen surfaces (Gerd Knorr).
+3834. Preliminary IA-64 support (Mark Vojkovich, Johannes Erdfelt).
+
XFree86 3.9.18 (21 February 2000)
3833. Bump the minor version number for libXaw since it has some symbols
that are not present in 6.0.
@@ -4513,7 +4771,7 @@ XFree86 3.9n (26 August 1997)
1201. Move most common extensions into a module (#889, Matthieu Herrb).
1200. OpenBSD multi-architecture support (#888, Matthieu Herrb).
1199. Disable disables broken software/hardware cursor switching in s3/svga
- (#887, Mark Voikovich).
+ (#887, Mark Vojkovich).
1198. Some fixes for PC98. XF86Setup, mga driver, VideoBoards98, Cards98
(#886, Takaaki Nomura, Takefumi Tsukada).
1197. Acceleration fixes for Trident and accelerated ImageWrite (#883,884,885
@@ -5434,7 +5692,7 @@ XFree86 3.2At (14 April 1997)
values for 150MHz through 229MHz dot clocks. Set clock limits correctly
for Laguna chips. (#280, Corey Anderson).
678. Fix problem in xf86gcmisc.c that could cause a segfault (#279,
- Mark Voikovich).
+ Mark Vojkovich).
677. Fix problems with NonTE text in XAA (#278, David Bateman).
676. Fix loader under SVR4.0.4 (lstat,fstat,mknod)(#277, Richard Coley).
675. Speedups for dashed lines in SVGA/S3 (#276, Mark Vojkovich).
@@ -9777,4 +10035,4 @@ XFree86 3.0 (26 April 1994)
-$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.1021 2000/02/21 20:44:40 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.1079 2000/03/08 19:27:44 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/Imakefile b/xc/programs/Xserver/hw/xfree86/Imakefile
index d3f1ab5c7..6547d719b 100644
--- a/xc/programs/Xserver/hw/xfree86/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/Imakefile
@@ -3,7 +3,7 @@ XCOMM $XConsortium: Imakefile /main/12 1996/12/16 12:31:46 rws $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/Imakefile,v 3.62 2000/02/13 03:06:31 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/Imakefile,v 3.64 2000/03/08 05:38:30 dawes Exp $
#include <Server.tmpl>
#define IHaveSubdirs
@@ -188,8 +188,12 @@ InstallDriverSDKNonExecFile($(XF86CONFIG),$(DRIVERSDKDIR))
InstallDriverSDKNonExecFile($(XF98CONFIG),$(DRIVERSDKDIR))
#endif
+EXTRAMANCPPDEFS=-D__logdir__=$(LOGDIRECTORY)
+CppManTarget(XFree86,$(EXTRAMANCPPDEFS))
+CppManTarget(XF86Config,$(EXTRAMANCPPDEFS))
InstallManPage(XFree86,$(MANDIR))
-InstallGenManPageLong(XF86Conf,$(FILEMANDIR),XF86Config,$(FILEMANSUFFIX))
+InstallGenManPage(XF86Config,$(FILEMANDIR),$(FILEMANSUFFIX))
+
InstallNamedNonExec($(XF86CONFIG),XF86Config.eg,$(LIBDIR))
InstallNamedNonExec($(XF98CONFIG),XF86Config.98,$(LIBDIR))
diff --git a/xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h b/xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h
index 01d32e9e0..4f7743e23 100644
--- a/xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h
+++ b/xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h
@@ -57,7 +57,7 @@
*
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h,v 3.15 2000/02/12 20:45:13 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h,v 3.16 2000/02/22 01:00:15 mvojkovi Exp $ */
#if defined(__GNUC__)
#if defined(linux) && defined(__alpha__)
@@ -67,6 +67,11 @@
#define outb(p,v) _outb((v),(p))
#define outw(p,v) _outw((v),(p))
#define outl(p,v) _outl((v),(p))
+#elif defined(linux) && defined(__ia64__)
+#include <stdlib.h>
+#include <asm/types.h>
+#include <asm/system.h>
+#include <asm/io.h>
#else
#if defined(__sparc__)
#ifndef ASI_PL
diff --git a/xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c b/xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c
index f87c8faeb..c2f9d0116 100644
--- a/xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c
+++ b/xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c,v 3.20 1999/09/25 14:36:59 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c,v 3.21 2000/02/29 22:39:32 dawes Exp $ */
/*
* (c) Copyright 1993,1994 by David Wexelblat <dwex@xfree86.org>
*
@@ -88,7 +88,7 @@
#ifdef __STDC__
int sysi86(int, ...);
int syscall(int, ...);
-#ifndef SCO
+#if !defined(SCO) && !defined(SVR4)
int munmap(caddr_t, size_t);
#endif
#else
diff --git a/xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h b/xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h
index b242ceb45..5372f5240 100644
--- a/xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h
+++ b/xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h
@@ -26,10 +26,10 @@
*
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h,v 3.25 1999/09/25 14:37:00 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h,v 3.26 2000/03/08 19:23:25 dawes Exp $ */
#define VERSION 2
-#define PATCHLEV 21
-#define RELDATE "1999 September 9"
+#define PATCHLEV 22
+#define RELDATE "2000 March 6"
#define PRINT_VERSION printf("\n%s Version %d.%d (%s)\n", \
MyName,VERSION,PATCHLEV,RELDATE)
diff --git a/xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h b/xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h
index af2605254..be0ab7d52 100644
--- a/xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h
+++ b/xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h
@@ -26,7 +26,7 @@
*
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h,v 3.72 2000/02/12 20:45:14 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h,v 3.73 2000/02/22 01:00:15 mvojkovi Exp $ */
/*
* Includes
@@ -45,6 +45,10 @@
#endif /* MACH386 */
#include <ctype.h>
#if defined(SYSV) || defined(SVR4) || defined(linux) || defined(__QNX__) || defined(__QNXNTO__)
+#if defined(__ia64__)
+#include <sys/io.h>
+#include <asm/io.h>
+#endif
# include <string.h>
#if !(defined(__QNX__) && !defined(__QNXNTO__))
# include <memory.h>
diff --git a/xc/programs/Xserver/hw/xfree86/XF86Config.cpp b/xc/programs/Xserver/hw/xfree86/XF86Config.cpp
new file mode 100644
index 000000000..7a9ad4780
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/XF86Config.cpp
@@ -0,0 +1,1561 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/XF86Config.cpp,v 1.3 2000/03/08 19:12:44 dawes Exp $
+.TH XF86Config __filemansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+XF86Config - Configuration File for XFree86
+.SH DESCRIPTION
+.I XFree86
+uses a configuration file called
+.B XF86Config
+for its initial setup. This configuration file is searched for in the
+following places when the server is started as a normal user:
+.PP
+.RS 4
+.nf
+.RI /etc/X11/ <cmdline>
+.RI __projectroot__/etc/X11/ <cmdline>
+.RB /etc/X11/ $XF86CONFIG
+.RB __projectroot__/etc/X11/ $XF86CONFIG
+/etc/X11/XF86Config-4
+/etc/X11/XF86Config
+/etc/XF86Config
+.RI __projectroot__/etc/X11/XF86Config. <hostname>
+__projectroot__/etc/X11/XF86Config-4
+__projectroot__/etc/X11/XF86Config
+.RI __projectroot__/lib/X11/XF86Config. <hostname>
+__projectroot__/lib/X11/XF86Config-4
+__projectroot__/lib/X11/XF86Config
+.fi
+.RE
+.PP
+where
+.I <cmdline>
+is a relative path (with no ".." components) specified with the
+.B \-xf86config
+command line option,
+.B $XF86CONFIG
+is the relative path (with no ".." components) specified by that
+environment variable, and
+.I <hostname>
+is the machines hostname as reported by gethostname(3).
+.PP
+When the X server is started by the "root" user, the config file search
+locations are as follows:
+.PP
+.RS 4
+.nf
+.I <cmdline>
+.RI /etc/X11/ <cmdline>
+.RI __projectroot__/etc/X11/ <cmdline>
+.B $XF86CONFIG
+.RB /etc/X11/ $XF86CONFIG
+.RB __projectroot__/etc/X11/ $XF86CONFIG
+.BR $HOME /XF86Config
+/etc/X11/XF86Config-4
+/etc/X11/XF86Config
+/etc/XF86Config
+.RI __projectroot__/etc/X11/XF86Config. <hostname>
+__projectroot__/etc/X11/XF86Config-4
+__projectroot__/etc/X11/XF86Config
+.RI __projectroot__/lib/X11/XF86Config. <hostname>
+__projectroot__/lib/X11/XF86Config-4
+__projectroot__/lib/X11/XF86Config
+.fi
+.RE
+.PP
+where
+.I <cmdline>
+is the path specified with the
+.B \-xf86config
+command line option (which may be absolute or relative),
+.B $XF86CONFIG
+is the path specified by that
+environment variable (absolute or relative),
+.B $HOME
+is the path specified by that environment variable (usually the home
+directory), and
+.I <hostname>
+is the machines hostname as reported by gethostname(3).
+.PP
+The
+.B XF86Config
+file is composed of a number of sections which may be present in any
+order. Each section has
+the form:
+.PP
+.RS 4
+.nf
+.BI "Section """ SectionName """"
+.I " SectionEntry"
+ ...
+.B EndSection
+.fi
+.RE
+.PP
+The section names are:
+.PP
+.RS 4
+.nf
+.BR "Files " "File pathnames"
+.BR "ServerFlags " "Server flags"
+.BR "Module " "Dynamic module loading"
+.BR "InputDevice " "Input device description"
+.BR "Device " "Graphics device description"
+.BR "VideoAdaptor " "Xv video adaptor description"
+.BR "Monitor " "Monitor description"
+.BR "Modes " "Video modes descriptions"
+.BR "Screen " "Screen configuration"
+.BR "ServerLayout " "Overall layout"
+.BR "DRI " "DRI-specific configuration"
+.BR "Vendor " "Vendor-specific configuration"
+.fi
+.RE
+.PP
+The following obsolete section names are still recognised for compatibility
+purposes. In new config files, the
+.B InputDevice
+section should be used instead.
+.PP
+.RS 4
+.nf
+.BR "Keyboard " "Keyboard configuration"
+.BR "Pointer " "Pointer/mouse configuration"
+.fi
+.RE
+.PP
+The old
+.B XInput
+section is no longer recognised.
+.PP
+The
+.B ServerLayout
+sections are at the highest level. They bind together the input and
+output devices that will be used in a session. The input devices
+are described in the
+.B InputDevice
+sections. Output devices usually consist of multiple independent
+components (e.g., and graphics board and a monitor). These multiple
+components are bound together in the
+.B Screen
+sections, and it is these that are referenced by the
+.B ServerLayout
+section. Each
+.B Screen
+section binds together a graphics board and a monitor. The graphics
+boards are described in the
+.B Device
+sections, and the monitors are described in the
+.B Monitor
+sections.
+.PP
+Config file keywords are case-insensitive, and "_" characters are
+ignored. Most strings (including
+.B Option
+names) are also case-insensitive, and insensitive to white space and
+"_" characters.
+.PP
+Each config file entry usually take up a single line in the file.
+They consist of a keyword, which is possibly followed by one or
+more arguments, with the number and types of the arguments depending
+on the keyword. The argument types are:
+.PP
+.RS 4
+.nf
+.BR "Integer " "an integer number in decimal, hex or octal"
+.BR "Real " "a floating point number"
+.BR "String " "a string enclosed in double quote marks ("")"
+.fi
+.RE
+.PP
+A special keyword called
+.B Option
+may be used to provide free-form data to various components of the server.
+The
+.B Option
+keyword takes either one or two string arguments. The first is the option
+name, and the optional second argument is the option value. Some commonly
+used option value types include:
+.PP
+.RS 4
+.nf
+.BR "Integer " "an integer number in decimal, hex or octal"
+.BR "Real " "a floating point number"
+.BR "String " "a sequence of characters"
+.BR "Boolean " "a boolean value (see below)"
+.BR "Frequency " "a frequency value (see below)"
+.fi
+.RE
+.PP
+Note that
+.I all
+.B Option
+values, not just strings, must be enclosed in quotes.
+.PP
+Boolean options may optionally have a value specified. When no value
+is specified, the option's value is
+.BR TRUE .
+The following boolean option values are recognised as
+.BR TRUE :
+.PP
+.RS 4
+.BR 1 ,
+.BR on ,
+.BR true ,
+.B yes
+.RE
+.PP
+and the following boolean option values are recognised as
+.BR FALSE :
+.PP
+.RS 4
+.BR 0 ,
+.BR off ,
+.BR false ,
+.B no
+.RE
+.PP
+If an option name is prefixed with
+.RB """" No """",
+then the option value is negated.
+.PP
+Example: the following option entries are equivalent:
+.PP
+.RS 4
+.nf
+.B "Option ""Accel"" ""Off"""
+.B "Option ""NoAccel"""
+.B "Option ""NoAccel"" ""On"""
+.B "Option ""Accel"" ""false"""
+.B "Option ""Accel"" ""no"""
+.fi
+.RE
+.PP
+Frequency option values consist of a real number that is optionally
+followed by one of the following frequency units:
+.PP
+.RS 4
+.BR Hz ,
+.BR k ,
+.BR kHz ,
+.BR M ,
+.B MHz
+.RE
+.PP
+When the unit name is omitted, the correct units will be determined from
+the value and the expectations of the appropriate range of the value.
+It is recommended that the units always be specified when using frequency
+option values to avoid any errors in determining the value.
+.SH FILES SECTION
+The
+.B Files
+section is used to specify some path names required by the server.
+Some of these paths can also be set from the command line (see
+.I Xserver(1)
+and
+.IR XFree86(1) ).
+The command line settings override the values specified in the config
+file.
+The entries that can appear in this section are:
+.TP 7
+.BI "FontPath """ path """"
+sets the search path for fonts. This path is a comma separated
+list of font path elements which the X server searches for font databases.
+Multiple
+.B FontPath
+entries may be specified, and they will be
+concatenated to build up the fontpath used by the server.
+Font path elements may be either absolute directory paths, or the
+a font server identifier. Font server identifiers have the form:
+.PP
+.RS 11
+.IR <trans> / <hostname> : <port-number>
+.RE
+.PP
+.RS 7
+where
+.I <trans>
+is the transport type to use to connect to the font server (e.g.,
+.B unix
+for UNIX-domain sockets or
+.B tcp
+for a TCP/IP connection),
+.I <hostname>
+is the hostname of the machine running the font server, and
+.I <port-number>
+is the port number that the font server is listening on (usually 7100).
+.PP
+When this entry is not specified in the config file, the server falls back
+to the compiled-in default font path, which contains the following
+font path elements:
+.PP
+.RS 4
+.nf
+__projectroot__/lib/X11/fonts/misc/
+__projectroot__/lib/X11/fonts/Speedo/
+__projectroot__/lib/X11/fonts/Type1/
+__projectroot__/lib/X11/fonts/CID/
+__projectroot__/lib/X11/fonts/75dpi/
+__projectroot__/lib/X11/fonts/100dpi/
+.fi
+.RE
+.PP
+The recommended font path contains the following font path elements:
+.PP
+.RS 4
+.nf
+__projectroot__/lib/X11/fonts/local/
+__projectroot__/lib/X11/fonts/misc/
+__projectroot__/lib/X11/fonts/75dpi/:unscaled
+__projectroot__/lib/X11/fonts/100dpi/:unscaled
+__projectroot__/lib/X11/fonts/Type1/
+__projectroot__/lib/X11/fonts/CID/
+__projectroot__/lib/X11/fonts/Speedo/
+__projectroot__/lib/X11/fonts/75dpi/
+__projectroot__/lib/X11/fonts/100dpi/
+.fi
+.RE
+.PP
+Font path elements that are found to be invalid are removed from the
+font path when the server starts up.
+.RE
+.TP 7
+.BI "RGBPath """ path """"
+sets the path name for the RGB color database.
+When this entry is not specified in the config file, the server falls back
+to the compiled-in default RGB path, which is:
+.PP
+.RS 11
+__projectroot__/lib/X11/rgb
+.RE
+.TP 7
+.BI "ModulePath """ path """"
+sets the search path for loadable X server modules. This path is a
+comma separated list of directories which the X server searches for
+loadable modules loading in the order specified. Multiple
+.B ModulePath
+entries may be specified, and they will be concatenated to build the
+module search path used by the server.
+.\" The LogFile keyword is not currently implemented
+.ig
+.TP 7
+.BI "LogFile """ path """"
+sets the name of the X server log file. The default log file name is
+.PP
+.RS 11
+.RI __logdir__/XFree86. <n> .log
+.RE
+.PP
+.RS 7
+where
+.I <n>
+is the display number for the X server.
+..
+.SH SERVERFLAGS SECTION
+The
+.B ServerFlags
+section is used to specify some global
+X server options. All of the entries in this section are
+.BR Options ,
+although for compatibility purposes some of the old style entries are
+still recognised. Those old style entries are not documented here, and
+using them is discouraged.
+.PP
+.B Options
+specified in this section may be overridden by
+.B Options
+specified in the active
+.B ServerLayout
+section. Options with command line equivalents are overridden when their
+command line equivalent is used. The options recognised by this section
+are:
+.TP 7
+.BI "Option ""NoTrapSignals"" """ boolean """"
+This prevents the X server from trapping a range of unexpected
+fatal signals and exiting cleanly. Instead, the X server will die
+and drop core where the fault occurred. The default behaviour is
+for the X server exit cleanly, but still drop a core file. In
+general you never want to use this option unless you are debugging
+an X server problem and know how to deal with the consequences.
+.TP 7
+.BI "Option ""DontZap"" """ boolean """"
+This disallows the use of the
+.B Ctrl+Alt+Backspace
+sequence. That sequence is normally used to terminate the X server.
+When this option is enabled, that key sequence has no special meaning
+and is passed to clients. Default: off.
+.TP 7
+.BI "Option ""DontZoom"" """ boolean """"
+This disallows the use of the
+.B Ctrl+Alt+Keypad-Plus
+and
+.B Ctrl+Alt+Keypad-Minus
+sequences. These sequences allows you to switch between video modes.
+When this option is enabled, those key sequences have no special meaning
+and are passed to clients. Default: off.
+.TP 7
+.BI "Option ""DisableVidModeExtension"" """ boolean """"
+This disables the parts of the VidMode extension used by the xvidtune client
+that can be used to change the video modes. Default: the VidMode extension
+is enabled.
+.TP 7
+.BI "Option ""AllowNonLocalXvidtune"" """ boolean """"
+This allows the xvidtune client (and other clients that use the VidMode
+extension) to connect from another host. Default: off.
+.TP 7
+.BI "Option ""DisableModInDev"" """ boolean """"
+This disables the parts of the XFree86-Misc extension that can be used to
+modify the input device settings dynamically. Default: that functionality
+is enabled.
+.TP 7
+.BI "Option ""AllowNonLocalModInDev"" """ boolean """"
+This allows a client to connect from another host and change keyboard
+and mouse settings in the running server. Default: off.
+.TP 7
+.BI "Option ""AllowMouseOpenFail"" """ boolean """"
+This allows the server to start up even if the mouse device can't be
+opened/initialised. Default: false.
+.TP 7
+.BI "Option ""VTInit"" """ command """"
+Runs
+.I command
+after the VT used by the server has been opened.
+The command string is passed to "/bin/sh -c", and is run with the
+real user's id with stdin and stdout set to the VT. The purpose
+of this option is to allow system dependent VT initialisation
+commands to be run. This option should rarely be needed. Default: not set.
+.TP 7
+.BI "Option ""VTSysReq"" """ boolean """"
+enables the SYSV-style VT switch sequence for non-SYSV systems
+which support VT switching. This sequence is
+.B Alt-SysRq
+followed
+by a function key
+.RB ( Fn ).
+This prevents the X server trapping the
+keys used for the default VT switch sequence, which means that clients can
+access them. Default: off.
+.\" The following four options are "undocumented".
+.ig
+.TP 7
+.BI "Option ""PciProbe1"""
+Use PCI probe method 1. Default: set.
+.TP 7
+.BI "Option ""PciProbe2"""
+Use PCI probe method 2. Default: not set.
+.TP 7
+.BI "Option ""PciForceConfig1"""
+Force the use PCI config type 1. Default: not set.
+.TP 7
+.BI "Option ""PciForceConfig2"""
+Force the use PCI config type 2. Default: not set.
+..
+.TP 7
+.BI "Option ""BlankTime"" """ time """"
+sets the inactivity timeout for the blanking phase of the screensaver.
+.I time
+is in minutes. This is equivalent to the Xserver's `-s' flag, and the
+value can be changed at run-time with \fIxset(1)\fP. Default: 10 minutes.
+.TP 7
+.BI "Option ""StandbyTime"" """ time """"
+sets the inactivity timeout for the "standby" phase of DPMS mode.
+.I time
+is in minutes, and the value can be changed at run-time with \fIxset(1)\fP.
+Default: 20 minutes.
+This is only suitable for VESA DPMS compatible monitors, and may not be
+supported by all video drivers. It is only enabled for screens that
+have the
+.B """DPMS"""
+option set.
+.TP 7
+.BI "Option ""SuspendTime"" """ time """"
+sets the inactivity timeout for the "suspend" phase of DPMS mode.
+.I time
+is in minutes, and the value can be changed at run-time with \fIxset(1)\fP.
+Default: 30 minutes.
+This is only suitable for VESA DPMS compatible monitors, and may not be
+supported by all video drivers. It is only enabled for screens that
+have the
+.B """DPMS"""
+option set.
+.TP 7
+.BI "Option ""OffTime"" """ time """"
+sets the inactivity timeout for the "off" phase of DPMS mode.
+.I time
+is in minutes, and the value can be changed at run-time with \fIxset(1)\fP.
+Default: 40 minutes.
+This is only suitable for VESA DPMS compatible monitors, and may not be
+supported by all video drivers. It is only enabled for screens that
+have the
+.B """DPMS"""
+option set.
+.TP 7
+.BI "Option ""Pixmap"" """ bpp """"
+This sets the pixmap format to use for depth 24. Allowed values for
+.I bpp
+are 24 and 32. Default: 32 unless driver constraints don't allow this
+(which is rare). Note: some clients don't behave well when
+this value is set to 24.
+.TP 7
+.BI "Option ""PC98"" """ boolean """"
+Specify that the machine is a Japanese PC-98 machine. This should not
+be enabled for anything other than the Japanese-specific PC-98
+architecture. Default: auto-detected.
+.\" Doubt this should be documented.
+.ig
+.TP 7
+.BI "Option ""EstimateSizesAggressively"" """ value """"
+This option affects the way that bus resource sizes are estimated. Default: 0.
+..
+.TP 7
+.BI "Option ""NoPM"" """ boolean """"
+Disables something to do with power management events. Default: PM enabled
+on platforms that support it.
+.SH MODULE SECTION
+The
+.B Module
+section is used to specify which X server modules should be loaded.
+This section is ignored when the X server is built in static form.
+The types of modules normally loaded in this section are X server
+extension modules, and font rasteriser modules. Most other module types
+are loaded automatically when they are needed via other mechanisms.
+.PP
+Entries in this section may be in two forms. The first and most commonly
+used form is an entry that uses the
+.B Load
+keyword, as described here:
+.TP 7
+.BI "Load """ modulename """"
+This instructs the server to load the module called
+.IR modulename .
+The module name given should be the module's standard name, not the
+module file name. The standard name is case-sensitive, and does not
+include the "lib" prefix, or the ".a", ".o", or ".so" suffixes.
+.PP
+.RS 7
+Example: the Type 1 font rasteriser can be loaded with the following entry:
+.PP
+.RS 4
+.B "Load ""type1"""
+.RE
+.RE
+.PP
+The second form of entry is a
+.BR SubSection,
+with the subsection name being the module name, and the contents of the
+.B SubSection
+being
+.B Options
+that are passed to the module when it is loaded.
+.PP
+Example: the extmod module (which contains a miscellaneous group of
+server extensions) can be loaded, with the XFree86-DGA extension
+disabled by using the following entry:
+.PP
+.RS 4
+.nf
+.B "SubSection ""extmod"""
+.B " Option ""omit XFree86-DGA"""
+.B EndSubSection
+.fi
+.RE
+.PP
+Modules are searched for in each directory specified in the
+.B ModulePath
+search path, and in the drivers, input, extensions, fonts, and
+internal subdirectories of each of those directories.
+In addition to this, operating system specific subdirectories of all
+the above are searched first if they exist.
+.PP
+To see what font and extension modules are available, check the contents
+of the following directories:
+.PP
+.RS 4
+.nf
+__projectroot__/lib/modules/fonts
+__projectroot__/lib/modules/extensions
+.fi
+.RE
+.PP
+The "bitmap" font modules is loaded automatically. It is recommended
+that at very least the "extmod" extension module be loaded. If it isn't
+some commonly used server extensions (like the SHAPE extension) will not be
+available.
+.SH INPUTDEVICE SECTION
+The config file may have multiple
+.B InputDevice
+sections. There will normally be at least two: one for the core (primary)
+keyboard, and one of the core pointer.
+.PP
+.B InputDevice
+sections have the following format:
+.PP
+.RS 4
+.nf
+.B "Section ""InputDevice"""
+.BI " Identifier """ name """"
+.BI " Driver """ inputdriver """"
+.I " options"
+.I " ..."
+.B "EndSection"
+.fi
+.RE
+.PP
+The
+.B Identifier
+entry specifies the unique name for this input device. The
+.B Driver
+entry specifies the name of the driver to use for this input device.
+When using the loadable server, the input driver module
+.RI """ inputdriver """
+will be loaded for each active
+.B InputDevice
+section. An
+.B InputDevice
+section is considered active if it is referenced by an active
+.B ServerLayout
+section, or if it is referenced by the
+.B \-keyboard
+or
+.B \-pointer
+command line options.
+The most commonly used input drivers are "keyboard" and "mouse".
+.PP
+.B InputDevice
+sections recognise some driver-independent
+.BR Options ,
+which are described here. See the individual input driver manual pages
+for a description of the device-specific options.
+.TP 7
+.BI "Option ""CorePointer"""
+When this is set, the input device is installed as the core (primary)
+pointer device. There must be exactly one core pointer. If this option
+is not set here, or in the
+.B ServerLayout
+section, or from the
+.B \-pointer
+command line option, then the first input device that is capable of
+being used as a core pointer will be selected as the core pointer.
+This option is implicitly set when the obsolete
+.B Pointer
+section is used.
+.TP 7
+.BI "Option ""CoreKeyboard"""
+When this is set, the input device is to be installed as the core
+(primary) keyboard device. There must be exactly one core keyboard. If
+this option is not set here, in the
+.B ServerLayout
+section, or from the
+.B \-keyboard
+command line option, then the first input device that is capable of
+being used as a core keyboard will be selected as the core keyboard.
+This option is implicitly set when the obsolete
+.B Keyboard
+section is used.
+.TP 7
+.BI "Option ""AlwaysCore"" """ boolean """"
+.TP 7
+.BI "Option ""SendCoreEvents"" """ boolean """"
+Both of these options are equivalent, and when enabled cause the
+input device to always report core events. This can be used, for
+example, to allow an additional pointer device to generate core
+pointer events (like moving the cursor, etc).
+.TP 4
+.BI "Option ""HistorySize"" """ number """"
+Sets the motion history size. Default: 0.
+.TP 7
+.BI "Option ""SendDragEvents"" """ boolean """"
+???
+.SH DEVICE SECTION
+The config file may have multiple
+.B Device
+sections. There must be at least one, for the video card being used.
+.PP
+.B Device
+sections have the following format:
+.PP
+.RS 4
+.nf
+.B "Section ""Device"""
+.BI " Identifier """ name """"
+.BI " Driver """ driver """"
+.I " entries"
+.I " ..."
+.B "EndSection"
+.fi
+.RE
+.PP
+The
+.B Identifier
+entry specifies the unique name for this graphics device. The
+.B Driver
+entry specifies the name of the driver to use for this graphics device.
+When using the loadable server, the driver module
+.RI """ driver """
+will be loaded for each active
+.B Device
+section. A
+.B Device
+section is considered active if it is referenced by an active
+.B Screen
+section.
+.PP
+.B Device
+sections recognise some driver-independent entries and
+.BR Options ,
+which are described here. Not all drivers make use of these
+driver-independent entries, and many of those that do don't require them
+to be specified because the information is auto-detected. See the
+individual graphics driver manual pages for further information about
+this, and for a description of the device-specific options.
+Note that most of the
+.B Options
+listed here (but not the other entries) may be specified in the
+.B Screen
+section instead of here in the
+.B Device
+section.
+.TP 7
+.BI "BusID """ bus-id """"
+This specifies the bus location of the graphics card. For PCI/AGP cards,
+the
+.I bus-id
+string has the form
+.BI PCI: bus : device : function
+(e.g., "PCI:1:0:0" might be appropriate for an AGP card).
+This field is usually optional in single-head configurations when using
+the primary graphics card. In multi-head configurations, or when using
+a secondary graphics card in a single-head configuration, this entry is
+mandatory. Its main purpose is to make an unambiguous connection between
+the device section and the hardware it is representing. This information
+can usually be found by running the X server with the
+.B \-scanpci
+command line option.
+.TP 7
+.BI "Chipset """ chipset """"
+This usually optional entry specifies the chipset used on the graphics
+board. In most cases this entry is not required because the drivers
+will probe the hardware to determine the chipset type. Don't
+specify it unless the driver-specific documentation recommends that you
+do.
+.TP 7
+.BI "Ramdac """ ramdac-type """"
+This optional entry specifies the type of RAMDAC used on the graphics
+board. This is only used by a few of the drivers, and in most cases it
+is not required because the drivers will probe the hardware to determine
+the RAMDAC type where possible. Don't specify it unless the
+driver-specific documentation recommends that you do.
+.TP 7
+.BI "DacSpeed " speed
+.TP 7
+.BI "DacSpeed " "speed-8 speed-16 speed-24 speed-32"
+This optional entry specifies the RAMDAC speed rating (which is usually
+printed on the RAMDAC chip). The speed is in MHz. When one value is
+given, it applies to all framebuffer pixel sizes. When multiple values
+are give, they apply to the framebuffer pixel sizes 8, 16, 24 and 32
+respectively. This is not used by many drivers, and only needs to be
+specified when the speed rating of the RAMDAC is different from the
+defaults built in to driver, or when the driver can't auto-detect the
+correct defaults. Don't specify it unless the driver-specific
+documentation recommends that you do.
+.TP 7
+.BI "Clocks " "clock ..."
+specifies the pixel that are on your graphics board. The clocks are in
+MHz, and may be specified as a floating point number. The value is
+stored internally to the nearest kHz. The ordering of the clocks is
+important. It must match the order in which they are selected on the
+graphics board. Multiple
+.B Clocks
+lines may be specified, and each is concatenated to form the list. Most
+drivers do not use this entry, and it is only required for some older
+boards with non-programmable clocks. Don't specify this entry unless
+the driver-specific documentation explicitly recommends that you do.
+.TP
+.BI "ClockChip """ clockchip-type """"
+This optional entry is used to specify the clock chip type on
+graphics boards which have a programmable clock generator. Only
+a few X servers support programmable clock chips. For details,
+see the appropriate X server manual page.
+.TP 7
+.BI "VideoRam " "mem"
+This optional entry specifies the amount of video ram that is installed
+on the graphics board. This is measured in kBytes. In most cases this
+is not required because the X server probes the graphics board to
+determine this quantity. The driver-specific documentation should
+indicate when it might be needed.
+.TP 7
+.BI "BiosBase " "baseaddress"
+This optional entry specifies the base address of the video BIOS
+for the VGA board. This address is normally auto-detected, and should
+only be specified if the driver-specific documentation recommends it.
+.TP 7
+.BI "MemBase " "baseaddress"
+This optional entry specifies the memory base address of a graphics
+board's linear frame buffer. This entry is not used by many drivers,
+and it should only be specified if the driver-specific documentation
+recommends it.
+.TP 7
+.BI "IOBase " "baseaddress"
+This optional entry specifies the IO base address. This entry is not
+used by many drivers, and it should only be specified if the
+driver-specific documentation recommends it.
+.TP 7
+.BI "ChipID " "id"
+This optional entry specifies a numerical ID representing the chip type.
+For PCI cards, it is usually the device ID. This can be used to override
+the auto-detection, but that should only be done when the driver-specific
+documentation recommends it.
+.TP 7
+.BI "ChipRev " "rev"
+This optional entry specifies the chip revision number. This can be
+used to override the auto-detection, but that should only be done when
+the driver-specific documentation recommends it.
+.TP 7
+.BI "TextClockFreq " "freq"
+This optional entry specifies the pixel clock frequency that is used
+for the regular text mode. The frequency is specified in MHz. This is
+rarely used.
+.ig
+.TP 7
+This optional entry allows an IRQ number to be specified.
+..
+.TP 7
+.B Options
+Option flags may be specified in the
+.B Device
+sections. These include driver-specific options and driver-independent
+options. The former are described in the driver-specific documentation.
+Some of the latter are described below in the section about the
+.B Screen
+section, and they may also be included here.
+
+.SH VIDEOADAPTOR SECTION
+Nobody wants to say how this works. Maybe nobody knows ...
+
+.SH MONITOR SECTION
+The config file may have multiple
+.B Monitor
+sections. There must be at least one, for the monitor being used.
+.PP
+.B Monitor
+sections have the following format:
+.PP
+.RS 4
+.nf
+.B "Section ""Monitor"""
+.BI " Identifier """ name """"
+.I " entries"
+.I " ..."
+.B "EndSection"
+.fi
+.RE
+.PP
+The
+.B Identifier
+entry specifies the unique name for this monitor. The
+.B Monitor
+section provides information about the specifications of the monitor,
+monitor-specific
+.BR Options ,
+and information about the video modes to use with the monitor. Specifying
+video modes is optional because the server now has a built-in list of
+VESA standard modes. When modes are specified explicitly in the
+.B Monitor
+section (with the
+.BR Modes ,
+.BR ModeLine ,
+or
+.B UseModes
+keywords), built-in modes with the same names are not included. Built-in
+modes with different names are, however, still implicitly included.
+.PP
+The entries that may be used in
+.B Monitor
+sections are described below.
+.TP 7
+.BI "VendorName """ vendor """"
+This optional entry specifies the monitor's manufacturer.
+.TP 7
+.BI "ModelName """ model """"
+This optional entry specifies the monitor's model.
+.TP 7
+.BI "HorizSync " "horizsync-range"
+gives the range(s) of horizontal sync frequencies supported by the
+monitor.
+.I horizsync-range
+may be a comma separated list of either discrete values or ranges of
+values. A range of values is two values separated by a dash. By default
+the values are in units of kHz. They may be specified in MHz or Hz if
+.B MHz
+or
+.B Hz
+is added to the end of the line. The data given here is used by the X
+server to determine if video modes are within the specifications of the
+monitor. This information should be available in the monitor's handbook.
+If this entry is omitted, a default range of 28\-33kHz is used.
+.TP 7
+.BI "VertRefresh " "vertrefresh-range"
+gives the range(s) of vertical refresh frequencies supported by the
+monitor.
+.I vertrefresh-range
+may be a comma separated list of either discrete values or ranges of
+values. A range of values is two values separated by a dash. By default
+the values are in units of Hz. They may be specified in MHz or kHz if
+.B MHz
+or
+.B kHz
+is added to the end of the line. The data given here is used by the X
+server to determine if video modes are within the specifications of the
+monitor. This information should be available in the monitor's handbook.
+If this entry is omitted, a default range of 43-72Hz is used.
+.TP 7
+.BI "Gamma " "gamma-value"
+.TP 7
+.BI "Gamma " "red-gamma green-gamma blue-gamma"
+This is an optional entry that can be used to specify the gamma
+correction for the monitor. It may be specified as either a single
+value or as three separate RGB values. The values should be in the range
+0.1 to 10.0, and the default is 1.0. Not all drivers are capable
+of using this information.
+.TP 7
+.BI "UseModes """ modesection-id """"
+Include the set of modes listed in the
+.B Modes
+section called
+.IR modesection-id.
+This make all of the modes defined in that section available for use
+by this monitor.
+.TP 7
+.B Mode \fI"name"\fP
+This is an optional multi-line entry that can be used to provide
+definitions for video modes for the monitor. In most cases this isn't
+necessary because the built-in set of VESA standard modes will be
+sufficient. The
+.B Mode
+keyword indicates the start of a multi-line video mode description.
+The mode description is terminated with the
+.B EndMode
+keyword. The mode description consists of the following entries:
+.RS 7
+.TP 4
+.BI "DotClock " clock
+is the dot (pixel) clock rate to be used for the mode.
+.TP 4
+.BI "HTimings " "hdisp hsyncstart hsyncend htotal"
+specifies the horizontal timings for the mode.
+.TP 4
+.BI "VTimings " "vdisp vsyncstart vsyncend vtotal"
+specifies the vertical timings for the mode.
+.TP 4
+.BI "Flags """ flag """" " ..."
+specifies an optional set of mode flags, each of which is a separate
+string in double quotes.
+.B """Interlace"""
+indicates that the mode is interlaced.
+.B """DoubleScan"""
+indicates a mode where each scanline is doubled.
+.B """+HSync"""
+and
+.B """\-HSync"""
+can be used to select the polarity of the HSync signal.
+.B """+VSync"""
+and
+.B """\-VSync"""
+can be used to select the polarity of the VSync signal.
+.B """Composite"""
+can be used to specify composite sync on hardware where this is supported.
+Additionally, on some hardware,
+.B """+CSync"""
+and
+.B """\-CSync"""
+may be used to select the composite sync polarity.
+.TP 4
+.BI "HSkew " hskew
+specifies the number of pixels (towards the right edge of the screen)
+by which the display enable signal is to be skewed. Not all drivers
+use this information. This option might become necessary to override
+the default value supplied by the server (if any). "Roving" horizontal
+lines indicate this value needs to be increased. If the last few pixels
+on a scan line appear on the left of the screen, this value should be
+decreased.
+.TP 4
+.BI "VScan " vscan
+specifies the number of times each scanline is painted on the screen.
+Not all drivers use this information. Values less than 1 are treated
+as 1, which is the default. Generally, the
+.B """DoubleScan"""
+.B Flag
+mentioned above doubles this value.
+.RE
+.TP 7
+.BI "ModeLine """ name """" " mode-description"
+This entry is a more compact version of the
+.B Mode
+entry, and it also can be used to specify video modes for the monitor.
+is a single line format for specifying video modes. In most cases this
+isn't necessary because the built-in set of VESA standard modes will be
+sufficient.
+.PP
+.RS 7
+The
+.I mode-description
+is in four sections, the first three of which are mandatory. The first
+is the dot (pixel) clock. This is a single number specifying the pixel
+clock rate for the mode in MHz. The second section is a list of four
+numbers specifying the horizontal timings. These numbers are the
+.IR hdisp ,
+.IR hsyncstart ,
+.IR hsyncend ,
+and
+.I htotal
+values. The third section is a list of four numbers specifying the
+vertical timings. These numbers are the
+.IR vdisp ,
+.IR vsyncstart ,
+.IR vsyncend ,
+and
+.I vtotal
+values. The final section is a list of flags specifying other
+characteristics of the mode.
+.B Interlace
+indicates that the mode is interlaced.
+.B DoubleScan
+indicates a mode where each scanline is doubled.
+.B +HSync
+and
+.B \-HSync
+can be used to select the polarity of the HSync signal.
+.B +VSync
+and
+.B \-VSync
+can be used to select the polarity of the VSync signal.
+.B Composite
+can be used to specify composite sync on hardware where this is supported.
+Additionally, on some hardware,
+.B +CSync
+and
+.B \-CSync
+may be used to select the composite sync polarity. The
+.B HSkew
+and
+.B VScan
+options mentioned above in the
+.B Modes
+entry description can also be used here.
+.RE
+.TP 7
+.B Options
+Some
+.B Option
+flags that may be useful to include in
+.B Monitor
+sections (when needed) include
+.BR """DPMS""" ,
+and
+.BR """SyncOnGreen""" .
+
+.SH MODES SECTION
+The config file may have multiple
+.B Modes
+sections, or none. These sections provide a way of defining sets of
+video modes independently of the
+.B Monitor
+sections.
+.B Monitor
+sections may include the definitions provided in these sections by
+using the
+.B UseModes
+keyword. In most cases the
+.B Modes
+sections are not necessary because the built-in set of VESA standard modes
+will be sufficient.
+.PP
+.B Modes
+sections have the following format:
+.PP
+.RS 4
+.nf
+.B "Section ""Modes"""
+.BI " Identifier """ name """"
+.I " entries"
+.I " ..."
+.B "EndSection"
+.fi
+.RE
+.PP
+The
+.B Identifier
+entry specifies the unique name for this set of mode descriptions.
+The other entries permitted in
+.B Modes
+sections are the
+.B Mode
+and
+.B ModeLine
+entries that are described above in the
+.B Monitor
+section.
+.SH SCREEN SECTION
+The config file may have multiple
+.B Screen
+sections. There must be at least one, for the "screen" being used.
+A "screen" represents the binding of a graphics device
+.RB ( Device
+section) and a monitor
+.RB ( Monitor
+section). A
+.B Screen
+section is considered "active" if it is referenced by an active
+.B ServerLayout
+section or by the
+.B \-screen
+command line option. If neither of those is present, the first
+.B Screen
+section found in the config file is considered the active one.
+.PP
+.B Screen
+sections have the following format:
+.PP
+.RS 4
+.nf
+.B "Section ""Screen"""
+.BI " Identifier """ name """"
+.BI " Device """ devid """"
+.BI " Monitor """ monid """"
+.I " entries"
+.I " ..."
+.BI " SubSection ""Display"""
+.I " entries"
+.I " ...
+.B " EndSubSection"
+.I " ..."
+.B "EndSection"
+.fi
+.RE
+.PP
+The
+.B Identifier
+entry specifies the unique name for this screen. The
+.B Screen
+section provides information specific to the whole screen, including
+screen-specific
+.BR Options .
+In multi-head configurations, there will be multiple active
+.B Screen
+sections, one for each head.
+The entries available
+for this section are:
+.TP 7
+.BI "Device """ device-id """"
+This specifies the
+.B Device
+section to be used for this screen. This is what ties a specific
+graphics card to a screen. The
+.I device-id
+must match the
+.B Identifier
+of a
+.B Device
+section in the config file.
+.TP 7
+.BI "Monitor """ monitor-id """"
+specifies which monitor description is to be used for this screen.
+.TP 7
+.BI "VideoAdaptor """ xv-id """"
+specifies an optional Xv video adaptor description to be used with this
+screen.
+.TP 7
+.BI "DefaultDepth " depth
+specifies which color depth the server should use by default. The
+.B \-depth
+command line option can be used to override this. If neither is specified,
+the default depth is driver-specific, but in most cases is 8.
+.TP 7
+.BI "DefaultFbBpp " bpp
+specifies which framebuffer layout to use by default. The
+.B \-fbbpp
+command line option can be used to override this. In most cases the
+driver will chose the best default value for this. The only case where
+there is even a choice in this value is for depth 24, where some hardware
+supports both a packed 24 bit framebuffer layout and a sparse 32 bit
+framebuffer layout.
+.TP 7
+.B Options
+Various
+.B Option
+flags may be specified in the
+.B Screen
+section. Some are driver-specific and are described in the driver
+documentation. Others are driver-independent, and will eventually be
+described here.
+.PP
+Each
+.B Screen
+section must contain one or more
+.B Display
+subsections. Those subsections provide depth/fbbpp specific configuration
+information, and the one chosen depends on the depth and/or fbbpp that
+is being used for the screen. The
+.B Display
+subsection format is described in the section below.
+
+.SH DISPLAY SUBSECTION
+Each
+.B Screen
+section may have multiple
+.B Display
+subsections. There must be at least one, which matches the depth
+and/or fbbpp values that are being used for the screen. The "active"
+.B Display
+subsection is the first that matches the depth and/or fbbpp values being
+used.
+.PP
+.B Display
+subsections have the following format:
+.PP
+.RS 4
+.nf
+.B " SubSection ""Display"""
+.BI " Depth " depth
+.I " entries"
+.I " ..."
+.B " EndSubSection"
+.fi
+.RE
+.PP
+.TP 7
+.BI "Depth " depth
+This entry specifies what colour depth the
+.B Display
+subsection is to be used for. This entry is usually mandatory,
+but it may be omitted in some cases providing an
+.B FbBpp
+entry is present. The range of
+.I depth
+values that are allowed depends on the driver. Most driver support
+8, 15, 16 and 24. Some also support 1 and/or 4, and some may support
+other values (like 30). Note:
+.I depth
+means the number of bits in a pixel that are actually used to determine
+the pixel colour. 32 is not a valid
+.I depth
+value. Most hardware that uses 32 bits per pixel only uses 24 of them
+to hold the colour information, which means that the colour depth is
+24, not 32.
+.TP 7
+.BI "FbBpp " bpp
+This entry specifies the framebuffer format this
+.B Display
+subsection is to be used for. This entry is only needed when providing
+depth 24 configurations that allow a choice between a 24 bpp packed
+framebuffer format and a 32bpp sparse framebuffer format. In most cases
+this entry should not be used.
+.TP 7
+.BI "Weight " "red-weight green-weight blue-weight"
+This optional entry specifies the relative RGB weighting to be used
+for a screen is being used at depth 16 for drivers that allow multiple
+formats. This may also be specified from the command line with the
+.B \-weight
+option (see
+.IR XFree86(1) ).
+.TP 7
+.BI "Virtual " "xdim ydim"
+This optional entry specifies the virtual screen resolution to be used.
+.I xdim
+must be a multiple of either 8 or 16 for most drivers, and a multiple
+of 32 when running in monochrome mode. The given value will be rounded
+down if this is not the case. Video modes which are too large for the
+specified virtual size will be rejected. If this entry is not present,
+the virtual screen resolution will be set to accommodate all the valid
+video modes given in the
+.B Modes
+entry. Some drivers/hardware combinations do not support virtual screens.
+Refer to the appropriate driver-specific documentation for details.
+.TP 7
+.BI "ViewPort " "x0 y0"
+This optional entry sets the upper left corner of the initial display.
+This is only relevant when the virtual screen resolution is different
+from the resolution of the initial video mode. If this entry is not
+given, then the initial display will be centered in the virtual display
+area.
+.TP 7
+.BI "Modes """ mode-name """" " ..."
+This entry is highly desirable for most drivers, and it specifies the list
+of video modes to use. Each
+.I mode-name
+specified must be in double quotes. They must correspond to those
+specified or referenced in the appropriate
+.B Monitor
+section (including implicitly referenced built-in VESA standard modes).
+The server will delete modes from this list which don't satisfy various
+requirements. The first valid mode in this list will be the default
+display mode for startup. The list of valid modes is converted internally
+into a circular list. It is possible to switch to the next mode with
+.B Ctrl+Alt+Keypad-Plus
+and to the previous mode with
+.BR Ctrl+Alt+Keypad-Minus .
+When this entry is omitted, the largest valid mode referenced by the
+appropriate
+.B Monitor
+section will be used.
+.TP 7
+.BI "Visual """ visual-name """"
+This optional entry sets the default root visual type. This may also
+be specified from the command line (see the
+.I Xserver(1)
+man page). The visual types available for depth 8 are (default is
+.BR PseudoColor ):
+.PP
+.RS 11
+.nf
+.B StaticGray
+.B GrayScale
+.B StaticColor
+.B PseudoColor
+.B TrueColor
+.B DirectColor
+.fi
+.RE
+.PP
+.RS 7
+The visual type available for the depths 15, 16 and 24 are (default is
+.BR TrueColor ):
+.PP
+.RS 4
+.nf
+.B TrueColor
+.B DirectColor
+.fi
+.RE
+.PP
+Not all drivers support
+.B DirectColor
+at these depths.
+.PP
+The visual types available for the depth 4 are (default is
+.BR StaticColor ):
+.PP
+.RS 4
+.nf
+.B StaticGray
+.B GrayScale
+.B StaticColor
+.B PseudoColor
+.fi
+.RE
+.PP
+The visual type available for the depth 1 (monochrome) is
+.BR StaticGray .
+.RE
+.TP 7
+.BI "Black " "red green blue"
+This optional entry allows the "black" colour to be specified. This
+.TP 7
+.BI "White " "red green blue"
+This optional entry allows the "white" colour to be specified. This
+is only supported at depth 1. The default is white.
+.TP 7
+.B Options
+Option flags may be specified in the
+.B Display
+subsections. These may include driver-specific options and
+driver-independent options. The former are described in the
+driver-specific documentation. Some of the latter are described above
+in the section about the
+.B Screen
+section, and they may also be included here.
+.SH SERVERLAYOUT SECTION
+The config file may have multiple
+.B ServerLayout
+sections.
+A "server layout" represents the binding of one or more screens
+.RB ( Screen
+sections) and one or more input devices
+.RB ( InputDevice
+sections) to form a complete configuration. In multi-head configurations,
+it also specifies the relative layout of the heads. A
+.B ServerLayout
+section is considered "active" if it is referenced by the
+.B \-layout
+command line option. If that option is not used, the first
+.B ServerLayout
+section found in the config file is considered the active one. If no
+.B ServerLayout
+sections are present, the single active screen and two active (core)
+input devices are selected as described in the relevant sections above.
+.PP
+.B ServerLayout
+sections have the following format:
+.PP
+.RS 4
+.nf
+.B "Section ""ServerLayout"""
+.BI " Identifier """ name """"
+.BI " Screen """ screen-id """"
+.I " ..."
+.BI " InputDevice """ idev-id """"
+.I " ..."
+.I " options"
+.I " ..."
+.B "EndSection"
+.fi
+.RE
+.PP
+The
+.B Identifier
+entry specifies the unique name for this server layout. The
+.B ServerLayout
+section provides information specific to the whole session, including
+session-specific
+.BR Options .
+The
+.B ServerFlags
+options (described above) may be specified here, and ones given here
+override those given in the
+.B ServerFlags
+section.
+.PP
+The entries that may be used in this section are described here.
+.TP 7
+.BI "Screen """ screen-id """" " screen-num position-information"
+One of these entries must be given for each screen being used in
+a session. The
+.I screen-id
+field is mandatory, and specifies the
+.B Screen
+section being referenced. The
+.I screen-num
+field is optional, and may be used to specify the screen number
+in multi-head configurations. When this field is omitted, the
+screens will be numbered in the order that they are listed in.
+The numbering starts from 0, and must be consecutive. The
+.I position-information
+field describes the way multiple screens are positioned. There are
+a number of different ways that this information can be provided:
+.RS 7
+.TP 4
+.BI "Absolute " "x y"
+This says that the upper left corner's coordinates are
+.RI ( x , y ).
+If the coordinates are omitted or if no positioning information
+is given, (0,0) is assumed.
+.TP 4
+.BI "RightOf """ screen-id """"
+.TP 4
+.BI "LeftOf """ screen-id """"
+.TP 4
+.BI "Above """ screen-id """"
+.TP 4
+.BI "Below """ screen-id """"
+.TP 4
+.BI "Relative """ screen-id """" " x y"
+These give the screen's location relative to another screen.
+.RE
+.TP 7
+.BI "InputDevice """ idev-id """ """ option """" " ..."
+One of these entries must be given for each input device being used in
+a session. Normally at least two are required, one each for the core
+pointer and keyboard devices. The
+.I idev-id
+field is mandatory, and specifies the name of the
+.B InputDevice
+section being referenced. Multiple
+.I option
+fields may be specified, each in double quotes. The options permitted
+here are any that may also be given in the
+.B InputDevice
+sections. Normally only session-specific input device options would
+be used here. The most commonly used options are:
+.PP
+.RS 11
+.nf
+.B """CorePointer"""
+.B """CoreKeyboard"""
+.B """SendCoreEvents"""
+.fi
+.RE
+.PP
+.RS 7
+and the first two should normally be used to indicate the core pointer
+and core keyboard devices respectively.
+.RE
+.TP 7
+.B Options
+Any option permitted in the
+.B ServerFlags
+section may also be specified here. When the same option appears in both
+places, the value given here overrides the one given in the
+.B ServerFlags
+section.
+.PP
+Here is an example of a
+.B ServerLayout
+section for a dual headed configuration with two mice:
+.PP
+.RS 4
+.nf
+.B "Section ""ServerLayout"""
+.B " Identifier ""Layout 1"""
+.B " Screen ""MGA 1"""
+.B " Screen ""MGA 2"" RightOf ""MGA 1"""
+.B " InputDevice ""Keyboard 1"" ""CoreKeyboard"""
+.B " InputDevice ""Mouse 1"" ""CorePointer"""
+.B " InputDevice ""Mouse 2"" ""SendCoreEvents"""
+.B " Option ""BlankTime"" ""5"""
+.B "EndSection"
+.fi
+.RE
+.SH DRI SECTION
+This optional section is used to provide some information for the
+Direct Rendering Infrastructure. Details about the format of this section
+can be found in the README.DRI document, which is also available on-line
+at
+.IR <http://www.xfree86.org/current/DRI.html> .
+.SH VENDOR SECTION
+The optional
+.B Vendor
+section may be used to provide vendor-specific configuration information.
+Multiple
+.B Vendor
+sections may be present, and they may contain an
+.B Identifier
+entry and multiple
+.B Option
+flags. The data therein is not used in this release.
+.PP
+.SH FILES
+For an example of an XF86Config file, see the file installed as
+__projectroot__/lib/X11/XF86Config.eg.
+.fi
+.SH "SEE ALSO"
+X(1), Xserver(1), XFree86(1),
+apm(__drivermansuffix__),
+ati(__drivermansuffix__),
+chips(__drivermansuffix__),
+cirrus(__drivermansuffix__),
+cyrix(__drivermansuffix__),
+fbdev(__drivermansuffix__),
+glide(__drivermansuffix__),
+glint(__drivermansuffix__),
+i740(__drivermansuffix__),
+i810(__drivermansuffix__),
+mga(__drivermansuffix__),
+neomagic(__drivermansuffix__),
+nv(__drivermansuffix__),
+r128(__drivermansuffix__),
+rendition(__drivermansuffix__),
+s3virge(__drivermansuffix__),
+sis(__drivermansuffix__),
+tdfx(__drivermansuffix__),
+tga(__drivermansuffix__),
+trident(__drivermansuffix__),
+tseng(__drivermansuffix__),
+v4l(__drivermansuffix__),
+vga(__drivermansuffix__),
+.IR README ,
+.IR RELNOTES ,
+.IR README.mouse ,
+.IR README.DRI ,
+.IR Status ,
+.IR Install .
+.SH AUTHORS
+This manual page was largely rewritten for XFree86 4.0 by David Dawes
+.IR <dawes@xfree86.org> .
diff --git a/xc/programs/Xserver/hw/xfree86/XFree86.cpp b/xc/programs/Xserver/hw/xfree86/XFree86.cpp
new file mode 100644
index 000000000..b215dc64c
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/XFree86.cpp
@@ -0,0 +1,577 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/XFree86.cpp,v 1.1 2000/03/07 01:37:42 dawes Exp $
+.TH XFree86 1 "Version 4.0" "XFree86"
+.SH NAME
+XFree86 - X11R6 X server
+.SH SYNOPSIS
+.B XFree86
+[:display] [option ...]
+.SH DESCRIPTION
+XFree86 is an X servers for UNIX-like OSs on Intel x86 and other platforms.
+This work is derived from
+.I "X386\ 1.2"
+which was contributed to X11R5 by Snitily Graphics Consulting Service.
+The current XFree86 release is based on X11R6.3.
+The XFree86 X server architecture was redesigned for the 4.0 release, and
+it includes among other things a loadable module system donated by
+Metro Link, Inc.
+.SH CONFIGURATIONS
+.PP
+.I XFree86
+operates under the following operating systems:
+.RS .5i
+.na
+.PP
+-- SVR3.2: SCO 3.2.2, 3.2.4, ISC 3.x, 4.x
+.br
+-- SVR4.0: ESIX, Microport, Dell, UHC, Consensys, MST, ISC, AT&T, NCR
+.br
+-- SVR4.2: Consensys, Univel (UnixWare)
+.br
+-- Solaris (x86) 2.5, 2.6
+.br
+-- FreeBSD 2.1.x, 2.2.x, 3.0-current
+.br
+-- NetBSD 1.2, 1.3
+.br
+-- OpenBSD
+.ig
+.br
+-- BSD/386 version 1.1 and BSD/OS 2.0
+.br
+-- Mach (from CMU)
+..
+.br
+-- Linux
+.ig
+.br
+-- Amoeba version 5.1
+.br
+-- Minix-386vm version 1.6.25.1
+..
+.br
+-- LynxOS AT versions 2.2.1, 2.3.0 and 2.4.0, LynxOS microSPARC 2.4.0
+.ad
+.RE
+.PP
+.SH "NETWORK CONNECTIONS"
+\fIXFree86\fP supports connections made using the following reliable
+byte-streams:
+.TP 4
+.I "Local"
+\fIXFree86\fP supports local connections via Streams pipe via various mechanisms,
+using the following paths (\fIn\fP represents the display number):
+.sp .5v
+.in 8
+.nf
+/dev/X/server.\fBn\fR (SVR3 and SVR4)
+/dev/X/Nserver.\fBn\fR (SVR4)
+.ig
+/tmp/.X11-unix/X\fBn\fR (ISC SVR3)
+..
+/dev/X\fBn\fRS and /dev/X\fBn\fRR (SCO SVR3)
+.fi
+.in
+.sp .5v
+On SVR4.0.4, if the \fIAdvanced Compatibility Package\fP
+is installed, and in SVR4.2, \fIXFree86\fP supports local connections
+from clients for SCO XSight/ODT, and (with modifications to the binary)
+clients for ISC SVR3.
+.TP 4
+.I "Unix Domain"
+\fIXFree86\fP uses \fI/tmp/.X11-unix/X\fBn\fR as the filename for the socket,
+where \fIn\fP is the display number.
+.TP 4
+.I TCP\/IP
+\fIXFree86\fP listens on port htons(6000+\fIn\fP), where \fIn\fP is the display
+number.
+.ig
+.TP 4
+.I "Amoeba RPC"
+This is the default communication medium used under native Amoeba.
+Note that under Amoeba, the server should be started
+with a ``\fIhostname\fP:\fIdisplaynumber\fP'' argument.
+..
+.SH "ENVIRONMENT VARIABLES"
+For operating systems that support local connections other than Unix Domain
+sockets (SVR3 and SVR4), there is a compiled-in list specifying the order
+in which local connections should be attempted. This list can be overridden by
+the \fIXLOCAL\fP environment variable described below. If the display name
+indicates a best-choice connection should be made (e.g. \fI:0.0\fP), each
+connection mechanism is tried until a connection succeeds or no more
+mechanisms are available. Note: for these OSs, the Unix Domain socket
+connection is treated differently from the other local connection types.
+To use it the connection must be made to \fIunix:0.0\fP.
+.PP
+The \fIXLOCAL\fP environment variable should contain a list of one more
+more of the following:
+.sp .5v
+.in 8
+.nf
+NAMED
+PTS
+SCO
+ISC
+.fi
+.in
+.sp .5v
+which represent SVR4 Named Streams pipe, Old-style USL
+Streams pipe, SCO XSight Streams pipe, and ISC Streams pipe, respectively.
+You can select a single mechanism (e.g. \fIXLOCAL=NAMED\fP), or an ordered
+list (e.g. \fIXLOCAL="NAMED:PTS:SCO"\fP). This variable overrides the
+compiled-in defaults. For SVR4 it is recommended that \fINAMED\fP be
+the first preference connection. The default setting is
+\fIPTS:NAMED:ISC:SCO\fP.
+.PP
+To globally override the compiled-in defaults, you should define (and
+export if using \fIsh\fP or \fIksh\fP) \fIXLOCAL\fP globally. If you
+use \fIstartx/xinit\fP, the definition should be at the top of
+your \fI.xinitrc\fP file. If you use \fIxdm\fP, the definitions should be
+early on in the \fI<XRoot>/lib/X11/xdm/Xsession\fP script.
+.SH OPTIONS
+In addition to the normal server options described in the \fIXserver(1)\fP
+manual page, \fIXFree86\fP accepts the following command line switches:
+.TP 8
+.B vt\fIXX\fP
+\fIXX\fP specifies the Virtual Terminal device number which
+\fIXFree86\fP will use. Without this option, \fIXFree86\fP will pick the first
+available Virtual Terminal that it can locate. This option applies only
+to SVR3, SVR4, Linux, and BSD OSs with the `syscons' or `pcvt' driver.
+.TP 8
+.B -crt /dev/tty\fIXX\fP
+SCO only. This is the same as the \fBvt\fP option, and is provided for
+compatibility with the native SCO X server.
+.TP 8
+.B \-probeonly
+Causes the server to exit after the device probing stage. The XF86Config file
+is still used when this option is given, so information that can be
+auto-detected should be commented out.
+.TP 8
+.B \-quiet
+Suppress most informational messages at startup.
+.TP 8
+.B \-bpp \fIn\fP
+No longer supported. Use \fB\-depth\fP to set the color depth, and
+use \fB\-fbbpp\fP if you really need to force a non-default
+framebuffer (hardware) pixel format.
+.TP 8
+.B \-depth \fIn\fP
+Sets the default color depth. Legal values are 8, 15, 16, and 24.
+Not all servers support all values.
+.TP 8
+.B \-fbbpp \fIn\fP
+Sets the number of framebuffer bits per pixel. You should only set
+this if you're sure it's necessary; normally the server can deduce the
+correct value from \fB\-depth\fP above. Useful if you want to run a
+depth 24 configuration with a 24 bpp framebuffer rather than the
+(possibly default) 32 bpp framebuffer. Legal values are 8, 16, 24,
+32. Not all servers support all values.
+.TP 8
+.B \-weight \fInnn\fP
+Set RGB weighting at 16 bpp. The default is 565. This applies
+only to those servers which support 16 bpp.
+.TP 8
+.B \-flipPixels
+Swap the default values for the black and white pixels.
+.TP 8
+.B \-disableVidMode
+Disable the the parts of the VidMode extension used by the xvidtune client
+that can be used to change the video modes.
+.TP 8
+.B \-allowNonLocalXvidtune
+Allow the xvidtune client to connect from another host. By default non-local
+connections are not allowed.
+.TP 8
+.B \-disableModInDev
+Disable dynamic modification of input device settings.
+.TP 8
+.B \-allowNonLocalModInDev
+Allow changes to keyboard and mouse settings from non-local clients.
+By default, connections from non-local clients are not allowed to do this.
+.TP
+.B \-allowMouseOpenFail
+Allow the server to start up even if the mouse device can't be opened or
+initialised.
+.TP 8
+.B \-gamma \fIvalue\fP
+Set the gamma correction. \fIvalue\fP must be between 0.1 and 10. The
+default is 1.0
+This value is applied equally to the R, G and B values. Not all servers
+support this.
+.TP 8
+.B \-rgamma \fIvalue\fP
+Set the red gamma correction. \fIvalue\fP must be between 0.1 and 10. The
+default is 1.0
+Not all servers support this.
+.TP 8
+.B \-ggamma \fIvalue\fP
+Set the green gamma correction. \fIvalue\fP must be between 0.1 and 10. The
+default is 1.0
+Not all servers support this.
+.TP 8
+.B \-bgamma \fIvalue\fP
+Set the blue gamma correction. \fIvalue\fP must be between 0.1 and 10. The
+default is 1.0
+Not all servers support this.
+.TP 8
+.B \-showconfig
+Print out the server version, patchlevel, and a list of screen drivers
+configured in the server.
+.TP 8
+.B \-verbose
+Multiple occurrences of this flag increase the amount of information printed on
+stderr (more than the default).
+.TP 8
+.B \-version
+Same as \fB\-showconfig\fP.
+.TP 8
+.B \-xf86config \fIfile\fP
+Read the server configuration from \fIfile\fP. This option will work
+for any file when the server is run as root (i.e, with real-uid 0), or
+for files relative to a directory in the config search path for all
+other users.
+.TP 8
+.B \-keeptty
+Prevent the server from detaching its initial controlling terminal. This
+option is only useful when debugging the server.
+.SH "KEYBOARD"
+Multiple key presses recognized directly by \fIXFree86\fP are:
+.TP 8
+.B Ctrl+Alt+Backspace
+Immediately kills the server -- no questions asked. (Can be disabled by
+specifying "DontZap" in the \fBServerFlags\fP section of the XF86Config file.)
+.TP 8
+.B Ctrl+Alt+Keypad-Plus
+Change video mode to next one specified in the configuration file,
+(increasing video resolution order).
+.TP 8
+.B Ctrl+Alt+Keypad-Minus
+Change video mode to previous one specified in the configuration file,
+(decreasing video resolution order).
+.TP 8
+.B Ctrl+Alt+F1...F12
+For BSD systems using the syscons driver and Linux, these keystroke
+combinations are used to switch to Virtual
+Console 1 through 12.
+.SH SETUP
+.I XFree86
+uses a configuration file called \fBXF86Config\fP for its initial setup.
+Refer to the
+.I XF86Config(4/5)
+manual page for more information.
+.SH FILES
+.TP 30
+/etc/XF86Config
+Server configuration file
+.TP 30
+/etc/X11/XF86Config
+Server configuration file
+.TP 30
+/usr/X11R6/etc/XF86Config
+Server configuration file
+.TP 30
+<XRoot>/lib/X11/XF86Config.\fIhostname\fP
+Server configuration file
+.TP 30
+<XRoot>/lib/X11/XF86Config
+Server configuration file
+.TP 30
+<XRoot>/bin/\(**
+Client binaries
+.TP 30
+<XRoot>/include/\(**
+Header files
+.TP 30
+<XRoot>/lib/\(**
+Libraries
+.TP 30
+<XRoot>/lib/X11/fonts/\(**
+Fonts
+.TP 30
+<XRoot>/lib/X11/rgb.txt
+Color names to RGB mapping
+.TP 30
+<XRoot>/lib/X11/XErrorDB
+Client error message database
+.TP 30
+<XRoot>/lib/X11/app-defaults/\(**
+Client resource specifications
+.TP 30
+<XRoot>/man/man?/\(**
+Manual pages
+.TP 30
+/etc/X\fIn\fP.hosts
+Initial access control list for display \fIn\fP
+.LP
+Note: <XRoot> refers to the root of the X11 install tree.
+.SH "SEE ALSO"
+X(1), Xserver(1), xdm(1), xinit(1), XF86Config(4/5), xf86config(1),
+XF86_SVGA(1), XF86_VGA16(1), XF86_Mono(1), XF86_Accel(1), xvidtune(1)
+.SH AUTHORS
+.PP
+For X11R5, \fIXF86 1.2\fP was provided by:
+.TP 8
+Thomas Roell, \fIroell@informatik.tu-muenchen.de\fP
+TU-Muenchen: Server and SVR4 stuff
+.TP 8
+Mark W. Snitily, \fImark@sgcs.com\fP
+SGCS: SVR3 support, X Consortium Sponsor
+.PP
+ ... and many more people out there on the net who helped with ideas and
+bug-fixes.
+.PP
+XFree86 was integrated into X11R6 by the following team:
+.PP
+.nf
+Stuart Anderson \fIanderson@metrolink.com\fP
+Doug Anson \fIdanson@lgc.com\fP
+Gertjan Akkerman \fIakkerman@dutiba.twi.tudelft.nl\fP
+Mike Bernson \fImike@mbsun.mlb.org\fP
+Robin Cutshaw \fIrobin@XFree86.org\fP
+David Dawes \fIdawes@XFree86.org\fP
+Marc Evans \fImarc@XFree86.org\fP
+Pascal Haible \fIhaible@izfm.uni-stuttgart.de\fP
+Matthieu Herrb \fIMatthieu.Herrb@laas.fr\fP
+Dirk Hohndel \fIhohndel@XFree86.org\fP
+David Holland \fIdavidh@use.com\fP
+Alan Hourihane \fIalanh@fairlite.demon.co.uk\fP
+Jeffrey Hsu \fIhsu@soda.berkeley.edu\fP
+Glenn Lai \fIglenn@cs.utexas.edu\fP
+Ted Lemon \fImellon@ncd.com\fP
+Rich Murphey \fIrich@XFree86.org\fP
+Hans Nasten \fInasten@everyware.se\fP
+Mark Snitily \fImark@sgcs.com\fP
+Randy Terbush \fIrandyt@cse.unl.edu\fP
+Jon Tombs \fItombs@XFree86.org\fP
+Kees Verstoep \fIversto@cs.vu.nl\fP
+Paul Vixie \fIpaul@vix.com\fP
+Mark Weaver \fIMark_Weaver@brown.edu\fP
+David Wexelblat \fIdwex@XFree86.org\fP
+Philip Wheatley \fIPhilip.Wheatley@ColumbiaSC.NCR.COM\fP
+Thomas Wolfram \fIwolf@prz.tu-berlin.de\fP
+Orest Zborowski \fIorestz@eskimo.com\fP
+.fi
+.PP
+The \fIXFree86\fP enhancement package was provided by:
+.TP 8
+David Dawes, \fIdawes@XFree86.org\fP
+Release coordination, administration of FTP repository and mailing lists.
+Source tree management
+and integration, accelerated server integration, fixing, and coding.
+.TP 8
+Glenn Lai, \fIglenn@cs.utexas.edu\fP
+The SpeedUp code for ET4000 based SVGA cards, and ET4000/W32 accelerated
+server.
+.TP 8
+Jim Tsillas, \fIjtsilla@ccs.neu.edu\fP
+Many server speedups from the fX386 series of enhancements.
+.TP 8
+David Wexelblat, \fIdwex@XFree86.org\fP
+Integration of the fX386 code into the default server,
+many driver fixes, and driver documentation, assembly of the VGA
+card/monitor database, development of the generic video mode listing.
+Accelerated server integration, fixing, and coding.
+.TP 8
+Dirk Hohndel, \fIhohndel@XFree86.org\fP
+Linux shared libraries and release coordination. Accelerated server
+integration and fixing. Generic administrivia and documentation.
+.PP
+.TP 8
+Amancio Hasty Jr., \fIhasty@netcom.com\fP
+Porting to \fB386BSD\fP version 0.1 and XS3 development.
+.TP 8
+Rich Murphey, \fIrich@XFree86.org\fP
+Ported to \fB386BSD\fP version 0.1 based on the original port by Pace Willison.
+Support for \fB386BSD\fP, \fBFreeBSD\fP, and \fBNetBSD\fP.
+.TP 8
+Robert Baron, \fIRobert.Baron@ernst.mach.cs.cmu.edu\fP
+Ported to \fBMach\fP.
+.TP 8
+Orest Zborowski, \fIorestz@eskimo.com\fP
+Ported to \fBLinux\fP.
+.TP 8
+Doug Anson, \fIdanson@lgc.com\fP
+Ported to \fBSolaris x86\fP.
+.TP 8
+David Holland, \fIdavidh@use.com\fP
+Ported to \fBSolaris x86\fP.
+.TP 8
+David McCullough, \fIdavidm@stallion.oz.au\fP
+Ported to \fBSCO SVR3\fP.
+.TP 8
+Michael Rohleder, \fImichael.rohleder@stadt-frankfurt.de\fP
+Ported to \fBISC SVR3\fP.
+.TP 8
+Kees Verstoep, \fIversto@cs.vu.nl\fP
+Ported to \fBAmoeba\fP based on Leendert van Doorn's original Amoeba port of
+X11R5.
+.TP 8
+Marc Evans, \fIMarc@XFree86.org\fP
+Ported to \fBOSF/1\fP.
+.TP 8
+Philip Homburg, \fIphilip@cs.vu.nl\fP
+Ported to \fBMinix-386vm\fP.
+.TP 8
+Thomas Mueller, \fItm@systrix.de\fP
+Ported to \fBLynxOS\fP.
+.TP 8
+Jon Tombs, \fItombs@XFree86.org\fP
+S3 server and accelerated server coordination.
+.TP 8
+Harald Koenig, \fIkoenig@tat.physik.uni-tuebingen.de\fP
+S3 server development.
+.TP 8
+Bernhard Bender, \fIbr@elsa.mhs.compuserve.com\fP
+S3 server development.
+.TP 8
+Kevin Martin, \fImartin@cs.unc.edu\fP
+Overall work on the base accelerated servers (ATI and 8514/A), and Mach64
+server.
+.TP 8
+Rik Faith, \fIfaith@cs.unc.edu\fP
+Overall work on the base accelerated servers (ATI and 8514/A).
+.TP 8
+Tiago Gons, \fItiago@comosjn.hobby.nl\fP
+Mach8 and 8514/A server development
+.TP 8
+Hans Nasten, \fInasten@everyware.se\fP
+Mach8, 8514/A, and S3 server development and BSD/386 support
+.TP 8
+Mike Bernson, \fImike@mbsun.mlb.org\fP
+Mach32 server development.
+.TP 8
+Mark Weaver, \fIMark_Weaver@brown.edu\fP
+Mach32 server development.
+.TP 8
+Craig Groeschel, \fIcraig@metrolink.com\fP
+Mach32 server development.
+.TP 8
+Henry Worth, \fIHenry.Worth@amail.amdahl.com\fP
+AGX server.
+.TP 8
+Erik Nygren, \fInygren@mit.edu\fP
+P9000 server.
+.TP 8
+Harry Langenbacher \fIharry@brain.jpl.nasa.gov\fP
+P9000 server.
+.TP 8
+Chris Mason, \fImason@mail.csh.rit.edu\fP
+P9000 server.
+.TP 8
+Henrik Harmsen \fIharmsen@eritel.se\fP
+P9000 server.
+.TP 8
+Simon Cooper, \fIscooper@vizlab.rutgers.edu\fP
+Cirrus accelerated code (based on work by Bill Reynolds).
+.TP 8
+Harm Hanemaayer, \fIhhanemaa@cs.ruu.nl\fP
+Cirrus accelerated code, and ARK driver.
+.TP 8
+Thomas Zerucha, \fIzerucha@shell.portal.com\fP
+Support for Cirrus CL-GD7543.
+.TP 8
+Leon Bottou, \fIbottou@laforia.ibp.fr\fP
+ARK driver.
+.TP 8
+Mike Tierney, \fIfloyd@eng.umd.edu\fP
+WD accelerated code.
+.TP 8
+Bill Conn, \fIconn@bnr.ca\fP
+WD accelerated code.
+.TP 8
+Brad Bosch, \fIbrad@lachman.com\fP
+WD 90C24A support.
+.TP 8
+Alan Hourihane, \fIalanh@fairlite.demon.co.uk\fP
+Trident SVGA driver, SiS SVGA driver and DEC 21030 server.
+.TP 8
+Marc Aurele La France, \fItsi@ualberta.ca\fP
+ATI SVGA driver
+.TP 8
+Steve Goldman, \fIsgoldman@encore.com\fP
+Oak 067/077 SVGA driver.
+.TP 8
+Jorge Delgado, \fIernar@dit.upm.es\fP
+Oak SVGA driver, and 087 accelerated code.
+.TP 8
+Bill Conn, \fIconn@bnr.ca\fP
+WD accelerated code.
+.TP 8
+Paolo Severini, \fIlendl@dist.dist.unige.it\fP
+AL2101 SVGA driver
+.TP 8
+Ching-Tai Chiu, \fIcchiu@netcom.com\fP
+Avance Logic ALI SVGA driver
+.TP 8
+Manfred Brands, \fImb@oceonics.nl\fP
+Cirrus 64xx SVGA driver
+.TP 8
+Randy Hendry, \fIrandy@sgi.com\fP
+Cirrus 6440 support in the cl64xx SVGA driver
+.TP 8
+Frank Dikker, \fIdikker@cs.utwente.nl\fP
+MX SVGA driver
+.TP 8
+Regis Cridlig, \fIcridlig@dmi.ens.fr\fP
+Chips & Technologies driver
+.TP 8
+Jon Block, \fIblock@frc.com\fP
+Chips & Technologies driver
+.TP 8
+Mike Hollick, \fIhollick@graphics.cis.upenn.edu\fP
+Chips & Technologies driver
+.TP 8
+Nozomi Ytow
+Chips & Technologies driver
+.TP 8
+Egbert Eich, \fIEgbert.Eich@Physik.TH-Darmstadt.DE\fP
+Chips & Technologies driver
+.TP 8
+David Bateman, \fIdbateman@ee.uts.edu.au\fP
+Chips & Technologies driver
+.TP 8
+Xavier Ducoin, \fIxavier@rd.lectra.fr\fP
+Chips & Technologies driver
+.TP 8
+Peter Trattler, \fIpeter@sbox.tu-graz.ac.at\fP
+RealTek SVGA driver
+.TP 8
+Craig Struble, \fIcstruble@acm.vt.edu\fP
+Video7 SVGA driver
+.TP 8
+Gertjan Akkerman, \fIakkerman@dutiba.twi.tudelft.nl\fP
+16 colour VGA server, and XF86Config parser.
+.TP 8
+Davor Matic, \fIdmatic@Athena.MIT.EDU\fP
+Hercules driver.
+.TP 8
+Pascal Haible, \fIhaible@izfm.uni-stuttgart.de\fP
+Banked monochrome VGA support, Hercules support, and mono frame buffer
+support for dumb monochrome devices
+.TP 8
+Martin Schaller,
+.TP 8
+Geert Uytterhoeven,\fIGeert.Uytterhoeven@cs.kuleuven.ac.be\fP
+Linux/m68k Frame Buffer Device driver
+.TP 8
+Andreas Schwab, \fIschwab@issan.informatik.uni-dortmund.de\fP
+Linux/m68k Frame Buffer Device driver
+.TP 8
+Guenther Kelleter, \fIguenther@Pool.Informatik.RWTH-Aachen.de\fP
+Linux/m68k Frame Buffer Device driver
+.TP 8
+Frederic Lepied, \fLepied@XFree86.Org\fP
+XInput extension integration. Wacom, joystick and extended mouse drivers.
+.TP 8
+Patrick Lecoanet, \flecoanet@cena.dgac.fr\fP
+Elographics touchscreen driver.
+.TP 8
+Steven Lang, \ftiger@tyger.org\fP
+SummaSketch tablet driver.
+.PP
+ ... and many more people out there on the net who helped with beta-testing
+this enhancement.
+.PP
+\fIXFree86\fP source is available from the FTP server
+\fIftp.XFree86.org\fP, among others. Send email to
+\fIXFree86@XFree86.org\fP for details.
+.\" $XConsortium: XFree86.man /main/25 1996/12/09 17:33:22 kaleb $
diff --git a/xc/programs/Xserver/hw/xfree86/common/Imakefile b/xc/programs/Xserver/hw/xfree86/common/Imakefile
index c6fc95405..eb1b75975 100644
--- a/xc/programs/Xserver/hw/xfree86/common/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/common/Imakefile
@@ -4,7 +4,7 @@ XCOMM $XConsortium: Imakefile /main/34 1996/10/27 11:05:08 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/common/Imakefile,v 3.112 2000/02/12 20:45:17 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/common/Imakefile,v 3.114 2000/02/24 05:36:48 tsi Exp $
@@ -148,9 +148,8 @@ OFILES = \
-I$(SERVERSRC)/Xi -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
-I$(FONTLIBSRC)/include -I$(XF86SRC) -I$(XF86PARSERSRC) \
-I$(XF86SRC)/loader $(VGAINCLUDES) -I$(XF86SRC)/rac \
- -I$(XF86SRC)/scanpci
-
-
+ -I$(XF86SRC)/scanpci -I$(XF86OSSRC)/vbe -I$(XF86SRC)/int10 \
+ -I$(XF86SRC)/ddc
OSNAME = OSName
OSVENDOR = OSVendor
@@ -158,7 +157,11 @@ OFILES = \
CONSDEFINES = XFree86ConsoleDefines
EXP_DEFINES = -DEXPIRY_TIME=XF86ServerExpiry $(EXP_FORCE_DEFINES)
PROJECTROOT = ProjectRoot
-XCONFIGDEFINES = -DPROJECTROOT='"$(PROJECTROOT)"'
+ DRIVERS = XF86CardDrivers
+ IDRIVERS = mouse XInputDrivers
+XCONFIGDEFINES = -DPROJECTROOT='"$(PROJECTROOT)"' \
+ -DDRIVERS='"$(DRIVERS)"' \
+ -DIDRIVERS='"$(IDRIVERS)"'
#if defined(SunArchitecture) && defined(SVR4Architecture) && OSMinorVersion >= 8
OSDEFINES = -DSOL8
diff --git a/xc/programs/Xserver/hw/xfree86/common/compiler.h b/xc/programs/Xserver/hw/xfree86/common/compiler.h
index b130d7c11..621a2f3b1 100644
--- a/xc/programs/Xserver/hw/xfree86/common/compiler.h
+++ b/xc/programs/Xserver/hw/xfree86/common/compiler.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/compiler.h,v 3.55 2000/02/21 18:05:44 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/compiler.h,v 3.58 2000/03/05 16:59:10 dawes Exp $ */
/*
* Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
*
@@ -363,6 +363,34 @@ static __inline__ void stw_u(unsigned long r5, unsigned short * r11)
#define write_mem_barrier() mem_barrier()
#endif
+
+#elif defined(linux) && defined(__ia64__)
+#define inline __inline__
+
+#include <stdlib.h>
+#include <asm/types.h>
+#include <asm/system.h>
+#include <sys/io.h>
+#include <asm/unaligned.h>
+
+#define ldq_u(p) __uldq(p)
+#define ldl_u(p) __uldl(p)
+#define ldw_u(p) __uldw(p)
+#define stq_u(v,p) __ustq(v,p)
+#define stl_u(v,p) __ustl(v,p)
+#define stw_u(v,p) __ustw(v,p)
+
+#define mem_barrier() __asm__ __volatile__ ("mf" ::: "memory")
+#define write_mem_barrier() __asm__ __volatile__ ("mf" ::: "memory")
+
+#undef outb
+#undef outw
+#undef outl
+
+#define outb(a,b) _outb(b,a)
+#define outw(a,b) _outw(b,a)
+#define outl(a,b) _outl(b,a)
+
#elif (defined(linux) || defined(Lynx)) && defined(__sparc__)
#if !defined(Lynx)
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86.h b/xc/programs/Xserver/hw/xfree86/common/xf86.h
index 5cea1c84b..a6b1ec176 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86.h,v 3.128 2000/02/21 19:22:51 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86.h,v 3.131 2000/03/02 23:15:03 tsi Exp $ */
/*
* Copyright (c) 1997 by The XFree86 Project, Inc.
@@ -23,9 +23,7 @@
/* General parameters */
extern int xf86DoConfigure;
-extern int FoundPciCards;
-extern pciVideoPtr ConfiguredPciCard;
-extern int ConfiguredIsaCard;
+extern Bool xf86DoConfigurePass1;
extern int xf86ScreenIndex; /* Index into pScreen.devPrivates */
extern int xf86CreateRootWindowIndex; /* Index into pScreen.devPrivates */
extern int xf86PixmapIndex;
@@ -123,6 +121,9 @@ Bool xf86DeregisterStateChangeNotificationCallback(xf86StateChangeNotificationCa
Bool xf86QueueAsyncEvent(void (*func)(pointer),pointer arg);
#endif
+/* xf86Configure.c */
+GDevPtr xf86AddDeviceToConfigure(const char *driver, pciVideoPtr pVideo,
+ int chipset);
/* xf86Cursor.c */
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Bus.c b/xc/programs/Xserver/hw/xfree86/common/xf86Bus.c
index e80fc27f9..ecef40d68 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Bus.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Bus.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.43 2000/02/12 23:59:09 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.44 2000/03/05 23:47:44 dawes Exp $ */
/*
* Copyright (c) 1997-1999 by The XFree86 Project, Inc.
*/
@@ -2357,15 +2357,15 @@ xf86PostPreInit()
needRAC = TRUE;
#ifdef XFree86LOADER
- ErrorF("do I need RAC?\n");
+ xf86MsgVerb(X_INFO, 3, "do I need RAC?");
if (needRAC) {
- ErrorF(" Yes, I do.\n");
+ xf86ErrorFVerb(3, " Yes, I do.\n");
if (!xf86LoadOneModule("rac",NULL))
FatalError("Cannot load RAC module\n");
} else
- ErrorF(" No, I don't.\n");
+ xf86ErrorFVerb(3, " No, I don't.\n");
#endif
xf86MsgVerb(X_INFO, 3, "resource ranges after preInit:\n");
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Bus.h b/xc/programs/Xserver/hw/xfree86/common/xf86Bus.h
index 1c25e7d87..2668d1f0d 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Bus.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Bus.h
@@ -1,5 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.h,v 1.12 2000/02/12 23:59:09 eich Exp $ */
-#define DEBUG
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.h,v 1.13 2000/03/05 17:04:10 dawes Exp $ */
/*
* Copyright (c) 1997 by The XFree86 Project, Inc.
*/
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Config.c b/xc/programs/Xserver/hw/xfree86/common/xf86Config.c
index 22d22dc37..d611d5ea0 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Config.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Config.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v 3.209 2000/02/18 00:47:35 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v 3.214 2000/03/08 05:38:36 dawes Exp $ */
/*
@@ -50,15 +50,19 @@ extern DeviceAssocRec mouse_assoc;
"%E," "%F," \
"/etc/X11/%F," "%P/etc/X11/%F," \
"%D/%X," \
- "/etc/X11/%X," "/etc/%X," "%P/etc/X11/%X.%H," \
- "%P/etc/X11/%X," "%P/lib/X11/%X.%H," \
+ "/etc/X11/%X-%M," "/etc/X11/%X," "/etc/%X," \
+ "%P/etc/X11/%X.%H," "%P/etc/X11/%X-%M," \
+ "%P/etc/X11/%X," \
+ "%P/lib/X11/%X.%H," "%P/lib/X11/%X-%M," \
"%P/lib/X11/%X"
#endif
#ifndef USER_CONFIGPATH
#define USER_CONFIGPATH "/etc/X11/%S," "%P/etc/X11/%S," \
"/etc/X11/%G," "%P/etc/X11/%G," \
- "/etc/X11/%X," "/etc/%X," "%P/etc/X11/%X.%H," \
- "%P/etc/X11/%X," "%P/lib/X11/%X.%H," \
+ "/etc/X11/%X-%M," "/etc/X11/%X," "/etc/%X," \
+ "%P/etc/X11/%X.%H," "%P/etc/X11/%X-%M," \
+ "%P/etc/X11/%X," \
+ "%P/lib/X11/%X.%H," "%P/lib/X11/%X-%M," \
"%P/lib/X11/%X"
#endif
#ifndef PROJECTROOT
@@ -242,6 +246,8 @@ xf86ModulelistFromConfig(pointer **optlist)
optarray[count] = NULL;
if (optlist)
*optlist = optarray;
+ else
+ xfree(optarray);
return modulearray;
}
@@ -380,6 +386,134 @@ xf86InputDriverlistFromConfig()
/*
+ * Generate a compiled-in list of driver names. This is used to produce a
+ * consistent probe order. For the loader server, we also look for vendor-
+ * provided modules, pre-pending them to our own list.
+ */
+static char **
+GenerateDriverlist(char * dirname, char * drivernames)
+{
+ char *cp, **driverlist;
+ int count;
+
+ /* Count the number needed */
+ count = 0;
+ cp = drivernames;
+ while (*cp) {
+ while (*cp && isspace(*cp)) cp++;
+ if (!*cp) break;
+ count++;
+ while (*cp && !isspace(*cp)) cp++;
+ }
+
+ if (!count)
+ return NULL;
+
+ /* Now allocate the array of pointers to 0-terminated driver names */
+ driverlist = (char **)xnfalloc((count + 1) * sizeof(char *));
+ count = 0;
+ cp = drivernames;
+ while (*cp) {
+ while (*cp && isspace(*cp)) cp++;
+ if (!*cp) break;
+ driverlist[count++] = cp;
+ while (*cp && !isspace(*cp)) cp++;
+ if (!*cp) break;
+ *cp++ = 0;
+ }
+ driverlist[count] = NULL;
+
+#ifdef XFree86LOADER
+ {
+ const char *subdirs[] = {NULL, NULL};
+ static const char *patlist[] = {"(.*)_drv\\.so", "(.*)_drv\\.o", NULL};
+ char **dlist, **clist, **dcp, **ccp;
+
+ subdirs[0] = dirname;
+
+ /* Get module list */
+ dlist = LoaderListDirs(subdirs, patlist);
+ if (!dlist) {
+ xfree(driverlist);
+ return NULL; /* No modules, no list */
+ }
+
+ clist = driverlist;
+
+ /* The resulting list cannot be longer than the module list */
+ for (dcp = dlist, count = 0; *dcp++; count++);
+ driverlist = (char **)xnfalloc((count + 1) * sizeof(char *));
+
+ /* First, add modules not in compiled-in list */
+ for (count = 0, dcp = dlist; *dcp; dcp++) {
+ for (ccp = clist; ; ccp++) {
+ if (!*ccp) {
+ driverlist[count++] = *dcp;
+ break;
+ }
+ if (!strcmp(*ccp, *dcp))
+ break;
+ }
+ }
+
+ /* Next, add compiled-in names that are also modules */
+ for (ccp = clist; *ccp; ccp++) {
+ for (dcp = dlist; *dcp; dcp++) {
+ if (!strcmp(*ccp, *dcp)) {
+ driverlist[count++] = *ccp;
+ break;
+ }
+ }
+ }
+
+ driverlist[count++] = NULL;
+ xfree(clist);
+ xfree(dlist);
+ driverlist = xnfrealloc(driverlist, count * sizeof(char *));
+ }
+#endif /* XFree86LOADER */
+
+ return driverlist;
+}
+
+
+char **
+xf86DriverlistFromCompile(void)
+{
+ static char **driverlist = NULL;
+ static Bool generated = FALSE;
+
+ /* This string is modified in-place */
+ static char drivernames[] = DRIVERS;
+
+ if (!generated) {
+ generated = TRUE;
+ driverlist = GenerateDriverlist("drivers", drivernames);
+ }
+
+ return driverlist;
+}
+
+
+char **
+xf86InputDriverlistFromCompile(void)
+{
+ static char **driverlist = NULL;
+ static Bool generated = FALSE;
+
+ /* This string is modified in-place */
+ static char drivernames[] = IDRIVERS;
+
+ if (!generated) {
+ generated = TRUE;
+ driverlist = GenerateDriverlist("input", drivernames);
+ }
+
+ return driverlist;
+}
+
+
+/*
* xf86ConfigError --
* Print a READABLE ErrorMessage!!! All information that is
* available is printed.
@@ -573,6 +707,8 @@ static OptionInfoRec FlagOptions[] = {
{0}, FALSE },
{ FLAG_PIXMAP, "Pixmap", OPTV_INTEGER,
{0}, FALSE },
+ { FLAG_PC98, "PC98", OPTV_BOOLEAN,
+ {0}, FALSE },
{ FLAG_ESTIMATE_SIZES_AGGRESSIVELY,"EstimateSizesAggressively",OPTV_INTEGER,
{0}, FALSE },
{ FLAG_NOPM, "NoPM", OPTV_BOOLEAN,
@@ -671,6 +807,10 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts)
xf86Info.pciFlags = PCIForceConfig1;
if (xf86IsOptionSet(FlagOptions, FLAG_PCIFORCECONFIG2))
xf86Info.pciFlags = PCIForceConfig2;
+ /*
+ * XXX This should be handled like a proper boolean option -- see further
+ * above for examples.
+ */
if (xf86IsOptionSet(FlagOptions, FLAG_NOPM))
xf86Info.pmFlag = FALSE;
else
@@ -1174,7 +1314,6 @@ configLayout(serverLayoutPtr servlayoutp, XF86ConfLayoutPtr conf_layout,
}
}
-#define LAYOUT_DEBUG
#ifdef LAYOUT_DEBUG
ErrorF("Layout \"%s\"\n", conf_layout->lay_identifier);
for (i = 0; i < count; i++) {
@@ -1662,9 +1801,6 @@ configDevice(GDevPtr devicep, XF86ConfDevicePtr conf_device, Bool active)
xf86Msg(X_CONFIG, "|-->Inactive Device \"%s\"\n",
conf_device->dev_identifier);
- /*
- * some things (like clocks) are missing here
- */
devicep->identifier = conf_device->dev_identifier;
devicep->vendor = conf_device->dev_vendor;
devicep->board = conf_device->dev_board;
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Config.h b/xc/programs/Xserver/hw/xfree86/common/xf86Config.h
index 6f6001b3c..6a24df0e0 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Config.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Config.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.h,v 1.4 1999/05/05 14:29:51 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.h,v 1.5 2000/02/24 05:36:50 tsi Exp $ */
/*
* Copyright 1997 by The XFree86 Project, Inc
*/
@@ -18,7 +18,9 @@ extern XF86ConfigPtr xf86configptr;
*/
char ** xf86ModulelistFromConfig(pointer **);
char ** xf86DriverlistFromConfig(void);
+char ** xf86DriverlistFromCompile(void);
char ** xf86InputDriverlistFromConfig(void);
+char ** xf86InputDriverlistFromCompile(void);
Bool xf86BuiltinInputDriver(const char *);
Bool xf86HandleConfigFile(void);
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Configure.c b/xc/programs/Xserver/hw/xfree86/common/xf86Configure.c
index 83f2c827c..35428bc26 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Configure.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Configure.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Configure.c,v 3.15 2000/02/18 00:47:36 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Configure.c,v 3.27 2000/03/04 03:58:05 dawes Exp $ */
/*
* Copyright 2000 by Alan Hourihane, Sychdyn, North Wales.
*
@@ -33,35 +33,47 @@
#include "loaderProcs.h"
#endif
#include "xf86.h"
+#include "xf86Config.h"
#include "xf86Priv.h"
#include "xf86PciInfo.h"
#include "xf86Parser.h"
#include "xf86tokens.h"
#include "Configint.h"
+#include "vbe.h"
+#include "xf86DDC.h"
-pciVideoPtr ConfiguredPciCard;
-int ConfiguredIsaCard;
-int FoundPciCards = 0;
-static int haveVGA = -1;
-Bool havePrimary = FALSE;
+typedef struct _DevToConfig {
+ GDevRec GDev;
+ pciVideoPtr pVideo;
+ int iDriver;
+} DevToConfigRec, *DevToConfigPtr;
+
+static DevToConfigPtr DevToConfig = NULL;
+static int nDevToConfig = 0, CurrentDriver;
+
+xf86MonPtr ConfiguredMonitor;
+Bool xf86DoConfigurePass1 = TRUE;
+Bool foundMouse = FALSE;
static void
-GetPciCard(int id, int *vendor1, int *vendor2, int *card)
+GetPciCard(int vendor, int chipType, int *vendor1, int *vendor2, int *card)
{
int k, j;
+
k = 0;
while (xf86PCIVendorNameInfo[k].token) {
- if (xf86PCIVendorNameInfo[k].token == ConfiguredPciCard[id].vendor)
+ if (xf86PCIVendorNameInfo[k].token == vendor) {
*vendor1 = k;
+ break;
+ }
k++;
}
k = 0;
while(xf86PCIVendorInfo[k].VendorID) {
- if (xf86PCIVendorInfo[k].VendorID == ConfiguredPciCard[id].vendor) {
+ if (xf86PCIVendorInfo[k].VendorID == vendor) {
j = 0;
while (xf86PCIVendorInfo[k].Device[j].DeviceName) {
- if (xf86PCIVendorInfo[k].Device[j].DeviceID ==
- ConfiguredPciCard[id].chipType) {
+ if (xf86PCIVendorInfo[k].Device[j].DeviceID == chipType) {
*vendor2 = k;
*card = j;
break;
@@ -74,23 +86,115 @@ GetPciCard(int id, int *vendor1, int *vendor2, int *card)
}
}
-XF86ConfInputPtr
+/*
+ * This is called by the driver, either through xf86Match???Instances() or
+ * directly. We allocate a GDevRec and fill it in as much as we can, letting
+ * the caller fill in the rest and/or change it as it sees fit.
+ */
+GDevPtr
+xf86AddDeviceToConfigure(const char *driver, pciVideoPtr pVideo, int chipset)
+{
+ int busType, i, j;
+
+ if (xf86DoProbe || !xf86DoConfigure || !xf86DoConfigurePass1)
+ return NULL;
+
+ /* Check for duplicates */
+ if (pVideo) {
+ for (i = 0; i < nDevToConfig; i++)
+ if ((DevToConfig[i].pVideo->bus == pVideo->bus) &&
+ (DevToConfig[i].pVideo->device == pVideo->device) &&
+ (DevToConfig[i].pVideo->func == pVideo->func))
+ return NULL;
+ } else {
+ /*
+ * This needs to be revisited as it doesn't allow for non-PCI
+ * multihead.
+ */
+ if (!xf86IsPrimaryIsa())
+ return NULL;
+ for (i = 0; i < nDevToConfig; i++)
+ if (!DevToConfig[i].pVideo)
+ return NULL;
+ }
+
+ /* Allocate new structure occurrence */
+ i = nDevToConfig++;
+ DevToConfig =
+ xnfrealloc(DevToConfig, nDevToConfig * sizeof(DevToConfigRec));
+ memset(DevToConfig + i, 0, sizeof(DevToConfigRec));
+
+# define NewDevice DevToConfig[i]
+
+ NewDevice.GDev.chipID = NewDevice.GDev.chipRev = NewDevice.GDev.irq = -1;
+
+ NewDevice.iDriver = CurrentDriver;
+ NewDevice.pVideo = pVideo;
+
+ /* Fill in what we know, converting the driver name to lower case */
+ NewDevice.GDev.driver = xnfalloc(strlen(driver) + 1);
+ for (j = 0; (NewDevice.GDev.driver[j] = tolower(driver[j])); j++);
+
+ if (pVideo) {
+ int vendor1, vendor2, card;
+
+ GetPciCard(pVideo->vendor, pVideo->chipType,
+ &vendor1, &vendor2, &card);
+
+# define VendorName xf86PCIVendorNameInfo[vendor1].name
+# define CardName xf86PCIVendorInfo[vendor2].Device[card].DeviceName
+
+ NewDevice.GDev.identifier =
+ xnfalloc(strlen(VendorName) + strlen(CardName) + 2);
+ sprintf(NewDevice.GDev.identifier, "%s %s", VendorName, CardName);
+
+ NewDevice.GDev.vendor = (char *)VendorName;
+ NewDevice.GDev.board = CardName;
+
+ NewDevice.GDev.busID = xnfalloc(16);
+ sprintf(NewDevice.GDev.busID, "PCI:%d:%d:%d",
+ pVideo->bus, pVideo->device, pVideo->func);
+
+ NewDevice.GDev.chipID = pVideo->chipType;
+ NewDevice.GDev.chipRev = pVideo->chipRev;
+
+# undef VendorName
+# undef CardName
+
+ busType = BUS_PCI;
+ if (chipset < 0)
+ chipset = (pVideo->vendor << 16) || pVideo->chipType;
+ } else {
+ NewDevice.GDev.identifier = "ISA Adapter";
+ NewDevice.GDev.busID = "ISA";
+ busType = BUS_ISA;
+ }
+
+ /* Get driver's available options */
+ if (xf86DriverList[CurrentDriver]->AvailableOptions)
+ NewDevice.GDev.options =
+ (*xf86DriverList[CurrentDriver]->AvailableOptions)(chipset,
+ busType);
+
+ return &NewDevice.GDev;
+
+# undef NewDevice
+}
+
+static XF86ConfInputPtr
configureInputSection (void)
{
XF86ConfInputPtr mouse = NULL;
- Bool foundMouse = FALSE;
parsePrologue (XF86ConfInputPtr, XF86ConfInputRec)
- ptr->inp_identifier = "Keyboard1";
+ ptr->inp_identifier = "Keyboard0";
ptr->inp_driver = "keyboard";
ptr->list.next = NULL;
-/*
-ErrorF("Supported Mice are : 0x%x\n",SupportedInterfaces());
-*/
/* Crude mechanism to auto-detect mouse (os dependent) */
{
int fd;
+
fd = open("/dev/mouse", 0);
if (fd != -1) {
foundMouse = TRUE;
@@ -98,23 +202,20 @@ ErrorF("Supported Mice are : 0x%x\n",SupportedInterfaces());
}
}
- if (foundMouse) {
- mouse = xf86confmalloc(sizeof(XF86ConfInputRec));
- memset((XF86ConfInputPtr)mouse,0,sizeof(XF86ConfInputRec));
- mouse->inp_identifier = "Mouse1";
- mouse->inp_driver = "mouse";
- mouse->list.next = NULL;
- mouse->inp_option_lst =
+ mouse = xf86confmalloc(sizeof(XF86ConfInputRec));
+ memset((XF86ConfInputPtr)mouse,0,sizeof(XF86ConfInputRec));
+ mouse->inp_identifier = "Mouse0";
+ mouse->inp_driver = "mouse";
+ mouse->inp_option_lst =
addNewOption(mouse->inp_option_lst, "Protocol", "auto");
- mouse->inp_option_lst =
+ mouse->inp_option_lst =
addNewOption(mouse->inp_option_lst, "Device", "/dev/mouse");
- ptr = (XF86ConfInputPtr)addListItem((glp)ptr, (glp)mouse);
- }
+ ptr = (XF86ConfInputPtr)addListItem((glp)ptr, (glp)mouse);
return ptr;
}
-XF86ConfDRIPtr
+static XF86ConfDRIPtr
configureDRISection (void)
{
parsePrologue (XF86ConfDRIPtr, XF86ConfDRIRec)
@@ -122,162 +223,81 @@ configureDRISection (void)
return ptr;
}
-XF86ConfVendorPtr
+static XF86ConfVendorPtr
configureVendorSection (void)
{
parsePrologue (XF86ConfVendorPtr, XF86ConfVendorRec)
- ptr->vnd_identifier = "Vendor1";
-
+ return NULL;
+#if 0
return ptr;
+#endif
}
-XF86ConfScreenPtr
-configureScreenSection (char *driver)
+static XF86ConfScreenPtr
+configureScreenSection (int screennum)
{
- pciVideoPtr xf86PciCard;
- int i = 0;
- int vendor1, vendor2, card;
+ int i;
+ int depths[] = { 1, 4, 8, 15, 16, 24 };
parsePrologue (XF86ConfScreenPtr, XF86ConfScreenRec)
- ptr->scrn_identifier = "Screen1";
- ptr->scrn_monitor_str = "Monitor1";
-
- xf86PciCard = ConfiguredPciCard;
- for (i = 0; i < FoundPciCards; i++) {
- if (xf86IsPrimaryPci(xf86PciCard)) {
- havePrimary = TRUE;
- GetPciCard(i, &vendor1, &vendor2, &card);
- ptr->scrn_device_str = xalloc(
- strlen(xf86PCIVendorNameInfo[vendor1].name) +
- strlen(xf86PCIVendorInfo[vendor2].Device[card].DeviceName) + 2);
- sprintf(ptr->scrn_device_str, "%s %s",
- xf86PCIVendorNameInfo[vendor1].name,
- xf86PCIVendorInfo[vendor2].Device[card].DeviceName);
- }
- xf86PciCard++;
- }
- if (xf86IsPrimaryIsa()) {
- havePrimary = TRUE;
- ptr->scrn_device_str = "ISA Card";
- }
-
- /* Make sure we use depth 4 for vga driver and depth 8 for direct */
- /* Just to get a usable 640x480 display */
- if ((driver == NULL) && (haveVGA != -1))
- ptr->scrn_defaultdepth = 4;
- else
- ptr->scrn_defaultdepth = 8;
+ ptr->scrn_identifier = xf86confmalloc(18);
+ sprintf(ptr->scrn_identifier, "Screen%d", screennum);
+ ptr->scrn_monitor_str = xf86confmalloc(19);
+ sprintf(ptr->scrn_monitor_str, "Monitor%d", screennum);
+ ptr->scrn_device_str = strdup(DevToConfig[screennum].GDev.identifier);
+ for (i=0; i<6; i++)
{
XF86ConfDisplayPtr display;
- display = xf86confmalloc(sizeof(XF86ConfDisplayRec));
- memset((XF86ConfDisplayPtr)display,0,sizeof(XF86ConfDisplayRec));
- /* Make sure we use depth 4 for vga driver and depth 8 for direct */
- /* Just to get a usable 640x480 display */
- if ((driver == NULL) && (haveVGA != -1))
- display->disp_depth = 4;
- else
- display->disp_depth = 8;
- display->disp_mode_lst =
- display->list.next = NULL;
- ptr->scrn_display_lst = (XF86ConfDisplayPtr)addListItem(
- (glp)ptr->scrn_display_lst, (glp)display);
- {
- XF86ModePtr mode;
- mode = xf86confmalloc(sizeof(XF86ModeRec));
- memset((XF86ModePtr)mode,0,sizeof(XF86ModeRec));
- mode->mode_name = "640x480";
- mode->list.next = NULL;
- display->disp_mode_lst = (XF86ModePtr)addListItem(
- (glp)display->disp_mode_lst, (glp)mode);
- }
- }
-
- {
- XF86ConfDisplayPtr display;
- display = xf86confmalloc(sizeof(XF86ConfDisplayRec));
- memset((XF86ConfDisplayPtr)display,0,sizeof(XF86ConfDisplayRec));
- display->disp_depth = 15;
- display->disp_mode_lst =
- display->list.next = NULL;
- ptr->scrn_display_lst = (XF86ConfDisplayPtr)addListItem(
- (glp)ptr->scrn_display_lst, (glp)display);
- {
- XF86ModePtr mode;
- mode = xf86confmalloc(sizeof(XF86ModeRec));
- memset((XF86ModePtr)mode,0,sizeof(XF86ModeRec));
- mode->mode_name = "640x480";
- mode->list.next = NULL;
- display->disp_mode_lst = (XF86ModePtr)addListItem(
- (glp)display->disp_mode_lst, (glp)mode);
- }
- }
-
- {
- XF86ConfDisplayPtr display;
- display = xf86confmalloc(sizeof(XF86ConfDisplayRec));
- memset((XF86ConfDisplayPtr)display,0,sizeof(XF86ConfDisplayRec));
- display->disp_depth = 16;
- display->disp_mode_lst =
- display->list.next = NULL;
- ptr->scrn_display_lst = (XF86ConfDisplayPtr)addListItem(
- (glp)ptr->scrn_display_lst, (glp)display);
- {
- XF86ModePtr mode;
- mode = xf86confmalloc(sizeof(XF86ModeRec));
- memset((XF86ModePtr)mode,0,sizeof(XF86ModeRec));
- mode->mode_name = "640x480";
- mode->list.next = NULL;
- display->disp_mode_lst = (XF86ModePtr)addListItem(
- (glp)display->disp_mode_lst, (glp)mode);
- }
- }
- {
- XF86ConfDisplayPtr display;
display = xf86confmalloc(sizeof(XF86ConfDisplayRec));
memset((XF86ConfDisplayPtr)display,0,sizeof(XF86ConfDisplayRec));
- display->disp_depth = 24;
- display->disp_mode_lst =
- display->list.next = NULL;
+ display->disp_depth = depths[i];
ptr->scrn_display_lst = (XF86ConfDisplayPtr)addListItem(
(glp)ptr->scrn_display_lst, (glp)display);
- {
- XF86ModePtr mode;
- mode = xf86confmalloc(sizeof(XF86ModeRec));
- memset((XF86ModePtr)mode,0,sizeof(XF86ModeRec));
- mode->mode_name = "640x480";
- mode->list.next = NULL;
- display->disp_mode_lst = (XF86ModePtr)addListItem(
- (glp)display->disp_mode_lst, (glp)mode);
- }
}
return ptr;
}
-XF86ConfDevicePtr
-configureDeviceSection (char *driver, OptionInfoPtr devoptions)
+static XF86ConfDevicePtr
+configureDeviceSection (int screennum)
{
OptionInfoPtr p;
- pciVideoPtr xf86PciCard;
int i = 0;
- int vendor1, vendor2, card;
Bool foundFBDEV = FALSE;
parsePrologue (XF86ConfDevicePtr, XF86ConfDeviceRec)
- ptr->dev_driver = driver;
- ptr->dev_chipid = -1;
- ptr->dev_chiprev = -1;
- ptr->dev_irq = -1;
+ /* Move device info to parser structure */
+ ptr->dev_identifier = DevToConfig[screennum].GDev.identifier;
+ ptr->dev_vendor = DevToConfig[screennum].GDev.vendor;
+ ptr->dev_board = DevToConfig[screennum].GDev.board;
+ ptr->dev_chipset = DevToConfig[screennum].GDev.chipset;
+ ptr->dev_busid = DevToConfig[screennum].GDev.busID;
+ ptr->dev_driver = DevToConfig[screennum].GDev.driver;
+ ptr->dev_ramdac = DevToConfig[screennum].GDev.ramdac;
+ for (i = 0; (i < MAXDACSPEEDS) && (i < CONF_MAXDACSPEEDS); i++)
+ ptr->dev_dacSpeeds[i] = DevToConfig[screennum].GDev.dacSpeeds[i];
+ ptr->dev_videoram = DevToConfig[screennum].GDev.videoRam;
+ ptr->dev_textclockfreq = DevToConfig[screennum].GDev.textClockFreq;
+ ptr->dev_bios_base = DevToConfig[screennum].GDev.BiosBase;
+ ptr->dev_mem_base = DevToConfig[screennum].GDev.MemBase;
+ ptr->dev_io_base = DevToConfig[screennum].GDev.IOBase;
+ ptr->dev_clockchip = DevToConfig[screennum].GDev.clockchip;
+ for (i = 0; (i < MAXCLOCKS) && (i < DevToConfig[screennum].GDev.numclocks); i++)
+ ptr->dev_clock[i] = DevToConfig[screennum].GDev.clock[i];
+ ptr->dev_clocks = i;
+ ptr->dev_chipid = DevToConfig[screennum].GDev.chipID;
+ ptr->dev_chiprev = DevToConfig[screennum].GDev.chipRev;
+ ptr->dev_irq = DevToConfig[screennum].GDev.irq;
/* Make sure older drivers don't segv */
- if (devoptions != NULL) {
+ if (DevToConfig[screennum].GDev.options) {
/* Fill in the available driver options for people to use */
- ptr->dev_comment = xalloc(32 + 1);
+ ptr->dev_comment = xnfalloc(32 + 1);
strcpy(ptr->dev_comment, "Available Driver options are:-\n");
- for (p = devoptions; p->name != NULL; p++) {
+ for (p = DevToConfig[screennum].GDev.options; p->name != NULL; p++) {
ptr->dev_comment = xrealloc(ptr->dev_comment,
strlen(ptr->dev_comment) + strlen(p->name) + 24 + 1);
strcat(ptr->dev_comment, " #Option \"");
@@ -286,38 +306,12 @@ configureDeviceSection (char *driver, OptionInfoPtr devoptions)
}
}
- xf86PciCard = ConfiguredPciCard;
- for (i = 0; i < FoundPciCards; i++) {
- ErrorF("Card Found vendor = 0x%x, card = 0x%x, %s\n",
- xf86PciCard->vendor,
- xf86PciCard->chipType,(xf86IsPrimaryPci(xf86PciCard) ?
- "Primary! - Configuring this one." : "Secondary."));
- if (xf86IsPrimaryPci(xf86PciCard)) {
- havePrimary = TRUE;
- GetPciCard(i, &vendor1, &vendor2, &card);
- ptr->dev_identifier = xalloc(
- strlen(xf86PCIVendorNameInfo[vendor1].name) +
- strlen(xf86PCIVendorInfo[vendor2].Device[card].DeviceName) + 2);
- sprintf(ptr->dev_identifier, "%s %s",
- xf86PCIVendorNameInfo[vendor1].name,
- xf86PCIVendorInfo[vendor2].Device[card].DeviceName);
- ptr->dev_busid = xalloc(9 + 1);
- sprintf(ptr->dev_busid, "PCI:%d:%d:%d", xf86PciCard->bus,
- xf86PciCard->device, xf86PciCard->func);
- }
- xf86PciCard++;
- }
- if (xf86IsPrimaryIsa()) {
- havePrimary = TRUE;
- ptr->dev_identifier = "ISA Card";
- ptr->dev_busid = "ISA";
- }
-
/* Crude mechanism to auto-detect fbdev (os dependent) */
/* Skip it for now. Options list it anyway, and we can't
* determine which screen/driver this belongs too anyway.
{
int fd;
+
fd = open("/dev/fb0", 0);
if (fd != -1) {
foundFBDEV = TRUE;
@@ -327,6 +321,7 @@ configureDeviceSection (char *driver, OptionInfoPtr devoptions)
if (foundFBDEV) {
XF86OptionPtr fbdev;
+
fbdev = xf86confmalloc(sizeof(XF86OptionRec));
memset((XF86OptionPtr)fbdev,0,sizeof(XF86OptionRec));
fbdev->opt_name = "UseFBDev";
@@ -339,47 +334,15 @@ configureDeviceSection (char *driver, OptionInfoPtr devoptions)
return ptr;
}
-XF86ConfLayoutPtr
+static XF86ConfLayoutPtr
configureLayoutSection (void)
{
pciVideoPtr xf86PciCard;
int i = 0;
- int vendor1, vendor2, card;
+ int scrnum = 0;
parsePrologue (XF86ConfLayoutPtr, XF86ConfLayoutRec)
- xf86PciCard = ConfiguredPciCard;
- for (i = 0; i < FoundPciCards; i++) {
- if (xf86IsPrimaryPci(xf86PciCard)) {
- havePrimary = TRUE;
- GetPciCard(i, &vendor1, &vendor2, &card);
- ptr->lay_identifier = xalloc(
- strlen(xf86PCIVendorNameInfo[vendor1].name) +
- strlen(xf86PCIVendorInfo[vendor2].Device[card].DeviceName) + 2);
- sprintf(ptr->lay_identifier, "%s %s",
- xf86PCIVendorNameInfo[vendor1].name,
- xf86PCIVendorInfo[vendor2].Device[card].DeviceName);
- }
- xf86PciCard++;
- }
- if (xf86IsPrimaryIsa()) {
- havePrimary = TRUE;
- ptr->lay_identifier = "ISA Card";
- }
-
- {
- XF86ConfAdjacencyPtr aptr;
-
- aptr = xf86confmalloc (sizeof (XF86ConfAdjacencyRec));
- aptr->list.next = NULL;
- aptr->adj_x = 0;
- aptr->adj_y = 0;
- aptr->adj_refscreen = NULL;
- aptr->adj_scrnum = 1;
- aptr->adj_screen_str = "Screen1";
- aptr->adj_where = CONF_ADJ_ABSOLUTE;
- ptr->lay_adjacency_lst = (XF86ConfAdjacencyPtr)
- addListItem ((glp) ptr->lay_adjacency_lst, (glp) aptr);
- }
+ ptr->lay_identifier = "XFree86 Configured";
{
XF86ConfInputrefPtr iptr;
@@ -387,7 +350,7 @@ configureLayoutSection (void)
iptr = xf86confmalloc (sizeof (XF86ConfInputrefRec));
iptr->list.next = NULL;
iptr->iref_option_lst = NULL;
- iptr->iref_inputdev_str = "Mouse1";
+ iptr->iref_inputdev_str = "Mouse0";
iptr->iref_option_lst =
addNewOption (iptr->iref_option_lst, "CorePointer", NULL);
ptr->lay_input_lst = (XF86ConfInputrefPtr)
@@ -400,17 +363,34 @@ configureLayoutSection (void)
iptr = xf86confmalloc (sizeof (XF86ConfInputrefRec));
iptr->list.next = NULL;
iptr->iref_option_lst = NULL;
- iptr->iref_inputdev_str = "Keyboard1";
+ iptr->iref_inputdev_str = "Keyboard0";
iptr->iref_option_lst =
addNewOption (iptr->iref_option_lst, "CoreKeyboard", NULL);
ptr->lay_input_lst = (XF86ConfInputrefPtr)
addListItem ((glp) ptr->lay_input_lst, (glp) iptr);
}
+ for (scrnum = 0; scrnum < nDevToConfig; scrnum++) {
+ XF86ConfAdjacencyPtr aptr;
+
+ aptr = xf86confmalloc (sizeof (XF86ConfAdjacencyRec));
+ aptr->list.next = NULL;
+ aptr->adj_x = 0;
+ aptr->adj_y = 0;
+ aptr->adj_refscreen = 0;
+ aptr->adj_scrnum = 0;
+ aptr->adj_screen_str = xnfalloc(18);
+ sprintf(aptr->adj_screen_str, "Screen%d", scrnum);
+ aptr->adj_where = CONF_ADJ_ABSOLUTE;
+ ptr->lay_adjacency_lst =
+ (XF86ConfAdjacencyPtr)addListItem((glp)ptr->lay_adjacency_lst,
+ (glp)aptr);
+ }
+
return ptr;
}
-XF86ConfModesPtr
+static XF86ConfModesPtr
configureModesSection (void)
{
parsePrologue (XF86ConfModesPtr, XF86ConfModesRec)
@@ -418,7 +398,7 @@ configureModesSection (void)
return ptr;
}
-XF86ConfVideoAdaptorPtr
+static XF86ConfVideoAdaptorPtr
configureVideoAdaptorSection (void)
{
parsePrologue (XF86ConfVideoAdaptorPtr, XF86ConfVideoAdaptorRec)
@@ -429,7 +409,7 @@ configureVideoAdaptorSection (void)
#endif
}
-XF86ConfFlagsPtr
+static XF86ConfFlagsPtr
configureFlagsSection (void)
{
parsePrologue (XF86ConfFlagsPtr, XF86ConfFlagsRec)
@@ -437,11 +417,11 @@ configureFlagsSection (void)
return ptr;
}
-XF86ConfModulePtr
+static XF86ConfModulePtr
configureModuleSection (void)
{
- char **elist, **el;
#ifdef XFree86LOADER
+ char **elist, **el;
/* Find the list of extension modules. */
const char *esubdirs[] = {
"extensions",
@@ -455,19 +435,21 @@ configureModuleSection (void)
if (elist) {
for (el = elist; *el; el++) {
XF86LoadPtr module;
+
module = xf86confmalloc(sizeof(XF86LoadRec));
memset((XF86LoadPtr)module,0,sizeof(XF86LoadRec));
module->load_name = *el;
ptr->mod_load_lst = (XF86LoadPtr)addListItem(
(glp)ptr->mod_load_lst, (glp)module);
}
+ xfree(elist);
}
#endif
return ptr;
}
-XF86ConfFilesPtr
+static XF86ConfFilesPtr
configureFilesSection (void)
{
parsePrologue (XF86ConfFilesPtr, XF86ConfFilesRec)
@@ -475,22 +457,54 @@ configureFilesSection (void)
return ptr;
}
-XF86ConfMonitorPtr
-configureMonitorSection (void)
+static XF86ConfMonitorPtr
+configureMonitorSection (int screennum)
{
parsePrologue (XF86ConfMonitorPtr, XF86ConfMonitorRec)
- ptr->mon_identifier = "Monitor1";
- ptr->mon_vendor = "Monitor Vendor";
- ptr->mon_modelname = "Monitor Model";
+ ptr->mon_identifier = xf86confmalloc(19);
+ sprintf(ptr->mon_identifier, "Monitor%d", screennum);
+ ptr->mon_vendor = strdup("Monitor Vendor");
+ ptr->mon_modelname = strdup("Monitor Model");
- /* Set monitor for allowable 640x480@25MHz */
- ptr->mon_n_hsync = 1;
- ptr->mon_hsync[0].lo = 28;
- ptr->mon_hsync[0].hi = 33;
- ptr->mon_n_vrefresh = 1;
- ptr->mon_vrefresh[0].lo = 43;
- ptr->mon_vrefresh[0].hi = 72;
+ return ptr;
+}
+
+static XF86ConfMonitorPtr
+configureDDCMonitorSection (int screennum)
+{
+ int i = 0;
+ parsePrologue (XF86ConfMonitorPtr, XF86ConfMonitorRec)
+
+ ptr->mon_identifier = xf86confmalloc(19);
+ sprintf(ptr->mon_identifier, "Monitor%d", screennum);
+ ptr->mon_vendor = strdup(ConfiguredMonitor->vendor.name);
+ ptr->mon_modelname = xf86confmalloc(12);
+ sprintf(ptr->mon_modelname, "%x", ConfiguredMonitor->vendor.prod_id);
+
+ for (i=0;i<4;i++) {
+ switch (ConfiguredMonitor->det_mon[i].type) {
+ case DT:
+ case DS_STD_TIMINGS:
+ case DS_WHITE_P:
+ case DS_NAME:
+ case DS_ASCII_STR:
+ case DS_SERIAL:
+ break;
+ case DS_RANGES:
+ ptr->mon_n_hsync = 1;
+ ptr->mon_hsync[0].lo =
+ ConfiguredMonitor->det_mon[i].section.ranges.min_h;
+ ptr->mon_hsync[0].hi =
+ ConfiguredMonitor->det_mon[i].section.ranges.max_h;
+ ptr->mon_n_vrefresh = 1;
+ ptr->mon_vrefresh[0].lo =
+ ConfiguredMonitor->det_mon[i].section.ranges.min_v;
+ ptr->mon_vrefresh[0].hi =
+ ConfiguredMonitor->det_mon[i].section.ranges.max_v;
+ break;
+ }
+ }
return ptr;
}
@@ -498,164 +512,84 @@ configureMonitorSection (void)
void
DoConfigure()
{
- int i;
- Bool probeResultPci = FALSE;
- Bool probeResultIsa = FALSE;
- char *foundDriver = NULL;
+ int i,j, screennum = -1;
char *home = NULL;
char *filename = NULL;
- OptionInfoPtr options = NULL;
XF86ConfigPtr xf86config = NULL;
- char **vlist, **ilist, **vl, **il;
+ char **vlist, **vl;
-#ifdef XFree86LOADER
- /* Find the list of video driver modules. */
- const char *vsubdirs[] = {
- "drivers",
- NULL
- };
- const char *isubdirs[] = {
- "input",
- NULL
- };
+ vlist = xf86DriverlistFromCompile();
- vlist = LoaderListDirs(vsubdirs, NULL);
- ilist = LoaderListDirs(isubdirs, NULL);
- if (vlist) {
- ErrorF("List of video driver modules:\n");
- for (vl = vlist; *vl; vl++)
- ErrorF("\t%s\n", *vl);
- } else {
- ErrorF("No video driver modules found\n");
- }
- if (ilist) {
- ErrorF("List of input modules:\n");
- for (il = ilist; *il; il++)
- ErrorF("\t%s\n", *il);
- } else {
- ErrorF("No input modules found\n");
+ if (!vlist) {
+ ErrorF("Missing output drivers. Configuration failed.\n");
+ goto bail;
}
+ ErrorF("List of video drivers:\n");
+ for (vl = vlist; *vl; vl++)
+ ErrorF("\t%s\n", *vl);
+
+#ifdef XFree86LOADER
/* Load all the drivers that were found. */
xf86LoadModules(vlist, NULL);
- xf86LoadModules(ilist, NULL);
-#endif
+#endif /* XFree86LOADER */
+
+ xfree(vlist);
/* Disable PCI devices */
+ xf86ResourceBrokerInit();
xf86AccessInit();
xf86FindPrimaryDevice();
- vl = vlist;
+ /* Create XF86Config file structure */
+ xf86config = malloc(sizeof(XF86ConfigRec));
+ memset ((XF86ConfigPtr)xf86config, 0, sizeof(XF86ConfigRec));
+ xf86config->conf_device_lst = NULL;
+ xf86config->conf_screen_lst = NULL;
+ xf86config->conf_monitor_lst = NULL;
+
/* Call all of the probe functions, reporting the results. */
- for (i = 0; i < xf86NumDrivers; i++) {
- probeResultPci = FALSE;
- probeResultIsa = FALSE;
-
- /* We don't allow vga as we want direct support */
- /* Then fallback later if no driver found */
- if (strcmp(*vl,"vga")) {
- if (xf86DriverList[i]->Probe != NULL)
- probeResultPci = xf86DriverList[i]->Probe(xf86DriverList[i],
- PROBE_DETECTPCI);
- if (!probeResultPci)
- probeResultIsa = xf86DriverList[i]->Probe(xf86DriverList[i],
- PROBE_DETECTISA);
-
- } else {
- haveVGA = i;
- }
+ for (CurrentDriver = 0; CurrentDriver < xf86NumDrivers; CurrentDriver++) {
- /* Bail when we find the primary card ! */
- if (probeResultPci) {
- ErrorF("We have found a PCI %s driver\n",*vl);
- if (foundDriver == NULL) {
- foundDriver = *vl;
- if (xf86DriverList[i]->Identify != NULL)
- xf86DriverList[i]->Identify(0);
- if (xf86DriverList[i]->AvailableOptions != NULL)
- options = xf86DriverList[i]->AvailableOptions(
- (ConfiguredPciCard->vendor << 16) |
- ConfiguredPciCard->chipType, BUS_PCI);
- }
- } else
- if (probeResultIsa) {
- ErrorF("We have found an ISA %s driver\n",*vl);
- if (foundDriver == NULL) {
- foundDriver = *vl;
- if (xf86DriverList[i]->Identify != NULL)
- xf86DriverList[i]->Identify(0);
- if (xf86DriverList[i]->AvailableOptions != NULL)
- options = xf86DriverList[i]->AvailableOptions(
- ConfiguredIsaCard, BUS_ISA);
- }
- }
+ if (xf86DriverList[CurrentDriver]->Probe == NULL) continue;
- vl++;
+ if ((*xf86DriverList[CurrentDriver]->Probe)(
+ xf86DriverList[CurrentDriver], PROBE_DETECT) &&
+ xf86DriverList[CurrentDriver]->Identify)
+ (*xf86DriverList[CurrentDriver]->Identify)(0);
}
- /* Try vga driver if we haven't found any direct modules */
- if ((haveVGA != -1) && (foundDriver == NULL)) {
- probeResultPci = FALSE;
- probeResultIsa = FALSE;
-
- if (xf86DriverList[haveVGA]->Probe != NULL) {
- probeResultPci =
- xf86DriverList[haveVGA]->Probe(xf86DriverList[haveVGA],
- PROBE_DETECTPCI);
- if (!probeResultPci)
- xf86DriverList[haveVGA]->Probe(xf86DriverList[haveVGA],
- PROBE_DETECTISA);
- }
-
- /* Bail when we find the primary card ! */
- if (probeResultPci) {
- ErrorF("Failed to find a direct driver but....\n");
- ErrorF("We have found a PCI vga driver\n");
- foundDriver = "vga";
- if (xf86DriverList[haveVGA]->Identify != NULL)
- xf86DriverList[haveVGA]->Identify(0);
- if (xf86DriverList[haveVGA]->AvailableOptions != NULL)
- options = xf86DriverList[i]->AvailableOptions((
- ConfiguredPciCard->vendor << 16) |
- ConfiguredPciCard->chipType, BUS_PCI);
- }
- if (probeResultIsa) {
- ErrorF("Failed to find a direct driver but....\n");
- ErrorF("We have found an ISA vga driver\n");
- foundDriver = "vga";
- if (xf86DriverList[haveVGA]->Identify != NULL)
- xf86DriverList[haveVGA]->Identify(0);
- if (xf86DriverList[haveVGA]->AvailableOptions != NULL)
- options = xf86DriverList[i]->AvailableOptions(
- ConfiguredIsaCard, BUS_ISA);
- }
+ if (nDevToConfig <= 0) {
+ ErrorF("No devices to configure. Configuration failed.\n");
+ goto bail;
}
- if ((haveVGA == -1) && (foundDriver == NULL)) {
- ErrorF("Unable to configure XFree86 - no able drivers found.\n");
- goto bail;
+ /* Add device, monitor and screen sections for detected devices */
+ for (screennum = 0; screennum < nDevToConfig; screennum++) {
+ XF86ConfDevicePtr DevicePtr;
+ XF86ConfMonitorPtr MonitorPtr;
+ XF86ConfScreenPtr ScreenPtr;
+
+ DevicePtr = configureDeviceSection(screennum);
+ xf86config->conf_device_lst = (XF86ConfDevicePtr)addListItem(
+ (glp)xf86config->conf_device_lst, (glp)DevicePtr);
+ MonitorPtr = configureMonitorSection(screennum);
+ xf86config->conf_monitor_lst = (XF86ConfMonitorPtr)addListItem(
+ (glp)xf86config->conf_monitor_lst, (glp)MonitorPtr);
+ ScreenPtr = configureScreenSection(screennum);
+ xf86config->conf_screen_lst = (XF86ConfScreenPtr)addListItem(
+ (glp)xf86config->conf_screen_lst, (glp)ScreenPtr);
}
- /* Let's write the config file now ! */
- xf86config = malloc(sizeof(XF86ConfigRec));
- memset ((XF86ConfigPtr)xf86config, 0, sizeof(XF86ConfigRec));
- xf86config->conf_monitor_lst = configureMonitorSection();
xf86config->conf_files = configureFilesSection();
xf86config->conf_modules = configureModuleSection();
xf86config->conf_flags = configureFlagsSection();
xf86config->conf_videoadaptor_lst = configureVideoAdaptorSection();
xf86config->conf_modes_lst = configureModesSection();
- xf86config->conf_layout_lst = configureLayoutSection();
- xf86config->conf_device_lst = configureDeviceSection(foundDriver, options);
- xf86config->conf_screen_lst = configureScreenSection(foundDriver);
xf86config->conf_vendor_lst = configureVendorSection();
xf86config->conf_dri = configureDRISection();
xf86config->conf_input_lst = configureInputSection();
-
- if (!havePrimary) {
- ErrorF("Unable to configure XFree86 - Primary card driver not found.\n");
- goto bail;
- }
+ xf86config->conf_layout_lst = configureLayoutSection();
if (!(home = getenv("HOME")))
home = "/";
@@ -677,17 +611,76 @@ DoConfigure()
xf86WriteConfigFile(filename, xf86config);
- ErrorF("\nXFree86 has configured your server for your primary card\n");
- ErrorF("\nYour XF86Config file is located in %s\n",home);
- ErrorF("\nTo test the server, type 'cd <return>' to take you back to\n");
- ErrorF("Your home directory. Then type 'XFree86 -xf86config XF86Config.new'\n");
+ xf86DoConfigurePass1 = FALSE;
+ /* Try to get DDC information filled in */
+ xf86ConfigFile = filename;
+ if (!xf86HandleConfigFile()) {
+ goto bail;
+ }
-bail:
-#ifdef XFree86LOADER
- LoaderFreeDirList(vlist);
- LoaderFreeDirList(ilist);
-#endif /* XFree86LOADER */
+ xf86DoConfigurePass1 = FALSE;
+
+ for (screennum = 0; screennum < nDevToConfig; screennum++) {
+ i = DevToConfig[screennum].iDriver;
+ (*xf86DriverList[i]->Probe)(xf86DriverList[i], 0);
+
+ xf86SetPciVideo(NULL,NONE);
+ }
+
+ xf86PostProbe();
+ xf86EntityInit();
+
+ for (j = 0; j < xf86NumScreens; j++) {
+ xf86Screens[j]->scrnIndex = j;
+ }
+
+ freeMonitorList(xf86config->conf_monitor_lst);
+ xf86config->conf_monitor_lst = NULL;
+ freeScreenList(xf86config->conf_screen_lst);
+ xf86config->conf_screen_lst = NULL;
+ for (j = 0; j < xf86NumScreens; j++) {
+ XF86ConfMonitorPtr MonitorPtr;
+ XF86ConfScreenPtr ScreenPtr;
+
+ ConfiguredMonitor = NULL;
+
+ xf86EnableAccess(xf86Screens[j]);
+ if ((*xf86Screens[j]->PreInit)(xf86Screens[j], PROBE_DETECT) &&
+ ConfiguredMonitor) {
+ MonitorPtr = configureDDCMonitorSection(j);
+ } else {
+ MonitorPtr = configureMonitorSection(j);
+ }
+ ScreenPtr = configureScreenSection(j);
+ xf86config->conf_monitor_lst = (XF86ConfMonitorPtr)addListItem(
+ (glp)xf86config->conf_monitor_lst, (glp)MonitorPtr);
+ xf86config->conf_screen_lst = (XF86ConfScreenPtr)addListItem(
+ (glp)xf86config->conf_screen_lst, (glp)ScreenPtr);
+ }
+
+ xf86WriteConfigFile(filename, xf86config);
+
+ ErrorF("\n");
+
+ if (!foundMouse) {
+ ErrorF("\nXFree86 is not able to detect your mouse.\n"
+ "Edit the file and correct the Device.\n");
+ } else {
+ ErrorF("\nXFree86 detected your mouse at device /dev/mouse.\n"
+ "Please check your config if the mouse is still not\n"
+ "operational, as by default XFree86 tries to autodetect\n"
+ "the protocol.\n");
+ }
+
+ if (xf86NumScreens > 1) {
+ ErrorF("\nXFree86 has configured a multihead system, please check your config.\n");
+ }
+
+ ErrorF("\nYour XF86Config file is %s\n\n", filename);
+ ErrorF("To test the server, run 'XFree86 -xf86config %s'\n\n", filename);
+
+bail:
OsCleanup();
AbortDDX();
fflush(stderr);
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c b/xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c
index 81d79ddd0..c87684639 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c
@@ -1,5 +1,5 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c,v 1.7 2000/02/18 17:16:25 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c,v 1.9 2000/03/01 16:00:51 tsi Exp $ */
/*
* finish setting up the server
* Load the driver modules and call their probe functions.
@@ -15,7 +15,8 @@
#include "os.h"
#ifdef XFree86LOADER
#include "loaderProcs.h"
-#endif
+#include "xf86Config.h"
+#endif /* XFree86LOADER */
#include "xf86.h"
#include "xf86Priv.h"
@@ -28,22 +29,13 @@ void
DoProbe()
{
int i;
- Bool probeResultISA, probeResultPCI, probeResultFBDEV;
+ Bool probeResult;
#ifdef XFree86LOADER
/* Find the list of video driver modules. */
- char **list, **l;
- const char *subdirs[] = {
- "drivers",
- NULL
- };
- const char *patlist[] = {
- "(.*)_drv\\.so",
- "(.*)_drv\\.o",
- NULL
- };
+ char **list = xf86DriverlistFromCompile();
+ char **l;
- list = LoaderListDirs(subdirs, NULL);
if (list) {
ErrorF("List of video driver modules:\n");
for (l = list; *l; l++)
@@ -61,38 +53,21 @@ DoProbe()
/* Call all of the probe functions, reporting the results. */
for (i = 0; i < xf86NumDrivers; i++) {
- probeResultISA = probeResultPCI = probeResultFBDEV = FALSE;
- if (xf86DriverList[i]->Probe != NULL) {
- probeResultISA =
- xf86DriverList[i]->Probe(xf86DriverList[i], PROBE_DETECTISA);
- ErrorF("Probe ISA capabilities in driver `%s' returns %s\n",
- xf86DriverList[i]->driverName, BOOLTOSTRING(probeResultISA));
- }
- if (xf86DriverList[i]->Probe != NULL) {
- probeResultPCI =
- xf86DriverList[i]->Probe(xf86DriverList[i], PROBE_DETECTPCI);
- ErrorF("Probe PCI capabilities in driver `%s' returns %s\n",
- xf86DriverList[i]->driverName, BOOLTOSTRING(probeResultPCI));
- }
- if (xf86DriverList[i]->Probe != NULL) {
- probeResultFBDEV =
- xf86DriverList[i]->Probe(xf86DriverList[i], PROBE_DETECTFBDEV);
- ErrorF("Probe FBDEV capabilities in driver `%s' returns %s\n",
- xf86DriverList[i]->driverName, BOOLTOSTRING(probeResultFBDEV));
- }
+ if (xf86DriverList[i]->Probe == NULL) continue;
+
+ probeResult =
+ (*xf86DriverList[i]->Probe)(xf86DriverList[i], PROBE_DETECT);
+ ErrorF("Probe in driver `%s' returns %s\n",
+ xf86DriverList[i]->driverName, BOOLTOSTRING(probeResult));
/* If we have a result, then call driver's Identify function */
- if (probeResultISA || probeResultPCI || probeResultFBDEV) {
+ if (probeResult) {
if (xf86DriverList[i]->Identify != NULL) {
- xf86DriverList[i]->Identify(0);
+ (*xf86DriverList[i]->Identify)(0);
}
}
}
-#ifdef XFree86LOADER
- LoaderFreeDirList(list);
-#endif /* XFree86LOADER */
-
OsCleanup();
AbortDDX();
fflush(stderr);
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c b/xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c
index 13e2ff0ee..005172770 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c
@@ -1,5 +1,5 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c,v 1.10 2000/02/21 20:34:30 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c,v 1.11 2000/02/24 05:36:50 tsi Exp $ */
/*
* finish setting up the server
* call the functions from the scanpci module
@@ -27,9 +27,11 @@
void DoScanPci(int argc, char **argv, int i)
{
int j,skip,globalVerbose,scanpciVerbose;
- void (*xf86ScanPciFunc)(int);
- void (*DataSetupFunc)(SymTabPtr *, pciVendorDeviceInfo **,
- pciVendorCardInfo **);
+ typedef void ScanPciFuncType(int);
+ typedef void DataSetupFuncType(SymTabPtr *, pciVendorDeviceInfo **,
+ pciVendorCardInfo **);
+ ScanPciFuncType *xf86ScanPciFunc;
+ DataSetupFuncType *DataSetupFunc;
#ifdef XFree86LOADER
int errmaj, errmin;
#endif
@@ -80,8 +82,8 @@ void DoScanPci(int argc, char **argv, int i)
/* For now, just a warning */
xf86Msg(X_WARNING, "Some symbols could not be resolved!\n");
}
- xf86ScanPciFunc = LoaderSymbol("xf86DisplayPCICardInfo");
- DataSetupFunc = LoaderSymbol("xf86SetupScanPci");
+ xf86ScanPciFunc = (ScanPciFuncType *)LoaderSymbol("xf86DisplayPCICardInfo");
+ DataSetupFunc = (DataSetupFuncType *)LoaderSymbol("xf86SetupScanPci");
#else
xf86ScanPciFunc = xf86DisplayPCICardInfo;
DataSetupFunc = xf86SetupScanPci;
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Globals.c b/xc/programs/Xserver/hw/xfree86/common/xf86Globals.c
index de3c11b88..4ce0bd06a 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Globals.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Globals.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Globals.c,v 1.27 2000/01/25 00:18:28 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Globals.c,v 1.28 2000/03/08 05:38:37 dawes Exp $ */
/*
* Copyright (c) 1997 by The XFree86 Project, Inc.
@@ -133,10 +133,12 @@ xf86InfoRec xf86Info = {
FALSE, /* miscModInDevAllowNonLocal */
PCIProbe1, /* pciFlags */
Pix24DontCare, /* pixmap24 */
- X_DEFAULT /* pix24From */
+ X_DEFAULT, /* pix24From */
#if defined(i386) || defined(__i386__)
- ,FALSE /* pc98 */
+ FALSE, /* pc98 */
#endif
+ TRUE, /* pmFlag */
+ 0 /* estimateSizesAggressively */
};
const char *xf86ConfigFile = NULL;
const char *xf86ModulePath = DEFAULT_MODULE_PATH;
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Helper.c b/xc/programs/Xserver/hw/xfree86/common/xf86Helper.c
index 25168e670..22e476346 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Helper.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Helper.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c,v 1.76 2000/02/21 19:22:52 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c,v 1.83 2000/03/06 19:07:15 dawes Exp $ */
/*
* Copyright (c) 1997-1998 by The XFree86 Project, Inc.
@@ -137,6 +137,7 @@ xf86AllocateScreen(DriverPtr drv, int flags)
xf86Screens[i]->CurrentAccess = &xf86CurrentAccess;
xf86Screens[i]->resourceType = MEM_IO;
+#ifdef DEBUG
/* OOps -- What's this ? */
ErrorF("xf86AllocateScreen - xf86Screens[%d]->pScreen = %p\n",
i, xf86Screens[i]->pScreen );
@@ -144,6 +145,7 @@ xf86AllocateScreen(DriverPtr drv, int flags)
ErrorF("xf86Screens[%d]->pScreen->CreateWindow = %p\n",
i, xf86Screens[i]->pScreen->CreateWindow );
}
+#endif
return xf86Screens[i];
}
@@ -1448,8 +1450,12 @@ xf86MatchDevice(const char *drivername, GDevPtr **driversectlist)
static int count[MAXDRIVERS];
confScreenPtr screensecptr;
int i,j;
+
+ *driversectlist = NULL;
-if (xf86DoProbe || xf86DoConfigure) return 1;
+ if (xf86DoProbe) return 1;
+
+ if (xf86DoConfigure && xf86DoConfigurePass1) return 1;
/*
* This is a very important function that matches the device sections
@@ -1554,7 +1560,6 @@ if (xf86DoProbe || xf86DoConfigure) return 1;
return count[i];
}
-#define DEBUG
struct Inst {
pciVideoPtr pci;
GDevPtr dev;
@@ -1603,6 +1608,7 @@ xf86MatchPciInstances(const char *driverName, int vendorID,
instances[allocatedInstances - 1].claimed = FALSE;
instances[allocatedInstances - 1].foundHW = TRUE;
instances[allocatedInstances - 1].chip = id->numChipset;
+ numFound++;
}
}
}
@@ -1618,6 +1624,7 @@ xf86MatchPciInstances(const char *driverName, int vendorID,
instances[allocatedInstances - 1].claimed = FALSE;
instances[allocatedInstances - 1].foundHW = TRUE;
instances[allocatedInstances - 1].chip = id->numChipset;
+ numFound++;
}
}
}
@@ -1639,6 +1646,7 @@ xf86MatchPciInstances(const char *driverName, int vendorID,
instances[allocatedInstances - 1].chip
= id->numChipset;
instances[allocatedInstances - 1].foundHW = TRUE;
+ numFound++;
break;
}
}
@@ -1654,28 +1662,30 @@ xf86MatchPciInstances(const char *driverName, int vendorID,
xfree(instances);
return 0;
}
- if (xf86DoProbe) return 1;
- if (xf86DoConfigure) {
- pciVideoPtr ConfCard;
+ if (xf86DoProbe) {
+ xfree(instances);
+ return numFound;
+ }
+
+ if (xf86DoConfigure && xf86DoConfigurePass1) {
+ GDevPtr pGDev;
int actualcards = 0;
- ConfiguredPciCard = xnfrealloc((pciVideoPtr)ConfiguredPciCard, sizeof(pciVideoRec) * (allocatedInstances + FoundPciCards));
- ConfCard = ConfiguredPciCard;
- for (i = 0; i < FoundPciCards; i++)
- ConfCard++;
for (i = 0; i < allocatedInstances; i++) {
if (instances[i].foundHW) {
actualcards++;
- pPci = instances[i].pci;
- ConfCard->vendor = pPci->vendor;
- ConfCard->chipType = pPci->chipType;
- ConfCard->device = pPci->device;
- ConfCard->bus = pPci->bus;
- ConfCard->func = pPci->func;
- ConfCard++;
+ pGDev = xf86AddDeviceToConfigure(driverName,
+ instances[i].pci, -1);
+ if (pGDev) {
+ /*
+ * XF86Match???Instances() treat chipID and chipRev as
+ * overrides, so clobber them here.
+ */
+ pGDev->chipID = pGDev->chipRev = -1;
+ }
}
}
- FoundPciCards += actualcards;
+ xfree(instances);
return actualcards;
}
@@ -1815,6 +1825,7 @@ xf86MatchPciInstances(const char *driverName, int vendorID,
* Of the claimed instances, check that another driver hasn't already
* claimed its slot.
*/
+ numFound = 0;
for (i = 0; i < allocatedInstances && numClaimedInstances > 0; i++) {
if (!instances[i].claimed)
@@ -1836,7 +1847,6 @@ xf86MatchPciInstances(const char *driverName, int vendorID,
pPci->func,drvp, instances[i].chip,
instances[i].dev,instances[i].dev->active ?
TRUE : FALSE);
-
}
xfree(instances);
if (numFound > 0) {
@@ -1856,25 +1866,24 @@ xf86MatchIsaInstances(const char *driverName, SymTabPtr chipsets,
IsaChipsets *Chips;
int i;
int numFound = 0;
+ int foundChip = -1;
int *retEntities = NULL;
*foundEntities = NULL;
- /* For now, bail here when xf86DoProbe is set. */
- if (xf86DoProbe)
+ if (xf86DoProbe || (xf86DoConfigure && xf86DoConfigurePass1)) {
+ if (FindIsaDevice &&
+ ((foundChip = (*FindIsaDevice)(NULL)) != -1)) {
+ xf86AddDeviceToConfigure(driverName, NULL, foundChip);
+ return 1;
+ }
return 0;
-
- if (xf86DoConfigure) {
- if (FindIsaDevice) ConfiguredIsaCard = (*FindIsaDevice)(NULL);
- if (ConfiguredIsaCard != -1) return 1;
- else return 0;
}
for (i = 0; i < numDevs; i++) {
MessageType from = X_CONFIG;
GDevPtr dev = NULL;
GDevPtr devBus = NULL;
- int foundChip = -1;
if (devList[i]->busID && *devList[i]->busID) {
if (xf86ParseIsaBusString(devList[i]->busID)) {
@@ -2545,8 +2554,10 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
PropertyPtr pNewProp, pRegProp;
int i;
-ErrorF("xf86RegisterRootWindowProperty(%d, %d, %d, %d, %d, %p)\n",
- ScrnIndex, property, type, format, len, value);
+#ifdef DEBUG
+ ErrorF("xf86RegisterRootWindowProperty(%d, %d, %d, %d, %d, %p)\n",
+ ScrnIndex, property, type, format, len, value);
+#endif
if (ScrnIndex<0 || ScrnIndex>=xf86NumScreens) {
return(BadMatch);
@@ -2566,11 +2577,15 @@ ErrorF("xf86RegisterRootWindowProperty(%d, %d, %d, %d, %d, %p)\n",
*/
pNewProp->next = NULL;
+#ifdef DEBUG
ErrorF("new property filled\n");
+#endif
if (NULL==xf86RegisteredPropertiesTable) {
+#ifdef DEBUG
ErrorF("creating xf86RegisteredPropertiesTable[] size %d\n",
xf86NumScreens);
+#endif
if ( NULL==(xf86RegisteredPropertiesTable=(PropertyPtr*)xnfcalloc(sizeof(PropertyPtr),xf86NumScreens) )) {
return(BadAlloc);
}
@@ -2579,22 +2594,28 @@ ErrorF("xf86RegisterRootWindowProperty(%d, %d, %d, %d, %d, %p)\n",
}
}
+#ifdef DEBUG
ErrorF("xf86RegisteredPropertiesTable %p\n",
xf86RegisteredPropertiesTable);
ErrorF("xf86RegisteredPropertiesTable[%d] %p\n",
ScrnIndex, xf86RegisteredPropertiesTable[ScrnIndex]);
+#endif
if ( xf86RegisteredPropertiesTable[ScrnIndex] == NULL) {
xf86RegisteredPropertiesTable[ScrnIndex] = pNewProp;
} else {
pRegProp = xf86RegisteredPropertiesTable[ScrnIndex];
while (pRegProp->next != NULL) {
+#ifdef DEBUG
ErrorF("- next %p\n", pRegProp);
+#endif
pRegProp = pRegProp->next;
}
pRegProp->next = pNewProp;
}
-ErrorF("xf86RegisterRootWindowProperty succeeded\n");
+#ifdef DEBUG
+ ErrorF("xf86RegisterRootWindowProperty succeeded\n");
+#endif
return(Success);
}
@@ -2613,5 +2634,3 @@ xf86IsUnblank(int mode)
return TRUE;
}
}
-
-
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Init.c b/xc/programs/Xserver/hw/xfree86/common/xf86Init.c
index d1c3f2252..8f8b90e57 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Init.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Init.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 3.152 2000/02/21 19:22:52 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 3.157 2000/03/05 23:47:46 dawes Exp $ */
/*
* Copyright 1991-1999 by The XFree86 Project, Inc.
@@ -115,7 +115,9 @@ xf86CreateRootWindow(WindowPtr pWin)
CreateWindowProcPtr CreateWindow =
(CreateWindowProcPtr)(pScreen->devPrivates[xf86CreateRootWindowIndex].ptr);
-ErrorF("xf86CreateRootWindow(%p)\n", pWin);
+#ifdef DEBUG
+ ErrorF("xf86CreateRootWindow(%p)\n", pWin);
+#endif
if ( pScreen->CreateWindow != xf86CreateRootWindow ) {
/* Can't find hook we are hung on */
@@ -162,23 +164,22 @@ ErrorF("xf86CreateRootWindow(%p)\n", pWin);
/* free memory */
pOldRegProp = xf86RegisteredPropertiesTable[pScreen->myNum];
- while (pOldRegProp!=NULL) {
- xfree(pOldRegProp->data);
- pOldRegProp->data = NULL;
-
+ while (pOldRegProp!=NULL) {
pRegProp = pOldRegProp->next;
xfree(pOldRegProp);
pOldRegProp = pRegProp;
}
xf86RegisteredPropertiesTable[pScreen->myNum] = NULL;
} else {
- ErrorF("xf86CreateRootWindow unexpectedly called with non-root window %p (parent %p)\n",
- pWin, pWin->parent);
+ xf86Msg(X_ERROR, "xf86CreateRootWindow unexpectedly called with "
+ "non-root window %p (parent %p)\n", pWin, pWin->parent);
ret = FALSE;
}
}
+#ifdef DEBUG
ErrorF("xf86CreateRootWindow() returns %d\n", ret);
+#endif
return (ret);
}
@@ -348,18 +349,25 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
#ifdef XFree86LOADER
/* Load all modules specified explicitly in the config file */
- if ((modulelist = xf86ModulelistFromConfig(&optionlist)))
+ if ((modulelist = xf86ModulelistFromConfig(&optionlist))) {
xf86LoadModules(modulelist, optionlist);
+ xfree(modulelist);
+ xfree(optionlist);
+ }
/* Load all driver modules specified in the config file */
- if ((modulelist = xf86DriverlistFromConfig()))
+ if ((modulelist = xf86DriverlistFromConfig())) {
xf86LoadModules(modulelist, NULL);
+ xfree(modulelist);
+ }
/* Setup the builtin input drivers */
xf86AddInputDriver(&xf86KEYBOARD, NULL, 0);
/* Load all input driver modules specified in the config file. */
- if ((modulelist = xf86InputDriverlistFromConfig()))
+ if ((modulelist = xf86InputDriverlistFromConfig())) {
xf86LoadModules(modulelist, NULL);
+ xfree(modulelist);
+ }
/*
* It is expected that xf86AddDriver()/xf86AddInputDriver will be
@@ -808,10 +816,12 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
FatalError("AddScreen/ScreenInit failed for driver %d\n", i);
}
+#ifdef DEBUG
ErrorF("InitOutput - xf86Screens[%d]->pScreen = %p\n",
i, xf86Screens[i]->pScreen );
ErrorF("xf86Screens[%d]->pScreen->CreateWindow = %p\n",
i, xf86Screens[i]->pScreen->CreateWindow );
+#endif
screenInfo.screens[scr_index]->devPrivates[xf86CreateRootWindowIndex].ptr
= (void*)(xf86Screens[i]->pScreen->CreateWindow);
@@ -1431,7 +1441,12 @@ ddxProcessArgument(int argc, char **argv, int i)
}
if (!strcmp(argv[i], "-configure"))
{
+ if (getuid() != 0) {
+ ErrorF("The '-configure' option can only be used by root.\n");
+ exit(1);
+ }
xf86DoConfigure = TRUE;
+ xf86AllowMouseOpenFail = TRUE;
return 1;
}
/* OS-specific processing */
@@ -1455,7 +1470,7 @@ ddxUseMsg()
ErrorF("-xf86config file specify a configuration file\n");
ErrorF("-modulepath paths specify the module search path\n");
ErrorF("-logfile file specify a log file name\n");
- ErrorF("-scanpci execute the scanpci module and exit\n");
+ ErrorF("-configure probe for devices and write an XF86Config\n");
}
else
{
@@ -1463,6 +1478,7 @@ ddxUseMsg()
ErrorF(" XF86Config search path, only root can use absolute\n");
}
ErrorF("-probeonly probe for devices, then exit\n");
+ ErrorF("-scanpci execute the scanpci module and exit\n");
ErrorF("-verbose [n] verbose startup messages\n");
ErrorF("-logverbose [n] verbose log messages\n");
ErrorF("-quiet minimal startup messages\n");
@@ -1479,6 +1495,7 @@ ddxUseMsg()
ErrorF("-screen name specify the Screen section name\n");
ErrorF("-keyboard name specify the core keyboard InputDevice name\n");
ErrorF("-pointer name specify the core pointer InputDevice name\n");
+ ErrorF("-nosilk disable Silken Mouse\n");
ErrorF("-flipPixels swap default black/white Pixel values\n");
#ifdef XF86VIDMODE
ErrorF("-disableVidMode disable mode adjustments with xvidtune\n");
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c b/xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c
index 28be0ad8b..6eb915b10 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c
@@ -1,7 +1,7 @@
/*
* Copyright (c) 1999 by The XFree86 Project, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c,v 1.3 1999/09/04 13:04:34 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c,v 1.4 2000/03/05 17:04:15 dawes Exp $ */
/*
* This file contains the Pointer/Keyboard functions needed by the
@@ -36,7 +36,6 @@
#include "../input/mouse/mouse.h"
const char * xf86ProtocolIDToName(ProtocolID id);
-#define DEBUG
#ifdef DEBUG
# define DEBUG_P(x) ErrorF(x"\n");
#else
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Mode.c b/xc/programs/Xserver/hw/xfree86/common/xf86Mode.c
index 1daad11ef..0f6d495f5 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Mode.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Mode.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Mode.c,v 1.25 1999/12/13 01:39:46 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Mode.c,v 1.27 2000/03/05 23:47:47 dawes Exp $ */
/*
* Copyright (c) 1997,1998 by The XFree86 Project, Inc.
@@ -1106,14 +1106,20 @@ xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
strategy &= ~LOOKUP_OPTIONAL_TOLERANCES;
} else {
if (scrp->monitor->nHsync <= 0) {
- ErrorF("xf86ValidateModes: called with missing monitor horizontal"
- " sync rates\n");
- return -1;
+ xf86DrvMsg(scrp->scrnIndex, X_WARNING,
+ "%s: Using default hsync range of 28-33kHz\n",
+ scrp->monitor->id);
+ scrp->monitor->hsync[0].lo = 28;
+ scrp->monitor->hsync[0].hi = 33;
+ scrp->monitor->nHsync = 1;
}
if (scrp->monitor->nVrefresh <= 0) {
- ErrorF("xf86ValidateModes: called with missing monitor vertical"
- " refresh rates\n");
- return -1;
+ xf86DrvMsg(scrp->scrnIndex, X_WARNING,
+ "%s: using default vrefresh range of 43-72Hz\n",
+ scrp->monitor->id);
+ scrp->monitor->vrefresh[0].lo = 43;
+ scrp->monitor->vrefresh[0].hi = 72;
+ scrp->monitor->nVrefresh = 1;
}
}
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Module.h b/xc/programs/Xserver/hw/xfree86/common/xf86Module.h
index 9917cb21f..b1939622c 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Module.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Module.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Module.h,v 1.20 2000/02/08 13:13:05 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Module.h,v 1.21 2000/03/01 23:54:33 dawes Exp $ */
/*
* Copyright (c) 1997-1999 by The XFree86 Project, Inc.
@@ -63,9 +63,9 @@ typedef enum {
*/
#define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 1)
#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(0, 1)
-#define ABI_XINPUT_VERSION SET_ABI_VERSION(0, 0)
-#define ABI_EXTENSION_VERSION SET_ABI_VERSION(0, 0)
-#define ABI_FONT_VERSION SET_ABI_VERSION(0, 0)
+#define ABI_XINPUT_VERSION SET_ABI_VERSION(0, 1)
+#define ABI_EXTENSION_VERSION SET_ABI_VERSION(0, 1)
+#define ABI_FONT_VERSION SET_ABI_VERSION(0, 1)
#define MODINFOSTRING1 0xef23fdc5
#define MODINFOSTRING2 0x10dc023a
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h b/xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h
index 78a381356..9194084e4 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h,v 1.50 2000/02/12 20:45:18 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h,v 1.51 2000/02/24 20:39:14 dawes Exp $ */
/*
* PCI Probe
*
@@ -933,7 +933,7 @@ static pciVendorDeviceInfo xf86PCIVendorInfoData[] = {
{0x0001, "PT86C52x Vesuvius",0 },
{0x0000, NULL,0}}},
{PCI_VENDOR_MYLEX, {
- {0x0010, "AccelRAID 250",0 },
+ {0x0010, "RAID Controller",0 },
{0x0000, NULL,0}}},
{PCI_VENDOR_APPLE, {
{0x0001, "Bandit",0 },
@@ -1270,7 +1270,7 @@ static pciVendorDeviceInfo xf86PCIVendorInfoData[] = {
{0x1223, "SAA7116",0},
{0x1226, "82596",0},
{0x1227, "82865",0},
- {0x1229, "82557/8 10/100MBit network controller",0 },
+ {0x1229, "82557/8/9 10/100MBit network controller",0 },
{0x122D, "82437 Triton",0},
{0x122E, "82471 Triton",0},
{0x1230, "82371 bus-master IDE controller",0},
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Priv.h b/xc/programs/Xserver/hw/xfree86/common/xf86Priv.h
index fbca1e5a5..6dc85ea0f 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Priv.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Priv.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h,v 3.64 2000/02/08 13:13:06 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h,v 3.65 2000/03/08 05:38:37 dawes Exp $ */
/*
* Copyright (c) 1997 by The XFree86 Project, Inc.
@@ -68,7 +68,6 @@ extern confDRIRec xf86ConfigDRI;
extern unsigned short xf86MouseCflags[];
extern Bool xf86SupportedMouseTypes[];
extern int xf86NumMouseTypes;
-extern int xf86EstimateSizesAggressively;
#ifdef XFree86LOADER
extern DriverPtr *xf86DriverList;
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c b/xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c
index 4e583bf9c..3fb5b6ba4 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c,v 3.10 2000/02/21 18:09:59 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c,v 3.13 2000/03/05 23:47:48 dawes Exp $ */
/*
* Copyright (c) 1997-1999 by The XFree86 Project, Inc.
@@ -7,7 +7,6 @@
/*
* This file contains the interfaces to the bus-specific code
*/
-#define DEBUG
#include <ctype.h>
#include <stdlib.h>
#include <unistd.h>
@@ -350,35 +349,35 @@ FindPCIVideoInfo(void)
xf86Msg(X_PROBED, "PCI: (%d:%d:%d) ", info->bus, info->device,
info->func);
if (vendorname)
- ErrorF("%s ", vendorname);
+ xf86ErrorF("%s ", vendorname);
else
- ErrorF("unknown vendor (0x%04x) ", info->vendor);
+ xf86ErrorF("unknown vendor (0x%04x) ", info->vendor);
if (chipname)
- ErrorF("%s ", chipname);
+ xf86ErrorF("%s ", chipname);
else
- ErrorF("unknown chipset (0x%04x) ", info->chipType);
- ErrorF("rev %d", info->chipRev);
+ xf86ErrorF("unknown chipset (0x%04x) ", info->chipType);
+ xf86ErrorF("rev %d", info->chipRev);
for (i = 0; i < 6; i++) {
if (info->memBase[i]) {
if (!memdone) {
- ErrorF(", Mem @ ");
+ xf86ErrorF(", Mem @ ");
memdone = TRUE;
} else
- ErrorF(", ");
- ErrorF("0x%08x/%d", info->memBase[i], info->size[i]);
+ xf86ErrorF(", ");
+ xf86ErrorF("0x%08x/%d", info->memBase[i], info->size[i]);
}
}
for (i = 0; i < 6; i++) {
if (info->ioBase[i]) {
if (!iodone) {
- ErrorF(", I/O @ ");
+ xf86ErrorF(", I/O @ ");
iodone = TRUE;
} else
- ErrorF(", ");
- ErrorF("0x%04x/%d", info->ioBase[i], info->size[i]);
+ xf86ErrorF(", ");
+ xf86ErrorF("0x%04x/%d", info->ioBase[i], info->size[i]);
}
}
- ErrorF("\n");
+ xf86ErrorF("\n");
}
}
}
@@ -1397,14 +1396,15 @@ getValidBIOSBase(PCITAG tag, int num)
void
xf86PciProbe(void)
{
- void (* DataSetupFunc)(SymTabPtr *, pciVendorDeviceInfo **,
- pciVendorCardInfo **);
+ typedef void DataSetupFuncType(SymTabPtr *, pciVendorDeviceInfo **,
+ pciVendorCardInfo **);
+ DataSetupFuncType *DataSetupFunc;
#ifdef XFree86LOADER
/*
* we need to get the pointer to the pci data structures initialized
*/
- DataSetupFunc = LoaderSymbol("xf86SetupPciData");
+ DataSetupFunc = (DataSetupFuncType *)LoaderSymbol("xf86SetupPciData");
#else
DataSetupFunc = xf86SetupScanPci;
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86str.h b/xc/programs/Xserver/hw/xfree86/common/xf86str.h
index f1c6dbb0b..b8412cddd 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86str.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86str.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86str.h,v 1.66 2000/02/12 23:59:10 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86str.h,v 1.67 2000/03/01 16:00:54 tsi Exp $ */
/*
* Copyright (c) 1997-2000 by The XFree86 Project, Inc.
@@ -669,10 +669,8 @@ typedef struct {
* Flags for driver Probe() functions.
*/
#define PROBE_DEFAULT 0x00
-#define PROBE_DETECTPCI 0x01
-#define PROBE_DETECTISA 0x02
-#define PROBE_DETECTFBDEV 0x04
-#define PROBE_DETECT (PROBE_DETECTPCI | PROBE_DETECTISA | PROBE_DETECTFBDEV)
+#define PROBE_DETECT 0x01
+#define PROBE_TRYHARD 0x02
/*
* ScrnInfoRec
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86xv.c b/xc/programs/Xserver/hw/xfree86/common/xf86xv.c
index b23513c11..d7d69a67d 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86xv.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86xv.c
@@ -6,7 +6,7 @@
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xv.c,v 1.18 2000/02/11 20:39:20 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xv.c,v 1.19 2000/02/22 01:58:06 mvojkovi Exp $ */
#include "misc.h"
#include "xf86.h"
@@ -102,36 +102,48 @@ int (*XvScreenInitProc)(ScreenPtr) = XvScreenInit;
#endif
-static XF86VideoAdaptorPtr *GenAdaptors = NULL;
-static int NumGenAdaptors = 0;
+static xf86XVInitGenericAdaptorPtr *GenDrivers = NULL;
+static int NumGenDrivers = 0;
int
-xf86XVRegisterGenericAdaptor(
- XF86VideoAdaptorPtr *adaptors,
- int num
+xf86XVRegisterGenericAdaptorDriver(
+ xf86XVInitGenericAdaptorPtr InitFunc
){
- int i;
- XF86VideoAdaptorPtr *newadaptors;
+ xf86XVInitGenericAdaptorPtr *newdrivers;
- newadaptors = xrealloc(GenAdaptors, sizeof(XF86VideoAdaptorPtr) *
- (num + NumGenAdaptors));
- if (!newadaptors)
+ newdrivers = xrealloc(GenDrivers, sizeof(xf86XVInitGenericAdaptorPtr) *
+ (1 + NumGenDrivers));
+ if (!newdrivers)
return 0;
- GenAdaptors = newadaptors;
+ GenDrivers = newdrivers;
- for (i=0; i<num && NumGenAdaptors <= 4; i++, NumGenAdaptors++) {
- GenAdaptors[NumGenAdaptors] = adaptors[i];
- }
+ GenDrivers[NumGenDrivers++] = InitFunc;
- return i;
+ return 1;
}
int
xf86XVListGenericAdaptors(
- XF86VideoAdaptorPtr **adaptors
+ ScrnInfoPtr pScrn,
+ XF86VideoAdaptorPtr **adaptors
){
- *adaptors = GenAdaptors;
- return NumGenAdaptors;
+ int i,j,n,num;
+ XF86VideoAdaptorPtr *DrivAdap,*new;
+
+ num = 0;
+ *adaptors = NULL;
+ for (i = 0; i < NumGenDrivers; i++) {
+ n = GenDrivers[i](pScrn,&DrivAdap);
+ if (0 == n)
+ continue;
+ new = xrealloc(*adaptors, sizeof(XF86VideoAdaptorPtr) * (num+n));
+ if (NULL == new)
+ continue;
+ *adaptors = new;
+ for (j = 0; j < n; j++, num++)
+ (*adaptors)[num] = DrivAdap[j];
+ }
+ return num;
}
Bool
@@ -1672,3 +1684,43 @@ xf86XVQueryImageAttributes(
}
+/**************** Offscreen surface stuff *******************/
+
+typedef struct {
+ XF86OffscreenImagePtr images;
+ int num;
+} OffscreenImageRec;
+
+static OffscreenImageRec OffscreenImages[MAXSCREENS];
+static Bool offscreenInited = FALSE;
+
+Bool
+xf86XVRegisterOffscreenImages(
+ ScreenPtr pScreen,
+ XF86OffscreenImagePtr images,
+ int num
+){
+ if(!offscreenInited) {
+ bzero(OffscreenImages, sizeof(OffscreenImages[MAXSCREENS]));
+ offscreenInited = TRUE;
+ }
+
+ OffscreenImages[pScreen->myNum].num = num;
+ OffscreenImages[pScreen->myNum].images = images;
+
+ return TRUE;
+}
+
+XF86OffscreenImagePtr
+xf86XVQueryOffscreenImages(
+ ScreenPtr pScreen,
+ int *num
+){
+ if(!offscreenInited) {
+ *num = 0;
+ return NULL;
+ }
+
+ *num = OffscreenImages[pScreen->myNum].num;
+ return OffscreenImages[pScreen->myNum].images;
+}
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86xv.h b/xc/programs/Xserver/hw/xfree86/common/xf86xv.h
index 6e4590199..1ff73f11a 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86xv.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86xv.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xv.h,v 1.10 2000/02/11 20:39:20 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xv.h,v 1.13 2000/03/08 01:14:00 mvojkovi Exp $ */
#ifndef _XVDIX_H_
#define _XVDIX_H_
@@ -42,6 +42,16 @@ typedef struct {
} XF86ImageRec, *XF86ImagePtr;
+typedef struct {
+ ScrnInfoPtr pScrn;
+ int id;
+ unsigned short width, height;
+ int *pitches; /* bytes */
+ int *offsets; /* in bytes from start of framebuffer */
+ DevUnion devPrivate;
+} XF86SurfaceRec, *XF86SurfacePtr;
+
+
typedef int (* PutVideoFuncPtr)( ScrnInfoPtr pScrn,
short vid_x, short vid_y, short drw_x, short drw_y,
short vid_w, short vid_h, short drw_w, short drw_h,
@@ -125,6 +135,29 @@ typedef struct {
QueryImageAttributesFuncPtr QueryImageAttributes;
} XF86VideoAdaptorRec, *XF86VideoAdaptorPtr;
+typedef struct {
+ XF86ImagePtr image;
+ int flags;
+ int (*alloc_surface)(ScrnInfoPtr pScrn,
+ int id,
+ unsigned short width,
+ unsigned short height,
+ XF86SurfacePtr surface);
+ int (*free_surface)(XF86SurfacePtr surface);
+ int (*display) (XF86SurfacePtr surface,
+ short vid_x, short vid_y,
+ short drw_x, short drw_y,
+ short vid_w, short vid_h,
+ short drw_w, short drw_h,
+ RegionPtr clipBoxes);
+ int (*stop) (XF86SurfacePtr surface);
+ int (*getAttribute) (XF86SurfacePtr surface, Atom attr, INT32 *value);
+ int (*setAttribute) (XF86SurfacePtr surface, Atom attr, INT32 value);
+ int max_width;
+ int max_height;
+ int num_attributes;
+ XF86AttributePtr attributes;
+} XF86OffscreenImageRec, *XF86OffscreenImagePtr;
Bool
xf86XVScreenInit(
@@ -133,17 +166,33 @@ xf86XVScreenInit(
int num
);
+typedef int (* xf86XVInitGenericAdaptorPtr)(ScrnInfoPtr pScrn,
+ XF86VideoAdaptorPtr **Adaptors);
+
int
-xf86XVRegisterGenericAdaptor(
- XF86VideoAdaptorPtr *Adaptors,
- int num
+xf86XVRegisterGenericAdaptorDriver(
+ xf86XVInitGenericAdaptorPtr InitFunc
);
int
xf86XVListGenericAdaptors(
- XF86VideoAdaptorPtr **Adaptors
+ ScrnInfoPtr pScrn,
+ XF86VideoAdaptorPtr **Adaptors
);
+Bool
+xf86XVRegisterOffscreenImages(
+ ScreenPtr pScreen,
+ XF86OffscreenImagePtr images,
+ int num
+);
+
+XF86OffscreenImagePtr
+xf86XVQueryOffscreenImages(
+ ScreenPtr pScreen,
+ int *num
+);
+
/*** These are DDX layer privates ***/
diff --git a/xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c b/xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c
index 926a2c404..4ad9a88da 100644
--- a/xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c
+++ b/xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c
@@ -3,7 +3,7 @@
*
* Copyright 1999 by Andrew C Aitchison <A.C.Aitchison@dpmms.cam.ac.uk>
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c,v 1.2 1999/11/19 14:59:16 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c,v 1.3 2000/03/05 23:47:50 dawes Exp $ */
#include "misc.h"
#include "xf86.h"
@@ -27,15 +27,19 @@ xf86SetDDCproperties(ScrnInfoPtr pScrnInfo, xf86MonPtr DDC)
CARD8 *VDIFrawdata = NULL;
int i, ret;
+#ifdef DEBUG
ErrorF("xf86SetXDDCprop(%p, %p)\n", pScrnInfo, DDC);
+#endif
if (pScrnInfo==NULL || pScrnInfo->monitor==NULL || DDC==NULL) {
return FALSE;
}
+#ifdef DEBUG
ErrorF("pScrnInfo->scrnIndex %d\n", pScrnInfo->scrnIndex);
ErrorF("pScrnInfo->monitor was %p\n", pScrnInfo->monitor);
+#endif
pScrnInfo->monitor->DDC = DDC;
@@ -52,11 +56,13 @@ xf86SetDDCproperties(ScrnInfoPtr pScrnInfo, xf86MonPtr DDC)
EDID1rawdata[i] = DDC->rawData[i];
}
+#ifdef DEBUG
ErrorF("xf86RegisterRootWindowProperty %p(%d,%d,%d,%d,%d,%p)\n",
xf86RegisterRootWindowProperty,
pScrnInfo->scrnIndex,
EDID1Atom, XA_STRING, 8,
128, (unsigned char *)EDID1rawdata );
+#endif
ret = xf86RegisterRootWindowProperty(pScrnInfo->scrnIndex,
EDID1Atom, XA_INTEGER, 8,
@@ -68,7 +74,9 @@ xf86SetDDCproperties(ScrnInfoPtr pScrnInfo, xf86MonPtr DDC)
EDID1_DUMMY_STRING
#endif
);
+#ifdef DEBUG
ErrorF("xf86RegisterRootWindowProperty returns %d\n", ret );
+#endif
} else if (DDC->ver.version == 2) {
if ( (EDID2rawdata = xalloc(256*sizeof(CARD8)))==NULL ) {
@@ -89,12 +97,14 @@ xf86SetDDCproperties(ScrnInfoPtr pScrnInfo, xf86MonPtr DDC)
if (DDC->vdif) {
#define VDIF_DUMMY_STRING "setting dummy VDIF property - please insert correct values\n"
+#ifdef DEBUG
ErrorF("xf86RegisterRootWindowProperty %p(%d,%d,%d,%d,%d,%p)\n",
xf86RegisterRootWindowProperty,
pScrnInfo->scrnIndex,
VDIFAtom, XA_STRING, 8,
strlen(VDIF_DUMMY_STRING), VDIF_DUMMY_STRING
);
+#endif
VDIFAtom = MakeAtom(VDIF_ATOM_NAME, sizeof(VDIF_ATOM_NAME), TRUE);
@@ -104,7 +114,9 @@ xf86SetDDCproperties(ScrnInfoPtr pScrnInfo, xf86MonPtr DDC)
strlen(VDIF_DUMMY_STRING),
VDIF_DUMMY_STRING
);
+#ifdef DEBUG
ErrorF("xf86RegisterRootWindowProperty returns %d\n", ret );
+#endif
}
return TRUE;
diff --git a/xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c b/xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c
index 932e4ee07..3157be12d 100644
--- a/xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c
+++ b/xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c,v 1.12 1999/12/03 19:17:26 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c,v 1.13 2000/03/06 19:07:16 dawes Exp $ */
/* xf86DDC.c
*
@@ -184,8 +184,8 @@ xf86DoEDID_DDC2(int scrnIndex, I2CBusPtr pBus)
#ifdef DEBUG
if (!tmp)
ErrorF("Cannot interpret EDID block\n");
-#endif
ErrorF("Sections to follow: %i\n",tmp->no_sections);
+#endif
VDIF_Block =
VDIFRead(scrnIndex, pBus, EDID1_LEN * (tmp->no_sections + 1));
tmp->vdif = xf86InterpretVdif(VDIF_Block);
@@ -276,7 +276,9 @@ VDIFRead(int scrnIndex, I2CBusPtr pBus, int start)
Buffer = DDCRead_DDC2(scrnIndex, pBus,start,64);
if (Buffer == NULL)
return NULL;
+#ifdef DEBUG
ErrorF("number of 64 bit blocks: %i\n",Buffer[0]);
+#endif
if ((num = Buffer[0]) > 0)
v_buffer = v_bufferp = xalloc(sizeof(unsigned char) * 64 * num);
diff --git a/xc/programs/Xserver/hw/xfree86/doc/BugReport b/xc/programs/Xserver/hw/xfree86/doc/BugReport
new file mode 100644
index 000000000..371d6de1b
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/BugReport
@@ -0,0 +1,55 @@
+ XFree86 Bug/Test Report Form
+
+Please fill in as many of the fields a possible, and return this form to
+XFree86@XFree86.org. Replace the comments in [] with your own text.
+
+VERSION:
+
+3.9.18
+
+VIDEO DRIVER:
+
+[e.g. mga]
+
+OPERATING SYSTEM:
+
+[e.g. Linux]
+
+VIDEO CARD:
+
+ [Fill out each relevant entry. If you don't know some of the details,
+ just leave them blank.]
+
+ MODEL:
+
+ [Include a precise description of the model. There are often subtle
+ differences in card model names.]
+
+ GRAPHICS CHIPSET:
+
+ [e.g. Matrox G200]
+
+ RAMDAC:
+
+ [Usually only relevant for old cards]
+
+ CLOCKCHIP:
+
+ [Usually only relevant for old cards]
+
+ VIDEO MEMORY:
+
+ [e.g. 2MB DRAM Include both the amount, and type (if known)]
+
+ BUS TYPE:
+
+ [e.g. PCI]
+
+REPORT:
+
+ [Include details of any problems you encountered. If you didn't have
+ any problems, just say "no problems". Indicate what modes and colour
+ depths you tested. If you found a bug, give a description of how to
+ reproduce it.]
+
+
diff --git a/xc/programs/Xserver/hw/xfree86/doc/DESIGN b/xc/programs/Xserver/hw/xfree86/doc/DESIGN
index df75586d6..1a105c44a 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/DESIGN
+++ b/xc/programs/Xserver/hw/xfree86/doc/DESIGN
@@ -6256,4 +6256,4 @@ eScreen() function.
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.23 2000/02/15 18:00:57 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/DESIGN,v 1.20 2000/02/21 22:44:16 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/DESIGN,v 1.21 2000/03/01 01:47:59 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/Imakefile b/xc/programs/Xserver/hw/xfree86/doc/Imakefile
index de59a8149..9a2a9a699 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/doc/Imakefile
@@ -4,7 +4,7 @@ XCOMM $XConsortium: Imakefile /main/33 1996/10/28 05:12:24 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/Imakefile,v 3.60 2000/01/23 21:59:53 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/Imakefile,v 3.67 2000/03/08 05:38:40 dawes Exp $
#include <Server.tmpl>
#include <lnxdoc.rules>
@@ -23,62 +23,62 @@ SUBDIRS = $(SGMLDIR) $(JAPANESEDIR) man
all::
-#if XFree86Version % 10
-REPORTFORM = BetaReport
-#endif
+REPORTFORM = BugReport
#if !BuildLinuxDocText
OSREADMES = \
/*ReadmeFile(Bsdi)*/ \
- ReadmeFile(DGux) \
- ReadmeFile(FreeBSD) \
+ /*ReadmeFile(DGUX)*/ \
+ /*ReadmeFile(FreeBSD)*/ \
ReadmeFile(isc) \
- ReadmeFile(Linux) \
+ /*ReadmeFile(Linux)*/ \
ReadmeFile(LynxOS) \
ReadmeFile(NetBSD) \
ReadmeFile(OpenBSD) \
- ReadmeFile(OS2) \
- OS2.Notes \
- ReadmeFile(SCO) \
- ReadmeFile(SOLX86) \
- ReadmeFile(SVR4) \
+ /*ReadmeFile(OS2)*/ \
+ /*OS2.Notes*/ \
+ /*ReadmeFile(SCO)*/ \
+ /*ReadmeFile(SOLX86)*/ \
+ /*ReadmeFile(SVR4)*/ \
$(_NULLENTRY_)
HWREADME = \
- ReadmeFile(3Dlabs) \
+ /*ReadmeFile(3Dlabs)*/ \
ReadmeFile(apm) \
/*ReadmeFile(agx)*/ \
/*ReadmeFile(ark)*/ \
ReadmeFile(ati) \
ReadmeFile(chips) \
- ReadmeFile(cirrus) \
- /*ReadmeFile(cyrix)*/ \
+ /*ReadmeFile(cirrus)*/ \
+ ReadmeFile(cyrix) \
ReadmeFile(DECtga) \
/*ReadmeFile(epson)*/ \
- ReadmeFile(fbdev) \
+ /*ReadmeFile(fbdev)*/ \
/*ReadmeFile(I128)*/ \
- /*ReadmeFile(i740)*/ \
+ ReadmeFile(i740) \
+ ReadmeFile(i810) \
/*ReadmeFile(Mach32)*/ \
/*ReadmeFile(Mach64)*/ \
- ReadmeFile(MGA) \
- ReadmeFile(NVIDIA) \
+ /*ReadmeFile(MGA)*/ \
+ /*ReadmeFile(NVIDIA)*/ \
/*ReadmeFile(Oak)*/ \
/*ReadmeFile(P9000)*/ \
+ ReadmeFile(r128) \
ReadmeFile(rendition) \
/*ReadmeFile(S3)*/ \
- ReadmeFile(SiS) \
ReadmeFile(s3virge) \
- ReadmeFile(trident) \
- ReadmeFile(tseng) \
+ ReadmeFile(SiS) \
+ /*ReadmeFile(trident)*/ \
+ /*ReadmeFile(tseng)*/ \
/*ReadmeFile(Video7)*/ \
/*ReadmeFile(WstDig)*/ \
$(_NULLENTRY_)
MAINDOCS = LICENSE README /*ReadmeFile(Config)*/ /*BUILD*/ RELNOTES \
- Status DESIGN
+ Install Status DESIGN
-OTHERDOCS = VideoModes.doc /*QuickStart.doc*/ xinput \
- ReadmeFile(fonts) ReadmeFile(mouse)
+OTHERDOCS = /*VideoModes.doc*/ /*QuickStart.doc*/ /*xinput*/ \
+ ReadmeFile(fonts) ReadmeFile(mouse) ReadmeFile(DRI)
#endif
MISCDOCS = ServersOnly /*LbxproxyOnly*/ $(REPORTFORM) ReadmeFile(DGA) \
diff --git a/xc/programs/Xserver/hw/xfree86/doc/Install b/xc/programs/Xserver/hw/xfree86/doc/Install
new file mode 100644
index 000000000..9cbed305e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/Install
@@ -0,0 +1,329 @@
+ Installation Details for XFree86[tm] 4.0
+
+ The XFree86 Project, Inc
+
+ 29 February 2000
+
+ Abstract
+
+ This document contains information about installing XFree86 4.0.
+
+1. Introduction
+
+This document contains information about installing XFree86 4.0 binary dis-
+tributions as provided by The XFree86 Project. The installation procedures
+for binary distributions provided by others may be different.
+
+The XFree86 binary distributions that we provide for UNIX-like OSs are pack-
+aged in the platform-independent gzipped tar format (referred to as "tar-
+balls"). Our tarballs can be identified by the ".tgz" suffix. We do not
+provide binaries in RPM format or any other platform specific package format.
+If you need them in such a format, you should contact your OS vendor.
+Together with the binary distributions, we provide a customised version of
+GNU tar called "extract", and an installation script. We recommend that
+these be used to install the binary distributions.
+
+2. How to get the XFree86 4.0 binary distributions
+
+We, The XFree86 Project, provide XFree86 4.0 binaries for a range of operat-
+ing systems at our ftp site <URL:ftp://ftp.xfree86.org/pub/XFree86/4.0/bina-
+ries/>. Our ftp site is also mirrored by many sites around the world. There
+is a sub-directory for each OS/platform that we have binaries for. The first
+thing you need to do is to decide which of these suits you. In most cases,
+the choice is straightforward. In some cases (e.g., Linux) there may be a
+number of choices depending on what architecture or libc version you are
+using. We recommend that you first download the Xinstall.sh script, and run
+it as follows to find out which binary distribution you should download.
+
+ sh Xinstall.sh -check
+
+This should tell you which binary distribution is the correct one for your
+system. Getting this right may save from wasting time downloading the wrong
+distribution.
+
+The next step is to download the necessary files. The mandatory files for
+all installations are listed below. All of them must be downloaded to do the
+installation. The installer script will complain if they are not all pre-
+sent.
+
+ Xinstall.sh The installer script
+ extract The utility for extracting tarballs
+ Xbin.tgz X clients/utilities and run-time libraries
+ Xlib.tgz Some data files required at run-time
+ Xman.tgz Manual pages
+ Xdoc.tgz XFree86 documentation
+ Xfnts.tgz Base set of fonts
+ Xfenc.tgz Base set of font encoding data
+ Xetc.tgz Run-time configuration files
+ Xvar.tgz Run-time data
+ Xxserv.tgz XFree86 X server
+ Xmod.tgz XFree86 X server modules
+
+NOTES:
+
+ o Some web browsers have a problem downloading the extract utility cor-
+ rectly. If you encounter this problem, download the version called
+ extract.exe instead. The ".exe" suffix is only there to make the trou-
+ blesome web browsers do the right thing. It is not a DOS/Windows exe-
+ cutable.
+
+ o A few distributions don't have or require the Xvar.tgz tarball. If it
+ is present in the binaries sub-directory for your platform, then it is
+ required.
+
+ o Some distributions may have additional mandatory tarballs. This is
+ rare. In these cases, the installer script will tell you if any are
+ missing.
+
+The following tarballs are optional. You should download the ones you want
+to install.
+
+ Xfsrv.tgz Font server
+ Xnest.tgz Nested X server
+ Xprog.tgz X header files, config files and compile-time libs
+ Xprt.tgz X Print server
+ Xvfb.tgz Virtual framebuffer X server
+ Xf100.tgz 100dpi fonts
+ Xfcyr.tgz Cyrillic fonts
+ Xflat2.tgz Latin-2 fonts
+ Xfnon.tgz Some large bitmap fonts
+ Xfscl.tgz Scalable fonts (Speedo and Type1)
+ Xhtml.tgz HTML version of the documentation
+ Xps.tgz PostScript version of the documentation
+ Xjdoc.tgz Documentation in Japanese
+
+NOTES:
+
+ o Some distributions may have some additional optional tarballs.
+
+If you miss some and want to install them later, you can do so by following
+the appropriate part of the section that describes manual installation.
+
+3. Installing XFree86 4.0 using the Xinstall.sh script
+
+We strongly recommend that our XFree86 4.0 binary distributions be installed
+using the Xinstall.sh script that we provide. The main reason that we make
+this recommendation is that there are a lot of steps in the manual installa-
+tion process, and those steps can vary according to the situation. There is,
+however, a description of the manual installation process for the most common
+cases below for those who might need it.
+
+Put all of the downloaded files into a single directory (choose some tempo-
+rary location with enough space). Become the super user (root), cd to that
+directory, then run the installer script as follows:
+
+ sh Xinstall.sh
+
+Answer the prompts that come up. If you are missing something that is
+required to run this version of XFree86, the installer may tell you to
+install it before trying again. If you don't have all of the mandatory files
+listed above, then the installer will tell you which ones are missing and ask
+you to download them before trying again.
+
+3.1 Answering the questions that the installer may ask
+
+The installer asks some questions that may not have obvious answers. The
+information here should help you answer them. In most cases, apart from the
+first question, the default answers should be OK.
+
+If you run the installer from within an X session (the installer checks if
+$DISPLAY is set), you will be warned that doing so is not a good idea.
+Unless you have a good reason for knowing that this won't be a problem, you
+should exit your X session, including stopping xdm or equivalent if it is
+running, before continuing. If you ignore this warning and run into prob-
+lems, well, you were warned!
+
+If you have an existing X installation, you will be warned that proceeding
+with this installation will overwrite it. Only those things that are part of
+our standard distribution will be overwritten. Other X applications that you
+may have installed will not be removed. Some configuration files may be
+overwritten though, but the installer should prompt you before doing so. As
+the opening greeting says, it is strongly recommended that you backup any
+existing installation before proceeding. If you want your old applications
+to still be there after you've installed, don't do the "backup" by simply
+renaming your old /usr/X11R6 directory. It is better to make a copy of it,
+and then install over the top of the original one. If you run into problems
+and want to revert to the old installation, you can then delete the overwrit-
+ten one and copy the saved version back.
+
+During the first part of the installation over an existing version, the
+script may remove some old files or directories that would get in the way of
+the new installation. It will list which files/directories have been
+removed. If none are listed, then none were removed.
+
+The next step when installing over an existing version is to check for exist-
+ing configuration files. As of XFree86 version 3.9.18, the run-time configu-
+ration files are installed by default under /etc/X11 instead of under
+/usr/X11R6/lib/X11. The installer will move the existing ones for you and
+create the necessary symbolic links. If you don't want to have these config-
+uration files under /etc/X11, then you should answer "no" when asked about
+it. Answering "no" here also means that the new configuration files will be
+installed in the old /usr/X11R6/lib/X11 location. Note: for the rare systems
+that don't have symbolic links, this question will not be asked. The default
+answer is "yes" because that is best for most situations. It is our new
+default. It makes it easier to share the /usr/X11R6 directory between multi-
+ple hosts, and allows it to be mounted read-only. If you don't need these
+features, then you can safely answer "no" if you don't want them moved.
+
+When installing over an existing version, you will be prompted before each
+set of configuration files is installed. If you haven't made any customisa-
+tions to your existing configuration files, then you can safely answer "yes"
+for each of these. If you have made customisations, you can try answering
+"no". If you run into problems later, you may need to manually merge your
+customisations into the the new version of the configuration files. The con-
+figuration files can all be found in the Xetc.tgz tarball. See the section
+below about manual installation for information about extracting them sepa-
+rately.
+
+After the configuration files have been dealt with, the other mandatory com-
+ponents of the binary distribution will be installed. This should proceed
+without any user intervention.
+
+If you downloaded any of the optional components, the installer will ask you
+about each one before it is installed. The default answer is "yes". If
+there are any that you've since decided that you don't want to install,
+answer "no" when prompted.
+
+After that is done, the main part of the installation is complete. The next
+steps are to tidy up some aspects of the installation. The first of these is
+to run "ldconfig" on systems that require it, so that the newly installed
+shared libraries are accessible. Then the fonts.dir files in some directo-
+ries are updated so that the fonts can be accessed correctly. Next, the
+installer checks to see if your system has a termcap file or terminfo files.
+If it finds the former, it tells you how my may update the entries in that
+file. If it finds the latter, it asks you if you want it to update them for
+you.
+
+Finally, the installer asks you if you want a link created for the rstart
+utility. On most modern systems, the link isn't essential, so the default
+answer is "no". Answer "yes" if you know that you need it. If you find
+later that you need it, you can create it easily by running:
+
+ rm -f /usr/bin/rstartd
+ ln -s /usr/X11R6/bin/rstartd /usr/bin/rstartd
+
+3.2 After the installation is complete
+
+The next step is to configure the X server. That is covered in detail in an
+as-yet unwritten document :-(. In the meantime, there are two ways to create
+a basic X server configuration file for XFree86 4.0. One is to run the
+xf86config utility. Another is to use the new -configure X server option:
+
+ XFree86 -configure
+
+The X server config file (XF86Config) format has changed compared to 3.3.x.
+Also, its default location is now /etc/X11. Finally, there is now only one X
+server for driving video hardware, and it is called "XFree86". Once you're
+satisfied with the operation of the new X server, you can safely remove the
+old XF86_* and/or XF98_* X server binaries from /usr/X11R6/bin.
+
+After the X server configuration is done, it may be advisable to reboot,
+especially if you run xdm (or equivalent) or the font server (xfs).
+
+4. Installing XFree86 4.0 manually
+
+This section describes how to manually install the XFree86 4.0 binary distri-
+butions. You should only use this method if you know what you're doing. The
+information here covers some common cases, but not every possible case.
+
+Put all of the downloaded files into a single directory (choose some tempo-
+rary location with enough space). Become the super user (root). All of the
+following commands should be run as root, and they should be run from the
+directory that has all of the downloaded files. The "extract" utility should
+be used to unpack the tarballs. This is a customised version of GNU tar that
+has the gzip code built-in, and which has a different usage when run under
+the name "extract". One important thing that extract does that most versions
+of tar do not do by default is that it unlinks existing files before writing
+new ones. This is important when installing over an existing version of X.
+If you choose to use some other utility to extract the tarballs, you're on
+your own.
+
+4.1 A new installation
+
+The simplest case is when there is no existing X installation. The installa-
+tion procedure for this case is as follows:
+
+ chmod +x extract
+ mkdir /usr/X11R6
+ mkdir /etc/X11
+ ./extract -C /usr/X11R6 X[a-df-uw-z]*.tgz
+ ./extract -C /usr/X11R6 Xvfb.tgz # If you are installing Xvfb
+ ./extract -C /etc/X11 Xetc.tgz
+ ./extract -C /var Xvar.tgz
+ ln -s /etc/X11/app-defaults /usr/X11R6/lib/X11
+ ln -s /etc/X11/fs /usr/X11R6/lib/X11
+ ln -s /etc/X11/lbxproxy /usr/X11R6/lib/X11
+ ln -s /etc/X11/proxymngr /usr/X11R6/lib/X11
+ ln -s /etc/X11/rstart /usr/X11R6/lib/X11
+ ln -s /etc/X11/twm /usr/X11R6/lib/X11
+ ln -s /etc/X11/xdm /usr/X11R6/lib/X11
+ ln -s /etc/X11/xinit /usr/X11R6/lib/X11
+ ln -s /etc/X11/xsm /usr/X11R6/lib/X11
+ ln -s /etc/X11/xserver /usr/X11R6/lib/X11
+ /sbin/ldconfig /usr/X11R6/lib # For Linux
+ /sbin/ldconfig -m /usr/X11R6/lib # For FreeBSD, NetBSD, OpenBSD
+ /usr/X11R6/bin/mkfontdir /usr/X11R6/lib/X11/fonts/misc
+
+4.2 Installing over an old installation
+
+If you have an existing installation of X, you should make a backup copy of
+it before installing the new version over the top of it.
+
+Before doing anything else, make sure the extract command is executable, and
+also link it to the name "gnu-tar" so that it can be used as a regular tar
+command:
+
+ chmod +x extract
+ rm -f gnu-tar
+ ln extract gnu-tar
+
+The first part of the procedure is to move the old run-time config files from
+/usr/X11R6/lib/X11 to /etc/X11. Create /etc/X11 if it doesn't already exist.
+For each of the following sub-directories (app-defaults, fs, lbxproxy, prox-
+ymngr, rstart, twm, xdm, xinit, xsm, xserver) that you want to move, check
+that there is a sub-directory of this name in /usr/X11R6/lib/X11. Create a
+sub-directory of the same name under /etc/X11, then copy the files over by
+running:
+
+ ./gnu-tar -C /usr/X11R6/lib/X11/subdir -c -f - . | \
+ ./gnu-tar -C /etc/X11/subdir -v -x -p -U -f -
+
+For each subdirectory that is moved, remove the one under /usr/X11R6/lib/X11
+and create a symbolic link to the new location:
+
+ rm -fr /usr/X11R6/lib/X11/subdir
+ ln -s /etc/X11/subdir /usr/X11R6/lib/X11
+
+For those subdirectories that didn't already exist under /usr/X11R6/lib/X11,
+create one under /etc/X11 and create the symbolic link to it:
+
+ mkdir /etc/X11/subdir
+ ln -s /etc/X11/subdir /usr/X11R6/lib/X11
+
+Once that is done, extract the config files from the Xetc.tgz tarball into a
+temporary directory:
+
+ mkdir tmpdir
+ ./extract -C tmpdir Xetc.tgz
+
+and then copy each sub-directory over to the installed location:
+
+ ./gnu-tar -C tmpdir/subdir -c -f - . | \
+ ./gnu-tar -C /usr/X11R6/lib/X11/subdir -v -x -p -U -f -
+
+If you have customised any config files in your old installation, you may
+want to omit those sub-directories, or copy selected files over by hand.
+
+Once that's done, the main part of the installation can be done:
+
+ ./extract -C /usr/X11R6 X[a-df-uw-z]*.tgz
+ ./extract -C /usr/X11R6 Xvfb.tgz # If you are installing Xvfb
+ ./extract -C /var Xvar.tgz
+ /sbin/ldconfig /usr/X11R6/lib # For Linux
+ /sbin/ldconfig -m /usr/X11R6/lib # For FreeBSD, NetBSD, OpenBSD
+ /usr/X11R6/bin/mkfontdir /usr/X11R6/lib/X11/fonts/misc
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml,v 1.4 2000/02/29 18:01:17 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/Install,v 1.3 2000/03/01 01:48:01 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/LICENSE b/xc/programs/Xserver/hw/xfree86/doc/LICENSE
index 31e14d9a7..066e2fd97 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/LICENSE
+++ b/xc/programs/Xserver/hw/xfree86/doc/LICENSE
@@ -552,7 +552,47 @@ Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved.
solely in object code form, Recipient may replace the words "this file" with
"this software" in both the first and second sentences.]
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.6 2000/01/19 22:37:33 dawes Exp $
+2.6 Bigelow & Holmes Inc and Y&Y Inc Lucidux font license
+Copyright (C) 2000 Bigelow & Holmes Inc. and Y&Y, Inc. Patents pending. All
+Rights Reserved. Lucidux is a trademark of Bigelow & Holmes Inc.
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/LICENSE,v 1.7 2000/02/21 22:44:18 dawes Exp $
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of these Fonts and associated documentation files (the "Font Software"), to
+deal in the Font Software, including without limitation the rights to use,
+copy, merge, publish, distribute, sublicense, and/or sell copies of the Font
+Software, and to permit persons to whom the Font Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright, trademark, patent notices and this permission notice
+shall be included in all copies of one or more of the Font Software.
+
+The Font Software may not be modified, altered, or added to, and in particu-
+lar the designs of glyphs or characters in the Fonts may not be modified nor
+may additional glyphs or characters be added to the Fonts, except that com-
+posite characters composed of two or more characters in the Fonts may be cre-
+ated using the seac (Standard Encoding Accented Character) Type 1 operator.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW & HOLMES INC. OR Y&Y,
+INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN-
+ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT-
+WARE.
+
+Except as contained in this notice, the names of Bigelow & Holmes Inc. and
+Y&Y, Inc. shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in this Font Software without prior written authoriza-
+tion from the Bigelow & Holmes Inc. and Y&Y, Inc.
+
+For further information, contact:
+
+<sales@yandy.com> or <design@bigelowandholmes.com>
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.7 2000/03/06 22:59:23 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/LICENSE,v 1.9 2000/03/07 14:55:04 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/OS2.Notes b/xc/programs/Xserver/hw/xfree86/doc/OS2.Notes
index 8595acbfa..06f88af1e 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/OS2.Notes
+++ b/xc/programs/Xserver/hw/xfree86/doc/OS2.Notes
@@ -224,4 +224,4 @@ Well, you see, this was quite easy :-)
$XConsortium: OS2note.sgml /main/1 1996/02/24 10:08:59 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/OS2.Notes,v 3.13 2000/02/21 22:44:19 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/OS2.Notes,v 3.14 2000/03/01 01:48:02 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README b/xc/programs/Xserver/hw/xfree86/doc/README
index 0d4e96036..3a987b886 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README
+++ b/xc/programs/Xserver/hw/xfree86/doc/README
@@ -1,75 +1,75 @@
- README for XFree86[tm] 3.9.18
+ README for XFree86[tm] 4.0
The XFree86 Project, Inc
- 21 February 2000
+ 26 February 2000
Abstract
XFree86 is a port of X11R6.4 that supports several UNIX(R) and
UNIX-like operating systems on Intel and other platforms.
-1. What is XFree86 3.9.18?
-
-XFree86 3.9.18 is a ``work in progress'' snapshot of the XFree86 4.0 develop-
-ment code. It is one of a series of snapshot releases leading up the the 4.0
-release. The plan is to release a new snapshot every four to six weeks. The
-target audience for this release is developers and others who are comfortable
-on the bleeding edge. This release is not targeted at beginners. Also, most
-end users will find life easier using our latest 3.3.x release. While we
-welcome bug reports and feedback about this release, we don't have the
-resources to provide user-level support for it. If you're not comfortable
-dealing with those sorts of things yourself, then the snapshot releases are
-probably not for you.
-
-This code is very much work in progress. Many of the interfaces may change
-without notice between now and the 4.0 release. The driver design has
-changed significantly compared with the 3.3.x versions, and only a small num-
-ber of drivers have been converted so far. That means that this release does
-not support a wide range of video hardware. Some of the drivers and new fea-
-tures are well developed and reasonably stable, while others are not.
+1. What is XFree86 4.0?
+
+XFree86 4.0 is the first
+ full release of the new XFree86 4 series. The road to XFree86 4 began in
+mid 1997, with serious work starting in early 1998. The first pre-4.0 snap-
+shot was released in mid 1999, and 4.0 was released in early 2000. A lot has
+been completed in that time, and even more has been started since the "4.0"
+design was drafted. The result is that this release contains a lot of new
+features, some new drivers, and some significant performance improvements.
+This release contains components in various stages of development, ranging
+from stable and well tested to new and not-so-well tested. One the other
+side, there are drivers from the 3.3.x series that have not yet been ported
+to XFree86 4. Most of these are for old hardware. To find more information
+about which hardware is supported, see the Driver Status document.
+
+XFree86 4 uses a very modular design. We had hoped to finalise and fully
+document the driver module API/ABI in time for the 4.0 release, but instead
+we are planning to have this done for a subsequent release. We will try
+where possible to retain backward compatibility with the module interfaces in
+4.0 in future releases, but we can't make guarantees about that until the
+interfaces have been fully documented.
Information on this release's features and their status can be found in the
Release Notes.
-2. Redistribution of the Snapshots
+Information about obtaining and installing binary distributions of this
+release can be found in the Installation Document.
-While the XFree86 License doesn't prohibit vendors and others redistributing
-binaries of this release, we don't recommend it. We ask that if you do dis-
-tribute such binaries, you make it clear that people using then should con-
-tact you for support and not XFree86.
+Copyright and Licensing information for this release can be found in the
+License Document.
-3. Developers
+2. Developers
-If you would like to work on the development on XFree86 4.0, then it is rec-
-ommended that you join the XFree86 development team
+If you would like to work on the development of XFree86 4, then it is recom-
+mended that you join the XFree86 development team
<URL:http://www.xfree86.org:/developer.html>. That way you will have access
to the latest source and to other developers.
-4. How to get XFree86 3.9.18
+3. How to get XFree86 4.0
-XFree86 3.9.18 can be found at the XFree86 ftp server
-<URL:ftp://ftp.xfree86.org/pub/XFree86/snapshots/3.9.18/>, and at mirrors of
-this server. This snapshot is available primarily in source form. Binaries
-for some platforms may be made available at a later time.
+XFree86 4.0 can be found at the XFree86 ftp server
+<URL:ftp://ftp.xfree86.org/pub/XFree86/4.0/>, and at mirrors of this server.
+Information about obtaining and installing binary distributions of this
+release can be found in the Installation Document. Information about obtain-
+ing the release in source form is given below.
-The source for version 3.9.18 is split into three tarballs: X3918src-1.tgz,
-X3918src-2.tgz, X3918src-3.tgz. The first contains everything except the
-fonts and general X11 documentation. It is sufficient for building XFree86
-is you already have a set of fonts. The second contains the fonts and the
-source for the general X11 documentation. The third contains the general X11
-documentation in hardcopy format.
+The source for version 4.0 is split into three tarballs: X400src-1.tgz,
+X400src-2.tgz, X400src-3.tgz. The first contains everything except the fonts
+and general X11 documentation. It is sufficient for building XFree86 is you
+already have a set of fonts. The second contains the fonts and the source
+for the general X11 documentation. The third contains the general X11 docu-
+mentation in hardcopy format.
-A source patch relative to version 3.9.17 is also available. Because of its
-size, it is split into three parts. The patch files are
-3.9.17-3.9.18.diff1.gz, 3.9.17-3.9.18.diff2.gz and 3.9.17-3.9.18.diff3.gz.
-These patches should be applied to a clean 3.9.17 source tree, working from
-the directory containing the xc/ directory. The patches should be applied by
-running:
+A source patch relative to version 3.9.18 is also available. Because of its
+size, it is split into two parts. The patch files are 3.9.18-4.0.diff1.gz
+and 3.9.18-4.0.diff2.gz. These patches should be applied to a clean 3.9.18
+source tree, working from the directory containing the xc/ directory. The
+patches should be applied by running:
- gunzip < 3.9.17-3.9.18.diff1.gz | patch -p0 -E
- gunzip < 3.9.17-3.9.18.diff2.gz | patch -p0 -E
- gunzip < 3.9.17-3.9.18.diff3.gz | patch -p0 -E
+ gunzip < 3.9.18-4.0.diff1.gz | patch -p0 -E
+ gunzip < 3.9.18-4.0.diff2.gz | patch -p0 -E
The contrib part of the distribution has now been folded into the main source
tree, so a separate contrib tarball is no longer required.
@@ -77,7 +77,7 @@ tree, so a separate contrib tarball is no longer required.
To format the XFree86 documentation, the latest version of our doctools pack-
age. That is available as doctools-1.1.2.tgz.
-5. Reporting Bugs
+4. Reporting Bugs
Bugs should be reported to <XFree86@XFree86.org>. Before reporting bugs,
please check the X server log file, which can be found at
@@ -91,7 +91,7 @@ If you have patches (bug fixes or enhancements, etc) that you'd like to sub-
mit for inclusion in a future version of XFree86, please send them to
<fixes@XFree86.org>.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v 3.100 2000/02/21 22:41:41 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v 3.103 2000/03/08 20:36:43 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README,v 3.100 2000/02/21 22:44:20 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README,v 3.102 2000/03/08 20:39:21 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs b/xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs
index 53d92f80b..8fdaf0b6e 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs
@@ -96,4 +96,4 @@ This server supports the following 3DLabs chipsets:
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/3Dlabs.sgml,v 1.2 1999/08/24 02:01:07 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs,v 1.3 2000/02/21 22:44:20 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs,v 1.4 2000/03/01 01:48:04 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.DECtga b/xc/programs/Xserver/hw/xfree86/doc/README.DECtga
index eabaf6099..218c23ec4 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.DECtga
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.DECtga
@@ -2,14 +2,15 @@
The XFree86 Project, Inc.
- April 29th, 1999
+ March 5th, 2000
1. DEC 21030
- o The DEC 21030 is supported by XFree86 3.9.18. The driver is now par-
- tially accelerated. The built-in graphics on the Multia is supported in
+ o The DEC 21030 is supported by XFree86 4.0. The driver is now partially
+ accelerated. The built-in graphics on the Multia is supported in
8-plane mode, and PCI cards with 8 or 16 MB framebuffers are supported
- in 24-plane mode.
+ in 24-plane mode. TGA2 (aka PowerStorm 3D30/4D20) cards are not cur-
+ rently supported.
o Current Known Problems
@@ -21,7 +22,12 @@
3. After the server has been run using the hardware cursor, the Linux
TGA console cursor (which also uses the hardware cursor) is
- shifted down by one pixel.
+ shifted down by one pixel. This problem does not affect Linux ker-
+ nels 2.2.10 and above, which do not use the hardware cursor.
+
+ 4. The XAA PolySegment() method is buggy. If you experience server
+ crashes with SIGFPE, or server hangs, try disabling it (see
+ below).
o The following options may be specified for the 21030 driver:
@@ -31,7 +37,7 @@
bus, device, and function numbers in the 21030 section. On
a Multia, this should be "PCI:0:11:0".
- MemBase "0x???????"
+ MemBase 0x???????
If the server does not detect the base address of the 21030,
then check /proc/pci for the 21030 and look for the
"Prefetchable 32 bit memory at 0x???????" and enter this as
@@ -43,15 +49,20 @@
Option "swcursor"
Disables the hardware cursor.
+ Option "NoXaaPolySegment"
+ Disables the XAA PolySegment() method.
+
2. Authors
o Matthew Grossman, <mattg@oz.net>
o Alan Hourihane, <alanh@fairlite.demon.co.uk>
+ o Martin Lucina, <mato@kotelna.sk>
+
o Tim Rowley, <tor@cs.brown.edu>
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml,v 3.8 1999/07/19 13:36:20 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml,v 3.9 2000/03/06 22:59:23 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DECtga,v 3.13 2000/02/21 22:44:21 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DECtga,v 3.15 2000/03/07 14:55:05 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.DGA b/xc/programs/Xserver/hw/xfree86/doc/README.DGA
index 330030936..ab3f2ae6b 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.DGA
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.DGA
@@ -1,103 +1,481 @@
+ XFree86-DGA Extension version 2.0
- XFree86-DGA Extension
-
-The XFree86-DGA extension is an X server extension for allowing client
+ The XFree86-DGA extension is an X server extension for allowing client
programs direct access to the video frame buffer.
-This is a brief description of the programming interface for the
-XFree86-DGA extension. This describes version 1.0, which is the first
-official version. The interface should remain compatible in future
-versions. The functions described here are found in the library
-libXxf86dga.a.
+ This is a brief description of the programming interface for the
+XFree86-DGA extension. This describes version 2.0, which is the second
+official version. The functions described here are found in the library
+libXxf86dga.a, and their prototypes are in <X11/extensions/xf86dga.h>.
+
+ XFree86 DGA is not intended as a direct rendering API, but rather,
+as a mechanism to "get the X-Server out of the way" so that a direct
+rendering API, such as OpenGL, can have full access to the hardware.
+With this in mind, DGA does provide clients some direct access to
+the hardware without requiring a separate rendering API, but this
+access is limited to direct linear framebuffer access.
+
+ DGA is initialized by passing a number corresponding to a valid
+XDGAMode to XDGASetMode(). Clients can get a list of valid modes
+from XDGAQueryModes(). Each XDGAMode corresponds to a different
+framebuffer layout.
+
+typedef struct {
+ int num;
+ char *name;
+ float verticalRefresh;
+ int flags;
+ int imageWidth;
+ int imageHeight;
+ int pixmapWidth;
+ int pixmapHeight;
+ int bytesPerScanline;
+ int byteOrder;
+ int depth;
+ int bitsPerPixel;
+ unsigned long redMask;
+ unsigned long greenMask;
+ unsigned long blueMask;
+ short visualClass;
+ int viewportWidth;
+ int viewportHeight;
+ int xViewportStep;
+ int yViewportStep;
+ int maxViewportX;
+ int maxViewportY;
+ int viewportFlags;
+} XDGAMode;
+
+ num
+
+ A unique identifying number (num > 0) for the mode. This is the
+ number referenced when initializing the mode.
+
+ name
+
+ The name of the corresponding modeline as given in the XF86Config file.
+
+ verticalRefresh
+
+ The vertical refresh rate for the modeline (in Hz).
+
+ flags
+
+ Any of the following may be OR'd together:
+
+ XDGAConcurrentAccess
+
+ Indicates that concurrent client/server access to the
+ framebuffer is possible. If this flag is not set it is
+ very important to call XDGASync() before directly accessing
+ the framebuffer if a call to XDGAFillRectangle(),
+ XDGACopyArea() or XDGACopyTransparentArea() or any Xlib
+ rendering function has been made prior to such accesses.
+
+ XDGASolidFillRect
+
+ Indicates that XDGAFillRectangle() is supported.
+
+ XDGABlitRect
+
+ Indicates that XDGACopyArea() is supported.
+
+ XDGABlitTransRect
+
+ Indicates that XDGACopyTransparentArea() is supported.
+
+ XDGAPixmap
+
+ Indicates that a Pixmap will be returned when the mode is
+ initialized. This means that rendering with Xlib is possible
+ for this mode.
+
+ XDGAInterlaced
+ XDGADoublescan
+
+ Indicates that the mode is an interlaced or doublescan mode.
+
+
+ imageWidth
+ imageHeight
+
+ The width and height of the framebuffer area accessible by the client.
+ This rectangle is always justified to the upper left-hand corner.
+
+ pixmapWidth
+ pixmapHeight
+
+ The width and height of the framebuffer area accessible by Xlib.
+ This rectangle is always justified to the upper left-hand corner.
+ These fields are only valid if the XDGAPixmap flag is set in the
+ "flags" field.
+
+ bytesPerScanline
+
+ The pitch of the framebuffer in bytes.
+
+ byteOrder
+
+ MSBFirst or LSBFirst.
+
+ depth
+
+ The number of bits in each pixel which contain usable data.
+
+ bitsPerPixel
+
+ The number of bits taken up by each pixel.
+
+ redMask
+ greenMask
+ blueMask
+
+ The RGB masks. These do not apply to color-indexed modes.
+
+ visualClass
+
+ TrueColor, PseudoColor, DirectColor, etc...
+
+ viewportWidth
+ viewportHeight
+
+ The dimensions of the portion of the framebuffer which will be
+ displayed on the screen.
+
+ xViewPortStep
+ yViewPortStep
+
+ The granularity of the x,y viewport positioning possible with
+ the XDGASetViewport function.
+
+ maxViewportX
+ maxViewportY
+
+ The maximimum x and y positions possible with the XDGASetViewport
+ function.
+
+ viewportFlags
+
+ Any of the following may be OR'd together:
+
+ XDGAFlipRetrace
+
+ Indicates that the hardware can switch viewports during
+ the vertical retrace.
+
+ XDGAFlipImmediate
-Prototypes for these functions can be found in <X11/extensions/xf86dga.h>
+ Indicates that the hardware can switch viewports immediately
+ without waiting for the vertical retrace.
- XF86DGAQueryVersion(Display *display, int *majorVersion, int *minorVersion)
- query the XFree86-DGA version
+XDGAMode* XDGAQueryModes(
+ Display *dpy,
+ int screen,
+ int *num
+);
- XF86DGAQueryExtension(Display *display, int *eventBase, int *errorBase)
+ XDGAQueryModes() returns a pointer to an array of XDGAModes which
+are valid for the given screen. "num" is the number of elements in the
+array. The returned array can be freed with XFree();
+
- returns the eventBase and errorBase for the XFree86-DGA extension
+XDGADevice* XDGASetMode(
+ Display *dpy,
+ int screen,
+ int num
+);
- XF86DGAQueryDirectVideo(Display *display, int screen, int *flags)
+ A XDGAMode will be initialized when its "num" is passed to
+XDGASetMode(). To exit DGA mode and return to normal server operation,
+pass number zero to XDGASetMode(). XDGASetMode() returns a pointer
+to an XDGADevice if successful. The XDGADevice can be freed with
+XFree().
- Query the DirectVideo capabilities of the graphics device. Flags
- are returned, which may be interpreted as follows (bit masks):
+ struct {
+ XDGAMode mode;
+ unsigned char *data;
+ Pixmap pixmap;
+ } XDGADevice;
- XF86DGADirectPresent DirectVideo support is present
+ mode
- XF86DGAGetVideo(Display *display, int screen, char **addr, int *width,
- int *bankSize, int *memSize);
+ The XDGAMode structure, identical to the information returned
+ by XDGAQueryModes.
- returns a pointer to the start of the video framebuffer (*addr),
- the line width (*width), memory bank size (*bankSize) and total
- memory size (*memSize). Mapping the video framebuffer is a
- privileged operation on most OSs (usually mmap of /dev/mem),
- so a program using this must usually be setuid (or perhaps setgid)
- at least up until the point the function is called.
+ data
+ If direct framebuffer access is desired and possible, this field
+ will contain a pointer to the mapped framebuffer memory. Generally,
+ this field will be zero unless a call to XDGAOpenFramebuffer()
+ is made prior to initialization of the mode.
- XF86DGAGetViewPortSize(Display *display, int screen, int *width,
- int *height)
+ pixmap
- Returns the width (*width) and height (*height) of the view port,
- which is the part of the framebuffer that is visible on the monitor.
+ If the mode supports Xlib rendering as indicated by XDGAPixmap
+ in the flags field, this will contain a Pixmap handle suitable
+ for passing as the drawable argument to Xlib functions. This
+ field will be zero if Xlib rendering is not supported.
- XF86DGADirectVideo(Display *display, int screen, int flags)
+Bool XDGAQueryExtension(
+ Display *dpy,
+ int *eventBase,
+ int *errorBase
+);
- enables/disables Direct Video mode. When Direct Video mode is
- enabled, the X server gives up control of the framebuffer to the
- client. When flags is zero, Direct Video mode is disabled. flags
- may be a bit-wise combination of the following:
+ XDGAQueryExtension() checks for the prescence of the extension
+and returns the event and error bases.
- XF86DGADirectGraphics enable Direct Video mode
- XF86DGADirectMouse enable reporting of pointer movement
- as relative motion
- XF86DGADirectKeyb enable direct reporting of keyboard
- events
+Bool XDGAQueryVersion(
+ Display *dpy,
+ int *majorVersion,
+ int *minorVersion
+);
- XF86DGASetVidPage(Display *display, int screen, int page)
+ XDGAQueryVersion() returns the major and minor version numbers (duh).
- Set the framebuffer page. This is only required for hardware which
- has a banked memory layout (ie, bankSize < memSize).
+Bool XDGAOpenFramebuffer(
+ Display *dpy,
+ int screen
+);
- XF86DGASetViewPort(Display *display, int screen, int x, int y)
+void XDGACloseFramebuffer(
+ Display *dpy,
+ int screen
+);
+
- Set the coordinates of the upper-left corner of the view port to (x,y).
+ XDGAOpenFramebuffer() maps the framebuffer memory. The client
+needs sufficient privledges to be able to do this.
+ XDGAOpenFramebuffer() should be called prior to initializing
+a dga mode if direct framebuffer access is desired for that mode.
+XDGAOpenFramebuffer() does not need to be called if direct framebuffer
+access is not required. If the framebuffer is opened,
+XDGACloseFramebuffer() should be called prior to client exit to
+unmap the memory.
- Bool XF86DGAViewPortChanged(Display *display, int screen, int n)
- Checks whether a previous SetViewPort command has been performed
- by the hardware, that is, whether a vertical retrace has occurred
- since a previous SetViewPort. This can (must, in fact) be used
- with page-flipping; you can start writing to the next page only when
- this function returns TRUE. For some devices this will be the
- case immediately after SetViewPort, however this may be changed in
- in the future. The number of pages used is specified with n; it
- should be 2 for simple page flipping. If n is greater than two
- (triple or multi-buffering), the function checks whether the
- (n - 2)-before-last SetViewPort has been performed.
+void XDGAChangePixmapMode(
+ Display *dpy,
+ int screen,
+ int *x,
+ int *y,
+ int mode
+);
- XF86DGAInstallColormap(Display *display, int screen, Colormap cmap)
+ In the case where a Pixmap is available for Xlib rendering, this
+function allows changing between two pixmap sizes. The following
+values for "mode" are possible.
- Set the current colormap of the display to cmap. XF86DGADirectGraphics
- must be active on the display/screen before calling
- XF86DGAInstallColormap or it will produce the error XF86DGAScreenNotActive
- or XF86DGADirectNotActivated.
+ XDGAPixmapModeLarge
+
+ The pixmap size is defined by the pixmapWidth and pixmapHeight
+ fields in the XDGAMode structure. The "x" and "y" values are
+ ignored in this case.
+ XDGAPixmapModeSmall
+
+ The pixmap size is defined by the viewportWidth and viewportHeight
+ fields in the XDGAMode structure. In this mode, the "x" and "y"
+ values specify where in the framebuffer this pixmap rectangle
+ is located. It may be placed anywhere within the Xlib renderable
+ region described by the pixmapWidth and pixmapHeight fields in
+ the XDGAMode. The "x" and "y" values returned are the resultant
+ location of the pixmap and may be different from the requested
+ x,y location due to platform specific alignment constraints.
+ All Xlib rendering is clipped to this pixmap rectangle.
- int XF86DGAForkApp(int screen)
- Fork the app, parent process hangs around to return non DGA mode should
- the child exit for any reason. Returns 0, or error returned by fork().
+void XDGASetViewport(
+ Display *dpy,
+ int screen,
+ int x,
+ int y,
+ int flags
+);
+
+ Set the upper left-hand corner of the rectangle of framebuffer
+that is to be displayed on the screen. Not all locations may be
+supported by the hardware and requested locations will be adjusted
+according to the xViewPortStep and yViewPortStep fields in the XDGAMode.
+
+ "flags" can be XDGAFlipRetrace or XDGAFlipImmediate to adjust
+the viewport location at the next vertical retrace or immediately.
+Values other than the supported values advertised in the mode's
+viewportFlags field will result in hardware-specific default behavior.
+XDGAFlipImmediate will block until the flip is completed.
+XDGAFlipRetrace will generally NOT block so it is necessary to
+monitor the viewport status with XDGAGetViewportStatus().
+
+ FlipImmediate requests during pending FlipRetrace requests
+will be ignored.
+
+
+int XDGAGetViewportStatus(
+ Display *dpy,
+ int screen
+);
+
+
+ XDGAGetViewportStatus() keeps track of the XDGASetViewport()
+requests still pending. The return value of the function will
+have consecutive bits set (LSB justified), each bit representing
+a pending viewport change. For example:
+
+ while(XDGAGetViewportStatus(dpy, screen));
+
+ waits for all pending viewport changes to finish.
+
+ while(0x2 & XDGAGetViewportStatus(dpy, screen));
+
+ waits until all but the last viewport changes have completed.
+
+
+Colormap XDGACreateColormap(
+ Display *dpy,
+ int screen,
+ XDGADevice *device,
+ int alloc
+);
+
+void XDGAInstallColormap(
+ Display *dpy,
+ int screen,
+ Colormap cmap
+);
+
+ XDGACreateColormap() is similar to the Xlib function XCreateColormap()
+except that it takes an XDGADevice as an argument instead of a Window
+and Visual. Though XCreateColormap() may create useable colormaps in
+some cases, XDGACreateColormap() is the prefered method for creating
+colormaps in DGA since there may not be an advertised visual compatible
+with the DGA device.
+
+ XDGAInstallColormap() must be used to install colormaps in DGA
+mode. XInstallColormap() will not work.
+
+
+
+void XDGASelectInput(
+ Display *dpy,
+ int screen,
+ long event_mask
+);
+
+ DGA provides its own events. These can be enabled by calling
+XDGASelectInput(). This function is similar to XSelectInput()
+and all Xlib Key, Button and Motion masks are supported.
+
+
+ The following DGA events are defined.
+
+typedef struct {
+ int type; /* ButtonPress or ButtonRelease + the DGA event base*/
+ unsigned long serial; /* # or last request processed by the server */
+ Display *display; /* Display the event was read from */
+ int screen; /* The screen number the event came from */
+ Time time; /* milliseconds */
+ unsigned int state; /* key or button mask */
+ unsigned int button; /* detail */
+} XDGAButtonEvent;
+
+typedef struct {
+ int type; /* KeyPress or KeyRelease + the DGA event base*/
+ unsigned long serial; /* # or last request processed by the server */
+ Display *display; /* Display the event was read from */
+ int screen; /* The screen number the event came from */
+ Time time; /* milliseconds */
+ unsigned int state; /* key or button mask */
+ unsigned int keycode; /* detail */
+} XDGAKeyEvent;
+
+typedef struct {
+ int type; /* MotionNotify + the DGA event base*/
+ unsigned long serial; /* # or last request processed by the server */
+ Display *display; /* Display the event was read from */
+ int screen; /* The screen number the event came from */
+ Time time; /* milliseconds */
+ unsigned int state; /* key or button mask */
+ int dx; /* relative pointer motion */
+ int dy; /* relative pointer motion */
+} XDGAMotionEvent;
+
+
+void
+XDGAKeyEventToXKeyEvent(XDGAKeyEvent* dk, XKeyEvent* xk);
+
+ XDGAKeyEventToXKeyEvent() is a helper function to translate
+XDGAKeyEvents into XKeyEvents suitable for use with XLookupKeysym().
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DGA,v 3.5 1996/10/18 15:03:04 dawes Exp $
+
+void XDGAFillRectangle(
+ Display *dpy,
+ int screen,
+ int x,
+ int y,
+ unsigned int width,
+ unsigned int height,
+ unsigned long color
+);
+
+
+void XDGACopyArea(
+ Display *dpy,
+ int screen,
+ int srcx,
+ int srcy,
+ unsigned int width,
+ unsigned int height,
+ int dstx,
+ int dsty
+);
+
+
+void XDGACopyTransparentArea(
+ Display *dpy,
+ int screen,
+ int srcx,
+ int srcy,
+ unsigned int width,
+ unsigned int height,
+ int dstx,
+ int dsty,
+ unsigned long key /* source pixels of this value will not be copied */
+);
+
+ These three functions are included with some reserveration since
+DGA is not intended as a rendering API. These are merely convience
+routines and are optionally supported. The associated flags will
+be set in the XDGAMode's "flags" field if these functions are supported.
+These functions will be no-ops otherwise.
+
+ These functions do not provide direct access to the hardware,
+but are merely context-less operations performed by the server.
+
+
+void XDGASync(
+ Display *dpy,
+ int screen
+);
+
+ This function blocks until all server rendering to the framebuffer
+completes. If Xlib or the 3 rendering functions above are used, XDGASync()
+must be called before the client directly accesses the framebuffer as
+the server rendering is asynchronous with the client and may have not
+completed. This is especially important if the XDGAConcurrentAccess
+flag is not set in the XDGAMode's "flags" field since concurrent access
+by the server and client may result in a system lockup.
+
+
+
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DGA,v 3.6 2000/03/04 00:58:15 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.DGUX b/xc/programs/Xserver/hw/xfree86/doc/README.DGUX
new file mode 100644
index 000000000..ba22ea0f6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.DGUX
@@ -0,0 +1,695 @@
+ Instructions for Building XFree86 on an Intel Pentium Aviion machine with
+ DG/UX R4.20MU04
+
+ Takis Psarogiannakopoulos
+
+ July 27, 1999
+
+1. Whats new
+
+July 27, 1999
+
+DG has fix the streams bug in /usr/lib/tcpip.so . (Read below) The workaround
+in the July 25 source code has been removed. I've been told from DG that BSD
+sockets perform better in DGUX than SVR4 native STREAMS. From R4.20MU06 DG/UX
+will have the correct tcpip.so lib (no bug in STREAMS). If you have MU05,MU04
+and you want for some reason STREAMS definitely contact DG for an updated
+/usr/lib/tcpip.so in /usr/lib (patch for your MU04,5).
+
+DG/UX at the moment lacks the sysi86 syscall and the definition of SYSI86IOPL
+(that is in <sys/sysi86.h> but guarded by a UNIXWARE defintion that of course
+cannot be applicable to DG/UX). Until this header is accessible by a simple
+-DDGUX , and _sysi86, sysi86 subroutines added to libc (or some other extra
+library) we need to define the DG_NO_SYSI86 to be 1. If DG makes the above
+modifications , you will need to manually edit the files (before building!)
+xc/programs/Xserver/hw/xfree86/SuperProbe/OS_DGUX.c xc/pro-
+grams/Xserver/hw/xfree86/etc/scanpci.c xc/programs/Xserver/hw/xfree86/os-sup-
+port/dgux/dgux_video.c and eliminate DG_NO_SYSI86 flag by changing
+DG_NO_SYSI86 1-->0.
+
+July 25, 1999
+
+A major bug has now been corrected in this release. According to this since
+the STREAMS interface of DG/UX were broken the server was listening not to
+port 6000 (= 0x1770) but to 0x7017. All binaries that you have from 3.3.3.1,
+3.3.3 they will work locally (if you run them in the same machine) but NOT
+remotely because they use an Xlib that tries to connect to port 28365. If
+you want to run them remotely YOU MUST recompile them! Steve thank you for
+bringing this to my attention initially but was too busy then to look at it
+in detail... Perhaps I should have...
+
+We now use sockets instead of ioctls. But I've fix and tested the STREAMS
+also.
+
+David thanks for making me realize that this was indeed a problem in DG/UX.
+
+I've also take the trouble to port gdb-4.17/8 and ddd (X inter) in
+pub/XFree86/3.3.5/binaries/DGUX-ix86/GDB_BETA (both binaries and source code)
+in order to be able to send me traces of core files produced by Xservers. Try
+
+ gdb /usr/X11R6/bin/X location of core/core
+ gdb: where
+
+and send me what you see. (I suppose that the Xserver executable is in
+/usr/X11R6.3/bin)
+
+From 3.3.3.1: Several bugs are now fixed. DG/UX support is on this official
+patch. All configuration is in xc/config/cf/DGUX.cf and in xf86site.def. Also
+Imake autodetects (thanks to David Dawes) the DGUX OS (including Release ver-
+sion). So only a simple "make World" is needed anymore to build in ix86
+DG/UX. Usually the process to build is (after unpacking and patching the
+source "xc" tree) to go to xc/config/cf copy the file xf86site.def to
+site.def and edit the files DGUX.cf ,site.def for whatever changes you need
+to do.
+
+Default ProjectRoot in 3.3.5 is /usr/X11R6 (except if you set this specifi-
+cally in DGUX.cf either as /usr/X11R6.3-- --my choice, or in whatever you
+like).
+
+From: December 1, 1998 IMPORTANT: PLEASE READ THE FILE README-GCC-2.8.1 GCC
+VERSION 2.8.1 is recommended for the DGUX build of X11R6.3 You can ignore
+below the _old_ conversation about gcc compiler if you already run a
+gcc-2.8.1 in your machine.
+
+2. GENERAL:
+
+Get from ftp.xfree86.org the XFree 3.3.x source code:
+
+ ftp ftp.xfree86.org
+ login: ftp
+ passwd: your e-mail address
+ cd pub/XFree86/3.3.5/source
+ You need the files:
+ X335src-1.tgz
+ X335src-2.tgz
+ X335src-3.tgz
+
+Get also the contributed X software
+
+ cd /pub/XFree86/3.3.5/source
+ X335contrib.tgz
+
+If you have the source tarballs of 3.3.3 go to /pub/XFree86/3.3.5/bina-
+ries/DGUX-ix86/SOURCE get the DGUX source patch
+
+ 3.3.3-3.3.5-DGUX.diff.gz
+ X335contrib-DGUX.diff.gz (patch for the contrib software).
+
+to avoid downloading all the source code again.
+
+Sorry some DGUX changes they didn't make in time for the official release
+date of 3.3.4... I do this for free, so some times I may be excused for
+something like this...
+
+To build X11R6.3 you need also the tools for DG/UX (see discussion below).
+They will be in ftp dpmms.cam.ac.uk (University of Cambridge,Department of
+Pure Mathematics) in /pub/takis/DGUX-Tools/BuildXtools.tar.gz (anonymous ftp)
+or in the ftp.xfree86.org ... (pub/XFree86/3.3.5/binaries/DGUX-
+ix86/SOURCE/BUILD-TOOLS/ BuildXtools.tar.gz).
+
+Using a big filesystem (I use a virtual disk "xf86work" mounted on /xf86work
+of size 1400000 blocks) copy the source as:
+
+ cp X335src-1.tgz /xf86work/X335src-1.tar.gz
+ cp X335src-2.tgz /xf86work/X335src-2.tar.gz
+ cp X335src-3.tgz /xf86work/X335src-3.tar.gz
+
+(or X333src-1,2,3.tar.gz as above plus the DG/UX patch to 3.3.5 i.e. the file
+3.3.3-3.3.5-DGUX.diff.gz)
+
+And maybe the contributed software:
+
+ cp X335contrib.tgz /xf86work
+
+ (cp X335contrib-DGUX.diff.gz /xf86work).
+
+If you get the patches from DGUX-ix86, to build from source 3.3.3 your first
+problem is that in order to apply the source patch you need "patch" a very
+common GNU program that DG/UX doesn't have!? This program is in BuildX-
+tools.tar.gz (or ftp prep.ai.mit.edu cd/pub/gnu get patch-2.5.tar.gz) So lets
+speak about these tools before anything else: Using "sysadm" mount a filesys-
+tem usr_local under /usr/local with size 200000 blocks. Then copy the BuildX-
+tools file in /usr and give:
+
+ gzip -d < BuildXtools.tar.gz | tar xvf -
+
+It will unfold in the new filesystem /usr/local. Then go to your ".profile"
+(in your Home dir , mine eg is /admin) and add the /usr/local/bin in your
+path and the /usr/local/lib in your lib-path.
+
+What you need is like that: (vi .profile)
+
+ PATH=/usr/local/bin:/sbin:/usr/sbin:/usr/bin
+ if [ -d /usr/opt/X11/bin ]
+ then
+ PATH=$PATH:/usr/opt/X11/bin
+ fi
+ export PATH
+ (/usr/local/bin is before any other path!)
+
+ LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/ccs/lib
+ export LD_LIBRARY_PATH
+
+then exit and re-login so that your new modified .profile will take effect.
+
+Now do the following:
+
+ cd /usr/sbin
+ cp install install_dg
+ rm install
+ cp /usr/local/bin
+ cp install /usr/bin *(make the GNU install the default install)*
+ (DG/UX install is useless)
+ (Look also the file xc/config/cf/DGUX.cf , below).
+
+ (Or get GNU make-3.77 and copy install.sh (or -sh) to a /usr/bin/install)
+
+ cd /usr/bin
+ cp true /usr/local/bin
+ cd /usr/local/bin
+ ln -s true ranlib (Install true as ranlib in the DG/UX system)
+
+Usually giving -v,-V or --version will give you build info on all the tools
+in /usr/local/bin (try it).
+
+**Look the discussion for gcc before you build (below)**
+
+Now untar the source tree: In /xf86work (or whatever name you gave to the big
+filesystem for the build)
+
+ gzip -d < X335src-1.tar.gz | tar xvf -
+ gzip -d < X335src-2.tar.gz | tar xvf -
+ gzip -d < X335src-3.tar.gz | tar xvf -
+
+(If you have X-3.3.3 do the same for the 3.3.3 sources and then apply the
+3.3.5-DGUX source patch
+
+ gzip -d < 3.3.3-3.3.5-DGUX.diff.gz | patch -p0 -E).
+
+The directory xc in now present in your build filesystem.
+
+3. Configuration for the build:
+
+Almost all you need is in "DGUX.cf" located in xc/config/cf. Edit the file
+DGUX.cf and site.def and change what ever you need. Remember DGUX.cf over-
+writes site.def. The default ProjectRoot for XFree86-3.3.5 is now /usr/X11R6
+(located in site.def). If you want to change this to whatever you like (I
+prefer /usr/X11R6.3 and a link in /usr X11R6->X11R6.3) edit DGUX.cf and
+locate the entry:
+
+ #if 0
+ #define ProjectRoot /usr/X11R6.3
+ #endif
+
+Eliminate the #if 0 , #endif. Then change this to whatever you prefer. (I
+prefer the above for the pre-compiled binaries)
+
+The DG/UX malloc is crap and keeps bringing problems with some X software so
+I don't use it. Instead there is a port of GNU malloc in /usr/local (it came
+with the BuildXtools file). Don't try to build with the /lib/libmalloc.a of
+DG/UX and then send me e-mails that some programs they don't work properly.
+In my build I use tcl8.0 and tk8.0 since the xconfig of R4.20MU03 is report-
+ing incorrect values for the monitors and XF86Setup need to be build in order
+to manage to adjust the display. If you don't have this (or don't want this)
+comment out the lines about tcl,tk, (in DGUX.cf)
+
+ /*******TCL TK DEFINITIONS ***********/
+ #define HasTk YES-->NO
+ ...
+ #define HasTcl YES-->NO
+
+Also 'GNU make' is required for the correct X11R6.3 build. (it is in Buildx-
+tools file). If you decide yes to tcl,tk obtain the files
+
+ tcl8.0.3.tar.gz
+ tk8.0.3.tar.gz (from some ftp)
+
+(or newer versions) and compile them before the building of X11R6.3 (Build
+first tcl8.0.3 then tk8.0.3).
+
+4. DISCUSSION ABOUT GCC
+
+There are so much things that I can say for the system gcc of DG/UX. If I was
+keeping track for the programs that fail using this compiler I will certainly
+have fill a book (conveniently for the DG of course). But my work is not to
+correct bugs for the DG/UX compiler or anything else) , and in particular to
+collect reports for the genius of DG. (DG:Sorry guys nothing personal. I am
+a pure Mathematician , I am doing all this work for pleasure, I don't want
+any money from DG or anybody else , I am not looking to become a employer of
+DG,and I am NOT a trouble shooter of the DG/UX in general. But maybe some
+times if you help I may be able to help you also).
+
+What I wanted to do is to build X11. Thats why you will find in BuildXtools a
+new gcc. This gcc is build for DG/UX R4.20MU02. so you have to upgrade your
+DG/UX OS version to the above. But it is solid to build not only X11 but
+whatever else you want. DO NOT use gcc of DG/UX. If you do I cannot tell you
+anything about any problems that you have. To complete the installation of
+this new gcc do the following:
+
+ cp -r /usr/local/gcc-dgux /usr/opt/sdk/sde/ix86dgux/usr/lib
+ cd /usr/opt/sdk/sde/ix86dgux/usr/lib
+ rm gcc
+ ln -s gcc-dgux gcc (set link gcc--->gcc-dgux)
+
+ cd /usr/local
+ cp -r /usr/local/gcc-dgux /usr/sde/ix86dgux/usr/lib
+ cd /usr/sde/ix86dgux/usr/lib
+ rm gcc
+ ln -s gcc-dgux gcc (set link gcc-->gcc-dgux)
+
+To come back to your old DG/UX gcc just change the above two links gcc-->gcc-
+dgux to gcc-->gcc-2 with the command: (in both the above two dirs)
+
+ rm gcc
+ ln -s gcc-2 gcc
+
+/usr/bin/gcc -v should report the version that you have. To build success-
+fully this version of X11 gcc is a *MUST*.
+
+Dynamic loading Servers: Edit xc/config/cf/DGUX.cf and change the entry
+
+#ifndef BuildDynamicLoading #define BuildDynamicLoading NO --->YES. #endif
+
+Remember when you build you will see lots of errors and the servers will NOT
+build! This is because the dynamic linker doesn't know the locations of the
+newly created R6 libX's. So after the (seem faulty) building do a
+
+make DESTDIR=ProjectRoot/lib install
+
+(look below for install, ProjectRoot the location that you choose in the file
+xc/config/cf/DGUX.cf above)
+
+So that all your new libXR6 libraries will go there. (do a cd Project-
+Root/lib to make sure).
+
+Then go to your home dir and declare the path ProjectRoot/lib dir in you
+LD_LIBRARY_PATH (your profile) as:
+
+LD_LIBRARY_PATH=ProjectRoot/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH
+
+Then relogin!
+
+Now just _rebuild_ A FULL XFree86-3.3.5 with the entry
+
+#define BuildDynamicLoading YES in your DGUX.cf.
+
+This time you will build _all_ XFree86-3.3.5 correctly.
+
+5. BUILD
+
+In the usual X11R5 of DG (mwm) open an xterm and give: (/bin/sh = Bourne
+shell)
+
+ cd xc
+ make World > Build-dg.log
+
+In that way you will get all the error messages in your screen. Don't worry
+with messages about -znodefs.
+
+Note: the old command
+
+ make World BOOTSTRAPCFLAGS="-DDGUX" > Build-dg.log
+
+is no longer needed since imake will detect the DGUX OS (in Version =>
+3.3.3.1) and set up things. However this command will also work.
+
+And in another xterm give cd xc tail -f Build-dg.log to watch the building
+progress.
+
+To install X11R6.3 XFree version 3.3.5 after the build you must have a
+filesystem say usr_X11R6.3 mounted to the directory /usr/X11R6 size 350000
+blocks. (or whatever you choose to be your ProjectRoot, if you modify
+DGUX.cf for another ProjectRoot than the default /usr/X11R6 in site.def).
+Then give
+
+ make install
+ make install.man (install the man pages)
+
+The installation will not put an XF86Config in your /usr/X11R6.3/lib/X11/ and
+so if you give startx the new X11 will not start. Read the file README-
+X3331.DGUX in this ftp site (located in the binaries) about the whole instal-
+lation procedure of X11R6.3. Or quickly you can do: (I remind: DG/UX mouse
+device "/dev/mouse") cd /usr/X11R6.3/bin ln -s XF86_VGA16 X Then put in your
+.profile the path /usr/X11R6.3/bin and run the XF86Setup program. Adjust
+first the mouse device then everything else. (You need to read really the
+file README-DGUX.INSTALL-> look in the end of this file).
+
+To build the contributed software with XFree86-3.3.5 get the X335contrib.tgz
+and do
+
+ gzip -d < X335contrib.tgz | tar xvf -
+
+(Or for 3.3.3 sources unpack X333contrib.tgz and apply the DGUX patch as
+
+ gzip -d < X335contrib-DGUX.diff.gz | patch -p0 -E ).
+
+Please note: You must have already install and active the X11R6.3 that you
+build so that the imake is working properly for your system. Read below for
+how to install this X window system. After that you could do:
+
+ cd contrib
+ xmkmf -a
+ make
+ make install
+ make install.man (for installing the man pages)
+
+6. INSTALLATION OF THE BINARY:
+
+NOTE:This executable has been compiled with the macro -DPENTIUM_CHANGE (that
+all the new Aviion machines support). If you have an old i486 (rather
+unlikely) the executable will NOT RUN correctly. But we haven't use
+-mcpu=pentiumpro, so the executable will work on ALL PENTIUM machines.
+
+ o About Project Root: I choose as ProjectRoot for ix86 DG/UX the location
+ /usr/X11R6.3. The default (in 3.3.5 sources) is the /usr/X11R6. To cover
+ this we make a link in /usr as X11R6->X11R6.3 (read below); so don't
+ forget to do this link. I don't like the location /usr/opt/X11 (default
+ location of DG X11) that some of you have suggested to me, I believe it
+ is a good idea to keep the original X11 as is for several reasons.
+
+ o Make a filesystem,using sysadm, mounted under "/usr/X11R6.3". This is
+ the default location of X11R6.3 , you cannot change this except if you
+ recompile the whole source of X. (Please don't send e-mails about
+ this). The size of this filesystem should be around 175 MB(350000
+ blocks).
+
+ The list of files is:
+
+ X3353DL.tgz 3D_Labs XServer ... etc
+ X3358514.tgz
+ X335AGX.tgz
+ X335I128.tgz
+ X335Ma32.tgz Mach32 Xserver
+ X335Ma64.tgz Mach64 Xserver
+ X335Ma8.tgz
+ X335Mono.tgz
+ X335P9K.tgz
+ X335S3.tgz
+ X335S3V.tgz
+ X335SVGA.tgz SuperVGA Xserver (Supports AV3700 Cirrus)
+ X335VG16.tgz VGA16 Xserver (needed by XF86Setup)
+ X335W32.tgz
+ X335bin.tgz BIN (you must have this)
+ X335cfg.tgz
+ X335doc.tgz
+ X335f100.tgz
+ X335fcyr.tgz
+ X335fnon.tgz
+ X335fnts.tgz
+ X335fscl.tgz
+ X335fsrv.tgz
+ X335lib.tgz LIB (you must have this)
+ X335lkit.tgz Linkkit (X development)
+ X335man.tgz Man pages
+ X335nest.tgz
+ X335prog.tgz
+ X335prt.tgz
+ X335set.tgz
+ X335vfb.tgz
+ preinst.sh Install script
+ extract The XFree86 extract program (for ix86 DG/UX)
+
+ SUMS.md5 Checksums for the integrity of the files
+
+ (Try compile the GNU textutils-1.22.tar.gz from prep.ai.mit.edu
+ /pub/gnu. md5sum is there).
+
+ You need at least:
+
+ X335bin.tgz
+ X335lib.tgz
+
+ And the correct Xserver for your machine/Graphics card. In my opinion
+ take all files , in the future you may need to switch to another graph-
+ ics device etc ... (mget *). Generally it is good to have the full dis-
+ tribution of the X11R6.3 window system ,it should make life easier in
+ DG/UX.
+
+ (Trivial:you must have root privilege).
+
+ o Unpack the *.tgz files in your / so that it will go directly inside to
+ the new filesystem /usr/X11R6.3. After you do that cd /usr and do a link
+ : ln -s X11R6.3 X11R6. (Use the install script). This link will indi-
+ cate in XF86 programs like XF86Setup where the new X11 window system is.
+
+ o cd your home dir and backup your .profile as "cp .profile myprofile".
+ Then cd /usr/X11R6.3. Copy the file HOME.profile-X11R6.3 to your home
+ dir as "cp HOME.profile-X11R6.3 your home dir/.profile" ,then cd your
+ home dir and "chmod 644 .profile" to make sure that the new profile is
+ active. This is because you need to tell to the system to look for the X
+ software in a different location than the usual /usr/bin/X11 of DG/UX.
+ Also you need to tell to the system that the new X libraries are in
+ /usr/X11R6.3/lib.
+
+ **You NEED to re-login in order to make the new .profile active !** **
+ DO NOT GIVE "startx" AFTER THAT, READ Configuration below !**
+
+ o About Configuration: DG/UX has a program (actually a script) called
+ xconfig that makes the configuration for you. Usually when you run xcon-
+ fig in the DG/UX-X11R5 it creates a file XdgConfig in /var/X11/Xserver
+ which is the corresponding of the XF86-configuration file located in
+ /usr/X11R6.3/lib/X11/XF86Config. This file ,in the section monitor, has
+ all values for your monitor. Please Note: Unfortunately in DG/UX
+ R4.20MU02 things change. Instead of going forwards we going backwards...
+ xconfig reports crazy values for my DG-DA1765VA monitor. So if you have
+ a CDROM of DG/UX R4.11MU02,or MU03 use it to find an xconfig that will
+ give you reliable values for your monitor.
+
+ Your best bet is to use XF86Setup for correct adjustments.
+
+ Thats the reason that in this binary there is a minimum tcl,tk(version
+ 8.0). Before you run XF86Setup read the relevant documents found in
+ www.xfree86.org. (Or read below for a hand-made configuration).
+
+ Notice about XF86Setup: You will will see the message "The program is
+ running on a different virtual" "Please switch to the correct virtual
+ terminal"
+
+ DG/UX does NOT have any virtual terminals. But XF86Setup uses a script
+ that doesn't checks for this. So it is printing this message anyway.
+ Ignore it and don't send e-mails asking how to set the virtual terminal!
+ XF86Setup WORKS for SURE (if you use it correctly) to set your configu-
+ ration. Just remember:
+
+ 1. make a link in /usr/X11R6.3/bin: ln -s XF86_VGA16 X
+
+ 2. set mouse device in your XF86Config to /dev/mouse (this the mouse
+ in DGUX)
+
+ 3. set the correct mouse protocol. (usually for a typical AViiON
+ PS/2).
+
+ Or just cd /usr/X11R6.3/lib/X11 and copy XF86Config.eg.dgux to XF86Con-
+ fig (it is for a PS/2 protocol mouse that almost all AViiON's have) ,
+ then run XF86Setup and choose to use this XF86Config file as default (so
+ mouse works).
+
+ Alternatively, you can run xf86config, a non-graphical configuration
+ utility but you will need to enter manually the values for your monitor.
+ If you have the small booklet that came with the monitor they are
+ inside.
+
+ Hand made configuration: I have an DG/UX Medium resolution (1280x1024)
+ 17 inch DG-26059,DA1765VA. ONLY IF YOU HAVE THE ***EXACT SAME*** MONI-
+ TOR USE THE FILE XF86Config_SVGA_DGUX that you will find in
+ /usr/X11R6.3/. IT IS IN YOUR OWN RISK IF YOU DECIDE TO USE THIS FILE
+ WHEN YOU DON'T HAVE THE SAME MONITOR AS MINE. YOU CAN DAMAGE YOUR VIDEO
+ MONITOR OR YOUR GRAPHICS CARD.
+
+ An example of how to use the Accel Servers (eg ATI=XF86_Mach64) is in
+ the file XF86Config_ATI_DGUX. Again remember: I have an DG/UX Medium
+ resolution (1280x1024) 17 inch DG-26059,DA1765VA. ONLY IF YOU HAVE THE
+ ***EXACT SAME*** MONITOR USE THE FILE XF86Config_ATI_DGUX that you will
+ find in /usr/X11R6.3/. IT IS IN YOUR OWN RISK IF YOU DECIDE TO USE THIS
+ FILE WHEN YOU DON'T HAVE THE SAME MONITOR AS MINE. YOU CAN DAMAGE YOUR
+ VIDEO MONITOR.
+
+ Start with the file XF86Config.eg as a prototype. READ the README.Config
+ . In Cirrus chips you need to read the file README.cirrus located in
+ /usr/X11R6.3 There is a problem with the accelerated XAA code ,so you
+ need to try to put the following option in your XF86Config:
+
+ Option "no_mmio" (in Section Screen ,subsection display).
+
+ Look in the XF86Config_SVGA_DGUX to see how this can be done . If this
+ doesn't work (it will probably) try Option "noaccel" or "no_bit-
+ blt".Again READ the file README.cirrus (and README.Config). I suggest
+ to print (in paper) the file XdgConfig and have a look in it. Then it
+ should be quite trivial to figure out what you have to do with the XF86
+ file ie XF86Config in the sections mouse, keyboard, screen ... After
+ you have a correct XF86Config in /usr/X11R6.3/lib/X11 give
+
+ chmod 444 XF86Config.
+
+ Supposing that you have already re-login so that the new .profile is
+ active and you have the correct XF86Config file (as your XdgConfig sug-
+ gest) (DO not forget for a cirrus to put the Option "no_mmio" in section
+ screen !), give startx and the new X11 will start . Remember: You can
+ shut down at any point the Xserver by pressing CONTROL+ALT+BACKSPACE (if
+ something goes wrong). Also Xservers don't produce messages unless to
+ want them to do so. This is because the DG/UX console driver some times
+ causes corruption of the screen if you print text during the startup of
+ the Xserver. If you require messages try in bash shell to give: (bash#
+ )
+
+ X -verbose >& info1 or even
+ X -verbose -verbose >& info2 for more messages.
+
+ Then when the server is up press CONTROL+ALT+BACKSPACE to shutdown the
+ Xserver. File info1 (or info2) have all relevant info about your graph-
+ ics card , display memory etc ... I suggest you do that at least one
+ time before start using the new X11R6.3. Read this info file to see if
+ all ok. If not try change settings in your XF86Config to make thinks
+ correct.
+
+ If you have an ATI Rage II (or RageII+) use the server XF86_Mach64 (make
+ a link link X--->XF86_MACH64, or run xf86config, or use XF86Setup
+ above).
+
+ o If you want to compile programs with the X11R6.3 the headers in
+ /usr/include /X11 pointing to /usr/opt/X11 of DG/UX is a problem . Do:
+
+ a): unmounting the /usr/opt/X11 will prevent the sysadm to use the X
+ graphical interface. But this will be the only thing that you loose.
+ The correct thing to do for X11R6.3 is to delete the filesystem
+ /usr/opt/X11 and make a link /usr/opt/X11--->/usr/X11R6.3 , so that the
+ libraries from dglib and /usr/lib point correctly to the new ones in
+ /usr/X11r6.3/lib. Before you unmount this filesystem you need to do
+ this:
+
+ cd /usr/opt/X11/include
+ cp -r Mrm /usr/X11R6.3/include
+ cp -r uil /usr/X11R6.3/include
+ cp -r Xm /usr/X11R6.3/include
+ cd /usr/X11R6.3/include
+ ln -s uil Uil
+
+ LIBRARIES:
+
+ and cd /usr/opt/X11/lib
+ cp libXm.a /usr/X11R6.3/lib
+
+ and similarly copy the following libraries:
+
+ libX11.so.2, libX11.so.5, libXIM.so.1, libXaw.so.1, libXaw.so.2,
+ libXext.so.2, libXi.so.2, libXimp.so.1, libXm.so.2, libXmu.so.2,
+ libXsess.so.1, libXsi.so.1, libXt.so.2, libXt.so.5.0, libMrm.a,
+ libUil.a, libX11_s, libXR4sco_s
+
+ into /usr/X11R6.3/lib.
+
+ Then cd /usr/X11R6.3/lib and make links:
+
+ ln -s libXm.so.2 libXm.so
+ ln -s libXm.so.2 libXm.so.1
+ ln -s libXm.so.2 libXm.so.5.0
+
+ ln -s libX11.so.5.0 libX11.so.1
+
+ ln -s libXIM.so.1 libXIM.so.5.0
+
+ ln -s libXaw.so.2 libXaw.so.5.0
+
+ ln -s libXext.so.2 libXext.so.5.0
+ ln -s libXext.so.2 libXext.so.1
+
+ ln -s libXi.so.2 libXi.so.1
+ ln -s libXi.so.2 libXi.so.5.0
+
+ ln -s libXimp.so.1 libXimp.so.5.0
+
+ ln -s libXmu.so.2 libXmu.so.5.0
+
+ ln -s libXt.so.2 libXt.so.5.0
+
+ ln -s libXsi.so.1 libXi.so.5.0
+
+ cd /usr/X11R6.3/lib
+ rm libXmu.so (to avoid undefs when building X software)
+
+ Also you need to correct the links in /usr/dglib at least! (the correct
+ thing to do is modify also /usr/lib links to /usr/opt/X11 libs). Try
+
+ cd /usr/
+ tar -cvf dglib-orig.tar dglib
+ gzip dglib-orig.tar
+
+ (to minimize the space dglib-backup takes) then
+
+ cd /usr/dglib
+
+ and delete ALL links to libraries in /usr/opt/X11. Then copy the script
+ create_new_links_in_dglib (found in /usr/X11R6.3 to /usr/dglib and cd
+ /usr/dglib execute script. This will create all new links with the
+ X11R6.3 X window system.
+
+ But remember to do in the end :
+
+ cd /usr/dglib
+ rm *.a (no static libs links in dglib)
+
+ Then unmount (delete) the old X11 by giving "umount /usr/opt/X11".
+
+ NOTE: If you compile programs in the X11R6 make sure that you unmount
+ /usr/opt/X11 or you eliminate the links in /usr/lib to the OLD libX's in
+ /usr/opt/X11/lib. Otherwise gcc will link these old libraries! and the
+ binary will not run correctly. Always after an R6 compilation do "ldd
+ prog" to make sure that the binary loads only R6 version libraries
+ (except maybe the motif library libXm.so.2), --if you don't use the
+ static libXm.a
+
+ b:)
+
+ cd /usr/include
+ tar -cvf old-X11headers.tar X11
+ gzip old-X11headers.tar
+
+ so that you store your old headers in /usr/include.
+
+ Then cd /usr/include/ and delete
+
+ rm -r X11
+ rm Xm
+ rm Mrm
+ rm Uil
+ rm uil
+ Make new links as:
+ cd /usr/include
+ ln -s ../X11R6.3/include/X11 X11
+ ln -s ../X11R6.3/include/uil Uil
+ ln -s ../X11R6.3/include/uil uil
+ ln -s ../X11R6.3/include/Xm Xm
+ ln -s ../X11R6.3/include/Mrm Mrm
+
+7. What is about:
+
+This new X11R6 are not simply an upgrade of the servers to the latest ones.
+It is a new programming platform in your DG/UX system to allow you to import
+all this *FREE* or not software for the X window system. This software will
+not compile in the old (and ugly) X11 of Data General. The imake command
+that is implemented in almost all the (source) software for X11 (free or not)
+will not work with the totally broken "imake" command of /usr/opt/X11 of
+DG/UX.
+
+The imake of DG/UX X11R5 is badly broken: I have seen DG/UX releases
+R4.11,MU01, ...MU04, R420, R4.20MU02 ,R4.20MU03 and nobody bother to look in
+all these releases the imake command...
+
+While until now DG was rather hostile to the prospect of a new X11 in DG/UX
+some new folks there they have turn their interest in X11R6 (XFree86) these
+days. That is good of course because the ultimate target is to make XFree86
+(3.3.5 or whatever version) to run in _their_ DG/UX Unix! I will be able to
+make a much better X11 in DG/UX if I could had some access to DG/UX sources
+(i.e. the original R5 sources , but not only --eg kernel driver sources as
+for example the DG/UX kernel console driver sources).
+
+I have compile almost anything that runs for Linux in DG/UX using this X11.
+In doing this work in XFree86 I would like to express my thanks to David
+Dawes that he help me all the time with several technical questions. Also
+D.T. is one of the people that offer valuable help. Finally I want to
+express my thanks to John H. for enlightening me in some syscall issues.
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DGUX.sgml,v 1.1 2000/02/24 20:43:23 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DGUX,v 1.2 2000/03/01 01:48:04 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.DRI b/xc/programs/Xserver/hw/xfree86/doc/README.DRI
index 85048b17d..468b6ef6d 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.DRI
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.DRI
@@ -1,115 +1,544 @@
-Direct Rendering Infrastructure Alpha release
----------------------------------------------
-
-Patches for the final sample implementation (SI) of Precision Insight's
-Direct Rendering Infrastructure (DRI) have been submitted to XFree86.
-
-
-
-Please direct all comments about this release to glx@xfree86.org.
-
-
-
-
-* What comes with this release?
-
- There are four main parts of this patch:
-
- 1. the client- and server-side DRI,
- 2. a 2D DDX driver for 3Dlabs' GMX2000,
- 3. an OpenGL client side direct rendering driver for the GMX2000, and
- 4. a generic kernel driver for Linux 2.2.x (x <= 10) and Linux 2.3.y (y
- <= 8).
-
- The DRI handles the communication and synchronization between the X
- server, the client driver and the kernel driver.
-
- The 3Dlabs XFree86 DDX driver has been enhanced to support the
- GMX2000. It has also been extended to communicate with and provide
- callbacks for the DRI.
-
- The client driver implements a subset of OpenGL. The subset required
- for id Software's Quake 2 was chosen to demonstrate the capabilities
- of the DRI. This driver communicates with the device by filling DMA
- buffers and sending them to the kernel driver. Note that the Gamma
- chip implements OpenGL 1.1 in hardware, and therefore, does not use
- the Mesa internals at this time. However, support for the majority of
- current generation of 3D hardware devices will require integration
- with Mesa, so an example DRI driver using the Mesa software-only
- pipeline was implemented (and is mostly complete for the alpha
- release).
-
- The generic kernel driver handles the allocation of the DMA buffers,
- distribution of the buffers to the clients, sending the buffers to the
- device, and the management of synchronization between the client
- driver, the X server, and the kernel driver (this includes the device
- lock and a shared memory region). Note that hardware that does not
- support DMA or that does support special synchronization methods will
- only make use of a subset of these capabilities.
-
-* What changed between the alpha release and the sample implementation?
-
- - Dynamic loading of the OpenGL client driver is implemented
- - 3D client death while holding the drawable lock does not cause deadlock
- - The kernel module works with Linux 2.2.x [x <= 10] and 2.3.y [y <= 8]
- - A better authentication mechanism has been implemented
- - XF86Config options for the DRI are supported
-
-* What are the known problems and/or limitations of the sample
- implementation?
-
- Here are other problems that we did not have time to fix for the SI.
- However, we and other open source developers could continue developing
- and extending the DRI in follow-on projects.
-
- - The X server seg faults due to a context switching bug when there
- are 10 or more 3D clients running simultaneously
- - A better DMA buffer queuing algorithm needs to be implemented
- - A device specific shared memory region needs to be added to SAREA
- - The DRI protocol request for the framebuffer layout needs to be
- extended to support FB width and depth information (for 24 vs. 32
- bpp, 8+24 layouts, etc)
- - Direct rendering to a pixmap is not supported
- - A more sophisticated texture management routine is required to
- handle texture swapping efficiently
- - Multi-threaded OpenGL clients are not supported
- - glXCopyContext and glXUseXFont are not supported in the DRI
- - SwapBuffers does not wait on vertical retrace
- - Support wait for vertical retrace in kernel driver
- - Handling overlays is not currently supported
- - Integrate with DBE
- - Completing the software-only Mesa example driver
- - Completing the other OpenGL paths for the GMX2000
- - Support for video modes other than 640x480 in both the GMX2000 2D
- DDX driver and the 3D client driver
- - More than minimal 2D acceleration of the GMX2000 2D DDX driver
- should be implemented
- - Implement finer grained locking scheme in X server to improve
- interactivity
- - Only grab the drawable lock and update the drawable stamp when a 3D
- window is altered
- - The viewport does not scale properly when a 3D window is resized
- - Double buffered 3D windows are not clipped to the screen
- - glXSwapBuffers is not clipped to the client's viewport
- - Only one client is allowed to use texture memory
- - glFinish does not wait until the HW completes processing the
- outstanding DMA buffers
- - Version numbers of the DDX and kernel driver are not verified
- - Make lock available during SIGSTOP
- - Make drmFinish work while holding the device lock
- - Improve /proc/drm
- - Improve documentation
- - Improve example device-specific kernel driver (not used for SI)
-
-* Where can I get more information?
-
- We have made our design and implementation documents available on our
- website:
-
- http://www.precisioninsight.com/piinsights.html
-
- More documentation will be available with the SI release.
-
-* Where should I send comments?
-
- Please send all comments and questions to the glx@xfree86.org list
+ DRI Users Guide
+
+ Precision Insight, Inc.
+
+ 6 March 2000
+
+1. Preamble
+
+1.1 Copyright
+
+Copyright © 2000 by Precision Insight, Inc., Cedar Park, Texas. All Rights
+Reserved.
+
+Permission is granted to make and distribute verbatim copies of this document
+provided the copyright notice and this permission notice are preserved on all
+copies.
+
+1.2 Trademarks
+
+OpenGL is a registered trademark and SGI is a trademark of Silicon Graphics,
+Inc. Unix is a registered trademark of The Open Group. The `X' device and X
+Window System are trademarks of The Open Group. XFree86 is a trademark of
+The XFree86 Project. Linux is a registered trademark of Linus Torvalds.
+Intel is a registered trademark of Intel Corporation. 3Dlabs, GLINT, and
+Oxygen are either registered trademarks or trademarks of 3Dlabs Inc. Ltd.
+3dfx, Voodoo3, Voodoo4, and Voodoo5 are registered trademarks of 3dfx Inter-
+active, Incorporated. All other trademarks mentioned are the property of
+their respective owners.
+
+2. Introduction
+
+With XFree86 4.0 and Precision Insight's Direct Rendering Interface (DRI),
+hardware accelerated 3D graphics can be considered a standard feature on
+Linux workstations. Support for other operating systems, such as FreeBSD, is
+underway.
+
+This document describes how to use the DRI system and troubleshoot problems
+which may occur. Readers should have a basic understanding of Linux, X and
+OpenGL. See the resources section at the end for more documentation and
+software downloads.
+
+This document does not cover compilation or installation of XFree86 4.0; it
+is assumed that you've already installed a Linux distribution which includes
+XFree86 4.0.
+
+3. Supported Hardware
+
+3D acceleration is currently only available for systems with Intel-compatible
+CPUs. Support for Alpha, and perhaps other CPUs, should be available in the
+future.
+
+XFree86 4.0 includes 3D acceleration for the following graphics hardware:
+
+ o 3dfx:
+
+ o Voodoo3 3500 TV
+
+ o Voodoo3 3000 AGP
+
+ o Voodoo3 3000 PCI
+
+ o Voodoo3 2000 AGP
+
+ o Voodoo3 2000 PCI
+
+ o Voodoo Banshee
+
+ o Velocity 100/200
+
+ There are many configurations of 3dfx cards on the market. Not all have
+ been tested.
+
+ o 3Dlabs Oxygen GMX 2000 (MX/Gamma based)
+
+Support for the following hardware is underway:
+
+ o Intel i810
+
+ o Matrox G400
+
+ o ATI Rage 128
+
+ o 3dfx Voodoo4 and Voodoo5 series
+
+4. Prerequisite Software
+
+ o XFree86 4.0
+
+ o Linux kernel 2.2.x (later kernels will be supported in the near future,
+ and may be required for some chipsets)
+
+Mesa 3.3 (beta) is included with XFree86 4.0; there is no need to download
+the stand-alone Mesa distribution.
+
+5. X Server Start-up
+
+This section describes the steps needed to start the X server with 3D accel-
+eration support.
+
+5.1 Kernel module
+
+Before starting the X server you must install the correct kernel module for
+your hardware.
+
+This can be done by executing the following as root:
+
+ insmod XXX/drivername.o
+
+For example, on 3dfx hardware, the kernel module is called tdfx.o so you you
+would type insmod XXX/tdfx.o
+
+Verify that the kernel module was installed by checking that /proc/dri/0
+exists.
+
+5.2 XF86Config file
+
+First, the XF86Config file must load the GLX and DRI modules:
+
+ Section "Module"
+ ...
+ # This loads the GLX module
+ Load "glx"
+ # This loads the DRI module
+ Load "dri"
+ EndSection
+
+Next, the DRI section can be used to restrict access to direct rendering.
+
+If you want all of the users on your system to be able to use direct-render-
+ing, then use a simple DRI section:
+
+ Section "DRI"
+ Mode 0666
+ EndSection
+
+This section will allow any user with a current connection to the X server to
+use direct rendering.
+
+If you want to restrict the use of direct-rendering to a certain group of
+users, then create a group for those users by editing the /etc/group file on
+your system. For example, you may want to create a group called xf86dri and
+place two users (e.g., fred and jane) in that group. To do that, you might
+add the following line to /etc/group:
+
+ xf86dri:x:8000:fred,jane
+
+You have to be careful that the group id (8000 in this example) is unique.
+
+Then you would use the following DRI section:
+
+ Section "DRI"
+ Group "xf86dri"
+ Mode 0660
+ EndSection
+
+This would limit access to direct-rendering to those users in the xf86dri
+group (fred and jane in this example). When other users tried to use direct
+rendering, they would fall back to unaccelerated indirect rendering.
+
+[Note that there is a known bug in XFree86 4.0 that prevents some changes to
+the DRI section from taking effect. Until this bug is fixed, if you change
+the DRI section, please also remove the /dev/dri directory with the rm -rf
+/dev/dri command.]
+
+Next, the Device section of the XF86Config file must describe your particular
+hardware. For example, here's the Device section for a 3dfx Voodoo3 card:
+
+ Section "Device"
+ Identifier "Voodoo3"
+ VendorName "3dfx"
+ Driver "tdfx"
+ EndSection
+
+Finally, the Screen section of the XF86Config file may have to be specially
+configured as well. For example, Voodoo3 hardware acceleration is only
+available in 16bpp mode.
+
+ Section "Screen"
+ Identifier "Screen 1"
+ Device "Voodoo3"
+ Monitor "High Res Monitor"
+ DefaultDepth 16
+ Subsection "Display"
+ Depth 16
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ EndSection
+
+If there are errors in the XF86Config file, the X server will log errors to
+the file /var/log/XFree86.0.log
+
+5.3 Memory usage
+
+Using the 3D features of a graphics card requires more memory than when it's
+just used as a 2D device. Double buffering, depth buffering, stencil
+buffers, textures, etc. all require extra graphics memory. These features
+may require four times the memory used for a simple 2D display.
+
+If your graphics card doesn't have a lot of memory (less than 16MB, for exam-
+ple), you may have to reduce your screen size and/or color depth in order to
+use 3D features.
+
+The documentation included with your card should have information about maxi-
+mum screen size when using 3D.
+
+6. Using 3D Acceleration
+
+This section describes how to link your application with libGL.so and verify
+that you are in fact using 3D acceleration.
+
+6.1 libGL.so
+
+Your OpenGL program must link with the libGL.so.1.2 library provided by
+XFree86 4.0. The libGL.so.1.2 library contains a GLX protocol encoder for
+indirect/remote rendering and DRI code for accessing hardware drivers. In
+particular, be sure you're not using libGL.so from another source such as
+Mesa or the Utah GLX project.
+
+Unless it was built in a special way, the libGL.so library does not contain
+any 3D hardware driver code. Instead, libGL.so dynamically loads the appro-
+priate 3D driver during initialization.
+
+Most simple OpenGL programs also use the GLUT and GLU libraries. A source
+for these libraries is listed in the Resources section below.
+
+6.2 Compiling and linking an OpenGL program
+
+A simple GLUT/OpenGL program may be compiled and linked as follows:
+
+ gcc program.c -I/usr/local/include -L/usr/local/lib -L/usr/X11R6/lib -lglut -lGLU -lGL -o program
+
+The -I option is used to specify where the GL/glut.h (and possibly the
+GL/gl.h and GL/glu.h) header file may be found.
+
+The -L options specify where the libglut.so, libGLU.so and X libraries are
+located.
+
+The -lglut -lGLU -lGL arguments specify that the application should link with
+the GLUT, GLU and GL libraries.
+
+6.3 Running your OpenGL program
+
+Simply typing ./program in your shell should execute the program.
+
+If you get an error message such as
+
+ gears: error in loading shared libraries: libGL.so.1: cannot
+ open shared object file: No such file or directory
+
+if means that the libGL.so.1 file is not the right location. Proceed to the
+trouble shooting section.
+
+6.4 glxinfo
+
+glxinfo is a useful program for checking which version of libGL you're using
+as well as which DRI-based driver. Simply type glxinfo and examine the
+OpenGL vendor, renderer, and version lines. Among the output you should see
+something like this:
+
+ OpenGL vendor string: Precision Insight, Inc.
+ OpenGL renderer string: Mesa DRI Voodoo3 20000224
+ OpenGL version string: 1.2 Mesa 3.3 beta
+
+or this:
+
+ OpenGL vendor string: Precision Insight, Inc.
+ OpenGL renderer string: Mesa GLX Indirect
+ OpenGL version string: 1.2 Mesa 3.3 beta
+
+The first example indicates that the 3dfx driver is using Voodoo3 hardware.
+The second example indicates that no hardware driver was found and indirect,
+unaccelerated rendering is being used.
+
+If you see that indirect rendering is being used when direct rendering was
+expected, proceed to the troubleshooting section.
+
+glxinfo also lists all of the GLX-enhanced visuals available. Here you can
+determine which visuals may have depth buffers, stencil buffers, accumulation
+buffers, etc.
+
+6.5 Environment Variables
+
+The libGL.so library recognizes three environment variables. Normally, none
+of them need to be defined. If you're using the csh or tcsh shells, type
+setenv VARNAME value to set the variable. Otherwise, if you're using sh or
+bash, type export VARNAME=value.
+
+ 1. LIBGL_DEBUG, if defined will cause libGL.so to print error and diagnos-
+ tic messages. This can help to solve problems.
+
+ 2. LIBGL_ALWAYS_INDIRECT, if defined this will force libGL.so to always
+ use indirect rendering instead of hardware acceleration. This can be
+ useful to isolate rendering errors.
+
+ 3. LIBGL_DRIVERS_DIR can be used to override the default directory which
+ is searched for 3D drivers. In a typical XFree86 installation, the 3D
+ drivers should be in /usr/X11R6/lib/modules/dri/. This environment
+ variable can be used to specify a different directory. Note that this
+ feature is disabled for set-uid programs.
+
+Mesa-based drivers (this includes most of the drivers listed above) also
+observe many of the existing Mesa environment variables. These include the
+MESA_DEBUG and MESA_INFO variables.
+
+7. General Trouble Shooting
+
+This section contains information to help you diagnose general problems. See
+below for additional information for specific hardware.
+
+7.1 Starting the X server
+
+ 1. Before you start the X server, verify the appropriate 3D kernel module
+ is installed. Type lsmod and look for the appropriate kernel module.
+ For 3dfx hardware you should see tdfx, for example.
+
+ 2. Verify you're running XFree86 4.0 and not an older version. If you run
+ xdpyinfo and look for the following line near the top:
+
+ vendor release number: 4000
+
+ 3. Verify that your XF86Config file (usually found at /etc/X11/XF86Config)
+ loads the glx and dri modules and has a DRI section.
+
+ See the Software Resources section below for sample XF86Config files.
+
+ 4. Examine the messages printed during X server startup and check that the
+ DRM module loaded. Using the Voodoo3 as an example:
+
+ (==) TDFX(0): Write-combining range (0xf0000000,0x2000000)
+ (II) TDFX(0): Textures Memory 7.93 MB
+ (0): [drm] created "tdfx" driver at busid "PCI:1:0:0"
+ (0): [drm] added 4096 byte SAREA at 0xc65dd000
+ (0): [drm] mapped SAREA 0xc65dd000 to 0x40013000
+ (0): [drm] framebuffer handle = 0xf0000000
+ (0): [drm] added 1 reserved context for kernel
+ (II) TDFX(0): [drm] Registers = 0xfc000000
+ (II) TDFX(0): visual configs initialized
+ (II) TDFX(0): Using XFree86 Acceleration Architecture (XAA)
+ Screen to screen bit blits
+ Solid filled rectangles
+ 8x8 mono pattern filled rectangles
+ Indirect CPU to Screen color expansion
+ Solid Lines
+ Dashed Lines
+ Offscreen Pixmaps
+ Driver provided NonTEGlyphRenderer replacement
+ Setting up tile and stipple cache:
+ 10 128x128 slots
+ (==) TDFX(0): Backing store disabled
+ (==) TDFX(0): Silken mouse enabled
+ (0): X context handle = 0x00000001
+ (0): [drm] installed DRM signal handler
+ (0): [DRI] installation complete
+ (II) TDFX(0): direct rendering enabled
+
+ 5. After the X server has started, verify that the required X server
+ extensions are loaded. Run xdpyinfo and look for the following entries
+ in the extensions list:
+
+ GLX
+ SGI-GLX
+ XFree86-DRI
+
+7.2 Linking, running and verifying 3D acceleration
+
+After you've verified that the X server and DRI have started correctly it's
+time to verify that the GL library and hardware drivers are working cor-
+rectly.
+
+ 1. Verify that you're using the correct libGL.so library with ldd. The
+ /usr/lib and /usr/X11R6/lib directories are expected locations for
+ libGL.so.
+
+ Example:
+
+ % ldd /usr/local/bin/glxinfo
+ libglut.so.3 => /usr/local/lib/libglut.so.3 (0x40019000)
+ libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x40051000)
+ libGL.so.1 => /usr/lib/libGL.so.1 (0x40076000)
+ libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x402ee000)
+ libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40301000)
+ libm.so.6 => /lib/libm.so.6 (0x40309000)
+ libc.so.6 => /lib/libc.so.6 (0x40325000)
+ libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40419000)
+ libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404bd000)
+ libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40509000)
+ libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40512000)
+ libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40529000)
+ libvga.so.1 => /usr/lib/libvga.so.1 (0x40537000)
+ libpthread.so.0 => /lib/libpthread.so.0 (0x4057d000)
+ /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
+
+ 2. You may also double check that libGL.so is in fact DRI-capable. Run
+ strings libGL.so.1.2 | grep DRI and look for symbols prefixed with
+ "XF86DRI", such as "XF86DRIQueryExtension".
+
+ 3. To be safe one should run ldconfig after installing libGL.so to be sure
+ the runtime loader will find the proper library.
+
+ 4. Verify that the appropriate 3D driver is in /usr/X11R6/lib/modules/dri/
+ For example, the 3dfx driver will be named tdfx_dri.so.
+
+ 5. Set the LIBGL_DEBUG environment variable. This will cause libGL.so to
+ print an error message if it fails to load a DRI driver. Any error
+ message printed should be self-explanatory.
+
+ 6. Run glxinfo. Note the line labeled "OpenGL renderer string". It
+ should have a value which starts with "Mesa DRI" followed by the name
+ of your hardware.
+
+ 7. Older Linux OpenGL applications may have been linked against Mesa's GL
+ library and will not automatically use libGL.so. In some cases, making
+ symbolic links from the Mesa GL library to libGL.so.1 will solve the
+ problem:
+
+ ln -s libGL.so.1 libMesaGL.so.3
+
+ In other cases, the application will have to be relinked against the
+ new XFree86 libGL.so.
+
+ It is reported that part of the problem is that running ldconfig will
+ silently rewrite symbolic links based on the SONAME field in libraries.
+
+If you're still having trouble, look in the next section for information spe-
+cific to your graphics card.
+
+8. Hardware-Specific Information and Troubleshooting
+
+This section presents hardware-specific information for normal use and trou-
+bleshooting.
+
+8.1 3dfx Voodoo3
+
+8.1.1 Troubleshooting
+
+ o 3D acceleration for Voodoo3 is only supported in the 16 bit/pixel screen
+ mode. Use xdpyinfo to verify that all your visuals are depth 16. Edit
+ your XF86Config file if needed.
+
+8.1.2 Performance
+
+ o Normally, buffer swapping in double-buffered applications is synchro-
+ nized to your monitor's refresh rate. This may be overridden by setting
+ the FX_GLIDE_SWAPINTERNVAL environment variable. The value of this
+ variable indicates the maximum number of swap buffer commands can be
+ buffered. Zero allows maximum frame rate.
+
+ o The glTexEnv mode GL_BLEND is not directly supported by the 3dfx hard-
+ ware. It can be accomplished with a multipass algorithm but it's not
+ implemented at this time. Applications which use that mode, such as the
+ Performer Town demo, may become sluggish when falling back to software
+ rendering to render in that mode.
+
+8.1.3 Known Problems
+
+ o SSystem has problems because of poorly set near and far clipping planes.
+ The office.unc Performer model also suffers from this problem.
+
+8.2 Intel i810
+
+8.3 Matrox G400
+
+8.4 ATI Rage 128
+
+8.5 3DLabs Oxygen GMX 2000
+
+The driver for this hardware was experimental and is no longer being devel-
+oped or supported.
+
+9. Limitations and Known Bugs
+
+9.1 OpenGL
+
+The following OpenGL features are not supported at this time: overlays,
+stereo, hardware-accelerated indirect rendering.
+
+OpenGL-like functionality is provided with the Mesa library. XFree86 4.0
+uses a beta version Mesa 3.3. When newer versions of Mesa are available, the
+3D drivers can be updated without reinstalling XFree86 or libGL.so.
+
+9.2 GLX
+
+The GLX 1.3 API is exported but none of the new 1.3 functions are opera-
+tional.
+
+The new glXGetProcAddressARB function is fully supported.
+
+9.3 Signal Handling
+
+There are several understood, but unresolved problems relating to hardware
+locking and signal handling. Hitting CTRL-z to suspend a 3D application can
+sometimes cause the X server to lock-up if executing device driver code at
+that moment. Also, using a debugger to step through OpenGL/Mesa device
+driver functions code could cause a lock-up. These problems will be fixed in
+the future.
+
+9.4 Scheduling
+
+When you run multiple GL applications at once you may notice poor time slic-
+ing. This is due to an interaction problem with the Linux scheduler which
+will be addressed in the future.
+
+9.5 Bug Database
+
+The DRI bug database which includes bugs related to specific drivers is at
+the SourceForge DRI Bug Database
+
+Please scan both the open and closed bug lists to determine if your problem
+has already been reported and perhaps fixed.
+
+10. Resources
+
+10.1 Software
+
+A collection of useful configuration files, libraries, headers, utilities and
+demo programs is available from http://dri.source-
+forge.net/resources/resources.html
+
+10.2 Documentation
+
+ o General OpenGL information is available at the OpenGL Home Page
+
+ o XFree86 information is available at the XFree86 Home Page
+
+ o Information about the design of the DRI is available from Precision
+ Insight, Inc.
+
+ o Visit the DRI project on SourceForge.net for the latest development news
+ about the DRI and 3D drivers.
+
+10.3 Support
+
+ o The DRI-users mailing list at SourceForge is a forum for people to dis-
+ cuss DRI problems.
+
+ o XXX IHV support?
+
+ o XXX Linux distro support?
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml,v 1.3 2000/03/08 05:38:41 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DRI,v 1.4 2000/03/08 20:39:22 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD b/xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD
index 8bc2bd2c5..f7c6d1ecd 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD
@@ -298,4 +298,4 @@ Many thanks to:
$XConsortium: FreeBSD.sgml /main/12 1996/10/28 05:43:08 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD,v 1.5 2000/02/21 22:44:21 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD,v 1.6 2000/03/01 01:48:05 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.I128 b/xc/programs/Xserver/hw/xfree86/doc/README.I128
index a98ac4725..ba2627684 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.I128
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.I128
@@ -92,4 +92,4 @@ and special help from:
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/I128.sgml,v 1.3 1999/08/28 10:43:32 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.I128,v 1.5 2000/02/21 22:44:22 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.I128,v 1.6 2000/03/01 01:48:05 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.Linux b/xc/programs/Xserver/hw/xfree86/doc/README.Linux
index 1693e5838..de8849c1a 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.Linux
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.Linux
@@ -125,4 +125,4 @@ systems.
$XConsortium: Linux.sgml /main/6 1996/10/28 04:47:37 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Linux,v 3.25 2000/02/21 22:44:22 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Linux,v 3.26 2000/03/01 01:48:05 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.LynxOS b/xc/programs/Xserver/hw/xfree86/doc/README.LynxOS
index 9b40b504e..dd52cc624 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.LynxOS
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.LynxOS
@@ -1,54 +1,50 @@
- README for XFree86 on LynxOS
+ README for XFree86 4.0 on LynxOS
Thomas Mueller
- Last modified on: 30 May 1999
+ 25 February 2000
1. What and Where is XFree86?
-XFree86 is a port of X11R6.3 that supports several versions of Intel-based
+XFree86 is a port of X11R6.4 that supports several versions of Intel-based
Unix. It is derived from X386 1.2, which was the X server distributed with
X11R5. This release consists of many new features and performance improve-
-ments as well as many bug fixes. The release is available as source patches
-against the X Consortium X11R6.3 code, as well as binary distributions for
-many architectures.
+ments as well as many bug fixes.
-See the Copyright Notice in Copyright Notice.
+See the Copyright Notice.
-The sources for XFree86 are available by anonymous ftp from:
+The sources for XFree86 4.0 are available by anonymous ftp from:
-ftp://ftp.XFree86.org/pub/XFree86/current
+ftp://ftp.XFree86.org/pub/XFree86/4.0
-Binaries of XFree86 for LynxOS AT are available from:
+Binaries of XFree86 for LynxOS x86 are available from:
-ftp://ftp.XFree86.org/pub/XFree86/current/binaries/LynxOS
+ftp://ftp.XFree86.org/pub/XFree86/4.0/binaries/LynxOS
-The binaries were built on `LynxOS x86 3.0.1'. Because of changes made to the
-object format they don't run on LynxOS versions earlier than 3.0.0.
+A list of mirror sites is provided by ftp://ftp.XFree86.org/pub/XFree86/MIR-
+RORS
+
+The binaries on the FTP site were built on the latest released LynxOS version
+at the time XFree86 4.0 was released. In this case it is `LynxOS x86 3.0.1'.
+Because of changes made to the object format they don't run on LynxOS ver-
+sions earlier than 3.0.0.
Building of this XFree86 version has never been tested on LynxOS versions
-earlier than 2.4.0. Binaries built on LynxOS 2.4.0 are expected to run on
-2.3.0 as well.
+earlier than 2.5.1.
-XFree86 supports LynxOS on the AT, on the microSPARC and on the PowerPC plat-
-form. X servers are currently available on the AT and microSPARC platform.
-Refer to section Building on microSPARC and PowerPC (section 7., page 1) for
-details on XFree86 on the non-AT platforms.
+XFree86 4.0 supports LynxOS on the x86 and on the PowerPC platform. X servers
+are currently available only on the x86 platform. The X server may work with
+some PowerPC platforms supported by LynxOS though this has not (yet) been
+thoroughly tested.
If you need binaries for other platforms than the one on the XFree86 FTP
-server contact me (tmueller@sysgo.de).
-
-Send email to tmueller@sysgo.de (Thomas Mueller) or XFree86@XFree86.org if
-you have comments or suggestions about this file and we'll revise it.
+server or if you have comments or suggestions about this document contact me
+(<tmueller@sysgo.de>).
2. Installing the Binaries
-Please refer to section "Installing the XFree86 3.3.4 Release" of the Release
-Notes for detailed installation instructions.
-
-If you plan to install XF86Setup you'll have to install X333prog as well
-since XF86Setup checks for the existence of a certain file name pattern which
-is satisfied only if you install the library files from X333prog.
+Please refer to the Installation Document for detailed installation instruc-
+tions.
It may be necessary to increase the process stack limit in order to run
XFree86 on your system. Edit /etc/startab and reboot your system to make the
@@ -60,96 +56,91 @@ Refer to the next section Running XFree86 (section 3., page 1) for further
information on necessary configuration steps before running XFree86 on
LynxOS.
+2.1 Accessing XFree86 manual pages
+
+Include /usr/X11R6/man in the MANPATH environment variable or add the direc-
+tory /usr/X11R6/man to /usr/Lib/man.config
+
3. Running XFree86
This section describes the changes to the LynxOS environment which may be
necessary to successfully run XFree86.
-Read Quick-Start Guide to XFree86 Setup to learn more about how to configure
-XFree86 for your hardware.
-
-3.1 System requirements
-
-A minimum of 16MB of memory is required to run X. If you want to run real-
-world applications you should think of upgrading to 32MB (or more).
-
-3.2 System tuning
+3.1 System tuning
-3.2.1 Tunable parameters
+3.1.1 Tunable parameters
To reasonably run XFree86 you may have to adjust a few system parameters.
On LynxOS 2.5.x and 3.0.x include a line
- #define X_WINDOWS
+ #define X_WINDOWS
in /sys/lynx.os/uparam.h.
-For earlier versions you'll have to edit /usr/include/param.h:
+3.1.2 Adjustment for "nv" driver for NVidia graphics cards
- Tunable Old New
- USR_NFDS number of open files per process 20 64
- NPROC number of tasks 50 150
- NFILES number of open files in system 100 250
- NINODES number of incore inodes (same value as NFILES)
- QUANTUM clock ticks until preemption 64 20
- CACHEBLKS number of cache memory blocks 202 >= 4096
+If you're using the "nv" driver (Riva 128, nVidia TNT, TNT2, GeForce), you
+will have to increase the value of the SMEMS parameter in
+/sys/lynx.os/uparam.h from 10 to 20.
-The new values are those suggested by the LynxOS documentation for their X
-Window package.
+3.1.3 Increase number of ptys
-3.2.2 Adjustment for Riva 128 and Riva TNT driver>
+You should also increase the number of ptys to be able run a couple more
+xterms. You may replace /sys/cfg/pty.cfg with /usr/X11R6/lib/X11/etc/pty.cfg.
-If you're using the nVidia driver (Riva 128, TNT, TNT2) of the SVGA server,
-you will have to increase the value of the SMEMS parameter in
-/sys/lynx.os/uparam.h from 10 to 20."
+3.1.4 MTRR device driver
-3.2.3 Increase number of ptys
+If you're using an Intel PentiumPRO or Pentium II (or higher) class CPU you
+might want to install the MTRR device driver. This driver enables the XFree86
+X server to manipulate the CPU memory type range registers which may improve
+performance on certain systems.
-You should also increase the number of ptys to be able run a couple more
-xterms. You may replace /sys/lynx.os/pty.cfg with
-/usr/X11R6/lib/X11/etc/pty.cfg.
+To install the driver (on LynxOS x86 2.5.0 systems an higher) follow these
+steps:
+
+ # cd /
+ # bash /usr/X11R6/lib/X11/etc/MTRR-Lynx.shar
+ # cd sys/drivers/mtrr
+ # make install
+
+Then add a line
-3.2.4 Kernel build
+ I:../drivers/mtrr/mtrr.cfg
-If you plan to use PS/2 or Bus mice refer to the following section before
-rebuilding the kernel, if not, you should rebuild the kernel now:
+to /sys/lynx.os/CONFIG.TBL and rebuild the kernel (see next section).
+
+3.1.5 Kernel build
+
+If you plan to use a PS/2 mouse to the following sections before rebuilding
+the kernel, if not, you should rebuild the kernel now:
# cd /sys/lynx.os
# make install
# reboot -N
-3.3 Mouse support in XFree86
+3.2 Mouse support in XFree86
XFree86 includes support for PnP mice (see also Mouse Support in XFree86).
The current LynxOS TTY device driver doesn't allow the necessary manipulation
of the RTS line and therefore the support for PnP mice has been disabled for
LynxOS.
-3.4 Bus mouse drivers
-
-Starting with LynxOS AT 2.4.0 LynxOS includes a PS/2 mouse driver. Currently
-this driver is not fully supported by XFree86 (you'll probably have to spec-
-ify the mouse type as Microsoft regardless of real mouse type and in some
-cases you won't have all mouse buttons supported).
-/usr/X11R6/lib/X11/etc/BM-Lynx.shar contains a LynxOS port of the Linux bus
-mouse drivers. To install the drivers unpack the shar archive
+3.3 PS/2 mouse drivers
- # cd /
- # bash /usr/X11R6/lib/X11/etc/BM-Lynx.shar
+LynxOS x86 comes with a PS/2 mouse driver. If it is not currently installed
+on your system install it with /usr/bin/Install.ps2mouse. Older versions of
+this driver contained code to translate the PS/2 mouse protocol to the format
+of a serial mouse, thus you'll have to specify "Microsoft" as the mouse pro-
+tocol format. The mouse driver contained in LynxOS x86 patchlevel 015 (and
+higher) does no longer perform the protocol translation an therefore can be
+defined as "PS/2" protocol format.
-and follow the notes in /BMOUSE.Readme for further installation and configu-
-ration notes.
+3.4 ATC console driver and VT switching
-The XFree86 PS/2 mouse driver works also with MetroLink X 2.3.3.1 as shipped
-with LynxOS AT 2.4.0 unless you have the LynxOS patch 000055-00 installed.
-
-3.5 ATC console driver and VT switching
-
-The XFree86 servers will only run with the default LynxOS console driver,
-sorry for those of you who use the alternative vdt console driver. Currently
-there is no support for virtual terminal switching once the server has
-started.
+Currently there is no support for virtual terminal switching once the server
+has started. Support for this feature may be added in future versions (it
+requires a patch to the vt100 LynxOS terminal driver).
You will need a free console which the X server will use for keyboard input.
You must disable login on at least one of the four virtual terminals in
@@ -164,253 +155,69 @@ to
/dev/atc3:0:default:vt100at:/bin/login
^
-3.6 X Server debug diagnostics output and other VT peculiarities
+3.5 X Server debug diagnostics output and other VT peculiarities
-The XFree86 X servers will produce a lot of diagnostics output on stderr dur-
-ing startup. This output will be lost after the server reached a certain
-point in its console initialization process. You should redirect stdout and
-stderr if you want to analyze the diagnostics produced by the server.
+Output made by the XFree86 X on its stdout or stderr will be lost after the
+server switches to graphics mode. The XFree86 4.0 server stores its output in
+/usr/adm/XFree86.n.log (where n is the screen number).
When the X server is running output made to other consoles will be lost.
After server shutdown the screen contents of other consoles may be inconsis-
tent with what one would expect (i.e. random).
-4. Installing XFree86 manual pages
-
-LynxOS uses cat-able manual pages, and because a doc preparation system is
-definitely not a vital component of a real-time operating system you must
-first install groff-1.09 (or newer). Starting with LynxOS 2.3.0 it should
-compile right out of the box (or better tar archive).
-
-XFree86 manual pages may be installed using
-
- make install.man
-
-The index and whatis database for the XFree86 manual pages will be created
-automatically. If you already have a whatis database or index file in the
-destination directories you should perform a sort/uniq operation to remove
-duplicate entries:
-
- for i in 1 3 5
- do
- rm -f /tmp/tmpfile
- sort /usr/X11R6/man/cat$i/LIST$i | uniq > /tmp/tmpfile
- mv /tmp/tmpfile /usr/X11R6/man/cat$i/LIST$i
- done
- sort /usr/X11R6/man/whatis | uniq > /tmp/tmpfile
- mv /tmp/tmpfile /usr/X11R6/man/whatis
-
-With LynxOS 2.3.0 you should include /usr/X11R6/man in the MANPATH environ-
-ment variable.
-
- bash: MANPATH=$MANPATH:/usr/X11R6/man
-
-The man command of LynxOS 2.2.1 does not support the MANPATH environment
-variable properly. The XFree86 manual pages must be copied (or linked) to the
-standard manual page locations (/usr/man/catx) in order to be read the man
-command:
-
- for i in 1 3 5
- do
- ln -s /usr/X11R6/man/cat$i/*.* /usr/man/cat$i
- cat /usr/X11R6/man/cat$i/LIST$i >> /usr/man/cat$i/LIST$i
- sort -o /usr/man/cat$i/LIST$i /usr/man/cat$i/LIST$i
- cat /usr/X11R6/man/cat$i/whatis$i >> /usr/man/whatis
- done
-
-5. Using XFree86 with Motif
-
-The Motif libraries shipped with LynxOS AT 2.3.0 and 2.4.0 can be used with
-the XFree86 libraries. Follow the steps outlined below after you have
-installed XFree86 and LynxOS Motif on your system.
-
-5.1 Copy Motif files
-
-You must create symbolic links for the Motif libraries and utilities in the
-/usr/X11R6 directory tree.
-
- ln -s /usr/bin/X11/uil /usr/X11R6/bin
- ln -s /usr/lib/libUil.a /usr/X11R6/lib
- ln -s /usr/lib/libMrm.a /usr/X11R6/lib
- ln -s /usr/lib/libXm.a /usr/X11R6/lib
- ln -s /usr/lib/X11/uid /usr/X11R6/lib/X11
- ln -s /usr/include/Xm /usr/X11R6/include
- ln -s /usr/include/Mrm /usr/X11R6/include
- ln -s /usr/include/uil /usr/X11R6/include
-
-The Motif imake-configuration files are part of the LynxOS X Window package.
-They must be copied to the /usr/X11R6 directory tree.
-
- cp /usr/lib/X11/config/Motif.* /usr/X11R6/lib/X11/config
-
-5.2 Motif library patch for LynxOS AT 2.3.0
-
-The XFree86 libraries are compiled with the -mposix compiler option while the
-Motif libraries shipped with LynxOS AT 2.3.0 are not. This incompatibility
-will cause Motif XmFileSelection widgets to be linked with the wrong (i.e.
-POSIX) directory routines. To circumvent this problem apply the following
-patch to the library:
-
- cp /usr/lib/libXm.a /usr/X11R6/lib
- ar x /usr/X11R6/lib/libXm.a Xmos.o
- ar x /lib/libc.a directory.s.o
- ld -r -o x.o Xmos.o directory.s.o
- mv x.o Xmos.o
- ar r /usr/X11R6/lib/libXm.a Xmos.o
-
-This patch is not necessary for LynxOS revisions after 2.3.0.
-
-5.3 X11R6 config file patch
-
-Edit /usr/X11R6/lib/X11/config/lynx.cf and change the definition of HasMotif
-from
-
- #define HasMotif NO
-
-to
-
- #define HasMotif YES
-
-5.4 Motif config file patch
-
-The file Motif.tmpl shipped with LynxOS Motif must be modified to work with
-XFree86. In every reference to UnsharedLibReferences the first argument must
-be changed from
-
- UnsharedLibReferences(<Something>LIB, Arg2, Arg3)
-
-to
-
- UnsharedLibReferences(<Something>, Arg2, Arg3)
+4. Compiling the XFree86 Distribution
-Be sure to apply the change to the file copied to /usr/X11R6/lib/X11/config.
+The next sections contain LynxOS specific notes with respect to the build
+process.
-6. Compiling the XFree86 Distribution
-
-Before trying to rebuild XFree86 from source read Building XFree86 for a
-detailed description of the build process. The next sections contain LynxOS
-specific notes with respect to the build process.
-
-6.1 Disk space requirements
+4.1 Disk space requirements
Currently there is no support for shared libraries in the LynxOS XFree86
port. A complete binary installation along with manual pages will require
-approximately 90-100 MBytes of disk space. To compile the system you will
-need at least 230 MBytes of free disk space.
+approximately 100 MBytes of disk space. To compile the system you will need
+at least 250 MBytes of free disk space.
-6.2 Changes to system environment (LynxOS AT)
+4.2 Changes to system environment (LynxOS x86)
Before compiling the XFree86 distribution you will have to make a few little
adjustments to your system:
- LynxOS AT 2.5
-
- o Create a shell script named /lib/cpp as follows:
-
- #!/bin/sh
- /usr/lib/gcc-lib/i386-unknown-lynxos2.5/2.7-96q1/cpp \
- -traditional "$@"
-
- On other platforms than the AT the paths for the compiler
- support programs are different. You may use
-
- gcc -v
-
- to find out the correct path. Set the file mode of /lib/cpp
- with
-
- # chown root /lib/cpp
- # chmod 755 /lib/cpp
-
- o Modify /lib/liblynx.a. The X servers need the smem_create()
- system call to map the frame buffer into their address
- space. The system call is in liblynx library along with
- other Lynx proprietary calls which (unfortunately) overlap
- with calls in libc. To reduce confusion you should modify
- liblynx as follows:
-
- # mv /lib/liblynx.a /lib/liblynx.a.ORG
- # mkdir /tmp/xx; cd /tmp/xx
- # ar xv /lib/liblynx.a.ORG
- # ar rv /lib/liblynx.a *smem*
- # ranlib /lib/liblynx.a
-
- LynxOS AT 2.4
-
- o Use the CYGNUS GNU-C Compiler to build XFree86. With LynxOS
- 2.4.0 you must execute the shell script /CYGNUS.bash to
- apply the necessary changes to your environment.
-
- o Create a shell script named /lib/cpp as follows:
-
- #!/bin/sh
- /cygnus/94q4-lynxos-x86/lib/gcc-lib/i386-lynx/2.6-94q4/cpp \
- -traditional "$@"
-
- It is possible that future releases use a different path for
- the CYGNUS compiler support programs. You may use
-
- gcc -v
-
- to find out the correct path. Set the file mode of /lib/cpp
- with
-
- # chown root /lib/cpp
- # chmod 755 /lib/cpp
-
- LynxOS AT 2.3
- This has actually not been tested, but the steps for described
- for 2.4 should apply to 2.3 as well.
-
- LynxOS AT 2.2.1
- This has actually never been tested, be prepared that the build
- will fail somewhere!
-
- o Create a shell script named /lib/cpp as follows:
+ o If not already installed on your system create a shell script named
+ /lib/cpp as follows:
- #!/bin/sh
- /usr/local/lib/gcc-cpp -traditional "$@"
+ #!/bin/sh
+ /usr/lib/gcc-lib/i386-unknown-lynxos2.5/2.7-96q1/cpp \
+ -traditional "$@"
- o The loader /bin/ld of LynxOS 2.2.1 does not support the -L
- option which is heavily used by X11R6 makefiles. To work
- around this problem you must install a small wrapper program
- which replaces the original /bin/ld program. Use the follow-
- ing steps to install it:
+ On other platforms than the x86 the paths for the compiler support pro-
+ grams are different. You may use
- # cd xc/programs/Xserver/hw/xfree/etc
- # cc -o ld ld-wrapper.c
- # mv /bin/ld /bin/ld.org
- # mv ld /bin/ld
- # chmod 511 /bin/ld
- # chown root /bin/ld
+ gcc -v
- o Modify system header files as follows:
+ to find out the correct path. Set the file mode of /lib/cpp with
- /usr/include/uio.h
- surrounded by
+ # chown root /lib/cpp
+ # chmod 755 /lib/cpp
- #ifndef _UIO_H
- #define _UIO_H
- ...
- #endif
+ o Modify /lib/liblynx.a. The X servers need the smem_create() system call
+ to map the frame buffer into their address space. The system call is in
+ liblynx library along with other Lynx proprietary calls which (unfortu-
+ nately) overlap with calls in libc. To reduce confusion you should mod-
+ ify liblynx as follows:
- /usr/include/utmp.h
- surrounded by
+ # mv /lib/liblynx.a /lib/liblynx.a.ORG
+ # mkdir /tmp/xx; cd /tmp/xx
+ # ar xv /lib/liblynx.a.ORG
+ # ar rv /lib/liblynx.a *smem*
+ # ranlib /lib/liblynx.a
- #ifndef _UTMP_H
- #define _UTMP_H
- ...
- #endif
+4.3 make World
- /usr/include/unistd.h
- add
+If you have the MTRR device driver installed, add a line
- extern int read();
+ #define HasMTRRSupport YES
-6.3 make World
-
-Read Building XFree86 before trying to rebuild XFree86 from the source dis-
-tribution.
+to the config/cf/host.def file.
You may then issue a
@@ -422,73 +229,36 @@ the XFree86 system) you can install the software using
make install
You must be logged in as super-user (root) when you invoke `make install'.
-Be sure to set your environment to use the same compiler (LynxOS 2.3.0/2.4.0,
-CYGNUS GNU-C) as you did during the `make World'. To install the LinkKit use
-
- make install.linkkit
-
-With LynxOS 2.2.1 programs will not be stripped during installation. This is
-due to a problem with the strip program which shows up when installing across
-file system boundaries.
-
-Refer to section Installing XFree86 manual pages (section 4., page 1) for
-manual page installation.
-
-On LynxOS AT 2.5.0 you may encounter problems with make in deeply nested sub-
-directories (eg core dumps, hangups). In this case update to GNU make version
-3.75 or higher.
-
-7. Building on microSPARC and PowerPC
-
-XFree86 3.3 compiles on LynxOS microSPARC and on LynxOS PPC as well. On the
-microSPARC there is X server support for the colour frame buffers CG3 and CG6
-while on the PPC there is no X server available at this time. Before you
-start the build (on versions earlier than 2.5.0) you must create a symbolic
-link from the CYGNUS gcc to a file named cc somewhere in a directory included
-in your PATH environment variable.
-7.1 Console driver patch for microSPARC
+On LynxOS x86 2.5.0 you may encounter problems with make in deeply nested
+subdirectories (eg core dumps, hangups). In this case update to GNU make ver-
+sion 3.75 or higher.
-Before building on the microSPARC you should install the patch for the con-
-sole driver supplied in xc/programs/Xserver/hw/sunLynx/patch.Console.
-(xc/programs/Xserver/hw/sunLynx/patch.Console-2.4.0 for LynxOS revisions ear-
-lier than 2.5.0). The patch fixes minor problems in the original LynxOS
-driver and adds functionalities to detect the keyboard type and control the
-key click. To create a backup of the original driver and install the patch
-issue the commands
+4.4 Installing XFree86 manual pages
- # cd /
- # tar cf /sys/drivers/console.tar /sys/drivers/console
- # patch -p -E < xc/programs/Xserver/hw/sunLynx/patch.Console
- # cd /sys/drivers/console
- # make install
- # cd /sys/lynx.os
- # make install
- # reboot -a
-
-If you opt not to install the patch you must edit xc/config/cf/lynx.cf and
-change the definition of SparcConsoleDefines from
-
- #define SparcConsoleDefines -DPATCHED_CONSOLE
-
-to
-
- #define SparcConsoleDefines /* -DPATCHED_CONSOLE */
+LynxOS uses cat-able manual pages, and because a doc preparation system is
+definitely not a vital component of a real-time operating system you must
+first install groff-1.09 (or newer).
-7.2 Known Bug of the microSPARC server
+XFree86 manual pages may be installed using
-On the first start of the X server on the microSPARC you will notice that the
-pointer follows mouse movements with a certain delay (especially if you're
-moving the mouse real fast). You will also notice that moving windows with
-certain window managers (eg mwm) is not working correctly. These effects
-should go away on the next server start.
+ make install.man
-The server for monochrome cards builds properly if you enable it in lynx.cf
-but it has never been tested (reports are welcome).
+The index and whatis database for the XFree86 manual pages will be created
+automatically. If you already have a whatis database or index file in the
+destination directories you should perform a sort/uniq operation to remove
+duplicate entries:
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml,v 3.17 1999/08/23 06:38:47 dawes Exp $
+ for i in 1 3 5
+ do
+ rm -f /tmp/tmpfile
+ sort /usr/X11R6/man/cat$i/LIST$i | uniq > /tmp/tmpfile
+ mv /tmp/tmpfile /usr/X11R6/man/cat$i/LIST$i
+ done
+ sort /usr/X11R6/man/whatis | uniq > /tmp/tmpfile
+ mv /tmp/tmpfile /usr/X11R6/man/whatis
- $XConsortium: LynxOS.sgml /main/10 1996/10/28 05:13:07 kaleb $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml,v 3.19 2000/03/03 21:28:08 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.LynxOS,v 3.24 2000/02/21 22:44:23 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.LynxOS,v 3.26 2000/03/04 00:51:29 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.MGA b/xc/programs/Xserver/hw/xfree86/doc/README.MGA
index 2e2d559e2..c4fdff061 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.MGA
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.MGA
@@ -195,4 +195,4 @@ and:
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/MGA.sgml,v 3.9 1999/11/19 13:54:27 hohndel Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.MGA,v 3.13 2000/02/21 22:44:23 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.MGA,v 3.14 2000/03/01 01:48:07 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA b/xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA
index a5a5648fd..594313950 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA
@@ -54,4 +54,4 @@ Riva128, Riva TNT and Riva TNT2.
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NVIDIA.sgml,v 1.2 1999/08/23 06:18:33 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA,v 1.4 2000/02/21 22:44:24 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA,v 1.5 2000/03/01 01:48:07 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.NetBSD b/xc/programs/Xserver/hw/xfree86/doc/README.NetBSD
index a6965b2f1..802e64573 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.NetBSD
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.NetBSD
@@ -1,4 +1,4 @@
- README for XFree86 3.9.18 on NetBSD
+ README for XFree86 4.0 on NetBSD
Rich Murphey, David Dawes, Marc Wandschneider, Mark Weaver, Matthieu Herrb
@@ -15,10 +15,10 @@ See the Copyright Notice.
The sources for XFree86 are available by anonymous ftp from:
-ftp://ftp.XFree86.org/pub/XFree86/snapshots/3.9.18
+ftp://ftp.XFree86.org/pub/XFree86/4.0
Binaries for NetBSD 1.3 and later are available from:
-ftp://ftp.XFree86.org/pub/XFree86/snapshots/3.9.18/binaries/NetBSD
+ftp://ftp.XFree86.org/pub/XFree86/4.0/binaries/NetBSD
A list of mirror sites is provided by ftp://ftp.XFree86.org/pub/XFree86/MIR-
RORS
@@ -30,19 +30,23 @@ XFree86 also supports NetBSD on PC98 machines.
2. Bug Reports for This Document
-Send email to herrb@XFree86.Org (Matthieu Herrb) or XFree86@XFree86.org if
-you have comments or suggestions about this file and we'll revise it.
+Send email to <herrb@XFree86.Org> (Matthieu Herrb) or <XFree86@XFree86.org>
+if you have comments or suggestions about this file and we'll revise it.
-3. New OS dependant features
+3. New OS dependent features
-See the Release Notes for non-OS dependent new features in XFree86 3.9.18.
+See the Release Notes for non-OS dependent new features in XFree86 4.0.
-3.1 New OS dependent features in 3.9.18
+3.1 New OS dependent features in 4.0
+
+ o Preliminary APM support.
+
+3.2 New OS dependent features in 3.9.18
o Soft-booting secondary cards through the int10 BIOS interface is now
possible using the x86emu real mode emulator.
-3.2 New OS dependent features in 3.9.17
+3.3 New OS dependent features in 3.9.17
o Support for silken mouse with the wsmouse protocol has been added.
@@ -51,8 +55,7 @@ See the Release Notes for non-OS dependent new features in XFree86 3.9.18.
4. Installing the Binaries
-Refer to section 5 of the Release Notes for detailed installation instruc-
-tions.
+Refer to the Installation Document for detailed installation instructions.
5. Configuring X for Your Hardware
@@ -84,10 +87,10 @@ Only standard PS/2 mice are supported by this driver. Newest PS/2 mice that
send more than three bytes at a time (especially Intellimouse, or MouseMan+
with a ``3D'' roller) are not supported yet.
-XFree86 3.9.18 also has support for the mouse driver included in the new
-wscons console driver introduced by NetBSD 1.4. Specify ``wsmouse'' as the
-protocol and ``/dev/wsmouse0'' as the device in /etc/XF86Config if you're
-using NetBSD 1.4 with wscons.
+XFree86 4.0 also has support for the mouse driver included in the new wscons
+console driver introduced by NetBSD 1.4. Specify ``wsmouse'' as the protocol
+and ``/dev/wsmouse0'' as the device in /etc/XF86Config if you're using NetBSD
+1.4 with wscons.
See README.mouse for general instruction on mouse configuration in XFree86.
@@ -191,14 +194,14 @@ By default NetBSD include the BSD 4.4 kernel security feature that disable
access to the /dev/mem device when in multi-users mode. But XFree86 servers
can take advantage (or require) linear access to the display memory.
-Most XFree86 3.9.18 card drivers require linear memory access. There are two
+Most XFree86 4.0 card drivers require linear memory access. There are two
ways to allow XFree86 to access linear memory:
The first way is to disable the kernel security feature by adding ``option
INSECURE'' in the kernel configuration file and build a new kernel.
The second way is to install the aperture driver, included in source form in
-xc/programs/Xserver/hw/xfree86/etc/apNetBSD.shar in the XFree86 3.9.18 source
+xc/programs/Xserver/hw/xfree86/etc/apNetBSD.shar in the XFree86 4.0 source
distribution. Unpack it in a new directory of your choice by running:
sh apNetBSD.shar
@@ -245,9 +248,6 @@ to your kernel config file.
8. Rebuilding the XFree86 Distribution
-See INSTALL for instructions on unbundling and building the source distribu-
-tion.
-
You should configure the distribution by editing xc/config/cf/host.def
before compiling. To compile the sources, invoke ``make World'' in the xc
directory.
@@ -318,7 +318,7 @@ Many thanks to all people who contributed to make XFree86 work on *BSD, in
particular, David Dawes, Pace Willison, Amancio Hasty, Christoph Robitschko,
Nate Williams, Rod Grimes, Jack Velte and Michael Smith.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml,v 3.52 2000/02/21 18:05:47 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml,v 3.55 2000/03/03 21:28:09 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.NetBSD,v 3.66 2000/02/21 22:44:24 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.NetBSD,v 3.68 2000/03/04 00:51:30 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.OS2 b/xc/programs/Xserver/hw/xfree86/doc/README.OS2
index d6b9107ce..1b2fe9fea 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.OS2
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.OS2
@@ -686,4 +686,4 @@ Many thanks to:
$XConsortium: OS2.sgml /main/4 1996/03/11 10:46:06 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.OS2,v 3.20 2000/02/21 22:44:25 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.OS2,v 3.21 2000/03/01 01:48:08 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.Oak b/xc/programs/Xserver/hw/xfree86/doc/README.Oak
index f25e07880..9ec345b63 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.Oak
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.Oak
@@ -168,4 +168,4 @@ will work on all ISA boards, VLB ones work flawlessly.
$XConsortium: Oak.sgml /main/8 1996/05/12 20:58:00 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Oak,v 3.21 2000/02/21 22:44:26 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Oak,v 3.22 2000/03/01 01:48:09 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD b/xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD
index d1d094628..728907d23 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD
@@ -1,4 +1,4 @@
- README for XFree86 3.9.18 on OpenBSD
+ README for XFree86 4.0 on OpenBSD
Matthieu Herrb
@@ -13,13 +13,13 @@ ments as well as many bug fixes.
See the Copyright Notice.
-The sources for XFree86 3.9.18 are available by anonymous ftp from:
+The sources for XFree86 4.0 are available by anonymous ftp from:
-ftp://ftp.XFree86.org/pub/XFree86/snapshots/3.9.18
+ftp://ftp.XFree86.org/pub/XFree86/4.0
Binaries for OpenBSD/i386 2.6 and later are available from:
-ftp://ftp.XFree86.org/pub/XFree86/snapshots/3.9.18/binaries/OpenBSD
+ftp://ftp.XFree86.org/pub/XFree86/4.0/binaries/OpenBSD
A list of mirror sites is provided by ftp://ftp.XFree86.org/pub/XFree86/MIR-
RORS
@@ -29,21 +29,28 @@ other architectures (section 8.2, page 1) for details.
2. Bug Reports for This Document
-Send email to herrb@xfree86.org (Matthieu Herrb) or XFree86@XFree86.org if
-you have comments or suggestions about this file and we'll revise it.
+Send email to <herrb@xfree86.org> (Matthieu Herrb) or <XFree86@XFree86.org>
+if you have comments or suggestions about this file and we'll revise it.
-3. New OS dependant features
+3. New OS dependent features
-See the Release Notes for non-OS dependent new features in XFree86 3.9.18.
+See the Release Notes for non-OS dependent new features in XFree86 4.0.
-3.1 New OS dependent features in 3.9.18
+3.1 New OS dependent features in 4.0
+
+ o Multi-thread safe libraries are built by default on OpenBSD 2.6 and
+ later,
+
+ o Preliminary APM support.
+
+3.2 New OS dependent features in 3.9.18
o Support for USB mices has been added on OpenBSD.
o Soft-booting secondary cards through the int10 BIOS interface is now
possible using the x86emu real mode emulator.
-3.2 New OS dependent features in 3.9.17
+3.3 New OS dependent features in 3.9.17
o Silken mouse is supported for serial mices, and, under post 2.6 OpenBSD-
current for PS/2 mices.
@@ -52,8 +59,7 @@ See the Release Notes for non-OS dependent new features in XFree86 3.9.18.
4. Installing the Binaries
-Refer to section 5 of the Release Notes for detailed installation instruc-
-tions.
+Refer to the Installation Document for detailed installation instructions.
5. Configuring X for Your Hardware
@@ -184,9 +190,6 @@ imum amount of disk space. Just unpack it, make the appropriate changes to
the xf86site.def, type ``./mkmf'' and ``make'' to link the server. See
/usr/X11R6/lib/Server/README for more info.
-See INSTALL for instructions on unbundling and building the source distribu-
-tion.
-
You should configure the distribution by editing xc/config/cf/host.def
before compiling. To compile the sources, invoke ``make World'' in the xc
directory.
@@ -226,7 +229,7 @@ Many thanks to all people who contributed to make XFree86 work on *BSD, in
particular, David Dawes, Pace Willison, Amancio Hasty, Christoph Robitschko,
Nate Williams, Rod Grimes, Jack Velte and Michael Smith.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml,v 1.7 2000/02/21 18:05:47 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml,v 1.10 2000/03/03 21:28:10 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD,v 1.9 2000/02/21 22:44:26 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD,v 1.11 2000/03/04 00:51:31 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.P9000 b/xc/programs/Xserver/hw/xfree86/doc/README.P9000
index d59f0433e..278cb7127 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.P9000
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.P9000
@@ -469,4 +469,4 @@ tion, etc. Please send any patches to me (nygren@mit.edu).
$XConsortium: P9000.sgml /main/9 1996/05/12 20:58:05 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.P9000,v 3.39 2000/02/21 22:44:27 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.P9000,v 3.40 2000/03/01 01:48:10 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.S3 b/xc/programs/Xserver/hw/xfree86/doc/README.S3
index e2efa7457..bfdfa4a09 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.S3
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.S3
@@ -810,4 +810,4 @@ force the server to use this address with the MemBase field in the XF86Config
$XConsortium: S3.sgml /main/14 1996/02/21 17:45:58 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.S3,v 3.55 2000/02/21 22:44:28 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.S3,v 3.56 2000/03/01 01:48:11 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.SCO b/xc/programs/Xserver/hw/xfree86/doc/README.SCO
index c03247e4d..c3638ff0b 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.SCO
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.SCO
@@ -549,4 +549,4 @@ site for the binary distribution.
$XConsortium: SCO.sgml /main/11 1996/10/23 11:45:55 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SCO,v 3.30 2000/02/21 22:44:29 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SCO,v 3.31 2000/03/01 01:48:12 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.SOLX86 b/xc/programs/Xserver/hw/xfree86/doc/README.SOLX86
index d4a011f65..41d6ff236 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.SOLX86
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.SOLX86
@@ -228,4 +228,4 @@ danson@lgc.com.
$XConsortium: SOLX86.sgml /main/7 1996/10/28 05:43:28 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SOLX86,v 3.26 2000/02/21 22:44:32 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SOLX86,v 3.27 2000/03/01 01:48:13 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.SVR4 b/xc/programs/Xserver/hw/xfree86/doc/README.SVR4
index 636be92b0..5f7ace269 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.SVR4
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.SVR4
@@ -405,4 +405,4 @@ may be affected too. The problem with the MGA driver is now fixed.
$XConsortium: SVR4.sgml /main/8 1996/10/27 11:06:06 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SVR4,v 3.28 2000/02/21 22:44:32 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SVR4,v 3.29 2000/03/01 01:48:13 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.SiS b/xc/programs/Xserver/hw/xfree86/doc/README.SiS
index 232f7ad7a..1a0e3e210 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.SiS
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.SiS
@@ -1,8 +1,8 @@
Information for SiS Users
- Juanjo Santamarta (santamarta@ctv.es)
+ Juanjo Santamarta (<santamarta@ctv.es>)
- 17 April 1999
+ 5 March 2000
1. Introduction
@@ -22,21 +22,11 @@ The driver supports :
o XAA support (XFree86 Acceleration Architecture)
-2. Supported chips
-
- SiS 530, SiS 86c2x5, SiS 5597/5598, SiS 6326
-
-This driver needs linear framebuffer support in the card. Because this SiS
-86C201 and 86C202 based cards don't work with this driver.
-
-Color expansion is not supported by the engine in 16M-color graphic mode.
-
-3. XF86Config Options
+2. XF86Config Options
The following options are of particular interest for the SiS driver. Each of
-them must be specified in the `svga' driver section of the XF86Config file,
-within the Screen subsections of the depths to which they are applicable (you
-can enable options for all depths by specifying them in the Device section).
+them must be specified in the Device section of the XF86Config file for this
+card.
Option "SetMclk"
This option lets you to modify the memory clocking of your card.
@@ -69,7 +59,19 @@ can enable options for all depths by specifying them in the Device section).
reduces the possibility of glitches and noise on high resolution
modes.
-4. Modelines
+ Option "PciRetry"
+
+ Option "NoAccel"
+ Disables various hardware accelerations.
+
+ VideoRAM size
+ The SiS chips can only directly address 4096K bytes of video RAM.
+ Some video cards using these chips are shipped with additional
+ video RAM. The videoRAM must be explicitly limited to 4096 for
+ those cards. Attempting to use the additional RAM leads to a
+ variety of scrambled screen artifacts.
+
+3. Modelines
When constructing a modeline for use with the Sis driver you'll need to con-
sider several points:
@@ -101,17 +103,14 @@ sider several points:
1600x1200 :
4, 8 bpp at 65Hz Non-interlaced
-5. Troubleshooting
-
-The generic VGA driver don't work with 6326, so XF86Setup can't be used for
-this card. Please use xf86config instead.
+4. Troubleshooting
Some video modes with high dot-clocks don't work at all, resulting on black
screen. Lowering dotclock in that case could solve the problem.
Document based on 3.3 version written by Xavier Ducoin.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml,v 3.6 1999/10/13 04:21:08 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml,v 3.7 2000/03/06 22:59:24 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SiS,v 3.12 2000/02/21 22:44:33 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SiS,v 3.14 2000/03/07 14:55:06 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.Video7 b/xc/programs/Xserver/hw/xfree86/doc/README.Video7
index e033b5514..59bc0b8c2 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.Video7
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.Video7
@@ -99,4 +99,4 @@ Craig Struble (cstruble@acm.vt.edu) Video 7 driver
$XConsortium: Video7.sgml /main/3 1996/02/21 17:46:22 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Video7,v 3.18 2000/02/21 22:44:33 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Video7,v 3.19 2000/03/01 01:48:17 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.WstDig b/xc/programs/Xserver/hw/xfree86/doc/README.WstDig
index 79932095a..6267d100b 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.WstDig
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.WstDig
@@ -193,4 +193,4 @@ WD90C24 specific code. You can reach me (Brad Bosch) at brad@Lachman.com.
$XConsortium: WstDig.sgml /main/5 1996/02/21 17:46:29 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.WstDig,v 3.20 2000/02/21 22:44:34 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.WstDig,v 3.21 2000/03/01 01:48:18 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.agx b/xc/programs/Xserver/hw/xfree86/doc/README.agx
index d59b0527a..eb79b1cb8 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.agx
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.agx
@@ -534,4 +534,4 @@ known whether the clockprobing will work. Some XGA-1 chips may support 16bpp.
$XConsortium: agx.sgml /main/9 1996/10/19 18:03:50 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.agx,v 3.40 2000/02/21 22:44:34 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.agx,v 3.41 2000/03/01 01:48:18 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.apm b/xc/programs/Xserver/hw/xfree86/doc/README.apm
index cfc81b96d..88e2f1ed4 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.apm
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.apm
@@ -1,17 +1,19 @@
Information for Alliance Promotion chipset users
- Henrik Harmsen (Henrik.Harmsen@erv.ericsson.se)
+ Loïc Grenié (<grenie@math.jussieu.fr>), Henrik Harmsen (<Henrik.Harm-
+ sen@erv.ericsson.se>)
- 23 February 1998
+ 6 March 2000
1. Support chipsets
-The apm driver in the SVGA server is for Alliance Promotion (www.alsc.com)
-graphics chipsets. The following chipsets are supported:
+The apm driver in the SVGA server is for Alliance Promotion graphics
+chipsets. The following chipsets are supported:
o 6422
- Old chipset without color expansion hardware (text accel).
+ Old chipset. The driver is still very unstable, including computer
+ crashes. You would prefer using XFree86 3.3.x for this chipset.
o AT24
@@ -34,26 +36,61 @@ server. It has support for the following acceleration:
o Filled rectangles
- o CPU->Screen colour expansion (text accel). Not for 6422.
+ o CPU->Screen image transfers.
- o Hardware cursor
+ o CPU->Screen colour expansion (text accel).
-All in 8, 16 and 32 bpp modes. No 24bpp mode is supported. Also VESA DPMS
-power save mode is fully supported with "standby", "suspend" and "off" modes
-(set with with the "xset dpms" command).
+ o Screen->Screen colour expansion (cached text accel).
-3. Configuration
+ o Mono 8x8 pattern fill. Not for 6422.
-First: Please run the XF86Setup program to create a correct configuration.
+ o Colour 8x8 pattern fill (in 8bpp). Not for 6422.
+
+ o Hardware cursor.
+
+ o Pixmap caching.
+
+All in 8, 16 and 32 bpp modes. In 24bpp mode only Bitblts and Filled rectan-
+gles is supported. Also VESA DPMS power save mode is fully supported with
+"standby", "suspend" and "off" modes (set with with the "xset dpms" command).
+
+3. DGA
+
+Full DGA 2.0 support with framebuffer access and drawing acceleration.
+
+4. Video
+
+A limited hardware support for video decoding on AT24 and AT25/3D. It can
+display an image in YUV colours inside the desktop. There are some more
+exotic formats (YUV 4.1.1, YUV 4.0.0, RGB 8,16.32bpp).
+
+5. Shadow framebuffer
+
+There is a mode, called shadow framebuffer, where the graphics is only used
+to display the images. All rendering is done in memory in a so-called shadow
+framebuffer. This mode is useful if you need lots of reading in the video
+memory. You will have to put
+
+ Option "ShadowFB"
+
+in your XF86Config file.
+
+6. Configuration
+
+First: Please run the xf86config program to create a correct configuration.
You can turn off hardware cursor by inserting the following line in the
Device section of the XF86Config file:
-Option "sw_cursor"
+ Option "SWcursor"
Or turn off hardware acceleration:
-Option "noaccel"
+ Option "noaccel"
+
+Or turn off MMIO
+
+ Option "nolinear"
Please don't specify the amount of video RAM you have or which chipset you
have in the config file, let the driver probe for this. Also please don't put
@@ -62,7 +99,16 @@ grammable clock that can take (almost) any modeline you throw at it. It might
fail at some specific clock values but you should just try a slightly differ-
ent clock and it should work.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml,v 1.2 1999/08/23 06:18:33 dawes Exp $
+7. glide2x
+
+There is support for the XF86Rush extension for use with the glide2x library.
+
+8. Questions
+
+Any questions regarding this driver should be sent to Loïc Grenié. It should
+be possible to add support for the 3210 chipset if someone needs it.
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml,v 1.3 2000/03/08 05:38:43 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.apm,v 1.4 2000/02/21 22:44:35 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.apm,v 1.6 2000/03/08 20:39:22 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.ark b/xc/programs/Xserver/hw/xfree86/doc/README.ark
index 7bf673c01..4584d4c1e 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.ark
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.ark
@@ -205,4 +205,4 @@ releases at the XFree86 web site <URL:http://www.xfree86.org>.
$XConsortium: ark.sgml /main/6 1996/10/28 05:24:04 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.ark,v 3.17 2000/02/21 22:44:35 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.ark,v 3.18 2000/03/01 01:48:20 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.ati b/xc/programs/Xserver/hw/xfree86/doc/README.ati
index f91b29829..f7ee2cc3c 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.ati
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.ati
@@ -576,4 +576,4 @@ driver API of XFree86 4.0.
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/ati.sgml,v 3.29 2000/02/18 12:19:08 tsi Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.ati,v 3.45 2000/02/21 22:44:36 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.ati,v 3.46 2000/03/01 01:48:20 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.chips b/xc/programs/Xserver/hw/xfree86/doc/README.chips
index 161ca8f38..d1bded81c 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.chips
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.chips
@@ -1,13 +1,13 @@
Information for Chips and Technologies Users
- David Bateman (dbateman@eng.uts.edu.au),
- Egbert Eich (Egbert.Eich@Physik.TH-Darmstadt.DE)
+ David Bateman (<dbateman@club-internet.fr>),
+ Egbert Eich (<eich@xfree86.org>)
19th July 1999
1. Introduction
-With the release of XFree86 version 3.9.18, the Chips and Technologies driver
+With the release of XFree86 version 4.0, the Chips and Technologies driver
has been extensively rewritten and contains many new features. This driver
must be considered work in progress, and those users wanting stability are
encouraged to use the older XFree86 3.3.x versions. However this version of
@@ -788,7 +788,7 @@ cause damage.
startx -- -depth 24 -fbbpp 32 8-8-8 RGB truecolor
- however as XFree86 version 3.9.18 allows 32bpp pixmaps to be used
+ however as XFree86 version 4.0 allows 32bpp pixmaps to be used
with framebuffers operating in 24bpp, this mode of operating will
cost performance for no gain in functionality.
@@ -816,8 +816,8 @@ the screen is having problems.
If you are having driver-related problems that are not addressed by this doc-
ument, or if you have found bugs in accelerated functions, you can try con-
tacting the XFree86 team (the current driver maintainer can be reached at
-dbateman@eng.uts.edu.au or Egbert.Eich@Physik.TH-Darmstadt.DE), or post in
-the Usenet newsgroup "comp.windows.x.i386unix".
+<dbateman@club-internet.fr> or <eich@xfree86.org>), or post in the Usenet
+newsgroup "comp.windows.x.i386unix".
7. Disclaimer
@@ -858,7 +858,7 @@ Contributors (In no particular order)
We also thank the many people on the net who have contributed by reporting
bugs and extensively testing this server.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml,v 3.29 1999/08/28 11:18:16 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml,v 3.30 2000/03/05 16:59:11 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.chips,v 3.28 2000/02/21 22:44:37 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.chips,v 3.30 2000/03/07 14:55:07 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.cirrus b/xc/programs/Xserver/hw/xfree86/doc/README.cirrus
index 601376aff..0a1de7aef 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.cirrus
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.cirrus
@@ -887,4 +887,4 @@ Changes since XFree86 3.2:
$XConsortium: cirrus.sgml /main/12 1996/10/28 05:43:32 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.cirrus,v 3.40 2000/02/21 22:44:38 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.cirrus,v 3.41 2000/03/01 01:48:22 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.cyrix b/xc/programs/Xserver/hw/xfree86/doc/README.cyrix
index 8dace0032..76c583475 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.cyrix
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.cyrix
@@ -2,13 +2,12 @@
The XFree86 Project Inc.
- 22 June 1999
+ 7 March 2000
1. Supported hardware
-This driver (as used in the SVGA (VGA256), VGA16 and VGA_Mono servers) sup-
-ports a single chipset `mediagx' that should work on the following Cyrix CPUs
-with integrated graphics:
+This driver supports a single chipset `mediagx' that should work on the fol-
+lowing Cyrix CPUs with integrated graphics:
o MediaGX
@@ -18,63 +17,37 @@ with integrated graphics:
2. Features
- o accelerated
-
- o hardware cursor
-
- o support color depths 1, 4, 8 and 16
+ o Rather sparse (color depth hardcoded to 8)
3. XF86Config Option
Option "sw_cursor"
- disable the hardware cursor.
+ disable the hardware cursor. (Code not verified yet!)
Option "no_accel"
completely disables acceleration. Usually not recommended.
4. Bugs and Limitations
+ o As a first cut at the new design, known problems are everywhere. The
+ console font is corrupted upon exit. The server seems stable if the
+ virtual desktop and resolution size match. I found 1024x768 usable and
+ that's why I released this version. Geeks can have fun with this but
+ NEWBIES should use the 3.3.3.1 release instead!
+
o On some older chipsets, the driver may trigger an illegal instruction
just after probing for the ``scratchpad size''. If this is the case,
- email to hecker@cat.dfrc.nasa.gov with the output of
+ email to <hecker@cat.dfrc.nasa.gov> with the output of
- XF86_SVGA -probeonly -verbose
+ XFree86 -probeonly -verbose
and this will be fixed.
- o There are limitations to the modeline values that can be specified.
- Particularly, the difference between the first two horizontal timings
- (e.g. 640 656, 1024 1048) must be at least 16 and at most 24. The mode-
- line values are not used in the 3.3.4 server since there is a static
- array used to load the registers. The modeline only identifies that a
- particular resolution is desired. The standard VESA modes up to
- 1280x768 are supported. For more specific information, consult the
- source code.
-
- o The 4 colour server is slow due to the VGA banking mode used. Moreover,
- it does not work the way it is run by XF86Setup, which is probably due
- to the timing limitations.
-
- o The 3.3.4 server MAY totally hang the machine at times. It is reported
- to be stable on a BSD platform using twm. It has crashed when using
- resolutions greater than 800x600 on a Linux (Debian based) system using
- wm as the window manager. The safest course is to use the 3.3.3.1
- server instead. Efforts are under way to resolve this issue and provide
- a more robust server under the 4.x release.
-
5. Authors
- o Annius Groenink <Annius.Groenink@cwi.nl>
-
- o Dirk Hohndel <hohndel@XFree86.org>
-
- o Brian Falardeau
-
- o Special thanks to Cyrix and Wyse for helping us with the development of
- this server. Brian, a Cyrix employee, made the 3.3.4 update possible
- since the new 4.0 server has been our top priority.
+ o Richard Hecker <hecker@cat.dfrc.nasa.gov>
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml,v 1.2 1999/08/23 06:18:33 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml,v 1.3 2000/03/08 05:38:43 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.cyrix,v 1.4 2000/02/21 22:44:39 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.cyrix,v 1.6 2000/03/08 20:39:23 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.epson b/xc/programs/Xserver/hw/xfree86/doc/README.epson
index db127bb09..5cb5b5387 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.epson
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.epson
@@ -131,4 +131,4 @@ loaner system and documentation to get things started.
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/epson.sgml,v 1.3 1999/08/28 10:43:33 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.epson,v 1.5 2000/02/21 22:44:39 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.epson,v 1.6 2000/03/01 01:48:24 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.fbdev b/xc/programs/Xserver/hw/xfree86/doc/README.fbdev
index 89cffb804..db8565366 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.fbdev
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.fbdev
@@ -338,4 +338,4 @@ The frame buffer device abstraction was designed by Martin Schaller.
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fbdev.sgml,v 1.2 1999/08/23 06:38:53 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fbdev,v 1.4 2000/02/21 22:44:39 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fbdev,v 1.5 2000/03/01 01:48:24 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.fonts b/xc/programs/Xserver/hw/xfree86/doc/README.fonts
index 36d5ea79c..aac021b95 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.fonts
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.fonts
@@ -2,12 +2,11 @@
Juliusz Chroboczek, Juliusz.Chroboczek@ens.fr
- 14 February 2000
+ 5 March 2000
-This version of XFree86 includes a number of improvements to the handling of
-fonts, including
+XFree86 contains a number of improvements related to fonts, including
- o new Unicode-encoded bitmap fonts;
+ o inclusion of new fonts;
o internationalisation of the scalable font backends (Type 1, Speedo, and
TrueType);
@@ -97,14 +96,16 @@ the two standards are always equivalent, and this document uses the terms
When used in X11, Unicode-encoded fonts should have the last two fields of
their XLFD set to `iso10646-1'.
-2. Unicode-encoded bitmap fonts
+2. New fonts
+
+2.1 Bitmap fonts
XFree86 includes two new Unicode-encoded fonts with a large collection of
non-ideographic glyphs. While it is possible to use these fonts as main
fonts, applications may also use them as fallbacks when a given glyph is not
available in the current font.
-2.1 The Unicode `fixed' font
+2.1.1 The Unicode `fixed' font
The font file
@@ -134,7 +135,7 @@ with XLFD
The standard aliases `fixed' and `6x13' still point at the ISO 8859-1 ver-
sions of the font.
-2.2 The ClearlyU Unicode font
+2.1.2 The ClearlyU Unicode font
The ClearlyU font set of fonts provides a set of 12pt, 100dpi proportional
fonts with many of the glyphs needed for Unicode text. Together, the fonts
@@ -158,6 +159,44 @@ Additional ClearlyU fonts include
-mutt-ClearlyU PUA-medium-r-normal--17-120-100-100-p-111-iso10646-1
+2.2 Scalable fonts
+
+XFree86 includes the ``Lucidux'' family of Type 1 fonts. This family con-
+sists of the fonts ``Lucidux Serif'', with XLFD
+
+ -b&h-lucidux serif-medium-*-normal--*-*-*-*-p-*-*-*
+
+``Lucidux Sans'', with XLFD
+
+ -b&h-lucidux sans-medium-*-normal--*-*-*-*-p-*-*-*
+
+and ``Lucidux Mono'', with XLFD
+
+ -b&h-lucidux mono-medium-*-normal--*-*-*-*-m-*-*-*
+
+Each of these fonts currently comes in Roman and oblique variants (bold vari-
+ants will be included in a future release) and has 337 glyphs covering the
+basic ``ASCII'' glyph set, the Latin 1 glyph set, as well as the ``Extended
+Latin'' glyph set. In particular, these fonts include all the glyphs needed
+for ISO 8859 parts 1, 2, 3, 4, 9 and 15.
+
+The Lucidux fonts are original designs by Charles Bigelow and Kris Holmes.
+Lucidux fonts include seriffed, sans-serif, and monospaced styles which share
+the same stem weight, x-height, capital height, ascent and descent. Lucidux
+fonts harmonise with Lucida (R) fonts of the same vertical proportions and
+weights. The character width metrics of Lucidux roman fonts match those of
+core fonts bundled with several window systems.
+
+Each PFA file has a copy of the license terms in PS comment lines. The
+license terms are also included in the file COPYRIGHT.BH for convenience, and
+in the License document.
+
+The design and font outlines were donated by Charles Bigelow and Kris Holmes
+from Bigelow and Holmes Inc., and the hinting was donated by Berthold Horn
+and Blenda Horn from Y&Y, Inc. For more information, please contact
+<design@bigelowandholmes.com> or <sales@yandy.com>, or consult Y&Y's web site
+<URL:http://www.yandy.com>.
+
3. Internationalisation of scalable font backends.
The scalable font backends (Type 1, Speedo, TrueType) can now automatically
@@ -730,7 +769,7 @@ used for horizontal text (e.g. the CMap `KSC-EUC-H' will be used, but not
`KSC-EUC-V'). This limitation is due to the fact that the core X11 protocol
only provides support for horizontal writing.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.6 2000/02/14 19:20:44 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.7 2000/03/06 22:59:25 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fonts,v 1.7 2000/02/21 22:44:40 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fonts,v 1.9 2000/03/07 14:55:08 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.i740 b/xc/programs/Xserver/hw/xfree86/doc/README.i740
index 6020b7e09..bbdafe1db 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.i740
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.i740
@@ -6,16 +6,16 @@
1. Supported Hardware
- o Intel 740 based cards
+ o Intel 740 based cards.
2. Features
- o Full support for 8, 15, 16, 24 and 32 bit per pixel depths.
+ o Full support for 8, 15, 16, and 24 bit pixel depths.
o Hardware cursor support to reduce sprite flicker.
o Hardware accelerated 2D drawing engine support for 8, 15, 16 and 24 bit
- per pixel depths.
+ pixel depths.
o Support for high resolution video modes up to 1600x1200.
@@ -29,7 +29,8 @@
3. Technical Notes
- o Hardware acceleration is not possible in 32 bit per pixel depth.
+ o Hardware acceleration is not possible when using the framebuffer in 32
+ bit per pixel format.
o Interlace modes cannot be supported.
@@ -118,10 +119,11 @@ card. The only lines you need in the "Device" section of your XF86Config
file are:
Section "Device"
- Identifier "i740"
+ Identifier "Intel i740"
+ Driver "i740"
EndSection
-or let xf86config or XF86Setup do this for you.
+or let xf86config do this for you.
However, if you have problems with auto-detection, you can specify:
@@ -135,15 +137,20 @@ However, if you have problems with auto-detection, you can specify:
6. Driver Options
- o "hw_cursor" - request hardware cursor (default)
+ o "NoAccel" - Turn off hardware acceleration
- o "sw_cursor" - software cursor only
+ o "SWCursor" - Request a software cursor (hardware is default)
- o "no_accel" - software rendering only
+ o "SDRAM" - Force the use of SDRAM timings
- o "sgram" - force the use of SGRAM timing info
+ o "SGRAM" - Force the use of SGRAM timings
- o "sdram" - force the use of SDRAM timing info
+ o "SlowRam" - Force the use of slower ram timings
+
+ o "Dac6Bit" - Force the use of a 6 Bit Dac (8 Bit is the default)
+
+ o "UsePIO - Force the use of programmed IO (Memory mapped is the
+ default)
Note: the i740 X server should automatically detect whether your card has
SGRAM or SDRAM. Use the "sgram" and "sdram" options if it is incorrectly
@@ -151,12 +158,14 @@ detected.
7. Known Limitations
- o Certain drawing operations are very slow when using 24 bit per pixel
- depth mode. We hope to fix this in a future release.
+ o Certain drawing operations are very slow when using 24 bit pixel depth
+ mode.
8. Author
- o Kevin E. Martin <kevin@precisioninsight.com>
+ o Original version by Kevin E Martin <kevin@precisioninsight.com>
+
+ o Daryll Strauss <daryll@precisioninsight.com>
This driver was donated to The XFree86 Project by:
@@ -166,7 +175,7 @@ This driver was donated to The XFree86 Project by:
http://www.precisioninsight.com
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml,v 1.2 1999/08/23 06:18:34 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml,v 1.3 2000/03/04 00:26:30 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.i740,v 1.4 2000/02/21 22:44:40 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.i740,v 1.6 2000/03/04 00:51:32 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.i810 b/xc/programs/Xserver/hw/xfree86/doc/README.i810
new file mode 100644
index 000000000..05b5759a8
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.i810
@@ -0,0 +1,110 @@
+ Information for i810 Users
+
+ Precision Insight, Inc.
+
+ 3 March 2000
+
+1. Supported Hardware
+
+ o Intel 810 motherboards:
+
+ o i810,
+
+ o i810-dc100,
+
+ o i810e
+
+2. Features
+
+ o Full support for 8, 15, 16, and 24 bit pixel depths.
+
+ o Hardware cursor support to reduce sprite flicker.
+
+ o Hardware accelerated 2D drawing engine support for 8, 15, 16 and 24 bit
+ pixel depths.
+
+ o Support for high resolution video modes up to 1600x1200.
+
+ o Fully programmable clock supported.
+
+ o Robust text mode restore for VT switching.
+
+3. Technical Notes
+
+ o Hardware acceleration is not possible when using the framebuffer in 32
+ bit per pixel format, and this mode is not supported by this driver.
+
+ o Interlace modes cannot be supported.
+
+ o This driver currently only works for Linux/ix86, and normal use requires
+ the agpgart.o kernel module, included in Linux kernels 2.3.42 and
+ higher.
+
+4. Reported Working Video Cards
+
+ o Intel evaluation hardware - i810, i810-dc100 and i810e.
+
+ o Tyan Tomcat Motherboard.
+
+ o HappyPC set-top box.
+
+5. Configuration
+
+The driver auto-detects all device information necessary to initialize the
+card. The only lines you need in the "Device" section of your XF86Config
+file are:
+
+ Section "Device"
+ Identifier "Intel i810"
+ Driver "i810"
+ EndSection
+
+or let xf86config do this for you.
+
+However, if you have problems with auto-detection, you can specify:
+
+ o DacSpeed - in MHz
+
+ o MemBase - physical address of the linear framebuffer
+
+ o IOBase - physical address of the memory mapped IO registers
+
+In order to use most resolutions, it is necessary to install the 'agpgart.o'
+module. You will probably have to compile the module yourself (see the notes
+in the module).
+
+Note: the i810 driver detects whether your motherboard has display cache
+video memory. This memory is has reduced bandwidth compared to normal system
+memory, and isn't used by the server. The main function of this memory is
+for ancillary buffers (eg. z buffer) in a forthcoming 3d capable server.
+
+6. Driver Options
+
+ o "NoAccel" - Turn off hardware acceleration
+
+ o "SWCursor" - Request a software cursor (hardware is default)
+
+ o "Dac6Bit" - Force the use of a 6 Bit Dac (8 Bit is the default)
+
+7. Known Limitations
+
+ o No 3D support in this release.
+
+ o Running two X servers on different VTs is not supported at this time.
+
+8. Author
+
+ o Keith Whitwell
+
+This driver was donated to The XFree86 Project by:
+
+ Precision Insight, Inc.
+ Cedar Park, TX
+ USA
+
+http://www.precisioninsight.com
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/i810.sgml,v 1.2 2000/03/04 00:00:30 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.i810,v 1.3 2000/03/04 00:51:32 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.isc b/xc/programs/Xserver/hw/xfree86/doc/README.isc
index 4fdbf4747..43c6ff8a7 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.isc
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.isc
@@ -2,7 +2,7 @@
Michael Rohleder
- 06 March 1999
+ 05 March 2000
1. X11R6/XFree86 on Interactive Unix
@@ -27,6 +27,11 @@ consuming if you want to build X11-clients with X11R6. Best you mix X11R6
Server with X11R5 and X11R4 clients. And only compile clients who need the
new facilities provided in the X11R6 Libraries against them.
+ Please note:
+ XFree86 Version 4.0 will be the last version which is known
+ to compile on Interactive Unix.
+ I've only tested this version on Interactive Unix, Version 4.1mu.
+
2. Things needed for compiling the sources
gcc
@@ -312,105 +317,53 @@ Please add the following at the bottom of math.h, before the last #endif
3Dlabs GLINT Permedia rev 1
3Dlabs GLINT Delta rev 1
-6. XKeyboard Extension
-
- o Sample Setup ...
-
- Here is a sample XKeyboard Definition to include inside the Keyboard
- Section of your XF86Config File.
-
- Xkbkeycodes "xfree86"
- /* XkbSymbols "us(pc101)+de_nodead" */
- /* This has changed between 3.1.2E and 3.1.2F */
- /* it is now: */
- XkbSymbols "us(pc102)+de(nodeadkeys)"
- XkbTypes "default"
- XkbCompat "default"
- XkbGeometry "pc"
-
- or you could use this one with the new Options:
-
- XkbRules "xfree86"
- XkbModel "pc102"
- XkbLayout "de"
- XkbVariant "nodeadkeys"
-
-7. Multibuffer Extension
+6. Multibuffer Extension
This is an obsolete Extension. Anyway, if you want to include this Extension
inside your build, you have to add: #define BuildMultibuffer YES
inside xf86site.def Please note, this Extension should be disabled when
building the Loader Server.
-8. Default Definitions
+7. Default Definitions
These are default options defined inside isc.cf. You can redefine them
inside host.def.
- /* Disable the use of /var/X11 */
- #ifndef HasVarDirectory
- #define HasVarDirectory NO
- #endif
+Here is a sample host.def (the one I use for XFree86 4.0):
- /* Use mmap Driver */
- #ifndef HasSVR3mmapDrv
- # define HasSVR3mmapDrv YES
- #endif
+ /* Disable the use of /var/X11 and /etc/X11 */
+ #define HasVarDirectory NO
+ #define UseEtcX11 NO
/* Use inline Math from linux ;-) package inline-math-2.6.tar.gz */
/* should be available on your favorite linux ftp */
- #ifndef UseInlineMath
# define UseInlineMath YES
- #endif
/* Use cbrt from liboptm.a (Interactive icc Compiler) */
- #ifndef HasCbrt
# define HasCbrt YES
- #endif
/* Use GNUs MallocLibrary (and the Location for the Lib) */
- #ifndef UseGnuMalloc
# define UseGnuMalloc YES
- #endif
-
- /* Install Zlib Headers - used in lib/zlib/Imakefile */
- #ifndef OsNeedZlibHeaders
- # define OsNeedZlibHeaders YES
- #endif
/* Expand Manual Pages (needs S5L) */
- #ifndef ExpandManNames
# define ExpandManNames YES
- #endif
/* if you have groff or the TextProcessingWorkbench - don't preformat*/
- #ifndef FormattedManPages
# define FormattedManPages NO
- #endif
-
- #ifndef HasSgmlFmt /* HasLinuxDoc */
- # define HasSgmlFmt YES
- #endif
/* XF86Setup Util */
- #ifndef HasTk
- #define HasTk YES
- #define HasTcl YES
- #endif
-
- #ifndef HasPosixRegex /* Need extra/regex since 3.9Ns */
- #define HasPosixRegex NO
- #endif
+ # define HasTk YES
+ # define HasTcl YES
- #ifndef DoLoadableServer
- #define DoLoadableServer YES
- #endif
+ /* use doctools */
+ # define HasSgmlFmt YES
+ # define BuildAllDocs YES
+ # define BuildLinuxDocText NO
+ # define BuildLinuxDocPS NO
- #ifndef CpuOption
- #define CpuOption -mpentium
- #endif
+ #define GlxBuiltInMesa YES
-9. Installation
+8. Installation
After your make World BOOTSTRAPCFLAGS="... succeed,
@@ -425,10 +378,6 @@ another filesystem.
to install the compressed nroff versions of the manual pages into
/usr/X11R6/man. This directory will be generated if it doesn't exist.
- make install.linkkit
-
-to install the server binary LinkKit into /usr/X11R6/lib/Server.
-
You should tune the Kernel using the command-file
/usr/X11R6/lib/X11/etc/xf86install
@@ -468,26 +417,13 @@ You also should increase MAXUMEM to its maximum, else programs may die with:
You could do this automatically with menu entry no. 5.
-10. Using ...
+9. Using ...
o Xprt:
The new Xprint Server is configured to use lpr as its print helper so
you have to install and configure lpr to use Xprt.
- o Keyboard:
-
- You don't need any modmap-File to get your keyboard working with any
- iso-8859-1 Font. Simply enable
-
- o LeftAlt Meta
-
- o RightAlt ModeShift
-
- o RightCtl Compose
-
- in your XF86Config - Section "Keyboard"
-
o xpcterm:
if you want to get the German 'Umlaut' inside your ISC X11R4 client xpc-
@@ -544,13 +480,13 @@ You could do this automatically with menu entry no. 5.
This message either isn't critical. Interactive doesn't support
this kind of connection.
-11. Acknowledgements
+10. Acknowledgements
All thanks should go to the members of the XFree86 Team for their great work
and the X Consortium for their Public Release of X11R6, as to all who con-
tribute to this excellent piece of free software.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml,v 3.22 1999/08/28 10:43:33 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml,v 3.24 2000/03/06 22:59:25 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.isc,v 3.34 2000/02/21 22:44:40 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.isc,v 3.37 2000/03/07 14:55:09 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.mouse b/xc/programs/Xserver/hw/xfree86/doc/README.mouse
index 29783cc73..9f2678dd7 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.mouse
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.mouse
@@ -6,7 +6,7 @@
1. Introduction
-This document describes mouse support in XFree86 3.9.18.
+This document describes mouse support in XFree86 4.0.
Mouse configuration has often been mysterious task for novice users. How-
ever, once you learn several basics, it is straightforward to write the mouse
@@ -406,8 +406,7 @@ too.
5.2 ZAxisMappping
-This option maps the Z axis (wheel) motion to a pair of buttons or to another
-axis.
+This option maps the Z axis (wheel) motion to buttons or to another axis.
Option "ZAxisMapping" "X"
Option "ZAxisMapping" "Y"
@@ -423,10 +422,21 @@ used and the buttons N1 or N2 actually exists in the mouse, their actions
won't be detected by the X server.
The last example is useful for the mouse with two wheels of which the second
-wheel is used to generate horizontal scroll action. The motion of the second
-wheel will be mapped to the buttons N3, for the negative direction, and N4,
-for the positive direction. If the buttons N3 and N4 actually exist in this
-mouse, their actions won't be detected by the X server.
+wheel is used to generate horizontal scroll action, and the mouse which has a
+knob or a stick which can detect the horizontal force applied by the user.
+The motion of the second wheel will be mapped to the buttons N3, for the neg-
+ative direction, and N4, for the positive direction. If the buttons N3 and
+N4 actually exist in this mouse, their actions won't be detected by the X
+server.
+
+NOTE #1: horizontal movement may not always be detected by the current ver-
+sion of the XFree86 X servers, because there appears to be no accepted stan-
+dard as to how the horizontal direction is encoded in mouse data.
+
+NOTE #2: Some mice think left is the negative horizontal direction, others
+may think otherwise. Moreover, there are some mice whose two wheels are both
+mounted vertically, and the direction of the second vertical wheel does not
+match the first one's.
Currently this option can not be set in the XF86Setup program. You need to
edit the XF86Config file by hand to add this option.
@@ -843,7 +853,7 @@ This can be done by the following command:
xmodmap -e "pointer = 1 6 3 2 4 5"
-After this command is run, the correspondance between the buttons and button
+After this command is run, the correspondence between the buttons and button
numbers will be as shown in the following table.
Physical Buttons Reported as:
@@ -869,7 +879,7 @@ the following InputDevice section.
The IntelliMouse Explorer has 5 buttons, thus, you should give "7" to the
Buttons option if you want to map the wheel movement to buttons (6 and 7).
-With this configuration, the correspondance between the buttons and button
+With this configuration, the correspondence between the buttons and button
numbers will be as follows:
Physical Buttons Reported as:
@@ -915,7 +925,7 @@ have the following InputDevice section.
The movement of the first wheel is mapped to the button 4 and 5. The second
wheel's movement will be reported as the buttons 6 and 7.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml,v 1.9 2000/02/12 20:45:20 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml,v 1.11 2000/03/01 00:25:23 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.mouse,v 1.8 2000/02/21 22:44:41 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.mouse,v 1.9 2000/03/01 01:48:26 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.neomagic b/xc/programs/Xserver/hw/xfree86/doc/README.neomagic
index 636e4d921..ae3b2b005 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.neomagic
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.neomagic
@@ -195,4 +195,4 @@ http://www.precisioninsight.com
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/neomagic.sgml,v 1.1 1999/08/23 06:59:39 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.neomagic,v 1.2 2000/02/21 22:44:42 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.neomagic,v 1.3 2000/03/01 01:48:26 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.r128 b/xc/programs/Xserver/hw/xfree86/doc/README.r128
index 138c77d7d..ff7f6a56d 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.r128
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.r128
@@ -11,7 +11,7 @@
2. Features
o Full support (including hardware accelerated 2D drawing) for 8, 15, 16,
- 24, and 32 bit per pixel depths.
+ 24 bit pixel depths.
o Hardware cursor support to reduce sprite flicker.
@@ -44,11 +44,11 @@ card. The only lines you need in the "Device" section of your XF86Config
file are:
Section "Device"
- Identifier "Rage 128"
- Driver "r128"
+ Identifier "Rage 128"
+ Driver "r128"
EndSection
-or let xf86config or XF86Setup do this for you.
+or let xf86config do this for you.
However, if you have problems with auto-detection, you can specify:
@@ -74,31 +74,31 @@ However, if you have problems with auto-detection, you can specify:
7. Known Limitations
- o None
+ o DGA is not supported yet
8. Authors
-The XFree86 3.9 driver was ported from XFree86 3.3 and enhanced by:
+The XFree86 4 driver was ported from XFree86 3.3.x and enhanced by:
o Rickard E. (Rik) Faith <faith@precisioninsight.com>
o Kevin E. Martin <kevin@precisioninsight.com>
-The XFree86 3.9 driver was funded by ATI and was donated to The XFree86 Pro-
-ject by:
+The XFree86 4 driver was funded by ATI and was donated to The XFree86 Project
+by:
Precision Insight, Inc.
Cedar Park, TX
USA
-The XFree86 3.3 driver used for the port was written by:
+The XFree86 3.3.x driver used for the port was written by:
o Rickard E. (Rik) Faith <faith@precisioninsight.com>
o Kevin E. Martin <kevin@precisioninsight.com>
-The XFree86 3.3 driver was funded by ATI and was donated to The XFree86 Pro-
-ject by Precision Insight, Inc. It was based in part on an earlier driver
+The XFree86 3.3.x driver was funded by ATI and was donated to The XFree86
+Project by Precision Insight, Inc. It was based in part on an earlier driver
that was written by:
o Alan Hourihane <alanh@fairlite.demon.co.uk>
@@ -116,7 +116,7 @@ http://www.precisioninsight.com
http://www.suse.com
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml,v 1.4 2000/01/24 19:38:30 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml,v 1.7 2000/03/08 15:14:48 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.r128,v 1.5 2000/02/21 22:44:42 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.r128,v 1.10 2000/03/08 20:39:23 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.rendition b/xc/programs/Xserver/hw/xfree86/doc/README.rendition
index 98aa7482f..71411f8ba 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.rendition
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.rendition
@@ -8,8 +8,8 @@
All cards based on the V1000 or the V2x00 should be supported. The server was
tested on a miroCRYSTAL VRX (V1000), Intergraph Intense-100 3D (V1000), Dia-
-mond Stealth II S220 (V2100), Hercules Thriller3D (V2200) and Innovision War-
-rior3D (V2200).
+mond Stealth II S220 (V2100), Hercules Thriller3D (V2200), Innovision War-
+rior3D (V2200) and Genoa V-Raptor (v2200).
2. Limitations
@@ -81,15 +81,41 @@ revert back to software cursor.
poses. This might change before final XFree86 4.0 release. Safe
to disable if you experience problems during startup of X-server.
+ Option "ShadowFB"
+ If this option is enabled, the driver will cause the CPU to do
+ each drawing operation first into a shadow frame buffer in system
+ virtual memory and then copy the result into video memory. If
+ this option is not active, the CPU will draw directly into video
+ memory. Enabling this option is beneficial for those systems
+ where reading from video memory is, on average, slower than the
+ corresponding read/modify/write operation in system virtual mem-
+ ory. This is normally the case for PCI or AGP adapters, and, so,
+ this option is enabled by default unless acceleration is enabled.
+
+ Option "Rotate"
+ The option expect a value "CW" for clockwise or "CCW" for coun-
+ terclockwise rotation of the screen. This is useful when you need
+ more height then width on the screen. Desktop publishing is one
+ example where a monitor could display the whole page at once on a
+ monitor laying on the side. Notice that this option requires
+ "ShadowFB" and automatically enable it. It also disables the
+ acceleration. The option is not activated by default.
+
6. News in this release
o Acceleration! Disabled for the moment.
-7. Major fixes in this release
+7. Major changes in this release
+
+ o ShadowFB support added
o To be determined before final release.
-8. Known problems in current driver
+8. Bugfixes
+
+ o 8bpp finally works correctly again
+
+9. Known problems in current driver
o The acceleration code hangs the computer during X-server startup.
@@ -103,13 +129,13 @@ revert back to software cursor.
around. V2x00 does not exhibit this problem. Probably a bug in the
driver rather than a limitation of the chip.
-9. Work in progress (not finished in time for release)
+10. Work in progress (not finished in time for release)
o Acceleration is disabled for the moment. If you want to play with it
enable the "USE_ACCEL" define in rendition.c file! Beware as it has sev-
eral bugs left to clear out before if is stable for general use.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml,v 1.6 2000/01/24 19:38:30 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml,v 1.8 2000/03/01 23:54:34 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.rendition,v 1.7 2000/02/21 22:44:42 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.rendition,v 1.9 2000/03/04 00:51:33 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.s3virge b/xc/programs/Xserver/hw/xfree86/doc/README.s3virge
index f7906e79d..86449d4d8 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.s3virge
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.s3virge
@@ -6,7 +6,7 @@
1. Supported hardware
-The s3virge driver in XFree86 3.9.18 supports the S3 ViRGE, ViRGE DX, GX, MX,
+The s3virge driver in XFree86 4.0 supports the S3 ViRGE, ViRGE DX, GX, MX,
MX+, and VX chipsets. A majority of testing is done on ViRGE DX chips, mak-
ing them the most stable to date. This release has improved support for 24
bit color depths and resolves all the known issues with Netscape and other
@@ -62,4 +62,4 @@ tact our support email address <XFree86@Xfree86.org>
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/s3virge.sgml,v 1.2 1999/07/10 12:17:25 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.s3virge,v 1.3 2000/02/21 22:44:42 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.s3virge,v 1.4 2000/03/01 01:48:27 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.trident b/xc/programs/Xserver/hw/xfree86/doc/README.trident
index f1b0814cb..304ccb501 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.trident
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.trident
@@ -177,4 +177,4 @@ wait states etc. on the card and in the BIOS setup.
$XConsortium: trident.sgml /main/11 1996/10/28 04:24:08 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.trident,v 3.37 2000/02/21 22:44:43 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.trident,v 3.38 2000/03/01 01:48:28 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.tseng b/xc/programs/Xserver/hw/xfree86/doc/README.tseng
index 119f0c5d0..9ef862786 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.tseng
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.tseng
@@ -1014,4 +1014,4 @@ incomplete):
$XConsortium: tseng.sgml /main/6 1996/10/27 11:06:09 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.tseng,v 3.40 2000/02/21 22:44:43 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.tseng,v 3.41 2000/03/01 01:48:28 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/RELNOTES b/xc/programs/Xserver/hw/xfree86/doc/RELNOTES
index 3d35f61aa..1d5fc91a6 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/RELNOTES
+++ b/xc/programs/Xserver/hw/xfree86/doc/RELNOTES
@@ -1,143 +1,79 @@
- Release Notes for XFree86[tm] 3.9.18
+ Release Notes for XFree86[tm] 4.0
The XFree86 Project, Inc
- 21 February 2000
+ 7 March 2000
Abstract
This document contains some information about the features present
- in XFree86 3.9.18 and their status.
-
-1. Summary of new features in 3.9.18 compared with 3.9.17.
-
-This section contains a brief summary of what has changed since the previous
-snapshot. Unfortunately, only a small number of changes are listed here.
-For detailed information, refer to the CHANGELOG file in the xc/pro-
-grams/Xserver/hw/xfree86 directory in the source tree. The sections that
-follow this one have details of features that are new to the pre-4.0 snapshot
-series.
-
- o The NVIDIA (nv) driver now uses MMIO for VGA port access and has DDC
- support.
-
- o The 8+24 support used by the Matrox (mga) and 3Dlabs (glint) drivers is
- now a non-destructive overlay.
-
- o The Xinerama extension has been completely rewritten for improved per-
- formance and correctness.
-
- o The server can now load/initialise extension modules that it doesn't
- have built-in knowledge of.
-
- o More PS/2 mice (Microsoft IntelliMouse Explorer, Genius NetScroll Mouse
- Optical, IBM ScrollPoint) and serial PnP mice (A4 Tech 4D/4D+, MouseSys-
- tems SmartScroll, Logitech Cordless MouseMan Wheel, 8D Scroll mouse) are
- recognized and supported. USB mice support is also available in FreeBSD
- and OpenBSD.
-
- o A DPS extension for XFree86 is currently under development. The DPS
- client library is now part of the XFree86 source tree; the extension
- code itself, however, cannot be integrated for licensing reasons and is
- distributed separately. For more information, please consult the DPS
- site at SourceForge <URL:http://dps.sourceforge.net>.
-
- o The "apm" driver (Alliance Pro Motion) has been updated. Support for
- the AT24 has been added in this release, and acceleration has been
- improved. Further details can be found in the APM section (section
- 4.12.1, page 1) below.
-
- o Preliminary support has been added to the X server for the extended keys
- on some "Internet" keyboards.
-
- o A new X server extension has been added for optimising access to metric
- data for large fonts.
-
-2. Summary of new features in 3.9.17 compared with 3.9.16.
-
- o The 3dfx driver is now supported by the DRI.
-
- o Tiny-X for the Itsy has been added.
-
- o Significant font and font server enhancements.
-
- o New driver for ATI Rage 128. The driver is called "r128".
-
- o Xterm enhancements and fixes.
-
- o DPS support hooks have been added. Display Postscript support is being
- maintained outside of the server tree due to licensing issues. A web
- page for DPS resources under XFree86 will be available shortly.
-
- o DRI enhancements including Mesa update to version 3.2, full support and
- fifo code for 3dfx hardware, and device driver updates for Linux 2.3
- kernels.
-
- o Significant enhancements to Xv including support for XvImages (YUV XIm-
- ages).
-
- o Add initial VESA VBE support including initialization and DDC.
-
- o Several PCI enhancements.
-
- o "SilkenMouse" (asynchronous pointer handling) for smoother mouse move-
- ment.
-
- o Add GeForce/Quadro support to the NVIDIA driver.
-
- o Int10 "soft-booting" support for Linux.
-
- o Resource allocation infrastructure added.
-
- o Syntax of the layout section has changed to make multi-head configura-
- tion easier.
-
- o Some Xinerama bug fixes.
-
- o The DGA 2.0 interface is mostly finalized and includes some preliminary
- documentation.
-
- o ViRGE MX Melco BIOS support has been added.
-
- o Keyboard AutoRepeat now works correctly on Linux. This means that the
- AutoRepeat keyword in XF86Config is now obeyed; you may be more comfort-
- able using "250 30" rather than the default setting of "500 5".
-
-3. Summary of new features in 3.9.16 compared with 3.9.15.
-
- o The "apm" driver has been updated. See the APM section (section 4.12.1,
- page 1) below.
-
- o A driver for NVIDIA chipsets is now included. The driver is called
- "nv". Some very basic information can be found in the nv(4) man page.
-
- o The default xdm config file now has a line to disable listening for
- XDMCP requests. This is fine when xdm is only managing a local X
- server. The line must be commented out when xdm is used to manage
- external X servers (e.g., X terminals).
-
- o New driver for Intel i740. The driver is called "i740".
-
- o New driver for 3Dfx Banshee and Voodoo 3. The driver is called "tdfx".
-
- o Some work on adding WYSIWYG capabilities to the Xaw text widget.
-
- o Some preliminary support for programming modes has been added to xedit.
-
-4. X server
+ in XFree86 4.0 and their status.
+
+1. Introduction
+
+XFree86 4.0 is the first official release of the new XFree86 4. XFree86 4
+represents a significant redesign of the XFree86 X server. It is very impor-
+tant to keep in mind that XFree86 4 is still very much in development, and it
+contains a lot of new work. That means two things: there is a lot of new
+exciting stuff to try, but being new code, it hasn't had nearly as much of a
+workout as the stable 3.3.x releases. If you're looking for a well-tested,
+stable release, and can't afford the inconveniences that new software can
+sometimes cause, then you are probably better off sticking with the 3.3.x
+releases for now. If you have the resources to try out the new version and
+investigate its features, or if you just like being on the bleeding edge,
+then please try 4.0!
+
+This release isn't quite as complete as we would have liked. The main miss-
+ing pieces are a nice configuration tool and support for some of the hardware
+that 3.3.x supports. The first point means that configuring the server might
+be more painful than usual. The second means that your hardware might not be
+supported by 4.0, or it might be supported at a lesser level (conversely,
+some hardware is better supported in 4.0). We've attempted to provide some
+information about the second point in our Driver Status document. Please
+check there first before trying 4.0. Unfortunately that document is still
+fairly basic, but it should at least give you an idea of whether you're
+likely to be able to use 4.0 at all or not.
+
+On the subject of configuration, we have updated the basic text-based tool
+"xf86config" to generate config files in the format required by 4.0 (3.3.x
+config files won't really work with 4.0). We're also working on some other
+configuration tools, including one that is built-in to the X server. An
+early version of this is included in the release, and it works well for some
+hardware. To try it out, just run (as root) "XFree86 -configure". Both of
+these configuration options will at worst give you a reasonable starting
+point for a suitable configuration file. We've put some effort into docu-
+menting the 4.0 config file format, and you can find that information in the
+XF86Config manual page. Please check that and the driver manual pages and
+related documentation for further information about that.
+
+Oh, another thing you might notice is that our documentation is rather
+patchy. Most of what is present should be in reasonable shape, but there are
+gaps. We thought it better to leave out docs that were very out of date
+rather than providing inaccurate and misleading information.
+
+Finally, before you download and install the binary distributions for this
+release, please have a quick read through the Installation Document. It may
+save you some time.
+
+If those cautionary notes haven't turned you away (and we certainly hope
+not), please read on... The sections below describe some of the new features
+and changes between 3.3.x and 4.0. There is a lot of new stuff, and we defi-
+nitely don't have enough space to cover it all here.
+
+2. X server
Unlike XFree86 3.3.x where there are multiple X server binaries, each of
-which drive different hardware, XFree86 3.9.18 has a single X server binary
-(called XFree86). This binary can either have one or more video drivers
-linked in statically, or, more usually, dynamically load the video drivers
-and other modules that are needed.
+which drive different hardware, XFree86 4.0 has a single X server binary
+called XFree86. This binary can either have one or more video drivers linked
+in statically, or, more usually, dynamically load the video drivers and other
+modules that are needed.
-XFree86 3.9.18 has X server support for most UNIX(R) and UNIX-like operating
+XFree86 4.0 has X server support for most UNIX(R) and UNIX-like operating
systems on Intel/x86 platforms, plus support for Linux on Alpha and PowerPC
-platforms. Support for additional architectures and operating systems is
-planned for future releases.
+platforms. Work on support for additional architectures and operating sys-
+tems is in progress, and is planned for future releases.
-4.1 Loader and Modules
+2.1 Loader and Modules
The XFree86 X server has a built-in run-time loader, donated by Metro Link
<URL:http://www.metrolink.com>. This loader can load normal object files and
@@ -149,41 +85,47 @@ of CPU architecture). This means that, for example, a module compiled on
Linux/x86 can be loaded by an X server running on Solaris/x86, or FreeBSD, or
even OS/2. One of the main benefits of this is that when modules are
updated, they don't need to be recompiled for each different operating sys-
-tem.
+tem. We're planning to take advantage of this to provide more frequent
+driver module updates in between major releases.
-The loader in version 3.9.18 has support for Intel (x86), Alpha and PowerPC
-platforms. It also has preliminary support for Sparc platforms.
+The loader in version 4.0 has support for Intel (x86), Alpha and PowerPC
+platforms. It also has preliminary support for Sparc platforms but this
+isn't used yet.
The X server makes use of modules for video drivers, X server extensions,
font rasterisers, input device drivers, framebuffer layers (like mfb, cfb,
etc), and internal components used by some drivers (like XAA),
-The module interfaces (API and ABI) used in the snapshot releases are subject
-to change without notice. This means that there is no guarantee that modules
-built for one snapshot release will function with another snapshot release.
-As of the 4.0 release we plan to make every effort to provide backward com-
-patibility for the module interfaces (that means older modules working with
-newer core X server binaries).
+The module interfaces (API and ABI) used in this release is still subject to
+change without notice. While we'll attempt to provide backward compatibility
+for the module interfaces as of the 4.0 release (meaning that 4.0 modules
+will work with future core X server binaries), we can't guarantee that this
+will be the case. We are planning to fully document and stabilise the module
+interfaces in a future release, and at that point backward compatibility will
+be easier to achieve.
Note about module security
The XFree86 X server runs with root privileges, which means that
the X server loadable modules also run with these privileges. For
this reason we recommend that all users be careful to only use
- loadable modules from reliable sources. By the time that XFree86
- 4.0 is released, we hope to have implemented a method for sign-
- ing/verifying modules that we provide.
+ loadable modules from reliable sources. We hope to have a mecha-
+ nism for signing/verifying the modules that we provide available in
+ a future release.
-4.2 Configuration File
+2.2 Configuration File
The X server configuration file format has been extended to handle some of
the new functionality. The xf86config utility can be used to generate a
-basic config file, that may require some manual editing. Alternatively, the
-sample config file XF86Config.eg that is installed in /usr/X11R6/lib/X11 may
-be used as a starting point. The XF86Setup utility is currently not usable,
-but work is continuing in this area.
+basic config file, that may require some manual editing. The X server also
+has preliminary support for generating a basic config file. This is done by
+running (as root) "XFree86 -configure". Alternatively, the sample config
+file XF86Config.eg that is installed in /usr/X11R6/lib/X11 may be used as a
+starting point. The XF86Setup utility is currently not usable, but work is
+continuing in this area.
-The main changes are:
+The main changes are covered here, but please refer to the XF86Config manual
+page for more comprehensive information:
o The Module section is used to load server extension modules and font
modules, but not XInput drivers. The .so suffix should no longer be
@@ -191,11 +133,13 @@ The main changes are:
loading the module via a SubSection instead of the usual Load keyword.
The bitmap module is the only font module that is loaded by default. No
server extensions are loaded by default, but some are built-in to the
- server. The following example shows how to load all the server exten-
- sions plus the Type1 and TrueType fonts support, and a commented example
- that shows how to pass options to an extension (this one is for loading
- the misc extensions (extmod) with the XFree86-VidModeExtension dis-
- abled):
+ server. It is strongly recommended that the extension module containing
+ a range of small miscellaneous extensions (extmod) be loaded because
+ some commonly used things won't work correctly without it. The follow-
+ ing example shows how to load all the server extensions plus the Type1
+ and TrueType fonts support, and a commented example that shows how to
+ pass options to an extension (this one is for loading the misc exten-
+ sions (extmod) with the XFree86-VidModeExtension disabled):
Section "Module"
@@ -236,7 +180,8 @@ The main changes are:
false. Frequency options can have the strings Hz, kHz, or MHz appended
to the numerical value specified.
- Note: the value must always be enclosed in double quotes (").
+ Note: the value must always be enclosed in double quotes ("), even when
+ it is numerical.
o The ServerFlags section now accepts its parameters as Options instead of
as special keywords. The older keyword format is still recognised for
@@ -249,15 +194,15 @@ The main changes are:
Option "blank time" "10"
Option "standby time" "20"
Option "suspend time" "30"
- Option "off time" "60"
+ Option "off time" "40"
o The Keyboard, Pointer and XInput sections have been replaced by a more
general InputDevice section. The old Keyboard and Pointer sections are
still recognised for compatibility purposes, but they are deprecated and
- support for them may be dropped in future releases. The keywords from
- the old sections are expressed as Options in the InputDevice sections.
- The following example shows typical InputDevice sections for the core
- mouse and keyboard.
+ support for them may be dropped in future releases. The old XInput sec-
+ tions are no longer recognised. The keywords from the old sections are
+ expressed as Options in the InputDevice sections. The following example
+ shows typical InputDevice sections for the core mouse and keyboard.
Section "InputDevice"
Identifier "Keyboard 1"
@@ -272,23 +217,21 @@ The main changes are:
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/mouse"
- SampleRate 80
+ Option "SampleRate" "80"
EndSection
- Note: Additional sample rates have been added for some mice. Matching
- the mouse sampling rate with the vertical refresh rate can yield very
- noticeable improvements in smoothness of pointer event driven operations
- such as window moves and scrolling.
-
o The Monitor section is mostly unchanged. The main difference is that a
set of VESA modes is defined internally in the server, and so for most
monitors, it isn't necessary to specify any modes explicitly in the Mon-
- itor section. The Monitor section may also include Options. Options
- that are monitor-specific, like the "DPMS" and "Sync on Green" options
- are best specified in the Monitor sections.
+ itor section. There is also a new Modes section that can be used to
+ define a set of modes separately from the Monitor section, and the Moni-
+ tor section may "include" them with the "UseModes" keyword. The Monitor
+ section may also include Options. Options that are monitor-specific,
+ like the "DPMS" and "Sync on Green" options are best specified in the
+ Monitor sections.
o The Device sections are mostly unchanged. The main difference is the
- new (and mandatory) Driver keyword, that specifies which video driver
+ new (and mandatory) Driver keyword that specifies which video driver
should be loaded to drive the video card. Another difference is the
BusID keyword that is used to specify which of possibly multiple video
cards the Device section is for. The following is an example for a
@@ -323,13 +266,14 @@ The main changes are:
Option "BlankTime" "5"
EndSection
- See the document xc/programs/Xserver/hw/xfree86/doc/DESIGN for a more
- detailed explanation of the new ServerLayout section syntax.
+ See the XF86Config man page for a more detailed explanation of the for-
+ mat of the new ServerLayout section.
The config file search patch has been extended, with the directories /etc/X11
-and /usr/X11R6/etc being added.
+and /usr/X11R6/etc/X11 being added. The full search path details are docu-
+mented in the XF86Config manual page.
-4.3 Command Line Options
+2.3 Command Line Options
The following new X server command line options have been added:
@@ -408,16 +352,13 @@ The following new X server command line options have been added:
-logfile file
This specifies the log file name. When specified here,
- it overrides the value specified in the config file.
- This option is only available when the server is started
- by the root user.
+ it overrides the default value. This option is only
+ available when the server is started by the root user.
-scanpci
This specifies that the scanpci module should be loaded
- and executed. This does a scan of the PCI bus. This
- option is only available when the server is started by
- the root user.
+ and executed. This does a scan of the PCI bus.
-logverbose [n]
@@ -443,29 +384,29 @@ The following X server command line options have been changed since 3.3.x:
This makes it possible for users to choose from multiple
config files that the the sysadmin has provided.
-4.4 XAA
+2.4 XAA
The XFree86 Acceleration Architecture (XAA) has been completely rewritten
from scratch. Most drivers implement acceleration by making use of the XAA
module.
-4.5 Multi-head
+2.5 Multi-head
Some multi-head configurations are supported in this release, primarily with
multiple PCI/AGP cards. However, this is an area that is still being worked
on, and we expect that the range of configurations for which it works well
-will increase in future snapshots. A configuration that is known to work
-well in most cases is multiple (supported) Matrox cards.
+will increase in future releases. A configuration that is known to work well
+in most cases is multiple (supported) Matrox cards.
One of the main problems is with drivers not sufficiently initialising cards
-that were not initialised at boot time. Normally only the primary video card
-gets initialised at boot time. Some combinations can be made to work better
-by changing which card is the primary card (either by using a different PCI
-slot, or by changing the system BIOS's preference for the primary card). We
-are investigating options for ``soft-booting'' secondary video cards to deal
-with this problem, and we've had some very encouraging results.
+that were not initialised at boot time. This has been improved somewhat with
+the INT10 support that is used by most drivers (which allows secondary card
+to be "soft-booted", but in some cases there are other issues that still need
+to be resolved. Some combinations can be made to work better by changing
+which card is the primary card (either by using a different PCI slot, or by
+changing the system BIOS's preference for the primary card).
-4.6 Xinerama
+2.6 Xinerama
Xinerama is an X server extension that allows multiple physical screens to
behave as a single screen. With traditional multi-head in X11, windows can-
@@ -477,98 +418,72 @@ with a 16-bit screen in Xinerama mode.
Xinerama is not enabled by default, and can be enabled with the +xinerama
command line option for the X server.
-Xinerama was included with X11R6.4. The version included in this snapshot
-contains many bug fixes. This is an area that we are still working on, and
-we expect it to be improved further in future snapshots.
+Xinerama was included with X11R6.4. The version included in this release was
+completely rewritten for improved performance and correctness.
Known problems:
- o It appears that there are still some bugs that cause unexpected
- behaviour from time to time.
-
o Most (all?) window managers are not Xinerama-aware, and so some opera-
tions like window placement and resizing might not behave in an ideal
way. This is an issue that needs to be dealt with in the individual
window managers, and isn't specifically an XFree86 problem.
-4.7 DGA version 2
+2.7 XVideo extension
+
+The XVideo extension is included in this release, but nobody seems interested
+in writing up some information about it.
+
+2.8 DGA version 2
DGA 2.0 is nearly completed but still not implemented by all drivers. Pre-
liminary documentation for the client libraries can be found in the xc/pro-
grams/Xserver/hw/xfree86/DGA document. Some degree of backwards compatibil-
-ity with version 1.0 is provided.
-
-4.8 DDC
-
-The VESA(R) Display Data Channel (DDC[tm]) standard (related to, but separate
-from, the VESA(R) Plug and Display standard) allows the monitor to tell the
-video card (or on some cases the computer directly) about itself; particu-
-larly the supported screen resolutions and refresh rates.
-
-Partial or complete DDC support is available in the following hardware mod-
-ules:
+ity with version 1.0 is provided. This information is out of date.
- o APM
+2.9 DDC
- o Chips
-
- o Cirrus
-
- o Glint
-
- o MGA
-
- o Neomagic
-
- o S3 ViRGE
-
- o SIS
-
- o Trident
+The VESA(R) Display Data Channel (DDC[tm]) standard allows the monitor to
+tell the video card (or on some cases the computer directly) about itself;
+particularly the supported screen resolutions and refresh rates.
+Partial or complete DDC support is available in most of the video drivers.
DDC is enabled by default, but can be disabled with a "Device" section entry:
Option "NoDDC". We have support for DDC versions 1 and 2; these can be dis-
abled independently with Option "NoDDC1" and Option "NoDDC2".
At startup the server prints out DDC information from the display, but it
-does not yet use it the determine modelines.
+does not yet use it the determine modelines. For some drivers, the X
+server's new -configure option uses the DDC information when generating the
+config file.
Changed behavior caused by DDC. Several drivers uses DDC information to set
-the monitor gamma (brightness) curve, and the screen size and pitch.
-
- o The gamma is particularly noticeable; every monitor I have tried has a
- gamma setting > 2, which means that the picture is much lighter than
- under 3.3.x or without DDC. To revert to the previous behavior put
-
- Gamma 1.0 1.0 1.0
-
- in the appropriate "Monitor" section of the config file.
+the screen size and pitch. This can be overridden by explicitly resetting it
+to the and non-DDC default value 75 with the -dpi 75 command line option for
+the X server, or by specifying appropriate screen dimensions with the "Dis-
+playSize" keyword in the "Monitor" section of the config file.
- o Similarly, you can override the DDC probed "dpi" value by explicitly
- resetting it to the 3.3.x and non-DDC default value 75 with the -dpi 75
- command line option for the X server, or by specifying appropriate
- screen dimensions with the "DisplaySize" keyword in the "Monitor" sec-
- tion of the config file.
-
-4.9 GLX and the Direct Rendering Infrastructure (DRI)
+2.10 GLX and the Direct Rendering Infrastructure (DRI)
Precision Insight <URL:http://www.precisioninsight.com> has been provided
-with funding and support from Red Hat <URL:http://www.redhat.com> and SGI
-<URL:http://www.sgi.com> to integrate the GLX extension for 3D rendering in
-an X11 window. The 3D core rendering component is the Mesa
-<URL:http://www.mesa3d.org> library. SGI has released the sources to the
+with funding and support from Red Hat <URL:http://www.redhat.com>, SGI
+<URL:http://www.sgi.com>, 3Dfx <URL:http://www.3dfx.com>, Intel
+<URL:http://www.intel.com>, ATI <URL:http://www.ati.com>, and Matrox
+<URL:http://www.matrox.com> to integrate the GLX extension for 3D rendering
+in an X11 window. The 3D core rendering component is the Mesa
+<URL:http://www.mesa3d.org> library. SGI has released the sources to the GLX
extension framework under an open license, which essentially provides the
glue between the 3D library and this windowing system. Precision Insight has
-integrated these components into this XFree86 X Server and added a Direct
-Rendering Infrastructure. Direct Rendering provides a highly optimized path
-for sending 3D data directly to the graphics hardware. This release demon-
-strates a sample implementation of direct rendering <URL:http://www.preci-
-sioninsight.com/demo.html> by providing a single path of 3D hardware acceler-
-ated rendering for the GMX2000 and 3dfx voodoo graphics cards. Future
-releases will support much broader implementations of hardware accelerated
-direct rendering on a wide range of 3D capable graphics devices.
-
-4.10 X-Video Extension (Xv)
+integrated these components into the XFree86 X Server and added a Direct Ren-
+dering Infrastructure (DRI). Direct Rendering provides a highly optimized
+path for sending 3D data directly to the graphics hardware. This release
+provides a complete implementation of direct rendering support for the 3Dfx
+Banshee and Voodoo3 graphics cards. Additional direct rendering drivers will
+be available for 3Dfx, Intel, ATI and Matrox boards during the second quarter
+of 2000. Updated information on DRI compatible drivers can be found at the
+DRI Project <URL:http://dri.sourceforge.net> on SourceForge
+<URL:http://www.sourceforge.net>.
+
+2.11 X-Video Extension (Xv)
An XvQueryPortAttributes function has been added as well as support for XvIm-
ages. XvImages are XImages in alternate color spaces such as YUV and can be
@@ -576,10 +491,10 @@ passed to the server through shared memory segments. This allows clients to
display YUV data with high quality hardware scaling and filtering. XvImages
are only supported by the Matrox G200/G400 cards at the moment.
-4.11 Other extensions
+2.12 Other extensions
The XFree86-Misc extension has not been fully ported to the new server archi-
-tecture yet. This should be completed in a future snapshot.
+tecture yet. This should be completed in a future release.
The XFree86-VidModeExtension extension has been updated, and mostly ported to
the new server architecture. The area of mode validation needs further work,
@@ -587,11 +502,11 @@ and the extension should be used with care. This extension has support for
changing the gamma setting at run-time, for modes where this is possible.
The new xgamma utility makes use of this feature. Compatibility with the
3.3.x version of the extension is provided. The missing parts of this exten-
-sion and some new features should be completed in a future snapshot.
+sion and some new features should be completed in a future release.
-4.12 Drivers
+2.13 Drivers
-XFree86 3.9.18 includes the following drivers:
+XFree86 4.0 includes the following drivers:
+------------+----------------------+
|Driver Name | Description |
@@ -603,7 +518,7 @@ XFree86 3.9.18 includes the following drivers:
|cyrix (*) | Cyrix MediaGX |
|fbdev | Linux fbdev |
|glide | Glide2x (3Dfx) |
- |glint | 3Dlabs |
+ |glint | 3Dlabs, TI |
|i740 | Intel i740 |
|i810 | Intel i810 |
|mga | Matrox |
@@ -623,41 +538,23 @@ XFree86 3.9.18 includes the following drivers:
Drivers marked with (*) are present in a preliminary form in this release,
but are not complete and/or stable yet.
-4.12.1 APM
-
-It's the driver for Alliance AT3D/AT25 and AT24 chips. There is a rather com-
-plete support for the functions with acceleration at 8,15,16,24 and 32 bits
-(limited by the chip at 24bpp). There is preliminary, still buggy, support
-for the AP6422 chip, which is still supported in 3.3.x servers. The Xv driver
-is almost ok. The Rush extension for glide2x works, with some additions,
-including overlay of the result. DGA and DGA2 have been tested ok.
-
-Main useful options:
-
- SetMclk
- to set the memory clock (default should be OK).
+2.13.1 APM
- SWCursor
- to force the software cursor.
+This is the driver for Alliance AT3D/AT25 and AT24 chips. There is a rather
+complete support for the functions with acceleration at 8,15,16,24 and 32
+bits (limited by the chip at 24bpp). There is preliminary, still buggy, sup-
+port for the AP6422 chip, which is still supported in 3.3.x servers. The Xv
+driver is almost ok. The Rush extension for glide2x works, with some addi-
+tions, including overlay of the result. DGA and DGA2 have been tested ok.
+Further information can be found in README.apm.
- HWCursor
- to force the hardware cursor.
-
- NoAccel
- to disable (XAA) acceleration.
-
- ShadowFB
- to enable shadow framebuffer operation (the rendering is done in
- system memory and then copied to the framebuffer, useful when
- acceleration is disabled).
-
-4.12.2 Chips & Technologies
+2.13.2 Chips & Technologies
Information about the C&T driver can be found in README.chips.
-4.12.3 s3virge
+2.13.3 s3virge
-The s3virge driver is a port of the 3.3.3.1 SVGA S3 ViRGE driver. As such it
+The s3virge driver is a port of the 3.3.x SVGA S3 ViRGE driver. As such it
should be as stable and functional as previous XFree86 releases. There are a
couple additional benefits included primarily due to common enhancements:
@@ -672,27 +569,33 @@ couple additional benefits included primarily due to common enhancements:
o The s3virge man page lists options and has configuration notes for this
release of the driver.
+ o Trio 3D and Trio 3D/2X support has been added, matching the 3.3.6
+ driver.
+
+ o Supports screen rotation and shadow framebuffer.
+
Outstanding items not implemented or fully tested:
o DGA support is implemented, but preliminary and untested.
-4.12.4 TGA
+Further information can be found in README.s3virge.
+
+2.13.4 TGA
The TGA driver is now accelerated and supports both 8 and 32 plane frame-
buffers. It is known to work under Linux/Alpha. Please see the
README.DECtga file for further information.
-4.12.5 Matrox
+2.13.5 Matrox
The MGA driver supports the same range or hardware as XFree86 3.3.4, but has
-a number of enhancements including multi-head support and support for over-
-lays (8-bit + 24-bit).
+a number of enhancements including multi-head support and support for (non-
+destructive) overlays (8-bit + 24-bit).
Option "overlay" when the server is started in 32bpp (-fbbpp 32) will enable
the 8+24 mode. The current implementation doesn't optimize away unnecessary
exposures yet so the performance of this option will be better in future
-snapshots. The option is not supported on the G100 due to a missing hardware
-feature. By default, the color key for the overlays is 255, but this can be
+release. By default, the color key for the overlays is 255, but this can be
changed with the "ColorKey" option to work around problems in specific pro-
grams. Valid values for the key are 2-255.
@@ -702,21 +605,20 @@ improved memory autodetection support.
Further information can be found in the mga man page.
-4.12.6 ATI
+2.13.6 ATI
Information about the ATI driver can be found in README.ati <URL:ati.html>.
The current version is not accelerated. Acceleration support is planned for
-a future snapshot.
+a future release.
-4.12.7 NVIDIA
+2.13.7 NVIDIA
The "nv" driver supports all Riva TNT accelerators as well as the new GeForce
-and Quadro accelerators. 3.9.17 adds DGA 2.0 support and performance
-improvements as well as resolving some rendering correctness issues.
+and Quadro accelerators. DGA 2.0 support is included.
Further information can be found in the nv man page.
-4.12.8 Glide
+2.13.8 Glide
This driver is for Voodoo 1 and Voodoo 2 boards. It runs X on top of the 3DFX
Glide API (where this is available, like for Linux). You need to have Glide
@@ -737,9 +639,19 @@ man page.
For Voodoo Banshee and Voodoo 3 boards or later: Please use the tdfx driver
which talks directly to the hardware and is much faster.
-5. X libraries and clients
+2.13.9 GLINT
+
+The "glint" driver supports most 3Dlabs/Texas Instruments GLINT/Permedia
+chips. There is a rather complete support (better than in 3.3.x) for acceler-
+ation at 8, 15, 16, and 24 bit depths (limited by some chips at some depths).
+8+24 overlay is supported. The Xv extension is supported for some boards.
+
+Further information about this driver can be found in the 'glint' driver man
+page.
-5.1 Xaw
+3. X libraries and clients
+
+3.1 Xaw
Two versions of the Xaw library are provided in this release. A version with
bug fixes and a few binary compatible improvements and a new version with
@@ -786,12 +698,6 @@ New features:
o Text indentation support is also available.
- o This snapshot shows the current state of the work to add to the Xaw text
- widget WYSIWYG capabilities. The state is very initial, and can be seen
- as a candidate to a candidate to a very early alpha snapshot. There is
- no public interface for programming yet, because the current one is very
- likely to change before ready to use.
-
Bug fixes:
o The simple menu widget geometry management code was improved to solve
@@ -804,11 +710,11 @@ Bug fixes:
o Several bugs were fixed in the text code, while some code was rewritten
from scratch.
-5.2 Xpm
+3.2 Xpm
Version 3.4k of the Xpm (X pixmap) library is now integrated into XFree86.
-5.3 xterm
+3.3 xterm
New Features:
@@ -985,7 +891,7 @@ Bug fixes/improvements:
o Various improvements to configure script, e.g., tests for utmp.
-5.4 xedit
+3.4 xedit
Xedit have been changed to use most of the new features added to the new ver-
sion of the Xaw library, and some xedit only features were added. Emacs users
@@ -1019,27 +925,23 @@ xedit. These include:
o The interface also checks for repeated words.
- o A first tentative to add programming modes was done. Currently, there
- are two modes:
+ o A first tentative to add programming modes was done. Currently, there is
+ one mode:
o C-mode: this mode is expected to be stable, and fully usable.
- o Html-mode: a lot of work needs to be done yet. It is included in
- this snapshot only to show what the new text widget capabilities
- can do.
-
-6. Fonts and Internationalisation
+4. Fonts and Internationalisation
Details about the font support in this version of XFree86 can be found in the
README.fonts document.
-6.1 TrueType support
+4.1 TrueType support
This version of XFree86 comes with two TrueType backends, known as `xfsft'
(the "freetype" module) and `X-TrueType' (the "xtt" module). Both of these
backends are based on the FreeType library.
-6.2 CID font support
+4.2 CID font support
Support for CID-keyed fonts is included in this version of XFree86. The CID-
keyed font format was designed by Adobe Systems <URL:http://www.adobe.com>
@@ -1047,7 +949,7 @@ for fonts with large character sets. The CID-keyed font support in XFree86
was donated by SGI <URL:http://www.sgi.com>. See the LICENSE document for a
copy of the CID Font Code Public License.
-6.3 Internationalisation of the scalable font backends
+4.3 Internationalisation of the scalable font backends
A new ``fontenc'' layer has been added to allow the scalable font backends to
use a common method of font re-encoding. This re-encoding makes it possible
@@ -1056,21 +958,37 @@ layer is used by the Type1 and Speedo backends and the `xfsft' version of the
TrueType backend. The `X-TrueType' version of the TrueType backend uses a
different re-encoding method based on loadable encoding modules.
-6.4 Large font optimisation
+4.4 Large font optimisation
The glyph metrics array, which all the X clients using a particular font have
access to, is now placed in shared memory, so as to reduce redundant memory
-consumption. For non-local clients, the glyph metrics array is trasmitted in
-a compressed format.
+consumption. For non-local clients, the glyph metrics array is transmitted
+in a compressed format.
-6.5 Unicode support
+4.5 Unicode/ISO 10646 support
What is included:
- o ISO 10646-1 extension of ``fixed'' BDF fonts added that cover over 2000
- characters including all Latin, Greek, Cyrillic, Armenian, and Gregorian
- characters, plus numerous scientific and technical symbols (further
- fonts are under preparation).
+ o All ``-misc-fixed-*'' BDF fonts are now available in the ISO10646-1
+ encoding and cover at least the 614 characters found in ISO
+ 8859-{1-5,7-10,14,15}, CP1252, and MES-1. The non-bold fonts also cover
+ all Windows Glyph List 4 (WGL4) characters, including those found in all
+ 8-bit MS-DOS/Windows code pages. The 8-bit variants of the ``-misc-
+ fixed-*'' BDF fonts (ISO8859-1, ISO8859-2, KOI8-R, etc.) have all been
+ automatically generated from the new ISO10646-1 master fonts.
+
+ o Some ``-misc-fixed-*'' BDF ISO10646-1 fonts now cover a comprehensive
+ Unicode repertoire of over 3000 characters including all Latin, Greek,
+ Cyrillic, Armenian, Gregorian, Hebrew, IPA, and APL characters, plus
+ numerous scientific, typographic, technical, and backwards-compatibility
+ symbols. Some of these fonts also cover Arabic, Ethiopian, Thai,
+ Han/Kanji, Hangul, full ISO 8859, and more. For the 6x13 font there is
+ now a 12x13ja Kanji extension and for the 9x18 font there is a 18x18ja
+ Kanji/Han/Hangul extension, which covers all ISO-2022-JP-2 (RFC 1554)
+ characters. The 9x18 font can also be used to implement simple combining
+ characters by accent overstriking. For more information, read Markus
+ Kuhn's UTF-8 and Unicode FAQ <URL:http://www.cl.cam.ac.uk/~mgk25/uni-
+ code.html>.
o Mark Leisher's ClearlyU proportional font (similar to Computer Modern).
@@ -1082,29 +1000,48 @@ What is included:
Known problems:
- o Xlib does not yet support UTF-8 as a locale, which means that xterm
- UTF-8 keyboard support is at the moment a temporary hack.
+ o Xlib does not yet fully support UTF-8 as a locale, which means that
+ xterm UTF-8 keyboard support is at the moment a temporary hack.
+
+ o Most ISO10646-1 fonts encode no characters above U+31FF. This avoids the
+ inefficient allocation and transmission of a >700 kB large XFontStruct
+ structure, which would happen if the (not very important) ligatures and
+ symbols above U+f000 were present.
+
+ o ISO 10646 Level 2 combining characters are not yet supported by xterm
+ (will be needed for instance for Thai and IPA).
+
+ o Switching between a half-width and full-width font pair (such as 9x18
+ and 18x18ja) is not yet supported by xterm (will be needed for CJK
+ scripts).
- o ISO 10646-1 cell-spaced fonts such as ``fixed'' work nicely, but mono-
- spaced and proportional fonts are handled inefficiently by the X proto-
- col, resulting in metrics for 64k glyphs even if only 2000 glyphs are
- used.
+4.6 Lucidux fonts from Bigelow and Holmes
- o ISO 10646 Level 2 combining characters not yet supported by xterm (will
- be needed for instance for the Thai script).
+XFree86 now includes the ``Lucidux'' family of professionally hinted Type 1
+fonts. This family consists of the fonts ``Lucidux Serif'', ``Lucidux Sans''
+and ``Lucidux Mono'' in Roman and oblique variants, and includes over 370
+glyphs in each font covering among others the glyphs needed for ISO 8859-1,
+2, 3, 4, 9 and 15. Bold variants will be included in a future release. The
+design and font outlines were donated by Charles Bigelow and Kris Holmes from
+Bigelow and Holmes Inc., and the hinting was donated by Berthold Horn and
+Blenda Horn from Y&Y, Inc. For more information, please contact
+<design@bigelowandholmes.com> or <sales@yandy.com>, or consult Y&Y's web site
+<URL:http://www.yandy.com>.
-7. Miscellaneous
+5. Miscellaneous
-7.1 Directory rearrangements
+5.1 Directory rearrangements
-Some changes to the installed XFree86 directory structure have been planned
-for 4.0. Not all of these changes have been implemented in this snapshot,
-and they will appear in a future snapshot. One important change that has
-been implemented is a modified search path for the X server's XF86Config
-file. The details of this can be found above in the Configuration File (sec-
-tion 4.2, page 1) section.
+Some changes to the installed XFree86 directory structure have been imple-
+mented for 4.0. One important change is a modified search path for the X
+server's XF86Config file. The details of this can be found in the XF86Config
+manual page. The other main change is moving most of the run-time configura-
+tion files to /etc/X11, with symbolic links in the old /usr/X11R6/lib/X11
+location pointing to the new location. Some run-time generated files are now
+located under the appropriate subdirectories of /var, again with the relevant
+symbolic links in the old location.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.29 2000/02/21 22:29:07 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.37 2000/03/08 20:11:55 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/RELNOTES,v 3.78 2000/02/21 22:44:45 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/RELNOTES,v 3.82 2000/03/08 20:39:24 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/Status b/xc/programs/Xserver/hw/xfree86/doc/Status
index 5512ce18a..6e04e1887 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/Status
+++ b/xc/programs/Xserver/hw/xfree86/doc/Status
@@ -1,23 +1,23 @@
- Driver Status for XFree86[tm] 3.9.18
+ Driver Status for XFree86[tm] 4.0
The XFree86 Project, Inc
- 12 February 2000
+ 3 March 2000
Abstract
This document provides information about the status of the driver
- and hardware support in XFree86 3.9.18 compared with that in
- XFree86 3.3.6. Please send updates for this document to
+ and hardware support in XFree86 4.0 compared with that in XFree86
+ 3.3.6. Please send updates for this document to
<fixes@xfree86.org>
1. Introduction
This document contains one section per vendor (organised alphabetically) for
-each chipset family that is supported in XFree86 3.3.6 or XFree86 3.9.18. It
+each chipset family that is supported in XFree86 3.3.6 or XFree86 4.0. It
includes information about the status of the drivers and the hardware they
support, including a comparison of the level of support between versions
-3.3.6 and 3.9.18.
+3.3.6 and 4.0.
NOTE: Status information needs to be checked carefully and expanded where
possible. E.g., include information about acceleration, multi-head, known
@@ -31,7 +31,7 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support is provided by the XF86_SVGA server with the tdfx
driver).
- 3.9.18:
+ 4.0:
Support for Voodoo 1 and Voodoo 2 via glide on platforms where
glide is available (Linux and FreeBSD(?)). Support is provided
by the "glide" driver (requires Glide 2x).
@@ -40,7 +40,7 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support is provided by the "tdfx" driver.
Summary:
- All hardware supported in 3.3.6 is also supported in 3.9.18.
+ All hardware supported in 3.3.6 is also supported in 4.0.
3. 3Dlabs
@@ -50,13 +50,13 @@ architectures known to work on (e.g., Alpha, PPC), etc.
ramdacs), Permedia with IBM RGB526 ramdac, Permedia 2, 2a, 2v.
Support is provided by the XF86_3DLabs server.
- 3.9.18:
+ 4.0:
Support (including acceleration) for Permedia, Permedia 2, 2v
(and 2a??) GLINT 500TX, GLINT MX, GLINT Gamma, and Glint Delta
coproc. Support is provided by the "glint" driver.
Summary:
- All hardware supported in 3.3.6 is also supported in 3.9.18.
+ All hardware supported in 3.3.6 is also supported in 4.0.
4. Alliance
@@ -64,15 +64,14 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support (including acceleration) for the AT24, AP6422, AT3D.
Support is provided by the XF86_SVGA server with the apm driver.
- 3.9.18:
+ 4.0:
Support (including acceleration?) for the AT24, AT25 and AT3D.
This support is provided by the "apm" driver. This driver cur-
- rently has only incomplete support for the AP6422. NEED TO CHECK
- IF THESE CARDS WILL WORK WITH fbdev.
+ rently has only incomplete support for the AP6422.
Summary:
- The AP6422 is supported in 3.3.6 but not fully in 3.9.18. The
- AT25 is supported in 3.9.18 but not in 3.3.6.
+ The AP6422 is supported in 3.3.6 but not fully in 4.0. The AT25
+ is supported in 4.0 but not in 3.3.6.
5. ARK Logic
@@ -81,13 +80,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
and ARK2000MT. Support is provided by the XF86_SVGA server with
the ark driver.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No ARK Logic chips are supported in 3.9.18.
+ No ARK Logic chips are supported in 4.0.
6. ATI
@@ -105,16 +103,16 @@ architectures known to work on (e.g., Alpha, PPC), etc.
driver. Accelerated support is provided for the Rage 128 chips
by the XF86_SVGA server with the r128 driver.
- 3.9.18:
+ 4.0:
Accelerated support is provided for the Rage 128 chips by the
"r128" driver. Unaccelerated support is provided for all of the
others except the Mach8 and some early Mach32 chips by the "ati"
driver.
Summary:
- All chips supported in 3.3.6 are supported in 3.9.18 except for
- Mach8 and some old Mach32 chips. The support in 3.9.18 is, how-
- ever, unaccelerated for all chips except the Rage 128.
+ All chips supported in 3.3.6 are supported in 4.0 except for
+ Mach8 and some old Mach32 chips. The support in 4.0 is, however,
+ unaccelerated for all chips except the Rage 128.
7. Avance Logic
@@ -126,13 +124,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
don't have any recent test reports, and these drivers have no
maintainer.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old drivers
- have not been ported. NEED TO CHECK IF THESE CARDS WILL WORK
- WITH fbdev.
+ have not been ported.
Summary:
- No Avance Logic chips are supported in 3.9.18.
+ No Avance Logic chips are supported in 4.0.
8. Chips and Technologies
@@ -142,13 +139,13 @@ architectures known to work on (e.g., Alpha, PPC), etc.
64300. This support is provided by the XF86_SVGA server with the
chips driver.
- 3.9.18:
+ 4.0:
Support (accelerated) for the 65520, 65525, 65530, 65535, 65540,
65545, 65546, 65548, 65550, 65554, 65555, 68554, 69000, 64200 and
64300. This support is provided by the "chips" driver.
Summary:
- All chips supported in 3.3.6 are also supported in 3.9.18.
+ All chips supported in 3.3.6 are also supported in 4.0.
9. Cirrus Logic
@@ -160,16 +157,15 @@ architectures known to work on (e.g., Alpha, PPC), etc.
7541, 7542, 7543, 7548, 7555 and 7556 is provided by the
XF86_SVGA server with the cirrus driver.
- 3.9.18:
+ 4.0:
Support (accelerated) for the Alpine (5430, 5434, 5436, 5446,
5480), and Laguna (5462, 5464, 5465) chips is provided by the
- "cirrus" driver. NEED TO CHECK IF THE OTHERS WILL WORK WITH
- fbdev.
+ "cirrus" driver.
Summary:
- The following chips are supported in 3.3.6 but not in 3.9.18:
- 6410, 6412, 6420, 6440, 5420, 5422, 5424, 5426, 5428, 5429, 6205,
- 6215, 6225, 6235, 7541, 7542, 7543, 7548, 7555 and 7556.
+ The following chips are supported in 3.3.6 but not in 4.0: 6410,
+ 6412, 6420, 6440, 5420, 5422, 5424, 5426, 5428, 5429, 6205, 6215,
+ 6225, 6235, 7541, 7542, 7543, 7548, 7555 and 7556.
10. Compaq/Digital
@@ -183,7 +179,7 @@ architectures known to work on (e.g., Alpha, PPC), etc.
24 plane 3D chips (on Alpha platforms) is provided by the
XF86_TGA server.
- 3.9.18:
+ 4.0:
No support for the Compaq AVGA (driver hasn't been ported).
Support (accelerated) for the DEC 21030 TGA 8 plane, 24 plane and
@@ -191,8 +187,8 @@ architectures known to work on (e.g., Alpha, PPC), etc.
the "tga" driver.
Summary:
- No Compaq AVGA support in 3.9.18. DEC TGA support is equivalent
- in both versions.
+ No Compaq AVGA support in 4.0. DEC TGA support is equivalent in
+ both versions.
11. Cyrix
@@ -200,13 +196,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support (accelerated) for the Cyrix MediaGX is provided by the
XF86_SVGA server with the cyrix driver.
- 3.9.18:
+ 4.0:
A preliminary port of the driver is available, but it isn't ready
- for widespread use. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ for widespread use.
Summary:
- No Cyrix chips are well-supported in 3.9.18.
+ No Cyrix chips are well-supported in 4.0.
12. Epson
@@ -214,13 +209,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support (accelerated) for the Epson SPC8110 is provided by the
XF86_SVGA server with the spc8100 driver.
- 3.9.18:
+ 4.0:
No native support for this chipset, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No Epson chips are supported in 3.9.18.
+ No Epson chips are supported in 4.0.
13. Genoa
@@ -230,13 +224,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
because we don't have any recent test reports, and this driver
has no maintainer.
- 3.9.18:
+ 4.0:
No native support for this chipset, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No Genoa chips are supported in 3.9.18.
+ No Genoa chips are supported in 4.0.
14. IBM
@@ -251,7 +244,7 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support for the IBM XGA-2 chip is provided by the XF86_AGX
server.
- 3.9.18:
+ 4.0:
Support for the standard IBM VGA chip (and compatibles) is pro-
vided by the "vga" driver.
@@ -260,7 +253,7 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Summary:
The standard VGA core is supported in both versions, but there is
- no support for the 8514/A or XGA-2 in 3.9.18.
+ no support for the 8514/A or XGA-2 in 4.0.
15. IIT
@@ -268,13 +261,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support (accelerated) for the AGX-016, AGX-015 and AGX-014 is
provided by the XF86_AGX server..
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No IIT chips are supported in 3.9.18.
+ No IIT chips are supported in 4.0.
16. Intel
@@ -285,14 +277,15 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Linux, and requires the agpgart.o kernel module in order to use
modes that require more than 1MB of video memory.
- 3.9.18:
+ 4.0:
Support (accelerated) for the Intel i740 is provided by the
- "i740" driver. The i810 driver has not yet been ported and/or
- contributed.
+ "i740" driver, and support for the Intel i810 is provided by the
+ "i810" driver. The "i810" driver is currently Linux-only, and
+ requires the agpgart.o kernel module.
Summary:
- The i740 is supported in both version, but the i810 is not sup-
- ported in 3.9.18 or on non-Linux/x86 platforms.
+ The i740 and i810 are supported in both versions, but the i810 is
+ only supported on Linux/x86 platforms at present.
17. Matrox
@@ -301,13 +294,13 @@ architectures known to work on (e.g., Alpha, PPC), etc.
(Mystique), MGA2164W (Millennium II) (PCI and AGP), G100, G200
and G400 is provided by the XF86_SVGA server with the mga driver.
- 3.9.18:
+ 4.0:
Support (accelerated) for the MGA2064W (Millennium I), MGA1064SG
(Mystique), MGA2164W (Millennium II) (PCI and AGP), G100, G200
and G400 is provided by the "mga" driver.
Summary:
- All chips supported in 3.3.6 are also supported in 3.9.18.
+ All chips supported in 3.3.6 are also supported in 4.0.
18. MX (???)
@@ -317,13 +310,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
is unknown because we don't have any recent test reports, and
this driver has no maintainer.
- 3.9.18:
+ 4.0:
No native support for this chipset, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No MX (???) chips are supported in 3.9.18.
+ No MX (???) chips are supported in 4.0.
19. NCR
@@ -332,13 +324,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
XF86_SVGA server and the ncr77c22 driver. The status of this
support is unknown because we don't have any recent test reports.
- 3.9.18:
+ 4.0:
No native support for this chipset, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No NCR chips are supported in 3.9.18.
+ No NCR chips are supported in 4.0.
20. NeoMagic
@@ -347,13 +338,13 @@ architectures known to work on (e.g., Alpha, PPC), etc.
NM2097, NM2160 and NM2200 chipsets is provided by the XF86_SVGA
server with the neo driver.
- 3.9.18:
+ 4.0:
Support (accelerated) for the NeoMagic NM2070, NM2090, NM2093,
NM2097, NM2160 and NM2200 chipsets is provided by the "neomagic"
driver.
Summary:
- All chips supported in 3.3.6 are also supported in 3.9.18.
+ All chips supported in 3.3.6 are also supported in 4.0.
21. NVIDIA
@@ -362,14 +353,14 @@ architectures known to work on (e.g., Alpha, PPC), etc.
(Ultra, Vanta, M64), GeForce (DDR) and Quadro is provided by the
XF86_SVGA server and the nv driver.
- 3.9.18:
+ 4.0:
Support (accelerated) for the Riva 128, 128ZX, TNT, TNT2 (Ultra,
Vanta, M64), GeForce (DDR) and Quadro is provided by the
XF86_SVGA server and the nv driver.
Summary:
All chipsets supported in 3.3.6 except the NV1 are also supported
- in 3.9.18.
+ in 4.0.
22. Number Nine
@@ -377,13 +368,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support (accelerated) for the Imagine 128, Ticket 2 Ride, Revolu-
tion 3D and Revolution IV is provided by the XF86_I128 server.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No Number Nine chips are supported in 3.9.18.
+ No Number Nine chips are supported in 4.0.
23. Oak Technologies Inc
@@ -392,13 +382,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
acceleration) is provided by the XF86_SVGA server and the oak
driver.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No Oak chips are supported in 3.9.18.
+ No Oak chips are supported in 4.0.
24. Paradise/Western Digital
@@ -409,13 +398,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
port for some of these chipsets is uncertain because we don't
have any recent test reports, and this driver has no maintainer.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No Paradise/Western Digital chips are supported in 3.9.18.
+ No Paradise/Western Digital chips are supported in 4.0.
25. RealTek
@@ -425,13 +413,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
unknown because we don't have any recent test reports, and this
driver has no maintainer.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No RealTek chips are supported in 3.9.18.
+ No RealTek chips are supported in 4.0.
26. Rendition/Micron
@@ -439,12 +426,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support for the Verite 1000, 2100 and 2200 is provided by the
XF86_SVGA server with the rendition driver.
- 3.9.18:
+ 4.0:
Support for the Verite 1000, 2100 and 2200 is provided by the
"rendition" driver.
Summary:
- All chips supported in 3.3.6 are also supported in 3.9.18.
+ All chips supported in 3.3.6 are also supported in 4.0.
27. S3
@@ -462,15 +449,15 @@ architectures known to work on (e.g., Alpha, PPC), etc.
by the XF86_SVGA server with the s3_savage driver (CHECK: is this
support Linux-only?).
- 3.9.18:
+ 4.0:
Support (accelerated) for the ViRGE, ViRGE/VX, ViRGE/DX,
ViRGE/GX, ViRGE/GX2, ViRGE/MX, ViRGE/MX+, Trio3D and Trio3D/2X is
provided by the "s3virge" driver. Support for the other S3
chipsets has not yet been ported.
Summary:
- Only the ViRGE and Trio3D chipsets are supported in 3.9.18. All
- of the other chipsets are only supported in 3.3.6.
+ Only the ViRGE and Trio3D chipsets are supported in 4.0. All of
+ the other chipsets are only supported in 3.3.6.
28. Silicon Integrated Systems (SiS)
@@ -479,16 +466,15 @@ architectures known to work on (e.g., Alpha, PPC), etc.
86C225, 5597, 5598, 6326, 530, 620, 300, 630 and 540 is provided
by the XF86_SVGA server with the sis driver.
- 3.9.18:
+ 4.0:
Support (accelerated) for the SiS
530, 620, 6326 is provided by the "sis" driver. The 630, 300,
and 540 are also supported, but this code is new and there are
some problems with it in this version.
Summary:
- Support for the older (CHECK: are they all older than the sup-
- ported chips?) chips: 86C201, 86C202 and 620, is only available
- in 3.3.6.
+ Support for the 86C201, 86C202, 86C215, 86C225, 5597 and 5598 is
+ currently only available in 3.3.6.
29. Silicon Motion, Inc
@@ -497,12 +483,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
LynxEM+ and Lynx3DM chips is provided by the XF86_SVGA server
with the smi driver.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the driver has not
- been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
+ been ported.
Summary:
- No SMI chips are supported in 3.9.18.
+ No SMI chips are supported in 4.0.
30. Trident Microsystems
@@ -517,18 +503,17 @@ architectures known to work on (e.g., Alpha, PPC), etc.
CyberBlade/DSTN/i7 and CyberBlade/i1 is provided by the XF86_SVGA
server with the tvga8900 driver.
- 3.9.18:
+ 4.0:
Support (accelerated where the chip supports it) for the
TVGA8900D, TGUI9420DGi, TGUI9440AGi, TGUI9660, TGUI9680, ProVidia
9682, ProVidia 9685, Cyber9320, Cyber9382, Cyber9385, Cyber9388,
Cyber9397, Cyber9520, Cyber9397/DVD, Cyber9525/DVD, 3DImage975,
3DImage875, Blade3D, CyberBlade/i7, CyberBlade/DSTN/i7 and
- CyberBlade/i1 is provided by the "trident" driver. NEED TO CHECK
- IF THE OTHERS WILL WORK WITH fbdev.
+ CyberBlade/i1 is provided by the "trident" driver.
Summary:
The following (older) chipsets that are supported in 3.3.6 are
- not supported in 3.9.18: TVGA8200LX, TVGA8800CS, TVGA8900B,
+ not supported in 4.0: TVGA8200LX, TVGA8800CS, TVGA8900B,
TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i, TVGA9100B,
TVGA9200CXr, TGUI9400CXi, TGUI9420, TGUI9430DGi.
@@ -542,14 +527,14 @@ architectures known to work on (e.g., Alpha, PPC), etc.
driver. Support (accelerated) for the ET4000/W32 series and the
ET6000 is also provided by the deprecated XF86_W32 server.
- 3.9.18:
+ 4.0:
Support for the ET4000AX, and accelerated support for the
ET4000/W32, ET4000/W32i, ET4000/W32p, ET6000 and ET6100 is pro-
vided by the "tseng" driver.
Summary:
- All cards supported by 3.3.6 are also supported by 3.9.18 except
- for the old ET3000.
+ All cards supported by 3.3.6 are also supported by 4.0 except for
+ the old ET3000.
32. Video 7
@@ -559,13 +544,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
unknown because we don't have any recent test reports, and this
driver has no maintainer.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No Video 7 chips are supported in 3.9.18.
+ No Video 7 chips are supported in 4.0.
33. Weitek
@@ -574,15 +558,14 @@ architectures known to work on (e.g., Alpha, PPC), etc.
server and accelerated support for the P9100 is provided by the
XF86_SVGA server with the p9x00 driver.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old drivers
- have not been ported. NEED TO CHECK IF THESE CARDS WILL WORK
- WITH fbdev.
+ have not been ported.
Summary:
- No Weitek chips are supported in 3.9.18.
+ No Weitek chips are supported in 4.0.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml,v 1.13 2000/02/21 22:29:08 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml,v 1.15 2000/03/03 21:28:10 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/Status,v 1.8 2000/02/21 22:44:46 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/Status,v 1.11 2000/03/04 00:51:35 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc b/xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc
index be02a1acb..31e67be0e 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc
+++ b/xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc
@@ -1123,7 +1123,7 @@ Here is a copy of modeplot:
#
# Do `modeplot -?' to see the control options.
#
- # ($Id: VideoModes.doc,v 1.1.1.2 2000/02/22 15:43:00 kem Exp $)
+ # (Id: video-modes.sgml,v 1.2 1997/08/08 15:07:24 esr Exp $)
# Monitor description. Bandwidth in MHz, horizontal frequencies in kHz
# and vertical frequencies in Hz.
@@ -1162,7 +1162,7 @@ Here is a copy of modeplot:
The modeplot tool was created by Eric S. Raymond <esr@thyrsus.com> based on
analysis and scratch code by Martin Lottermoser <Martin.Lottermoser@mch.sni.de>
- This is modeplot $Revision: 1.1.1.2 $
+ This is modeplot Revision: 1.2 $
EOF
exit;;
esac
@@ -1314,9 +1314,9 @@ using gnuplot to make mode diagrams and did the mathematical analysis behind
modeplot. The distributed modeplot was redesigned and generalized by ESR
from Martin's original gnuplot code for one case.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml,v 3.15 2000/01/24 19:38:29 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml,v 3.16 2000/02/23 20:30:16 dawes Exp $
$XConsortium: VidModes.sgml /main/7 1996/02/21 17:46:17 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc,v 3.20 2000/02/21 22:44:46 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc,v 3.22 2000/03/01 01:48:31 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/man/Imakefile b/xc/programs/Xserver/hw/xfree86/doc/man/Imakefile
index c0c19a6bc..35bf9773e 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/man/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/doc/man/Imakefile
@@ -1,15 +1,31 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/man/Imakefile,v 3.4 1999/08/01 07:57:14 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/man/Imakefile,v 3.5 2000/03/04 01:07:33 dawes Exp $
MANDIR = $(LIBMANDIR)
MANSUFFIX = $(LIBMANSUFFIX)
all::
+#if 0
+
InstallManPage(XF86DGA,$(MANDIR))
+#if ExpandNamNames
+InstallManPageAliases(XF86DGA,$(MANDIR),XF86DGAQueryExtension XF86DGAQueryVersion XF86DGAQueryDirectVideo XF86DGAGetVideo XF86DGADirectVideo XF86DGASetVidPage XF86DGASetViewPort XF86DGAViewPortChanged XF86DGAGetViewPortSize XF86DGAInstallColormap XF86DGAForkApp)
+#endif
+
+#endif
+
+#if 0
+
InstallManPage(XF86Misc,$(MANDIR))
+#if ExpandNamNames
+InstallManPageAliases(XF86Misc,$(MANDIR),XF86MiscQueryExtension XF86MiscQueryVersion XF86MiscGetSaver XF86MiscSetSaver XF86MiscGetMouseSettings XF86MiscSetMouseSettings XF86MiscGetKbdSettings XF86MiscSetKbdSettings)
+#endif
+
+#endif
+
+/* XXX Check if this is up to date */
InstallManPageLong(XF86VM,$(MANDIR),XF86VidMode)
#if ExpandManNames
-InstallManPageAliases(XF86DGA,$(MANDIR),XF86DGAQueryExtension XF86DGAQueryVersion XF86DGAQueryDirectVideo XF86DGAGetVideo XF86DGADirectVideo XF86DGASetVidPage XF86DGASetViewPort XF86DGAViewPortChanged XF86DGAGetViewPortSize XF86DGAInstallColormap XF86DGAForkApp)
-InstallManPageAliases(XF86Misc,$(MANDIR),XF86MiscQueryExtension XF86MiscQueryVersion XF86MiscGetSaver XF86MiscSetSaver XF86MiscGetMouseSettings XF86MiscSetMouseSettings XF86MiscGetKbdSettings XF86MiscSetKbdSettings)
InstallManPageAliases(XF86VidMode,$(MANDIR),XF86VidModeQueryExtension XF86VidModeQueryVersion XF86VidModeGetModeLine XF86VidModeGetAllModeLines XF86VidModeDeleteModeLine XF86VidModeModModeLine XF86VidModeSwitchMode XF86VidModeSwitchToMode XF86VidModeLockModeSwitch XF86VidModeGetMonitor XF86VidModeGetViewPort XF86VidModeSetViewPort)
#endif
+
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml
index 5e891379a..3dba59b1a 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml
@@ -5,10 +5,10 @@
<title>Information for DEC 21030 Users (aka TGA)
<author>The XFree86 Project, Inc.
-<date>April 29th, 1999
+<date>March 5th, 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml,v 3.8 1999/07/19 13:36:20 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml,v 3.9 2000/03/06 22:59:23 dawes Exp $
</ident>
<toc>
@@ -20,7 +20,8 @@ $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml,v 3.8 1999/07/19 1
<item>The DEC 21030 is supported by XFree86 &relvers;. The driver is now
partially accelerated. The built-in graphics on the Multia is
supported in 8-plane mode, and PCI cards with 8 or 16 MB framebuffers
-are supported in 24-plane mode.
+are supported in 24-plane mode. TGA2 (aka PowerStorm 3D30/4D20)
+cards are not currently supported.
<item>Current Known Problems
@@ -34,7 +35,11 @@ ramdac, ie the Multia.
<item>After the server has been run using the hardware cursor, the
Linux TGA console cursor (which also uses the hardware cursor) is
-shifted down by one pixel.
+shifted down by one pixel. This problem does not affect Linux kernels
+2.2.10 and above, which do not use the hardware cursor.
+
+<item>The XAA PolySegment() method is buggy. If you experience server
+crashes with SIGFPE, or server hangs, try disabling it (see below).
</enum>
@@ -46,7 +51,7 @@ shifted down by one pixel.
numbers in the 21030 section. On a Multia, this should be
&dquot;PCI:0:11:0&dquot;.
-<tag>MemBase "0x???????"</tag> If the server does not
+<tag>MemBase 0x???????</tag> If the server does not
detect the base address of the 21030, then check /proc/pci for
the 21030 and look for the "Prefetchable 32 bit memory
at 0x???????" and enter this as your MemBase setting.
@@ -57,6 +62,9 @@ shifted down by one pixel.
<tag>Option "swcursor"</tag>
Disables the hardware cursor.
+<tag>Option "NoXaaPolySegment"</tag>
+ Disables the XAA PolySegment() method.
+
</descrip>
</itemize>
@@ -65,6 +73,7 @@ shifted down by one pixel.
<itemize>
<item>Matthew Grossman, <email>mattg@oz.net</email>
<item>Alan Hourihane, <email>alanh@fairlite.demon.co.uk</email>
+<item>Martin Lucina, <email>mato@kotelna.sk</email>
<item>Tim Rowley, <email>tor@cs.brown.edu</email>
</itemize>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/DGUX.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/DGUX.sgml
new file mode 100644
index 000000000..6d39f0f82
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/DGUX.sgml
@@ -0,0 +1,789 @@
+
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
+
+<article>
+
+<title>Instructions for Building XFree86 on an Intel Pentium Aviion machine with DG/UX R4.20MU04
+<author>Takis Psarogiannakopoulos
+<date>July 27, 1999
+<toc>
+
+<sect>Whats new <p>
+
+July 27, 1999<p>
+ DG has fix the streams bug in /usr/lib/tcpip.so . (Read below)
+ The workaround in the July 25 source code has been removed.
+ I've been told from DG that BSD sockets perform better in DGUX
+ than SVR4 native STREAMS. From R4.20MU06 DG/UX will have the correct
+ tcpip.so lib (no bug in STREAMS). If you have MU05,MU04 and you
+ want for some reason STREAMS definitely contact DG for an updated
+ /usr/lib/tcpip.so in /usr/lib (patch for your MU04,5).
+<p>
+ DG/UX at the moment lacks the sysi86 syscall and the definition
+ of SYSI86IOPL (that is in &lt;sys/sysi86.h&gt; but guarded by a
+ UNIXWARE defintion that of course cannot be applicable to DG/UX).
+ Until this header is accessible by a simple -DDGUX , and _sysi86,
+ sysi86 subroutines added to libc (or some other extra library)
+ we need to define the DG_NO_SYSI86 to be 1. If DG makes the above
+ modifications , you will need to manually edit the files (before
+ building!)
+ xc/programs/Xserver/hw/xfree86/SuperProbe/OS_DGUX.c
+ xc/programs/Xserver/hw/xfree86/etc/scanpci.c
+ xc/programs/Xserver/hw/xfree86/os-support/dgux/dgux_video.c
+ and eliminate DG_NO_SYSI86 flag by changing DG_NO_SYSI86 1-->0.
+<p>
+July 25, 1999<p>
+ A major bug has now been corrected in this release. According to this
+ since the STREAMS interface of DG/UX were broken the server was
+ listening not to port 6000 (= 0x1770) but to 0x7017.
+ All binaries that you have from 3.3.3.1, 3.3.3 they will work
+ locally (if you run them in the same machine) but NOT remotely
+ because they use an Xlib that tries to connect to port 28365.
+ If you want to run them remotely YOU MUST recompile them!
+ Steve thank you for bringing this to my attention initially but
+ was too busy then to look at it in detail... Perhaps I should
+ have...
+<p>
+ We now use sockets instead of ioctls.
+ But I've fix and tested the STREAMS also.
+<p>
+ David thanks for making me realize that this was indeed a problem
+ in DG/UX.
+<p>
+ I've also take the trouble to port gdb-4.17/8 and ddd (X inter)
+ in pub/XFree86/3.3.5/binaries/DGUX-ix86/GDB_BETA (both binaries
+ and source code) in order to be able to send me traces of core
+ files produced by Xservers. Try
+<verb>
+ gdb /usr/X11R6/bin/X location of core/core
+ gdb: where
+</verb>
+ and send me what you see.
+ (I suppose that the Xserver executable is in /usr/X11R6.3/bin)
+<p>
+ From 3.3.3.1:
+ Several bugs are now fixed. DG/UX support is on this official
+ patch. All configuration is in xc/config/cf/DGUX.cf and in
+ xf86site.def. Also Imake autodetects (thanks to David Dawes)
+ the DGUX OS (including Release version). So only a simple
+ "make World" is needed anymore to build in ix86 DG/UX.
+ Usually the process to build is (after unpacking and patching
+ the source "xc" tree) to go to xc/config/cf copy the file
+ xf86site.def to site.def and edit the files DGUX.cf ,site.def
+ for whatever changes you need to do.
+<p>
+ Default ProjectRoot in 3.3.5 is /usr/X11R6 (except if you
+ set this specifically in DGUX.cf either as /usr/X11R6.3--
+ --my choice, or in whatever you like).
+<p>
+ From:
+ December 1, 1998
+ IMPORTANT: PLEASE READ THE FILE README-GCC-2.8.1
+ GCC VERSION 2.8.1 is recommended for the DGUX build of X11R6.3
+ You can ignore below the _old_ conversation about gcc compiler
+ if you already run a gcc-2.8.1 in your machine.
+
+<sect> GENERAL: <p>
+
+ Get from ftp.xfree86.org the XFree 3.3.x source code:
+<verb>
+ ftp ftp.xfree86.org
+ login: ftp
+ passwd: your e-mail address
+ cd pub/XFree86/3.3.5/source
+ You need the files:
+ X335src-1.tgz
+ X335src-2.tgz
+ X335src-3.tgz
+</verb>
+<p>
+ Get also the contributed X software
+<verb>
+ cd /pub/XFree86/3.3.5/source
+ X335contrib.tgz
+</verb>
+<p>
+ If you have the source tarballs of 3.3.3 go to
+ /pub/XFree86/3.3.5/binaries/DGUX-ix86/SOURCE get the DGUX source
+ patch
+<p>
+<verb>
+ 3.3.3-3.3.5-DGUX.diff.gz
+ X335contrib-DGUX.diff.gz (patch for the contrib software).
+</verb>
+<p>
+ to avoid downloading all the source code again.
+<p>
+ Sorry some DGUX changes they didn't make in time for the official
+ release date of 3.3.4...
+ I do this for free, so some times I may be excused for something
+ like this...
+<p>
+ To build X11R6.3 you need also the tools for DG/UX (see discussion
+ below). They will be in
+ ftp dpmms.cam.ac.uk
+ (University of Cambridge,Department of Pure Mathematics)
+ in /pub/takis/DGUX-Tools/BuildXtools.tar.gz (anonymous ftp)
+ or in the ftp.xfree86.org ...
+ (pub/XFree86/3.3.5/binaries/DGUX-ix86/SOURCE/BUILD-TOOLS/
+ BuildXtools.tar.gz).
+<p>
+ Using a big filesystem (I use a virtual disk "xf86work" mounted on
+ /xf86work of size 1400000 blocks) copy the source as:
+<p>
+<verb>
+ cp X335src-1.tgz /xf86work/X335src-1.tar.gz
+ cp X335src-2.tgz /xf86work/X335src-2.tar.gz
+ cp X335src-3.tgz /xf86work/X335src-3.tar.gz
+</verb>
+<p>
+ (or X333src-1,2,3.tar.gz as above plus the DG/UX patch to 3.3.5
+ i.e. the file 3.3.3-3.3.5-DGUX.diff.gz)
+<p>
+ And maybe the contributed software:
+<verb>
+ cp X335contrib.tgz /xf86work
+
+ (cp X335contrib-DGUX.diff.gz /xf86work).
+</verb>
+<p>
+ If you get the patches from DGUX-ix86, to build from source 3.3.3
+ your first problem is that in order to apply the source patch you
+ need "patch" a very common GNU program that DG/UX doesn't have!?
+ This program is in BuildXtools.tar.gz
+ (or ftp prep.ai.mit.edu cd/pub/gnu get patch-2.5.tar.gz)
+ So lets speak about these tools before anything else:
+ Using "sysadm" mount a filesystem usr_local under /usr/local with
+ size 200000 blocks. Then copy the BuildXtools file in /usr and give:
+<verb>
+ gzip -d < BuildXtools.tar.gz | tar xvf -
+</verb>
+<p>
+ It will unfold in the new filesystem /usr/local.
+ Then go to your ".profile" (in your Home dir , mine eg is /admin)
+ and add the /usr/local/bin in your path and the /usr/local/lib in
+ your lib-path.
+<p>
+ What you need is like that:
+ (vi .profile)
+<p>
+<verb>
+ PATH=/usr/local/bin:/sbin:/usr/sbin:/usr/bin
+ if [ -d /usr/opt/X11/bin ]
+ then
+ PATH=$PATH:/usr/opt/X11/bin
+ fi
+ export PATH
+ (/usr/local/bin is before any other path!)
+
+ LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/ccs/lib
+ export LD_LIBRARY_PATH
+</verb>
+<p>
+ then exit and re-login so that your new modified .profile will take effect.
+<p>
+ Now do the following:
+<verb>
+ cd /usr/sbin
+ cp install install_dg
+ rm install
+ cp /usr/local/bin
+ cp install /usr/bin *(make the GNU install the default install)*
+ (DG/UX install is useless)
+ (Look also the file xc/config/cf/DGUX.cf , below).
+
+ (Or get GNU make-3.77 and copy install.sh (or -sh) to a /usr/bin/install)
+
+ cd /usr/bin
+ cp true /usr/local/bin
+ cd /usr/local/bin
+ ln -s true ranlib (Install true as ranlib in the DG/UX system)
+</verb>
+ Usually giving -v,-V or --version will give you build info on all
+ the tools in /usr/local/bin (try it).
+<p>
+ **Look the discussion for gcc before you build (below)**
+<p>
+ Now untar the source tree:
+ In /xf86work (or whatever name you gave to the big filesystem for the build)
+<verb>
+ gzip -d < X335src-1.tar.gz | tar xvf -
+ gzip -d < X335src-2.tar.gz | tar xvf -
+ gzip -d < X335src-3.tar.gz | tar xvf -
+</verb>
+
+ (If you have X-3.3.3 do the same for the 3.3.3 sources and
+ then apply the 3.3.5-DGUX source patch
+
+<verb>
+ gzip -d < 3.3.3-3.3.5-DGUX.diff.gz | patch -p0 -E).
+</verb>
+
+ The directory xc in now present in your build filesystem.
+
+
+<sect> Configuration for the build:<p>
+ Almost all you need is in "DGUX.cf" located in xc/config/cf.
+ Edit the file DGUX.cf and site.def and change what ever you need.
+ Remember DGUX.cf overwrites site.def.
+ The default ProjectRoot for XFree86-3.3.5 is now /usr/X11R6
+ (located in site.def). If you want to change this to whatever
+ you like (I prefer /usr/X11R6.3 and a link in /usr X11R6->X11R6.3)
+ edit DGUX.cf and locate the entry:
+<p>
+<verb>
+ #if 0
+ #define ProjectRoot /usr/X11R6.3
+ #endif
+</verb>
+ Eliminate the #if 0 , #endif.
+ Then change this to whatever you prefer.
+ (I prefer the above for the pre-compiled binaries)
+<p>
+ The DG/UX malloc is crap and keeps bringing problems with some
+ X software so I don't use it. Instead there is a port of GNU
+ malloc in /usr/local (it came with the BuildXtools file).
+ Don't try to build with the /lib/libmalloc.a of DG/UX and then
+ send me e-mails that some programs they don't work properly.
+ In my build I use tcl8.0 and tk8.0 since the xconfig of R4.20MU03
+ is reporting incorrect values for the monitors and XF86Setup
+ need to be build in order to manage to adjust the display.
+ If you don't have this (or don't want this) comment out the lines
+ about tcl,tk, (in DGUX.cf)
+<p>
+<verb>
+ /*******TCL TK DEFINITIONS ***********/
+ #define HasTk YES-->NO
+ ...
+ #define HasTcl YES-->NO
+</verb>
+ Also 'GNU make' is required for the correct X11R6.3 build.
+ (it is in Buildxtools file).
+ If you decide yes to tcl,tk obtain the files
+<verb>
+ tcl8.0.3.tar.gz
+ tk8.0.3.tar.gz (from some ftp)
+</verb>
+ (or newer versions) and compile them before the building
+ of X11R6.3 (Build first tcl8.0.3 then tk8.0.3).
+<p>
+<sect> DISCUSSION ABOUT GCC<p>
+ There are so much things that I can say for the system gcc of
+ DG/UX. If I was keeping track for the programs that fail using
+ this compiler I will certainly have fill a book (conveniently
+ for the DG of course).
+ But my work is not to correct bugs for the DG/UX compiler or
+ anything else) , and in particular to collect reports for
+ the genius of DG.
+ (DG:Sorry guys nothing personal. I am a pure Mathematician ,
+ I am doing all this work for pleasure, I don't want any money
+ from DG or anybody else , I am not looking to become a employer
+ of DG,and I am NOT a trouble shooter of the DG/UX in general.
+ But maybe some times if you help I may be able to help you also).
+<p>
+ What I wanted to do is to build X11. Thats why you will find
+ in BuildXtools a new gcc. This gcc is build for DG/UX R4.20MU02.
+ so you have to upgrade your DG/UX OS version to the above.
+ But it is solid to build not only X11 but whatever else you want.
+ DO NOT use gcc of DG/UX. If you do I cannot tell you anything
+ about any problems that you have.
+ To complete the installation of this new gcc do the following:
+<p>
+<verb>
+ cp -r /usr/local/gcc-dgux /usr/opt/sdk/sde/ix86dgux/usr/lib
+ cd /usr/opt/sdk/sde/ix86dgux/usr/lib
+ rm gcc
+ ln -s gcc-dgux gcc (set link gcc--->gcc-dgux)
+
+ cd /usr/local
+ cp -r /usr/local/gcc-dgux /usr/sde/ix86dgux/usr/lib
+ cd /usr/sde/ix86dgux/usr/lib
+ rm gcc
+ ln -s gcc-dgux gcc (set link gcc-->gcc-dgux)
+</verb>
+
+ To come back to your old DG/UX gcc just change the above two
+ links gcc-->gcc-dgux
+ to gcc-->gcc-2
+ with the command: (in both the above two dirs)
+<verb>
+ rm gcc
+ ln -s gcc-2 gcc
+</verb>
+
+ /usr/bin/gcc -v should report the version that you have.
+ To build successfully this version of X11 gcc is a *MUST*.
+<p>
+ Dynamic loading Servers:
+ Edit xc/config/cf/DGUX.cf and change the entry
+<p>
+ #ifndef BuildDynamicLoading
+ #define BuildDynamicLoading NO --->YES.
+ #endif
+<p>
+ Remember when you build you will see lots of errors and the servers
+ will NOT build! This is because the dynamic linker doesn't know
+ the locations of the newly created R6 libX's.
+ So after the (seem faulty) building do a
+<p>
+ make DESTDIR=ProjectRoot/lib install
+<p>
+ (look below for install, ProjectRoot the location that you choose
+ in the file xc/config/cf/DGUX.cf above)
+<p>
+ So that all your new libXR6 libraries will go there.
+ (do a cd ProjectRoot/lib to make sure).
+<p>
+ Then go to your home dir and declare the path ProjectRoot/lib dir
+ in you LD_LIBRARY_PATH (your profile) as:
+<p>
+ LD_LIBRARY_PATH=ProjectRoot/lib:$LD_LIBRARY_PATH
+ export LD_LIBRARY_PATH
+<p>
+ Then relogin!
+<p>
+ Now just _rebuild_ A FULL XFree86-3.3.5 with the entry
+<p>
+ #define BuildDynamicLoading YES in your DGUX.cf.
+<p>
+ This time you will build _all_ XFree86-3.3.5 correctly.
+<p>
+
+<sect> BUILD <p>
+ In the usual X11R5 of DG (mwm) open an xterm and give:
+ (/bin/sh = Bourne shell)
+<p>
+<verb>
+ cd xc
+ make World > Build-dg.log
+</verb>
+
+ In that way you will get all the error messages in your
+ screen.
+ Don't worry with messages about -znodefs.
+<p>
+ Note: the old command
+<verb>
+ make World BOOTSTRAPCFLAGS="-DDGUX" > Build-dg.log
+</verb>
+ is no longer needed since imake will detect the DGUX OS
+ (in Version => 3.3.3.1) and set up things. However this
+ command will also work.
+<p>
+ And in another xterm give cd xc
+ tail -f Build-dg.log to watch the building progress.
+<p>
+ To install X11R6.3 XFree version 3.3.5 after the build
+ you must have a filesystem say usr_X11R6.3 mounted to
+ the directory /usr/X11R6 size 350000 blocks.
+ (or whatever you choose to be your ProjectRoot, if you
+ modify DGUX.cf for another ProjectRoot than the default
+ /usr/X11R6 in site.def).
+ Then give
+<verb>
+ make install
+ make install.man (install the man pages)
+</verb>
+ The installation will not put an XF86Config in your
+ /usr/X11R6.3/lib/X11/ and so if you give startx the new
+ X11 will not start. Read the file README-X3331.DGUX in
+ this ftp site (located in the binaries) about the whole
+ installation procedure of X11R6.3.
+ Or quickly you can do:
+ (I remind: DG/UX mouse device "/dev/mouse")
+ cd /usr/X11R6.3/bin
+ ln -s XF86_VGA16 X
+ Then put in your .profile the path /usr/X11R6.3/bin and
+ run the XF86Setup program. Adjust first the mouse device
+ then everything else.
+ (You need to read really the file README-DGUX.INSTALL-> look
+ in the end of this file).
+<p>
+ To build the contributed software with XFree86-3.3.5 get
+ the X335contrib.tgz and do
+<verb>
+ gzip -d < X335contrib.tgz | tar xvf -
+</verb>
+
+ (Or for 3.3.3 sources unpack X333contrib.tgz and apply the DGUX
+ patch as
+<verb>
+ gzip -d < X335contrib-DGUX.diff.gz | patch -p0 -E ).
+</verb>
+ Please note:
+ You must have already install and active the X11R6.3 that you
+ build so that the imake is working properly for your system.
+ Read below for how to install this X window system.
+ After that you could do:
+
+<verb>
+ cd contrib
+ xmkmf -a
+ make
+ make install
+ make install.man (for installing the man pages)
+</verb>
+
+
+<sect> INSTALLATION OF THE BINARY:<p>
+
+ NOTE:This executable has been compiled with the macro -DPENTIUM_CHANGE
+ (that all the new Aviion machines support). If you have an old i486
+ (rather unlikely) the executable will NOT RUN correctly.
+ But we haven't use -mcpu=pentiumpro, so the executable will work on
+ ALL PENTIUM machines.
+
+<itemize>
+<item> About Project Root: I choose as ProjectRoot for ix86 DG/UX the location
+ /usr/X11R6.3. The default (in 3.3.5 sources) is the /usr/X11R6. To
+ cover this we make a link in /usr as X11R6->X11R6.3 (read below);
+ so don't forget to do this link. I don't like the location /usr/opt/X11
+ (default location of DG X11) that some of you have suggested to me, I
+ believe it is a good idea to keep the original X11 as is for several
+ reasons.
+
+<item> Make a filesystem,using sysadm, mounted under "/usr/X11R6.3".
+ This is the default location of X11R6.3 , you cannot change this
+ except if you recompile the whole source of X.
+ (Please don't send e-mails about this).
+ The size of this filesystem should be around 175 MB(350000 blocks).
+
+ The list of files is:
+
+<verb>
+ X3353DL.tgz 3D_Labs XServer ... etc
+ X3358514.tgz
+ X335AGX.tgz
+ X335I128.tgz
+ X335Ma32.tgz Mach32 Xserver
+ X335Ma64.tgz Mach64 Xserver
+ X335Ma8.tgz
+ X335Mono.tgz
+ X335P9K.tgz
+ X335S3.tgz
+ X335S3V.tgz
+ X335SVGA.tgz SuperVGA Xserver (Supports AV3700 Cirrus)
+ X335VG16.tgz VGA16 Xserver (needed by XF86Setup)
+ X335W32.tgz
+ X335bin.tgz BIN (you must have this)
+ X335cfg.tgz
+ X335doc.tgz
+ X335f100.tgz
+ X335fcyr.tgz
+ X335fnon.tgz
+ X335fnts.tgz
+ X335fscl.tgz
+ X335fsrv.tgz
+ X335lib.tgz LIB (you must have this)
+ X335lkit.tgz Linkkit (X development)
+ X335man.tgz Man pages
+ X335nest.tgz
+ X335prog.tgz
+ X335prt.tgz
+ X335set.tgz
+ X335vfb.tgz
+ preinst.sh Install script
+ extract The XFree86 extract program (for ix86 DG/UX)
+
+ SUMS.md5 Checksums for the integrity of the files
+</verb>
+ (Try compile the GNU textutils-1.22.tar.gz from
+ prep.ai.mit.edu /pub/gnu. md5sum is there).
+<p>
+ You need at least:
+<verb>
+ X335bin.tgz
+ X335lib.tgz
+</verb>
+ And the correct Xserver for your machine/Graphics card.
+ In my opinion take all files , in the future you may need to
+ switch to another graphics device etc ... (mget *).
+ Generally it is good to have the full distribution of the
+ X11R6.3 window system ,it should make life easier in DG/UX.
+<p>
+ (Trivial:you must have root privilege).
+<p>
+<item> Unpack the *.tgz files in your / so that it will go directly inside to
+ the new filesystem /usr/X11R6.3. After you do that cd /usr and do a link :
+ ln -s X11R6.3 X11R6. (Use the install script).
+ This link will indicate in XF86 programs like XF86Setup where the new X11
+ window system is.
+
+<item> cd your home dir and backup your .profile as "cp .profile myprofile". Then
+ cd /usr/X11R6.3. Copy the file HOME.profile-X11R6.3 to your home dir as
+ "cp HOME.profile-X11R6.3 your home dir/.profile" ,then cd your home dir and
+ "chmod 644 .profile" to make sure that the new profile is active. This is
+ because you need to tell to the system to look for the X software in a
+ different location than the usual /usr/bin/X11 of DG/UX. Also you need
+ to tell to the system that the new X libraries are in /usr/X11R6.3/lib.
+<p>
+ **You NEED to re-login in order to make the new .profile active !**
+ ** DO NOT GIVE "startx" AFTER THAT, READ Configuration below !**
+
+<item> About Configuration:
+ DG/UX has a program (actually a script) called xconfig that makes the
+ configuration for you. Usually when you run xconfig in the DG/UX-X11R5
+ it creates a file XdgConfig in /var/X11/Xserver which is the corresponding
+ of the XF86-configuration file located in /usr/X11R6.3/lib/X11/XF86Config.
+ This file ,in the section monitor, has all values for your monitor.
+ Please Note:
+ Unfortunately in DG/UX R4.20MU02 things change. Instead of going forwards we
+ going backwards... xconfig reports crazy values for my DG-DA1765VA monitor.
+ So if you have a CDROM of DG/UX R4.11MU02,or MU03 use it to find an xconfig
+ that will give you reliable values for your monitor.
+<p>
+ Your best bet is to use XF86Setup for correct adjustments.
+<p>
+ Thats the reason that in this binary there is a minimum tcl,tk(version 8.0).
+ Before you run XF86Setup read the relevant documents found in www.xfree86.org.
+ (Or read below for a hand-made configuration).
+<p>
+ Notice about XF86Setup: You will will see the message
+ "The program is running on a different virtual"
+ "Please switch to the correct virtual terminal"
+<p>
+ DG/UX does NOT have any virtual terminals. But XF86Setup uses a script
+ that doesn't checks for this. So it is printing this message anyway.
+ Ignore it and don't send e-mails asking how to set the virtual terminal!
+ XF86Setup WORKS for SURE (if you use it correctly) to set your configuration.
+ Just remember:
+ <enum>
+ <item> make a link in /usr/X11R6.3/bin: ln -s XF86_VGA16 X
+ <item> set mouse device in your XF86Config to /dev/mouse (this the mouse in DGUX)
+ <item> set the correct mouse protocol. (usually for a typical AViiON PS/2).
+ </enum>
+ Or just cd /usr/X11R6.3/lib/X11 and copy XF86Config.eg.dgux to XF86Config
+ (it is for a PS/2 protocol mouse that almost all AViiON's have) , then
+ run XF86Setup and choose to use this XF86Config file as default (so mouse
+ works).
+<p>
+ Alternatively, you can run xf86config, a non-graphical configuration utility
+ but you will need to enter manually the values for your monitor.
+ If you have the small booklet that came with the monitor they are inside.
+<p>
+ Hand made configuration:
+ I have an DG/UX Medium resolution (1280x1024) 17 inch DG-26059,DA1765VA.
+<bf>
+ ONLY IF YOU HAVE THE
+ ***EXACT SAME***
+ MONITOR USE THE FILE XF86Config_SVGA_DGUX that you will find in /usr/X11R6.3/.
+ IT IS IN YOUR OWN RISK IF YOU DECIDE TO USE THIS FILE WHEN YOU DON'T HAVE THE
+ SAME MONITOR AS MINE. YOU CAN DAMAGE YOUR VIDEO MONITOR OR YOUR GRAPHICS CARD.
+</bf>
+<p>
+ An example of how to use the Accel Servers (eg ATI=XF86_Mach64) is in the file
+ XF86Config_ATI_DGUX.
+ Again remember:
+ I have an DG/UX Medium resolution (1280x1024) 17 inch DG-26059,DA1765VA.
+<bf>
+ ONLY IF YOU HAVE THE
+ ***EXACT SAME***
+ MONITOR USE THE FILE XF86Config_ATI_DGUX that you will find in /usr/X11R6.3/.
+ IT IS IN YOUR OWN RISK IF YOU DECIDE TO USE THIS FILE WHEN YOU DON'T HAVE THE
+ SAME MONITOR AS MINE. YOU CAN DAMAGE YOUR VIDEO MONITOR.
+</bf>
+<p>
+ Start with the file XF86Config.eg as a prototype. READ the README.Config .
+ In Cirrus chips you need to read the file README.cirrus located in /usr/X11R6.3
+ There is a problem with the accelerated XAA code ,so you need to try to put
+ the following option in your XF86Config:
+<verb>
+ Option "no_mmio" (in Section Screen ,subsection display).
+</verb>
+ Look in the XF86Config_SVGA_DGUX to see how this can be done .
+ If this doesn't work (it will probably) try Option "noaccel" or "no_bitblt".Again
+ READ the file README.cirrus (and README.Config).
+ I suggest to print (in paper) the file XdgConfig and have a look in it. Then it
+ should be quite trivial to figure out what you have to do with the XF86 file
+ ie XF86Config in the sections mouse, keyboard, screen ...
+ After you have a correct XF86Config in /usr/X11R6.3/lib/X11 give
+<verb>
+ chmod 444 XF86Config.
+</verb>
+<p>
+ Supposing that you have already re-login so that the new .profile is active
+ and you have the correct XF86Config file (as your XdgConfig suggest) (DO not
+ forget for a cirrus to put the Option "no_mmio" in section screen !), give
+ startx and the new X11 will start .
+ Remember: You can shut down at any point the Xserver by pressing
+ CONTROL+ALT+BACKSPACE (if something goes wrong).
+ Also Xservers don't produce messages unless to want them to do so. This is
+ because the DG/UX console driver some times causes corruption of the screen
+ if you print text during the startup of the Xserver.
+ If you require messages try in bash shell to give: (bash# )
+<verb>
+ X -verbose >& info1 or even
+ X -verbose -verbose >& info2 for more messages.
+</verb>
+ Then when the server is up press CONTROL+ALT+BACKSPACE to shutdown the
+ Xserver. File info1 (or info2) have all relevant info about your graphics
+ card , display memory etc ...
+ I suggest you do that at least one time before start using the new X11R6.3.
+ Read this info file to see if all ok. If not try change settings in your
+ XF86Config to make thinks correct.
+<p>
+ If you have an ATI Rage II (or RageII+) use the server XF86_Mach64 (make
+ a link link X--->XF86_MACH64, or run xf86config, or use XF86Setup above).
+
+<item> If you want to compile programs with the X11R6.3 the headers in /usr/include
+ /X11 pointing to /usr/opt/X11 of DG/UX is a problem .
+ Do:
+<p>
+ a): unmounting the /usr/opt/X11 will prevent the sysadm to use the X
+ graphical interface. But this will be the only thing that you loose.
+ The correct thing to do for X11R6.3 is to delete the filesystem /usr/opt/X11
+ and make a link /usr/opt/X11--->/usr/X11R6.3 , so that the libraries
+ from dglib and /usr/lib point correctly to the new ones in /usr/X11r6.3/lib.
+ Before you unmount this filesystem you need to do this:
+<verb>
+ cd /usr/opt/X11/include
+ cp -r Mrm /usr/X11R6.3/include
+ cp -r uil /usr/X11R6.3/include
+ cp -r Xm /usr/X11R6.3/include
+ cd /usr/X11R6.3/include
+ ln -s uil Uil
+</verb>
+
+ LIBRARIES:
+<verb>
+ and cd /usr/opt/X11/lib
+ cp libXm.a /usr/X11R6.3/lib
+</verb>
+
+ and similarly copy the following libraries:
+
+<verb>
+ libX11.so.2, libX11.so.5, libXIM.so.1, libXaw.so.1, libXaw.so.2,
+ libXext.so.2, libXi.so.2, libXimp.so.1, libXm.so.2, libXmu.so.2,
+ libXsess.so.1, libXsi.so.1, libXt.so.2, libXt.so.5.0, libMrm.a,
+ libUil.a, libX11_s, libXR4sco_s
+</verb>
+
+ into /usr/X11R6.3/lib.
+<p>
+ Then cd /usr/X11R6.3/lib and make links:
+
+<verb>
+ ln -s libXm.so.2 libXm.so
+ ln -s libXm.so.2 libXm.so.1
+ ln -s libXm.so.2 libXm.so.5.0
+
+ ln -s libX11.so.5.0 libX11.so.1
+
+ ln -s libXIM.so.1 libXIM.so.5.0
+
+ ln -s libXaw.so.2 libXaw.so.5.0
+
+ ln -s libXext.so.2 libXext.so.5.0
+ ln -s libXext.so.2 libXext.so.1
+
+ ln -s libXi.so.2 libXi.so.1
+ ln -s libXi.so.2 libXi.so.5.0
+
+ ln -s libXimp.so.1 libXimp.so.5.0
+
+ ln -s libXmu.so.2 libXmu.so.5.0
+
+ ln -s libXt.so.2 libXt.so.5.0
+
+ ln -s libXsi.so.1 libXi.so.5.0
+
+ cd /usr/X11R6.3/lib
+ rm libXmu.so (to avoid undefs when building X software)
+</verb>
+
+ Also you need to correct the links in /usr/dglib at least!
+ (the correct thing to do is modify also /usr/lib links to
+ /usr/opt/X11 libs).
+ Try
+<verb>
+ cd /usr/
+ tar -cvf dglib-orig.tar dglib
+ gzip dglib-orig.tar
+</verb>
+ (to minimize the space dglib-backup takes) then
+<verb>
+ cd /usr/dglib
+</verb>
+ and delete ALL links to libraries in
+ /usr/opt/X11. Then copy the script create_new_links_in_dglib (found
+ in /usr/X11R6.3 to /usr/dglib and cd /usr/dglib execute script.
+ This will create all new links with the X11R6.3 X window system.
+<p>
+ But remember to do in the end :
+<p>
+<verb>
+ cd /usr/dglib
+ rm *.a (no static libs links in dglib)
+</verb>
+
+ Then unmount (delete) the old X11 by giving "umount /usr/opt/X11".
+<p>
+ NOTE: If you compile programs in the X11R6 make sure that you
+ unmount /usr/opt/X11 or you eliminate the links in /usr/lib
+ to the OLD libX's in /usr/opt/X11/lib.
+ Otherwise gcc will link these old libraries! and the binary will
+ not run correctly.
+ Always after an R6 compilation do "ldd prog" to make sure that the
+ binary loads only R6 version libraries (except maybe the motif
+ library libXm.so.2), --if you don't use the static libXm.a
+<p>
+ b:)
+<verb>
+ cd /usr/include
+ tar -cvf old-X11headers.tar X11
+ gzip old-X11headers.tar
+</verb>
+ so that you store your old headers in /usr/include.
+
+ Then cd /usr/include/ and delete
+<verb>
+ rm -r X11
+ rm Xm
+ rm Mrm
+ rm Uil
+ rm uil
+ Make new links as:
+ cd /usr/include
+ ln -s ../X11R6.3/include/X11 X11
+ ln -s ../X11R6.3/include/uil Uil
+ ln -s ../X11R6.3/include/uil uil
+ ln -s ../X11R6.3/include/Xm Xm
+ ln -s ../X11R6.3/include/Mrm Mrm
+</verb>
+</itemize>
+
+<sect> What is about:<p>
+ This new X11R6 are not simply an upgrade of the servers to the latest ones.
+ It is a new programming platform in your DG/UX system to allow you to import
+ all this *FREE* or not software for the X window system.
+ This software will not compile in the old (and ugly) X11 of Data General.
+ The imake command that is implemented in almost all the (source) software
+ for X11 (free or not) will not work with the totally broken "imake" command
+ of /usr/opt/X11 of DG/UX.
+<p>
+ The imake of DG/UX X11R5 is badly broken:
+ I have seen DG/UX releases R4.11,MU01, ...MU04, R420, R4.20MU02 ,R4.20MU03
+ and nobody bother to look in all these releases the imake command...
+<p>
+ While until now DG was rather hostile to the prospect of a new X11 in DG/UX
+ some new folks there they have turn their interest in X11R6 (XFree86) these
+ days. That is good of course because the ultimate target is to make XFree86
+ (3.3.5 or whatever version) to run in _their_ DG/UX Unix! I will be able to
+ make a much better X11 in DG/UX if I could had some access to DG/UX sources
+ (i.e. the original R5 sources , but not only --eg kernel driver sources as
+ for example the DG/UX kernel console driver sources).
+<p>
+ I have compile almost anything that runs for Linux in DG/UX using this X11.
+ In doing this work in XFree86 I would like to express my thanks to David Dawes
+ that he help me all the time with several technical questions. Also D.T. is one
+ of the people that offer valuable help.
+ Finally I want to express my thanks to John H. for enlightening me in some syscall
+ issues.
+
+
+<verb>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DGUX.sgml,v 1.1 2000/02/24 20:43:23 dawes Exp $
+</verb>
+
+</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml
new file mode 100644
index 000000000..895ce09a7
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml
@@ -0,0 +1,719 @@
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
+
+<!-- Created: Mon Feb 28 13:00:00 2000 by brian@precisioninsight.com -->
+<!-- Revised: Mon Mar 6 20:10:02 2000 by kevin@precisioninsight.com -->
+
+ <article>
+
+ <title>DRI Users Guide
+ <author><htmlurl url="http://www.precisioninsight.com/"
+ name="Precision Insight, Inc.">
+ <date>6 March 2000
+
+ <ident>
+ $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml,v 1.3 2000/03/08 05:38:41 dawes Exp $
+ </ident>
+
+ <toc>
+
+ <sect>Preamble
+<p>
+ <sect1>Copyright
+<p>
+ <bf>Copyright &copy; 2000 by Precision Insight, Inc.,
+ Cedar Park, Texas.
+ All Rights Reserved.</bf>
+ <p>
+ <bf>Permission is granted to make and distribute verbatim copies
+ of this document provided the copyright notice and this permission
+ notice are preserved on all copies.</bf>
+
+ <sect1>Trademarks
+<p>
+ OpenGL is a registered trademark and SGI is a trademark of
+ Silicon Graphics, Inc.
+ Unix is a registered trademark of The Open Group.
+ The `X' device and X Window System are trademarks of The Open Group.
+ XFree86 is a trademark of The XFree86 Project.
+ Linux is a registered trademark of Linus Torvalds.
+ Intel is a registered trademark of Intel Corporation.
+ 3Dlabs, GLINT, and Oxygen are either registered trademarks or
+ trademarks of 3Dlabs Inc. Ltd.
+ 3dfx, Voodoo3, Voodoo4, and Voodoo5 are registered trademarks of
+ 3dfx Interactive, Incorporated.
+ All other trademarks mentioned are the property of their
+ respective owners.
+
+ <sect>Introduction
+<p>
+ With XFree86 4.0 and Precision Insight's Direct Rendering Interface
+ (DRI), hardware accelerated 3D graphics can be considered a standard
+ feature on Linux workstations.
+ Support for other operating systems, such as FreeBSD, is underway.
+ <p>
+ This document describes how to use the DRI system and troubleshoot
+ problems which may occur.
+ Readers should have a basic understanding of Linux, X and OpenGL.
+ See the resources section at the end for more documentation and
+ software downloads.
+ <p>
+ This document does not cover compilation or installation of
+ XFree86 4.0;
+ it is assumed that you've already installed a Linux distribution which
+ includes XFree86 4.0.
+
+ <sect>Supported Hardware
+<p>
+ 3D acceleration is currently only available for systems with
+ Intel-compatible CPUs.
+ Support for Alpha, and perhaps other CPUs, should be available in the
+ future.
+ <p>
+ XFree86 4.0 includes 3D acceleration for the following
+ graphics hardware:
+
+ <itemize>
+ <item>3dfx:
+ <itemize>
+ <item>Voodoo3 3500 TV
+ <item>Voodoo3 3000 AGP
+ <item>Voodoo3 3000 PCI
+ <item>Voodoo3 2000 AGP
+ <item>Voodoo3 2000 PCI
+ <item>Voodoo Banshee
+ <item>Velocity 100/200
+ </itemize>
+ There are many configurations of 3dfx cards on the market.
+ Not all have been tested.
+ <item>3Dlabs Oxygen GMX 2000 (MX/Gamma based)
+ </itemize>
+
+ <p>
+ Support for the following hardware is underway:
+ <itemize>
+ <item>Intel i810
+ <item>Matrox G400
+ <item>ATI Rage 128
+ <item>3dfx Voodoo4 and Voodoo5 series
+ </itemize>
+
+
+ <sect>Prerequisite Software
+<p>
+ <itemize>
+ <item>XFree86 4.0
+ <item>Linux kernel 2.2.x (later kernels will be supported in
+ the near future, and may be required for some chipsets)
+ </itemize>
+ <p>
+ Mesa 3.3 (beta) is included with XFree86 4.0; there is no need to
+ download the stand-alone Mesa distribution.
+
+
+ <sect>X Server Start-up
+<p>
+ This section describes the steps needed to start the X server with
+ 3D acceleration support.
+
+ <sect1>Kernel module
+<p>
+ Before starting the X server you must install the correct kernel
+ module for your hardware.
+ <p>
+ This can be done by executing the following as root:
+ <verb>
+ insmod XXX/drivername.o
+ </verb>
+ <p>
+ For example, on 3dfx hardware, the kernel module is called tdfx.o
+ so you you would type insmod XXX/tdfx.o
+
+ <p>
+ Verify that the kernel module was installed by checking that
+ /proc/dri/0 exists.
+
+ <sect1>XF86Config file
+<p>
+ First, the XF86Config file must load the GLX and DRI modules:
+
+ <verb>
+ Section "Module"
+ ...
+ # This loads the GLX module
+ Load "glx"
+ # This loads the DRI module
+ Load "dri"
+ EndSection
+ </verb>
+
+ Next, the DRI section can be used to restrict access to direct
+ rendering.
+ <p>
+ If you want all of the users on your system to be able to use
+ direct-rendering, then use a simple DRI section:
+ <verb>
+ Section "DRI"
+ Mode 0666
+ EndSection
+ </verb>
+ <p>
+ This section will allow any user with a current connection to the X
+ server to use direct rendering.
+ <p>
+ If you want to restrict the use of direct-rendering to a
+ certain group of users, then create a group for those users by
+ editing the <tt>/etc/group</tt> file on your system.
+ For example, you may want to create a group called <tt>xf86dri</tt>
+ and place two users (e.g., <tt>fred</tt> and <tt>jane</tt>) in
+ that group.
+ To do that, you might add the following line to <tt>/etc/group</tt>:
+
+ <verb>
+ xf86dri:x:8000:fred,jane
+ </verb>
+
+ You have to be careful that the group id (8000 in this example)
+ is unique.
+ <p>
+ Then you would use the following DRI section:
+
+ <verb>
+ Section "DRI"
+ Group "xf86dri"
+ Mode 0660
+ EndSection
+ </verb>
+
+ This would limit access to direct-rendering to those users in the
+ <tt>xf86dri</tt> group (<tt>fred</tt> and <tt>jane</tt> in this
+ example). When other users tried to use direct rendering, they
+ would fall back to unaccelerated indirect rendering.
+ <p>
+ [Note that there is a known bug in XFree86 4.0 that prevents some
+ changes to the DRI section from taking effect. Until this bug is
+ fixed, if you change the DRI section, please also remove the
+ <tt>/dev/dri</tt> directory with the <tt>rm -rf /dev/dri</tt>
+ command.]
+ <p>
+ Next, the Device section of the XF86Config file must describe your
+ particular hardware.
+ For example, here's the Device section for a 3dfx Voodoo3 card:
+
+ <verb>
+ Section "Device"
+ Identifier "Voodoo3"
+ VendorName "3dfx"
+ Driver "tdfx"
+ EndSection
+ </verb>
+
+ <p>
+ Finally, the Screen section of the XF86Config file may have to be
+ specially configured as well.
+ For example, Voodoo3 hardware acceleration is only available
+ in 16bpp mode.
+ <verb>
+ Section "Screen"
+ Identifier "Screen 1"
+ Device "Voodoo3"
+ Monitor "High Res Monitor"
+ DefaultDepth 16
+ Subsection "Display"
+ Depth 16
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ EndSection
+ </verb>
+
+ <p>
+ If there are errors in the XF86Config file, the X server will
+ log errors to the file /var/log/XFree86.0.log
+
+ <sect1>Memory usage
+<p>
+ Using the 3D features of a graphics card requires more memory
+ than when it's just used as a 2D device.
+ Double buffering, depth buffering, stencil buffers, textures,
+ etc. all require extra graphics memory.
+ These features may require four times the memory used for a simple
+ 2D display.
+ <p>
+ If your graphics card doesn't have a lot of memory (less than 16MB,
+ for example), you may have to reduce your screen size and/or
+ color depth in order to use 3D features.
+ <p>
+ The documentation included with your card should have information
+ about maximum screen size when using 3D.
+
+
+ <sect>Using 3D Acceleration
+<p>
+ This section describes how to link your application with libGL.so
+ and verify that you are in fact using 3D acceleration.
+
+ <sect1>libGL.so
+<p>
+ Your OpenGL program must link with the libGL.so.1.2 library provided
+ by XFree86 4.0.
+ The libGL.so.1.2 library contains a GLX protocol encoder for
+ indirect/remote rendering and DRI code for accessing hardware
+ drivers.
+ In particular, be sure you're not using libGL.so from another
+ source such as Mesa or the Utah GLX project.
+ <p>
+ Unless it was built in a special way, the libGL.so library does
+ not contain any 3D hardware driver code.
+ Instead, libGL.so dynamically loads the appropriate 3D driver
+ during initialization.
+ <p>
+ Most simple OpenGL programs also use the GLUT and GLU libraries.
+ A source for these libraries is listed in the Resources
+ section below.
+
+ <sect1>Compiling and linking an OpenGL program
+<p>
+ A simple GLUT/OpenGL program may be compiled and linked as follows:
+ <verb>
+ gcc program.c -I/usr/local/include -L/usr/local/lib -L/usr/X11R6/lib -lglut -lGLU -lGL -o program
+ </verb>
+ <p>
+ The <tt/-I/ option is used to specify where the GL/glut.h (and
+ possibly the GL/gl.h and GL/glu.h) header file may be found.
+ <p>
+ The <tt/-L/ options specify where the libglut.so, libGLU.so and
+ X libraries are located.
+ <p>
+ The <tt/-lglut -lGLU -lGL/ arguments specify that the application
+ should link with the GLUT, GLU and GL libraries.
+
+ <sect1>Running your OpenGL program
+<p>
+ Simply typing ./program in your shell should execute the program.
+ <p>
+ If you get an error message such as
+ <verb>
+ gears: error in loading shared libraries: libGL.so.1: cannot
+ open shared object file: No such file or directory
+ </verb>
+ if means that the libGL.so.1 file is not the right location.
+ Proceed to the trouble shooting section.
+
+ <sect1>glxinfo
+<p>
+ glxinfo is a useful program for checking which version of
+ libGL you're using as well as which DRI-based driver.
+ Simply type <tt/glxinfo/ and examine the OpenGL vendor, renderer,
+ and version lines.
+ Among the output you should see something like this:
+ <p>
+ <verb>
+ OpenGL vendor string: Precision Insight, Inc.
+ OpenGL renderer string: Mesa DRI Voodoo3 20000224
+ OpenGL version string: 1.2 Mesa 3.3 beta
+ </verb>
+ <p>
+ or this:
+ <p>
+ <verb>
+ OpenGL vendor string: Precision Insight, Inc.
+ OpenGL renderer string: Mesa GLX Indirect
+ OpenGL version string: 1.2 Mesa 3.3 beta
+ </verb>
+ <p>
+ The first example indicates that the 3dfx driver is using
+ Voodoo3 hardware.
+ The second example indicates that no hardware driver was
+ found and indirect, unaccelerated rendering is being used.
+ <p>
+ If you see that indirect rendering is being used when direct
+ rendering was expected, proceed to the troubleshooting section.
+ <p>
+ <tt/glxinfo/ also lists all of the GLX-enhanced visuals available.
+ Here you can determine which visuals may have depth buffers, stencil
+ buffers, accumulation buffers, etc.
+
+ <sect1>Environment Variables
+<p>
+ The libGL.so library recognizes three environment variables.
+ Normally, none of them need to be defined.
+ If you're using the csh or tcsh shells, type
+ <tt/setenv VARNAME value/ to set the variable.
+ Otherwise, if you're using sh or bash, type
+ <tt/export VARNAME=value/.
+ <enum>
+ <item>
+ <tt/LIBGL_DEBUG/, if defined will cause libGL.so to print error
+ and diagnostic messages. This can help to solve problems.
+ <item>
+ <tt/LIBGL_ALWAYS_INDIRECT/, if defined this will force libGL.so
+ to always use indirect rendering instead of hardware
+ acceleration.
+ This can be useful to isolate rendering errors.
+ <item>
+ <tt/LIBGL_DRIVERS_DIR/ can be used to override the default
+ directory which is searched for 3D drivers.
+ In a typical XFree86 installation, the 3D drivers should be in
+ /usr/X11R6/lib/modules/dri/.
+ This environment variable can be used to specify a different
+ directory.
+ Note that this feature is disabled for set-uid programs.
+ </enum>
+ <p>
+ Mesa-based drivers (this includes most of the drivers listed
+ above) also observe many of the existing Mesa environment variables.
+ These include the <tt/MESA_DEBUG/ and <tt/MESA_INFO/ variables.
+
+
+ <sect>General Trouble Shooting
+<p>
+ This section contains information to help you diagnose general
+ problems.
+ See below for additional information for specific hardware.
+
+ <sect1>Starting the X server
+<p>
+ <enum>
+ <item>
+ Before you start the X server, verify the appropriate 3D kernel
+ module is installed.
+ Type <tt/lsmod/ and look for the appropriate kernel module.
+ For 3dfx hardware you should see <tt/tdfx/, for example.
+
+ <item>
+ Verify you're running XFree86 4.0 and not an older version.
+ If you run <tt/xdpyinfo/ and look for the following line near
+ the top:
+ <verb>
+ vendor release number: 4000
+ </verb>
+
+ <item>
+ Verify that your XF86Config file (usually found at
+ /etc/X11/XF86Config) loads the glx and dri modules and
+ has a DRI section.
+ <p>
+ See the Software Resources section below for sample
+ XF86Config files.
+
+ <item>
+ Examine the messages printed during X server startup and check
+ that the DRM module loaded.
+ Using the Voodoo3 as an example:
+ <verb>
+ (==) TDFX(0): Write-combining range (0xf0000000,0x2000000)
+ (II) TDFX(0): Textures Memory 7.93 MB
+ (0): [drm] created "tdfx" driver at busid "PCI:1:0:0"
+ (0): [drm] added 4096 byte SAREA at 0xc65dd000
+ (0): [drm] mapped SAREA 0xc65dd000 to 0x40013000
+ (0): [drm] framebuffer handle = 0xf0000000
+ (0): [drm] added 1 reserved context for kernel
+ (II) TDFX(0): [drm] Registers = 0xfc000000
+ (II) TDFX(0): visual configs initialized
+ (II) TDFX(0): Using XFree86 Acceleration Architecture (XAA)
+ Screen to screen bit blits
+ Solid filled rectangles
+ 8x8 mono pattern filled rectangles
+ Indirect CPU to Screen color expansion
+ Solid Lines
+ Dashed Lines
+ Offscreen Pixmaps
+ Driver provided NonTEGlyphRenderer replacement
+ Setting up tile and stipple cache:
+ 10 128x128 slots
+ (==) TDFX(0): Backing store disabled
+ (==) TDFX(0): Silken mouse enabled
+ (0): X context handle = 0x00000001
+ (0): [drm] installed DRM signal handler
+ (0): [DRI] installation complete
+ (II) TDFX(0): direct rendering enabled
+ </verb>
+
+ <item>
+ After the X server has started, verify that the required X server
+ extensions are loaded.
+ Run <tt/xdpyinfo/ and look for the following entries in the
+ extensions list:
+ <verb>
+ GLX
+ SGI-GLX
+ XFree86-DRI
+ </verb>
+
+ </enum>
+
+ <sect1>Linking, running and verifying 3D acceleration
+<p>
+ After you've verified that the X server and DRI have started
+ correctly it's time to verify that the GL library and hardware
+ drivers are working correctly.
+
+ <enum>
+ <item>
+ Verify that you're using the correct libGL.so library with
+ <tt/ldd/.
+ The /usr/lib and /usr/X11R6/lib directories are expected
+ locations for libGL.so.
+ <p>
+ Example:
+ <verb>
+ % ldd /usr/local/bin/glxinfo
+ libglut.so.3 => /usr/local/lib/libglut.so.3 (0x40019000)
+ libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x40051000)
+ libGL.so.1 => /usr/lib/libGL.so.1 (0x40076000)
+ libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x402ee000)
+ libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40301000)
+ libm.so.6 => /lib/libm.so.6 (0x40309000)
+ libc.so.6 => /lib/libc.so.6 (0x40325000)
+ libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40419000)
+ libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404bd000)
+ libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40509000)
+ libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40512000)
+ libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40529000)
+ libvga.so.1 => /usr/lib/libvga.so.1 (0x40537000)
+ libpthread.so.0 => /lib/libpthread.so.0 (0x4057d000)
+ /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
+ </verb>
+
+ <item>
+ You may also double check that libGL.so is in fact DRI-capable.
+ Run <tt/strings libGL.so.1.2 | grep DRI/ and look for
+ symbols prefixed with "XF86DRI", such as "XF86DRIQueryExtension".
+
+ <item>
+ To be safe one should run <tt/ldconfig/ after installing libGL.so
+ to be sure the runtime loader will find the proper library.
+
+ <item>
+ Verify that the appropriate 3D driver is in
+ /usr/X11R6/lib/modules/dri/
+ For example, the 3dfx driver will be named <tt/tdfx_dri.so/.
+
+ <item>
+ Set the <tt/LIBGL_DEBUG/ environment variable.
+ This will cause libGL.so to print an error message if it fails
+ to load a DRI driver.
+ Any error message printed should be self-explanatory.
+
+ <item>
+ Run <tt/glxinfo/. Note the line labeled "OpenGL renderer string".
+ It should have a value which starts with "Mesa DRI" followed by
+ the name of your hardware.
+
+ <item>
+ Older Linux OpenGL applications may have been linked against
+ Mesa's GL library and will not automatically use libGL.so.
+ In some cases, making symbolic links from the Mesa GL library
+ to libGL.so.1 will solve the problem:
+ <verb>
+ ln -s libGL.so.1 libMesaGL.so.3
+ </verb>
+ In other cases, the application will have to be relinked
+ against the new XFree86 libGL.so.
+ <P>
+ It is reported that part of the problem is that running
+ <tt/ldconfig/ will silently rewrite symbolic links based
+ on the SONAME field in libraries.
+ </enum>
+
+ <p>
+ If you're still having trouble, look in the next section for
+ information specific to your graphics card.
+
+
+
+ <sect>Hardware-Specific Information and Troubleshooting
+<p>
+ This section presents hardware-specific information for normal
+ use and troubleshooting.
+
+ <sect1>3dfx Voodoo3
+<p>
+ <sect2>Troubleshooting
+<p>
+ <itemize>
+ <item>
+ 3D acceleration for Voodoo3 is only supported in the 16
+ bit/pixel screen mode.
+ Use <tt/xdpyinfo/ to verify that all your visuals are depth 16.
+ Edit your XF86Config file if needed.
+ </itemize>
+
+ <sect2>Performance
+<p>
+ <itemize>
+ <item>
+ Normally, buffer swapping in double-buffered applications is
+ synchronized to your monitor's refresh rate.
+ This may be overridden by setting the <tt/FX_GLIDE_SWAPINTERNVAL/
+ environment variable.
+ The value of this variable indicates the maximum number of
+ swap buffer commands can be buffered.
+ Zero allows maximum frame rate.
+ <item>
+ The <tt/glTexEnv/ mode <tt/GL_BLEND/ is not directly supported
+ by the 3dfx hardware.
+ It can be accomplished with a multipass algorithm but it's not
+ implemented at this time.
+ Applications which use that mode, such as the Performer Town
+ demo, may become sluggish when falling back to software
+ rendering to render in that mode.
+ </itemize>
+ <sect2>Known Problems
+<p>
+ <itemize>
+ <item>
+ SSystem has problems because of poorly set near and far
+ clipping planes.
+ The office.unc Performer model also suffers from this problem.
+ </itemize>
+
+
+ <sect1>Intel i810
+<p>
+ <sect1>Matrox G400
+<p>
+ <sect1>ATI Rage 128
+<p>
+ <sect1>3DLabs Oxygen GMX 2000
+<p>
+ The driver for this hardware was experimental and is no longer being
+ developed or supported.
+
+
+ <sect>Limitations and Known Bugs
+<p>
+ <sect1>OpenGL
+<p>
+ The following OpenGL features are not supported at this time:
+ overlays, stereo, hardware-accelerated indirect rendering.
+ <p>
+ OpenGL-like functionality is provided with the Mesa library.
+ XFree86 4.0 uses a beta version Mesa 3.3.
+ When newer versions of Mesa are available, the 3D drivers can
+ be updated without reinstalling XFree86 or libGL.so.
+
+ <sect1>GLX
+<p>
+ The GLX 1.3 API is exported but none of the new 1.3 functions
+ are operational.
+ <p>
+ The new <tt/glXGetProcAddressARB/ function is fully supported.
+
+ <sect1>Signal Handling
+<p>
+ There are several understood, but unresolved problems relating
+ to hardware locking and signal handling.
+ Hitting CTRL-z to suspend a 3D application can sometimes cause
+ the X server to lock-up if executing device driver code at that
+ moment.
+ Also, using a debugger to step through OpenGL/Mesa device driver
+ functions code could cause a lock-up.
+ These problems will be fixed in the future.
+
+ <sect1>Scheduling
+<p>
+ When you run multiple GL applications at once you may notice poor
+ time slicing.
+ This is due to an interaction problem with the Linux scheduler
+ which will be addressed in the future.
+
+
+ <sect1>Bug Database
+<p>
+ The DRI bug database which includes bugs related to specific
+ drivers is at the
+ <htmlurl url="http://sourceforge.net/bugs/?group_id=387"
+ name="SourceForge DRI Bug Database">
+ <p>
+ Please scan both the open and closed bug lists to determine if your
+ problem has already been reported and perhaps fixed.
+
+
+ <sect>Resources
+<p>
+ <sect1>Software
+<p>
+ A collection of useful configuration files, libraries, headers,
+ utilities and demo programs is available from
+ <htmlurl url="http://dri.sourceforge.net/resources/resources.html"
+ name="http://dri.sourceforge.net/resources/resources.html">
+
+ <sect1>Documentation
+<p>
+ <itemize>
+ <item>General OpenGL information is available at the
+ <htmlurl url="http://www.opengl.org" name="OpenGL Home Page">
+ <item>XFree86 information is available at the
+ <htmlurl url="http://www.xfree86.org" name="XFree86 Home Page">
+ <item>Information about the design of the DRI is available from
+ <htmlurl url="http://www.precisioninsight.com/piinsights.html"
+ name="Precision Insight, Inc.">
+ <item>Visit the <htmlurl url="http://dri.sourceforge.net"
+ name="DRI project on SourceForge.net"> for the latest development
+ news about the DRI and 3D drivers.
+ </itemize>
+
+ <sect1>Support
+<p>
+ <itemize>
+ <item>
+ The DRI-users mailing list at
+ <htmlurl url="http://sourceforge.net/mail/?group_id=387"
+ name="SourceForge"> is a forum for people to discuss DRI problems.
+ <item>
+ XXX IHV support?
+ <item>
+ XXX Linux distro support?
+ </itemize>
+
+ </article>
+
+
+<!--
+1. Introduction
+2. Supported Hardware
+3. Prerequisite Software
+4. Start-Up
+5. Using 3D Acceleration
+ 5.1 libGL.so
+ 5.2 glxinfo
+ 5.3 Environment variables
+6. General Trouble Shooting
+7. Hardware-Specific Information
+ 7.1 3dfx
+ 7.2 Intel i810
+ 7.3 Matrox G400
+ 7.4 ATI Rage 128
+ 7.5 3DLabs Gamma
+8. Limitation and Known Bugs
+ 8.1 OpenGL
+ 8.2 GLX
+ 8.3 Signal Handling
+ 8.4 Scheduling
+ 8.5 Bug Database
+9. Resources
+ 9.1 Software Resources
+ GLU
+ GLUT
+ Glide3
+ Utilities and demos
+ Sample XF86Config files
+ 9.2 Documentation
+ www.XFree86.org
+ www.opengl.org
+ www.linux.com
+ www.precisioninsight.com
+ sourceforge.net
+ 9.3 Support
+ IHVs
+ RedHat
+ -->
+
+ <!-- Local Variables: -->
+ <!-- fill-column: 72 -->
+ <!-- End: -->
+
+
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile b/xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile
index f7d2b2592..b5f23d1c4 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile
@@ -3,88 +3,111 @@ XCOMM $XConsortium: Imakefile /main/16 1996/10/28 05:13:04 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile,v 3.52 2000/01/25 01:06:46 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile,v 3.61 2000/03/08 05:38:42 dawes Exp $
#include <Server.tmpl>
#include <lnxdoc.rules>
SGMLDEPENDS = defs.ent
- INDEXLIST = README.sgml RELNOTES.sgml Status.sgml LICENSE.sgml DESIGN.sgml \
- mouse.sgml fonts.sgml \
- isc.sgml NetBSD.sgml OpenBSD.sgml \
- ati.sgml chips.sgml DECtga.sgml r128.sgml rendition.sgml \
- s3virge.sgml SiS.sgml
-
-#if 0
+ INDEXLIST = README.sgml RELNOTES.sgml Status.sgml LICENSE.sgml Install.sgml \
+ DESIGN.sgml \
+ mouse.sgml fonts.sgml DRI.sgml \
+ isc.sgml LynxOS.sgml NetBSD.sgml OpenBSD.sgml \
+ apm.sgml ati.sgml chips.sgml cyrix.sgml DECtga.sgml \
+ i740.sgml i810.sgml \
+ r128.sgml rendition.sgml s3virge.sgml SiS.sgml
+
+#ifdef DEADDOCS
LinuxDocReadmeTarget(Bsdi)
#endif
-LinuxDocReadmeTarget(DGux)
+#ifdef OUTOFDATE
+LinuxDocReadmeTarget(DGUX)
LinuxDocReadmeTarget(FreeBSD)
-LinuxDocReadmeTarget(NetBSD)
-LinuxDocReadmeTarget(OpenBSD)
+#endif
+LinuxDocReadmeTarget(isc)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(Linux)
+#endif
LinuxDocReadmeTarget(LynxOS)
-LinuxDocReadmeTarget(SCO)
-LinuxDocReadmeTarget(isc)
+LinuxDocReadmeTarget(NetBSD)
+LinuxDocReadmeTarget(OpenBSD)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(OS2)
LinuxDocTargetLong(OS2note.sgml,OS2.Notes,OS2Notes)
+LinuxDocReadmeTarget(SCO)
LinuxDocReadmeTarget(SOLX86)
LinuxDocReadmeTarget(SVR4)
+#endif
/* Hardware docs */
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(3Dlabs)
-LinuxDocReadmeTarget(DECtga)
-LinuxDocReadmeTarget(I128)
-LinuxDocReadmeTarget(Mach32)
-LinuxDocReadmeTarget(Mach64)
-LinuxDocReadmeTarget(MGA)
-LinuxDocReadmeTarget(NVIDIA)
-LinuxDocReadmeTarget(Oak)
-LinuxDocReadmeTarget(P9000)
-LinuxDocReadmeTarget(Video7)
-LinuxDocReadmeTarget(S3)
-LinuxDocReadmeTarget(SiS)
-LinuxDocReadmeTarget(WstDig)
+#endif
LinuxDocReadmeTarget(apm)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(ark)
LinuxDocReadmeTarget(agx)
+#endif
LinuxDocReadmeTarget(ati)
LinuxDocReadmeTarget(chips)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(cirrus)
+#endif
LinuxDocReadmeTarget(cyrix)
+LinuxDocReadmeTarget(DECtga)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(epson)
LinuxDocReadmeTarget(fbdev)
+LinuxDocReadmeTarget(I128)
+#endif
LinuxDocReadmeTarget(i740)
-LinuxDocReadmeTarget(r128)
+LinuxDocReadmeTarget(i810)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(neomagic)
+LinuxDocReadmeTarget(Mach32)
+LinuxDocReadmeTarget(Mach64)
+LinuxDocReadmeTarget(MGA)
+LinuxDocReadmeTarget(NVIDIA)
+LinuxDocReadmeTarget(Oak)
+LinuxDocReadmeTarget(P9000)
+#endif
+LinuxDocReadmeTarget(r128)
LinuxDocReadmeTarget(rendition)
+#ifdef OUTOFDATE
+LinuxDocReadmeTarget(S3)
+#endif
LinuxDocReadmeTarget(s3virge)
+LinuxDocReadmeTarget(SiS)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(trident)
LinuxDocReadmeTarget(tseng)
+LinuxDocReadmeTarget(Video7)
+LinuxDocReadmeTarget(WstDig)
+#endif
/* Main docs */
-LinuxDocTarget(LICENSE)
-LinuxDocTarget(RELNOTES)
-LinuxDocTarget(Status)
-#ifdef UPTODATE
-LinuxDocReadmeTarget(Config)
+#ifdef OUTOFDATE
LinuxDocTarget(BUILD)
+LinuxDocReadmeTarget(Config)
#endif
-LinuxDocTarget(README)
LinuxDocTarget(DESIGN)
-#ifdef UPTODATE
+LinuxDocTarget(Install)
+LinuxDocTarget(LICENSE)
+#ifdef OUTOFDATE
LinuxDocTargetLong(QStart.sgml,QuickStart.doc,QuickStart)
#endif
-LinuxDocTarget(DocIndex)
+LinuxDocTarget(README)
+LinuxDocTarget(RELNOTES)
+LinuxDocTarget(Status)
/* Other docs */
-LinuxDocTarget(xinput)
-LinuxDocReadmeTarget(mouse)
LinuxDocReadmeTarget(fonts)
+LinuxDocReadmeTarget(mouse)
+#ifdef OUTOFDATE
LinuxDocTargetLong(VidModes.sgml,VideoModes.doc,VideoModes)
-#ifdef UPTODATE
-LinuxDocTargetLong(VGADriv.sgml,VGADriver.Doc,VGADriver)
+LinuxDocTarget(xinput)
#endif
+LinuxDocReadmeTarget(DRI)
/* Generate the documentation index */
index.sgml: $(INDEXLIST) index.pre index.post add.sh Imakefile $(SGMLDEPENDS)
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml
new file mode 100644
index 000000000..8aebef382
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml
@@ -0,0 +1,398 @@
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
+
+<article>
+
+<title>Installation Details for XFree86&trade; &relvers;
+<author>The XFree86 Project, Inc
+<date>29 February 2000
+
+<ident>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml,v 1.4 2000/02/29 18:01:17 dawes Exp $
+</ident>
+
+<abstract>
+
+This document contains information about installing
+XFree86 &relvers;.
+
+</abstract>
+
+<toc>
+
+<sect>Introduction
+<p>
+This document contains information about installing XFree86 &relvers;
+binary distributions as provided by The XFree86 Project. The installation
+procedures for binary distributions provided by others may be different.
+
+The XFree86 binary distributions that we provide for UNIX-like OSs are
+packaged in the platform-independent gzipped tar format (referred to as
+"tarballs"). Our tarballs can be identified by the "<tt>.tgz</tt>"
+suffix. We do not provide binaries in RPM format or any other platform
+specific package format. If you need them in such a format, you should
+contact your OS vendor. Together with the binary distributions, we
+provide a customised version of GNU tar called "extract", and an
+installation script. We recommend that these be used to install the
+binary distributions.
+
+<sect>How to get the XFree86 &relvers; binary distributions
+<p>
+We, The XFree86 Project, provide XFree86 &relvers; binaries for a range
+of operating systems at our
+<![ %snapshot; [
+<url name="ftp site"
+url="ftp://ftp.xfree86.org/pub/XFree86/snapshots/&relvers/binaries/">.
+]]>
+<![ %release; [
+<url name="ftp site"
+url="ftp://ftp.xfree86.org/pub/XFree86/&relvers/binaries/">.
+]]>
+Our ftp site is also mirrored by many sites around the world. There is
+a sub-directory for each OS/platform that we have binaries for. The
+first thing you need to do is to decide which of these suits you. In
+most cases, the choice is straightforward. In some cases (e.g., Linux)
+there may be a number of choices depending on what architecture or libc
+version you are using. We recommend that you first download the
+<tt>Xinstall.sh</tt> script, and run it as follows to find out which
+binary distribution you should download.
+
+<tscreen><verb>
+sh Xinstall.sh -check
+</verb></tscreen>
+
+This should tell you which binary distribution is the correct one for
+your system. Getting this right may save from wasting time downloading
+the wrong distribution.
+
+The next step is to download the necessary files. The mandatory files
+for all installations are listed below. All of them must be downloaded
+to do the installation. The installer script will complain if they are not
+all present.
+
+<quote><verb>
+Xinstall.sh The installer script
+extract The utility for extracting tarballs
+Xbin.tgz X clients/utilities and run-time libraries
+Xlib.tgz Some data files required at run-time
+Xman.tgz Manual pages
+Xdoc.tgz XFree86 documentation
+Xfnts.tgz Base set of fonts
+Xfenc.tgz Base set of font encoding data
+Xetc.tgz Run-time configuration files
+Xvar.tgz Run-time data
+Xxserv.tgz XFree86 X server
+Xmod.tgz XFree86 X server modules
+</verb></quote>
+
+NOTES:
+<itemize>
+ <item>Some web browsers have a problem downloading the <tt>extract</tt>
+ utility correctly. If you encounter this problem, download the
+ version called <tt>extract.exe</tt> instead. The "<tt>.exe</tt>"
+ suffix is only there to make the troublesome web browsers do
+ the right thing. It is not a DOS/Windows executable.
+
+ <item>A few distributions don't have or require the <tt>Xvar.tgz</tt>
+ tarball. If it is present in the <tt>binaries</tt> sub-directory
+ for your platform, then it is required.
+
+ <item>Some distributions may have additional mandatory tarballs. This
+ is rare. In these cases, the installer script will tell you
+ if any are missing.
+
+</itemize>
+
+The following tarballs are optional. You should download the ones you
+want to install.
+
+<quote><verb>
+Xfsrv.tgz Font server
+Xnest.tgz Nested X server
+Xprog.tgz X header files, config files and compile-time libs
+Xprt.tgz X Print server
+Xvfb.tgz Virtual framebuffer X server
+Xf100.tgz 100dpi fonts
+Xfcyr.tgz Cyrillic fonts
+Xflat2.tgz Latin-2 fonts
+Xfnon.tgz Some large bitmap fonts
+Xfscl.tgz Scalable fonts (Speedo and Type1)
+Xhtml.tgz HTML version of the documentation
+Xps.tgz PostScript version of the documentation
+Xjdoc.tgz Documentation in Japanese
+</verb></quote>
+
+NOTES:
+<itemize>
+ <item>Some distributions may have some additional optional tarballs.
+
+</itemize>
+
+If you miss some and want to install them later, you can do so by following
+the appropriate part of the section that describes manual installation.
+
+<sect>Installing XFree86 &relvers; using the <tt>Xinstall.sh</tt> script
+<p>
+We strongly recommend that our XFree86 &relvers; binary distributions
+be installed using the <tt>Xinstall.sh</tt> script that we provide.
+The main reason that we make this recommendation is that there are a lot
+of steps in the manual installation process, and those steps can vary
+according to the situation. There is, however, a description of the
+manual installation process for the most common cases below for those who
+might need it.
+
+Put all of the downloaded files into a single directory (choose some
+temporary location with enough space). Become the super user (root),
+cd to that directory, then run the installer script as follows:
+
+<tscreen><verb>
+sh Xinstall.sh
+</verb></tscreen>
+
+Answer the prompts that come up. If you are missing something that is
+required to run this version of XFree86, the installer may tell you to
+install it before trying again. If you don't have all of the mandatory
+files listed above, then the installer will tell you which ones are
+missing and ask you to download them before trying again.
+
+<sect1>Answering the questions that the installer may ask
+<p>
+The installer asks some questions that may not have obvious answers. The
+information here should help you answer them. In most cases, apart from
+the first question, the default answers should be OK.
+
+If you run the installer from within an X session (the installer checks
+if <tt>$DISPLAY</tt> is set), you will be warned that doing so is not
+a good idea. Unless you have a good reason for knowing that this won't
+be a problem, you should exit your X session, including stopping xdm or
+equivalent if it is running, before continuing. If you ignore this
+warning and run into problems, well, you were warned!
+
+If you have an existing X installation, you will be warned that proceeding
+with this installation will overwrite it. Only those things that are
+part of our standard distribution will be overwritten. Other X
+applications that you may have installed will not be removed. Some
+configuration files may be overwritten though, but the installer should
+prompt you before doing so. As the opening greeting says, it is
+<bf>strongly</bf> recommended that you backup any existing installation
+before proceeding. If you want your old applications to still be there
+after you've installed, don't do the "backup" by simply renaming
+your old <tt>/usr/X11R6</tt> directory. It is better to make a copy of
+it, and then install over the top of the original one. If you run into
+problems and want to revert to the old installation, you can then
+delete the overwritten one and copy the saved version back.
+
+During the first part of the installation over an existing version, the
+script may remove some old files or directories that would get in the
+way of the new installation. It will list which files/directories have
+been removed. If none are listed, then none were removed.
+
+The next step when installing over an existing version is to check for
+existing configuration files. As of XFree86 version 3.9.18, the run-time
+configuration files are installed by default under <tt>/etc/X11</tt>
+instead of under <tt>/usr/X11R6/lib/X11</tt>. The installer will move
+the existing ones for you and create the necessary symbolic links. If
+you don't want to have these configuration files under <tt>/etc/X11</tt>,
+then you should answer "no" when asked about it. Answering "no" here
+also means that the new configuration files will be installed in the
+old <tt>/usr/X11R6/lib/X11</tt> location. Note: for the rare systems
+that don't have symbolic links, this question will not be asked.
+The default answer is "yes" because that is best for most situations.
+It is our new default. It makes it easier to share the <tt>/usr/X11R6</tt>
+directory between multiple hosts, and allows it to be mounted read-only.
+If you don't need these features, then you can safely answer "no" if you
+don't want them moved.
+
+When installing over an existing version, you will be prompted before
+each set of configuration files is installed. If you haven't made any
+customisations to your existing configuration files, then you can safely
+answer "yes" for each of these. If you have made customisations, you
+can try answering "no". If you run into problems later, you may need
+to manually merge your customisations into the the new version of the
+configuration files. The configuration files can all be found in
+the <tt>Xetc.tgz</tt> tarball. See the section below about manual
+installation for information about extracting them separately.
+
+After the configuration files have been dealt with, the other mandatory
+components of the binary distribution will be installed. This should
+proceed without any user intervention.
+
+If you downloaded any of the optional components, the installer will
+ask you about each one before it is installed. The default answer is
+"yes". If there are any that you've since decided that you don't want
+to install, answer "no" when prompted.
+
+After that is done, the main part of the installation is complete. The
+next steps are to tidy up some aspects of the installation. The first
+of these is to run "<tt>ldconfig</tt>" on systems that require it, so
+that the newly installed shared libraries are accessible. Then
+the <tt>fonts.dir</tt> files in some directories are updated so that
+the fonts can be accessed correctly. Next, the installer checks to
+see if your system has a termcap file or terminfo files. If it finds
+the former, it tells you how my may update the entries in that file.
+If it finds the latter, it asks you if you want it to update them
+for you.
+
+Finally, the installer asks you if you want a link created for the
+<tt>rstart</tt> utility. On most modern systems, the link isn't essential,
+so the default answer is "no". Answer "yes" if you know that you need
+it. If you find later that you need it, you can create it easily by
+running:
+
+<tscreen><verb>
+rm -f /usr/bin/rstartd
+ln -s /usr/X11R6/bin/rstartd /usr/bin/rstartd
+</verb></tscreen>
+
+<sect1>After the installation is complete
+<p>
+The next step is to configure the X server. That is covered in detail
+in an as-yet unwritten document :-(. In the meantime, there are two
+ways to create a basic X server configuration file for XFree86 &relvers;.
+One is to run the <tt>xf86config</tt> utility. Another is to use the
+new <tt>-configure</tt> X server option:
+
+<tscreen><verb>
+XFree86 -configure
+</verb></tscreen>
+
+The X server config file (<tt>XF86Config</tt>) format has changed
+compared to 3.3.x. Also, its default location is now <tt>/etc/X11</tt>.
+Finally, there is now only one X server for driving video hardware,
+and it is called "<tt>XFree86</tt>". Once you're satisfied with the
+operation of the new X server, you can safely remove the old
+<tt>XF86_*</tt> and/or <tt>XF98_*</tt> X server binaries from
+<tt>/usr/X11R6/bin</tt>.
+
+After the X server configuration is done, it may be advisable to reboot,
+especially if you run xdm (or equivalent) or the font server (xfs).
+
+<sect>Installing XFree86 &relvers; manually
+<p>
+This section describes how to manually install the XFree86 &relvers; binary
+distributions. You should only use this method if you know what you're
+doing. The information here covers some common cases, but not every
+possible case.
+
+Put all of the downloaded files into a single directory (choose some
+temporary location with enough space). Become the super user (root).
+All of the following commands should be run as root, and they should be
+run from the directory that has all of the downloaded files. The
+"<tt>extract</tt>" utility should be used to unpack the tarballs. This
+is a customised version of GNU tar that has the gzip code built-in, and
+which has a different usage when run under the name "extract". One
+important thing that <tt>extract</tt> does that most versions of tar do
+not do by default is that it unlinks existing files before writing new
+ones. This is important when installing over an existing version of X.
+If you choose to use some other utility to extract the tarballs, you're
+on your own.
+
+<sect1>A new installation
+<p>
+The simplest case is when there is no existing X installation. The
+installation procedure for this case is as follows:
+
+<tscreen><verb>
+chmod +x extract
+mkdir /usr/X11R6
+mkdir /etc/X11
+./extract -C /usr/X11R6 X[a-df-uw-z]*.tgz
+./extract -C /usr/X11R6 Xvfb.tgz # If you are installing Xvfb
+./extract -C /etc/X11 Xetc.tgz
+./extract -C /var Xvar.tgz
+ln -s /etc/X11/app-defaults /usr/X11R6/lib/X11
+ln -s /etc/X11/fs /usr/X11R6/lib/X11
+ln -s /etc/X11/lbxproxy /usr/X11R6/lib/X11
+ln -s /etc/X11/proxymngr /usr/X11R6/lib/X11
+ln -s /etc/X11/rstart /usr/X11R6/lib/X11
+ln -s /etc/X11/twm /usr/X11R6/lib/X11
+ln -s /etc/X11/xdm /usr/X11R6/lib/X11
+ln -s /etc/X11/xinit /usr/X11R6/lib/X11
+ln -s /etc/X11/xsm /usr/X11R6/lib/X11
+ln -s /etc/X11/xserver /usr/X11R6/lib/X11
+/sbin/ldconfig /usr/X11R6/lib # For Linux
+/sbin/ldconfig -m /usr/X11R6/lib # For FreeBSD, NetBSD, OpenBSD
+/usr/X11R6/bin/mkfontdir /usr/X11R6/lib/X11/fonts/misc
+</verb></tscreen>
+
+<sect1>Installing over an old installation
+<p>
+If you have an existing installation of X, you should make a backup copy
+of it before installing the new version over the top of it.
+
+Before doing anything else, make sure the <tt>extract</tt> command is
+executable, and also link it to the name "<tt>gnu-tar</tt>" so that it
+can be used as a regular <tt>tar</tt> command:
+
+<tscreen><verb>
+chmod +x extract
+rm -f gnu-tar
+ln extract gnu-tar
+</verb></tscreen>
+
+The first part of the procedure is to move the old run-time config files
+from <tt>/usr/X11R6/lib/X11</tt> to <tt>/etc/X11</tt>. Create
+<tt>/etc/X11</tt> if it doesn't already exist. For each of the following
+sub-directories (<tt>app-defaults</tt>, <tt>fs</tt>, <tt>lbxproxy</tt>,
+<tt>proxymngr</tt>, <tt>rstart</tt>, <tt>twm</tt>, <tt>xdm</tt>,
+<tt>xinit</tt>, <tt>xsm</tt>, <tt>xserver</tt>) that you want to move,
+check that there is a sub-directory of this name in
+<tt>/usr/X11R6/lib/X11</tt>. Create a sub-directory of the same name
+under <tt>/etc/X11</tt>, then copy the files over by running:
+
+<tscreen><verb>
+./gnu-tar -C /usr/X11R6/lib/X11/subdir -c -f - . | \
+ ./gnu-tar -C /etc/X11/subdir -v -x -p -U -f -
+</verb></tscreen>
+
+For each subdirectory that is moved, remove the one under
+<tt>/usr/X11R6/lib/X11</tt> and create a symbolic link to the new
+location:
+
+<tscreen><verb>
+rm -fr /usr/X11R6/lib/X11/subdir
+ln -s /etc/X11/subdir /usr/X11R6/lib/X11
+</verb></tscreen>
+
+For those subdirectories that didn't already exist under
+<tt>/usr/X11R6/lib/X11</tt>, create one under <tt>/etc/X11</tt> and
+create the symbolic link to it:
+
+<tscreen><verb>
+mkdir /etc/X11/subdir
+ln -s /etc/X11/subdir /usr/X11R6/lib/X11
+</verb></tscreen>
+
+Once that is done, extract the config files from the <tt>Xetc.tgz</tt>
+tarball into a temporary directory:
+
+<tscreen><verb>
+mkdir tmpdir
+./extract -C tmpdir Xetc.tgz
+</verb></tscreen>
+
+and then copy each sub-directory over to the installed location:
+
+<tscreen><verb>
+./gnu-tar -C tmpdir/subdir -c -f - . | \
+ ./gnu-tar -C /usr/X11R6/lib/X11/subdir -v -x -p -U -f -
+</verb></tscreen>
+
+If you have customised any config files in your old installation, you
+may want to omit those sub-directories, or copy selected files over by
+hand.
+
+Once that's done, the main part of the installation can be done:
+
+<tscreen><verb>
+./extract -C /usr/X11R6 X[a-df-uw-z]*.tgz
+./extract -C /usr/X11R6 Xvfb.tgz # If you are installing Xvfb
+./extract -C /var Xvar.tgz
+/sbin/ldconfig /usr/X11R6/lib # For Linux
+/sbin/ldconfig -m /usr/X11R6/lib # For FreeBSD, NetBSD, OpenBSD
+/usr/X11R6/bin/mkfontdir /usr/X11R6/lib/X11/fonts/misc
+</verb></tscreen>
+
+
+</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml
index 6d748365b..9aa0de66a 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml
@@ -8,7 +8,7 @@
<date>1999</date>
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.6 2000/01/19 22:37:33 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.7 2000/03/06 22:59:23 dawes Exp $
</ident>
<sect>XFree86 License
@@ -611,5 +611,49 @@ Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved.
solely in object code form, Recipient may replace the words "this file" with
"this software" in both the first and second sentences.]
+<sect1>Bigelow &amp; Holmes Inc and Y&amp;Y Inc Lucidux font license
+<p>
+
+Copyright (C) 2000 Bigelow &amp; Holmes Inc. and Y&amp;Y, Inc. Patents pending.
+All Rights Reserved. Lucidux is a trademark of Bigelow &amp; Holmes Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of these Fonts and associated documentation files (the "Font
+Software"), to deal in the Font Software, including without limitation the
+rights to use, copy, merge, publish, distribute, sublicense, and/or sell
+copies of the Font Software, and to permit persons to whom the Font
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright, trademark, patent notices and this permission notice
+shall be included in all copies of one or more of the Font Software.
+
+The Font Software may not be modified, altered, or added to, and in
+particular the designs of glyphs or characters in the Fonts may not be
+modified nor may additional glyphs or characters be added to the Fonts,
+except that composite characters composed of two or more characters in the
+Fonts may be created using the seac (Standard Encoding Accented Character)
+Type 1 operator.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
+COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW &amp;
+HOLMES INC. OR Y&amp;Y, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR
+CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the names of Bigelow &amp; Holmes Inc. and
+Y&amp;Y, Inc. shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Font Software without prior written
+authorization from the Bigelow &amp; Holmes Inc. and Y&amp;Y, Inc.
+
+For further information, contact:
+
+<email>sales@yandy.com</email>
+or
+<email>design@bigelowandholmes.com</email>
+
</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml
index 992c14123..9b65056e3 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml
@@ -1,65 +1,62 @@
-<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
<article>
-
-<title>README for XFree86 on LynxOS
+<title>README for XFree86 &relvers; on LynxOS
<author>Thomas Mueller
-<date>Last modified on: 30 May 1999
+<date>25 February 2000
+
+<ident>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml,v 3.19 2000/03/03 21:28:08 dawes Exp $
+</ident>
+
<toc>
-<sect>What and Where is XFree86?<p>
-XFree86 is a port of X11R6.3 that supports several versions of
+<sect>What and Where is XFree86?
+<p>
+XFree86 is a port of X11R6.4 that supports several versions of
Intel-based Unix. It is derived from X386 1.2, which was the X server
distributed with X11R5. This release consists of many new features
-and performance improvements as well as many bug fixes. The release
-is available as source patches against the X Consortium X11R6.3 code, as
-well as binary distributions for many architectures.
+and performance improvements as well as many bug fixes.
-See the Copyright Notice in <htmlurl url="COPYRIGHT.html"
-name="Copyright Notice">.
+See the <htmlurl url="COPYRIGHT.html" name="Copyright Notice">.
-The sources for XFree86 are available by anonymous ftp from:
+The sources for XFree86 &relvers; are available by anonymous ftp from:
-<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/current"
-url="ftp://ftp.XFree86.org/pub/XFree86/current">
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/&relvers;"
+url="ftp://ftp.XFree86.org/pub/XFree86/&relvers;">
-Binaries of XFree86 for LynxOS AT are available from:
+Binaries of XFree86 for LynxOS x86 are available from:
-<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/current/binaries/LynxOS"
-url="ftp://ftp.XFree86.org/pub/XFree86/current/binaries/LynxOS">
-
-The binaries were built on `LynxOS x86 3.0.1'. Because of changes
-made to the object format they don't run on LynxOS versions earlier
-than 3.0.0.
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/&relvers;/binaries/LynxOS"
+url="ftp://ftp.XFree86.org/pub/XFree86/&relvers;/binaries/LynxOS">
+
+A list of mirror sites is provided by
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/MIRRORS"
+url="ftp://ftp.XFree86.org/pub/XFree86/MIRRORS">
+
+The binaries on the FTP site were built on the latest released LynxOS
+version at the time XFree86 &relvers; was released. In this case it is
+`LynxOS x86 3.0.1'. Because of changes made to the object format they
+don't run on LynxOS versions earlier than 3.0.0.
Building of this XFree86 version has never been tested on LynxOS versions
-earlier than 2.4.0. Binaries built on LynxOS 2.4.0 are expected to run
-on 2.3.0 as well.
+earlier than 2.5.1.
-XFree86 supports LynxOS on the AT, on the microSPARC and
-on the PowerPC platform. X servers are currently available on
-the AT and microSPARC platform. Refer to section <ref id="others"
-name="Building on microSPARC and PowerPC"> for details on XFree86
-on the non-AT platforms.
+XFree86 &relvers; supports LynxOS on the x86 and on
+the PowerPC platform. X servers are currently available only on the
+x86 platform. The X server may work with some PowerPC platforms
+supported by LynxOS though this has not (yet) been thoroughly tested.
If you need binaries for other platforms than the one on the
-XFree86 FTP server contact me (<htmlurl name="tmueller@sysgo.de"
-url="mailto:tmueller@sysgo.de">).
-
-Send email to <it>tmueller@sysgo.de</it> (Thomas Mueller) or
-<it>XFree86@XFree86.org</it> if you have comments or suggestions about
-this file and we'll revise it.
+XFree86 FTP server or if you have comments or suggestions about this
+document contact me (<email>tmueller@sysgo.de</email>).
<sect>Installing the Binaries
<p>
-Please refer to section "Installing the XFree86 3.3.4 Release" of the
-<htmlurl url="RELNOTES.html" name="Release Notes"> for detailed
-installation instructions.
-
-If you plan to install XF86Setup you'll have to install
-<tt/X333prog/ as well since XF86Setup checks for the existence of
-a certain file name pattern which is satisfied only if you install
-the library files from <tt/X333prog/.
+Please refer to the <htmlurl name="Installation Document"
+url="Install.html"> for detailed installation instructions.
It may be necessary to increase the process stack limit in order to
run XFree86 on your system. Edit <tt>/etc/startab</tt> and reboot your
@@ -72,109 +69,111 @@ Refer to the next section <ref id="running" name="Running XFree86"> for
further information on necessary configuration steps before running
XFree86 on LynxOS.
+<sect1>Accessing XFree86 manual pages
+<p>
+Include <tt>/usr/X11R6/man</tt> in the MANPATH environment variable or add
+the directory <tt>/usr/X11R6/man</tt> to <tt>/usr/Lib/man.config</tt>
+
+
<sect>Running XFree86<p><label id="running">
This section describes the changes to the LynxOS environment
which may be necessary to successfully run XFree86.
+<!--
Read <htmlurl url="QuickStart.html" name="Quick-Start Guide
to XFree86 Setup"> to learn more about how to configure XFree86 for
your hardware.
-
-<sect1>System requirements<p>
- A minimum of 16MB of memory is required to run X. If you want to run
- real-world applications you should think of upgrading to 32MB (or more).
+-->
<sect1>System tuning<p>
<sect2>Tunable parameters<p>
- To reasonably run XFree86 you may have to adjust a few system parameters.
+To reasonably run XFree86 you may have to adjust a few system parameters.
- On LynxOS 2.5.x and 3.0.x include a line
+On LynxOS 2.5.x and 3.0.x include a line
<verb>
- #define X_WINDOWS
+#define X_WINDOWS
</verb>
- in <tt>/sys/lynx.os/uparam.h</tt>.
-
- For earlier versions you'll have to edit <tt>/usr/include/param.h</tt>:
-<verb>
- Tunable Old New
- USR_NFDS number of open files per process 20 64
- NPROC number of tasks 50 150
- NFILES number of open files in system 100 250
- NINODES number of incore inodes (same value as NFILES)
- QUANTUM clock ticks until preemption 64 20
- CACHEBLKS number of cache memory blocks 202 >= 4096
-</verb>
+in <tt>/sys/lynx.os/uparam.h</tt>.
- The new values are those suggested by the LynxOS documentation for
- their X Window package.
+<sect2>Adjustment for "nv" driver for NVidia graphics cards<p>
-<sect2>Adjustment for Riva 128 and Riva TNT driver>
-
-If you're using the nVidia driver (Riva 128, TNT, TNT2) of the SVGA
-server, you will have to increase the value of the SMEMS parameter in
+If you're using the "nv" driver (Riva 128, nVidia TNT, TNT2, GeForce),
+you will have to increase the value of the SMEMS parameter in
<tt>/sys/lynx.os/uparam.h</tt> from 10 to 20.
<sect2>Increase number of ptys<p>
- You should also increase the number of ptys to be able run a couple
- more xterms. You may replace <tt>/sys/lynx.os/pty.cfg</tt> with
- <tt>/usr/X11R6/lib/X11/etc/pty.cfg</tt>.
+You should also increase the number of ptys to be able run a couple
+more xterms. You may replace <tt>/sys/cfg/pty.cfg</tt> with
+<tt>/usr/X11R6/lib/X11/etc/pty.cfg</tt>.
-<sect2>Kernel build<p>
+<sect2>MTRR device driver<p>
- If you plan to use PS/2 or Bus mice refer to the following section
- before rebuilding the kernel, if not, you should rebuild the kernel
- now:
+If you're using an Intel PentiumPRO or Pentium II (or higher) class
+CPU you might want to install the MTRR device driver. This driver
+enables the XFree86 X server to manipulate the CPU memory type range
+registers which may improve performance on certain systems.
- <tscreen><verb>
- # cd /sys/lynx.os
- # make install
- # reboot -N
- </verb></tscreen>
+To install the driver (on LynxOS x86 2.5.0 systems an higher) follow
+these steps:
-<sect1>Mouse support in XFree86<p>
+<tscreen><verb>
+ # cd /
+ # bash /usr/X11R6/lib/X11/etc/MTRR-Lynx.shar
+ # cd sys/drivers/mtrr
+ # make install
+</verb></tscreen>
- XFree86 includes support for PnP mice (see also
- <htmlurl url="mouse.html" name="Mouse Support in XFree86">). The
- current LynxOS TTY device driver doesn't allow the necessary
- manipulation of the RTS line and therefore the support for
- PnP mice has been disabled for LynxOS.
+Then add a line
+<tscreen><verb>
+ I:../drivers/mtrr/mtrr.cfg
+</verb></tscreen>
+to <tt>/sys/lynx.os/CONFIG.TBL</tt> and rebuild the kernel (see next section).
-<sect1>Bus mouse drivers<p>
+<sect2>Kernel build<p>
- Starting with LynxOS AT 2.4.0 LynxOS includes a PS/2 mouse driver.
- Currently this driver is not fully supported by XFree86 (you'll
- probably have to specify the mouse type as <em>Microsoft</em>
- regardless of real mouse type and in some cases you won't have
- all mouse buttons supported).
- <tt>/usr/X11R6/lib/X11/etc/BM-Lynx.shar</tt> contains a LynxOS port
- of the Linux bus mouse drivers. To install the drivers
- unpack the shar archive
+If you plan to use a PS/2 mouse to the following sections
+before rebuilding the kernel, if not, you should rebuild the kernel
+now:
<tscreen><verb>
- # cd /
- # bash /usr/X11R6/lib/X11/etc/BM-Lynx.shar
+ # cd /sys/lynx.os
+ # make install
+ # reboot -N
</verb></tscreen>
- and follow the notes in <tt>/BMOUSE.Readme</tt> for further installation and
- configuration notes.
+<sect1>Mouse support in XFree86<p>
- The XFree86 PS/2 mouse driver works also with MetroLink X 2.3.3.1 as
- shipped with LynxOS AT 2.4.0 unless you have the LynxOS patch
- 000055-00 installed.
+XFree86 includes support for PnP mice (see also <htmlurl
+url="mouse.html" name="Mouse Support in XFree86">). The current LynxOS
+TTY device driver doesn't allow the necessary manipulation of the RTS
+line and therefore the support for PnP mice has been disabled for
+LynxOS.
+
+<sect1>PS/2 mouse drivers<p>
+
+LynxOS x86 comes with a PS/2 mouse driver. If it is not currently
+installed on your system install it with
+<tt>/usr/bin/Install.ps2mouse</tt>. Older versions of this driver
+contained code to translate the PS/2 mouse protocol to the format of a
+serial mouse, thus you'll have to specify "Microsoft" as the mouse
+protocol format. The mouse driver contained in LynxOS x86 patchlevel
+015 (and higher) does no longer perform the protocol translation an
+therefore can be defined as "PS/2" protocol format.
+
<sect1> ATC console driver and VT switching<p>
- The XFree86 servers will only run with the default LynxOS console
- driver, sorry for those of you who use the alternative vdt console
- driver. Currently there is no support for virtual terminal switching
- once the server has started.
+Currently there is no support for virtual terminal switching
+once the server has started. Support for this feature may be added in
+future versions (it requires a patch to the vt100 LynxOS terminal
+driver).
- You will need a free console which the X server will use for
- keyboard input. You must disable login on at least one of the four
- virtual terminals in <tt>/etc/ttys</tt>, e.g. <tt>/dev/atc3</tt>:
+You will need a free console which the X server will use for keyboard
+input. You must disable login on at least one of the four virtual
+terminals in <tt>/etc/ttys</tt>, e.g. <tt>/dev/atc3</tt>:
<tscreen>
change
@@ -189,67 +188,17 @@ server, you will have to increase the value of the SMEMS parameter in
<sect1>X Server debug diagnostics output and other VT peculiarities<p>
- The XFree86 X servers will produce a lot of diagnostics output on
- stderr during startup. This output will be lost after the server
- reached a certain point in its console initialization process. You
- should redirect stdout and stderr if you want to analyze the
- diagnostics produced by the server.
+Output made by the XFree86 X on its stdout or stderr will be lost
+after the server switches to graphics mode. The XFree86 &relvers;
+server stores its output in <tt>/usr/adm/XFree86.n.log</tt> (where
+<tt>n</tt> is the screen number).
- When the X server is running output made to other consoles will be
- lost. After server shutdown the screen contents of other consoles
- may be inconsistent with what one would expect (i.e. random).
+When the X server is running output made to other consoles will be
+lost. After server shutdown the screen contents of other consoles may
+be inconsistent with what one would expect (i.e. random).
-<sect>Installing XFree86 manual pages<p><label id="installman">
-
- LynxOS uses cat-able manual pages, and because a doc preparation
- system is definitely not a vital component of a real-time operating
- system you must first install groff-1.09 (or newer). Starting with
- LynxOS 2.3.0 it should compile right out of the box (or better tar archive).
-
- XFree86 manual pages may be installed using
-
- <tscreen><verb>
- make install.man
- </verb></tscreen>
-
- The index and whatis database for the XFree86 manual pages will be
- created automatically. If you already have a whatis database or
- index file in the destination directories you should perform a
- sort/uniq operation to remove duplicate entries:
-
- <tscreen><verb>
- for i in 1 3 5
- do
- rm -f /tmp/tmpfile
- sort /usr/X11R6/man/cat$i/LIST$i | uniq > /tmp/tmpfile
- mv /tmp/tmpfile /usr/X11R6/man/cat$i/LIST$i
- done
- sort /usr/X11R6/man/whatis | uniq > /tmp/tmpfile
- mv /tmp/tmpfile /usr/X11R6/man/whatis
- </verb></tscreen>
-
- With LynxOS 2.3.0 you should include <tt>/usr/X11R6/man</tt> in the MANPATH
- environment variable.
-
- <tscreen>
- bash: <tt>MANPATH=&dollar;MANPATH:/usr/X11R6/man</tt>
- </tscreen>
-
- The man command of LynxOS 2.2.1 does not support the MANPATH
- environment variable properly. The XFree86 manual pages must be
- copied (or linked) to the standard manual page locations
- (<tt>/usr/man/catx</tt>) in order to be read the man command:
-
- <tscreen><verb>
- for i in 1 3 5
- do
- ln -s /usr/X11R6/man/cat$i/*.* /usr/man/cat$i
- cat /usr/X11R6/man/cat$i/LIST$i >> /usr/man/cat$i/LIST$i
- sort -o /usr/man/cat$i/LIST$i /usr/man/cat$i/LIST$i
- cat /usr/X11R6/man/cat$i/whatis$i >> /usr/man/whatis
- done
- </verb></tscreen>
+<!--
<sect>Using XFree86 with Motif<p>
The Motif libraries shipped with LynxOS AT 2.3.0 and 2.4.0 can be
@@ -311,9 +260,9 @@ server, you will have to increase the value of the SMEMS parameter in
<sect1>Motif config file patch<p>
- The file <tt>Motif.tmpl</tt> shipped with LynxOS Motif must be modified
- to work with XFree86. In every reference to <tt>UnsharedLibReferences</tt>
- the first argument must be changed
+The file <tt>Motif.tmpl</tt> shipped with LynxOS Motif must be
+modified to work with XFree86. In every reference to
+<tt>UnsharedLibReferences</tt> the first argument must be changed
<tscreen>
from
<verb>
@@ -326,167 +275,126 @@ server, you will have to increase the value of the SMEMS parameter in
Be sure to apply the change to the file copied to
<tt>/usr/X11R6/lib/X11/config</tt>.
+-->
+
<sect>Compiling the XFree86 Distribution<p>
+<!-- out of date
Before trying to rebuild XFree86 from source read <htmlurl url="BUILD.html"
name="Building XFree86"> for a detailed description of the build
-process. The next sections contain LynxOS specific notes with
+process. -->The next sections contain LynxOS specific notes with
respect to the build process.
-
<sect1>Disk space requirements<p>
Currently there is no support for shared libraries in the LynxOS
XFree86 port. A complete binary installation along with manual pages
-will require approximately 90-100 MBytes of disk space. To compile
-the system you will need at least 230 MBytes of free disk space.
+will require approximately 100 MBytes of disk space. To compile
+the system you will need at least 250 MBytes of free disk space.
-<sect1>Changes to system environment (LynxOS AT)<p>
+<sect1>Changes to system environment (LynxOS x86)<p>
Before compiling the XFree86 distribution you will have to make a
few little adjustments to your system:
- <descrip>
- <tag>LynxOS AT 2.5</tag>
- <itemize>
- <item>Create a shell script named <tt>/lib/cpp</tt> as follows:
- <tscreen><verb>
- #!/bin/sh
- /usr/lib/gcc-lib/i386-unknown-lynxos2.5/2.7-96q1/cpp \
- -traditional "$@"
- </verb></tscreen>
- On other platforms than the AT the paths for the compiler support
- programs are different. You may use
- <tscreen><verb>
- gcc -v
- </verb></tscreen>
- to find out the correct path. Set the file mode of <tt>/lib/cpp</tt> with
- <tscreen><verb>
- # chown root /lib/cpp
- # chmod 755 /lib/cpp
- </verb></tscreen>
- <item>Modify <tt>/lib/liblynx.a</tt>. The X servers need the
- <tt>smem_create()</tt> system call to map the frame buffer into their
- address space. The system call is in <tt>liblynx</tt> library along
- with other Lynx proprietary calls which (unfortunately) overlap
- with calls in <tt>libc</tt>. To reduce confusion you should modify
- <tt>liblynx</tt> as follows:
- <tscreen><verb>
- # mv /lib/liblynx.a /lib/liblynx.a.ORG
- # mkdir /tmp/xx; cd /tmp/xx
- # ar xv /lib/liblynx.a.ORG
- # ar rv /lib/liblynx.a *smem*
- # ranlib /lib/liblynx.a
- </verb></tscreen>
+<itemize>
+<item>If not already installed on your system create a shell script
+named <tt>/lib/cpp</tt> as follows:
+<tscreen><verb>
+ #!/bin/sh
+ /usr/lib/gcc-lib/i386-unknown-lynxos2.5/2.7-96q1/cpp \
+ -traditional "$@"
+</verb></tscreen>
+On other platforms than the x86 the paths for the compiler support
+programs are different. You may use
+<tscreen><verb>
+ gcc -v
+</verb></tscreen>
+to find out the correct path. Set the file mode of <tt>/lib/cpp</tt> with
+<tscreen><verb>
+ # chown root /lib/cpp
+ # chmod 755 /lib/cpp
+</verb></tscreen>
- </itemize>
- <tag>LynxOS AT 2.4</tag>
- <itemize>
- <item>Use the CYGNUS GNU-C Compiler to build XFree86. With LynxOS
- 2.4.0 you must execute the shell script <tt>/CYGNUS.bash</tt> to
- apply the necessary changes to your environment.
- <item>Create a shell script named <tt>/lib/cpp</tt> as follows:
- <tscreen><verb>
- #!/bin/sh
- /cygnus/94q4-lynxos-x86/lib/gcc-lib/i386-lynx/2.6-94q4/cpp \
- -traditional "$@"
- </verb></tscreen>
- It is possible that future releases use a different path for
- the CYGNUS compiler support programs. You may use
- <tscreen><verb>
- gcc -v
- </verb></tscreen>
- to find out the correct path. Set the file mode of <tt>/lib/cpp</tt> with
- <tscreen><verb>
- # chown root /lib/cpp
- # chmod 755 /lib/cpp
- </verb></tscreen>
- </itemize>
- <tag>LynxOS AT 2.3</tag>
- This has actually not been tested, but the steps for described
- for 2.4 should apply to 2.3 as well.
- <tag>LynxOS AT 2.2.1</tag>
- This has actually never been tested, be prepared that the build will
- fail somewhere!
- <itemize>
- <item>Create a shell script named <tt>/lib/cpp</tt> as follows:
- <tscreen><verb>
- #!/bin/sh
- /usr/local/lib/gcc-cpp -traditional "$@"
- </verb></tscreen>
- <item>The loader /bin/ld of LynxOS 2.2.1 does not support the -L option
- which is heavily used by X11R6 makefiles. To work around this
- problem you must install a small wrapper program which replaces
- the original /bin/ld program. Use the following steps to install
- it:
- <tscreen><verb>
- # cd xc/programs/Xserver/hw/xfree/etc
- # cc -o ld ld-wrapper.c
- # mv /bin/ld /bin/ld.org
- # mv ld /bin/ld
- # chmod 511 /bin/ld
- # chown root /bin/ld
- </verb></tscreen>
- <item>Modify system header files as follows:
- <descrip>
- <tag><tt>/usr/include/uio.h</tt></tag> surrounded by
- <tscreen><verb>
- #ifndef _UIO_H
- #define _UIO_H
- ...
- #endif
- </verb></tscreen>
- <tag><tt>/usr/include/utmp.h</tt></tag> surrounded by
- <tscreen><verb>
- #ifndef _UTMP_H
- #define _UTMP_H
- ...
- #endif
- </verb></tscreen>
- <tag><tt>/usr/include/unistd.h</tt></tag> add
- <tscreen><verb>
- extern int read();
- </verb></tscreen>
- </descrip>
- </itemize>
- </descrip>
+<item>Modify <tt>/lib/liblynx.a</tt>. The X servers need the
+<tt>smem_create()</tt> system call to map the frame buffer into their
+address space. The system call is in <tt>liblynx</tt> library along
+with other Lynx proprietary calls which (unfortunately) overlap with
+calls in <tt>libc</tt>. To reduce confusion you should modify
+<tt>liblynx</tt> as follows:
+
+<tscreen><verb>
+ # mv /lib/liblynx.a /lib/liblynx.a.ORG
+ # mkdir /tmp/xx; cd /tmp/xx
+ # ar xv /lib/liblynx.a.ORG
+ # ar rv /lib/liblynx.a *smem*
+ # ranlib /lib/liblynx.a
+</verb></tscreen>
+</itemize>
<sect1> make World<p>
- Read <htmlurl url="BUILD.html" name="Building XFree86"> before
- trying to rebuild XFree86 from the source distribution.
+<!-- out of date
+Read <htmlurl url="BUILD.html" name="Building XFree86"> before trying
+to rebuild XFree86 from the source distribution.
+-->
- You may then issue a
+If you have the MTRR device driver installed, add a line
+
+ <tscreen><verb>
+ #define HasMTRRSupport YES
+ </verb></tscreen>
+
+to the <tt>config/cf/host.def</tt> file.
+
+You may then issue a
<tscreen><verb>
make World
</verb></tscreen>
- to compile XFree86. After a few hours (and hopefully a successful
- build of the XFree86 system) you can install the software using
+to compile XFree86. After a few hours (and hopefully a successful
+build of the XFree86 system) you can install the software using
<tscreen><verb>
make install
</verb></tscreen>
- You must be logged in as super-user (root) when you invoke `make
- install'. Be sure to set your environment to use the same compiler
- (LynxOS 2.3.0/2.4.0, CYGNUS GNU-C) as you did during the `make World'. To
- install the LinkKit use
+You must be logged in as super-user (root) when you invoke `make
+install'.
+
+On LynxOS x86 2.5.0 you may encounter problems with <tt>make</tt> in
+deeply nested subdirectories (eg core dumps, hangups). In this case
+update to GNU make version 3.75 or higher.
+
+<sect1>Installing XFree86 manual pages<p><label id="installman">
+
+LynxOS uses cat-able manual pages, and because a doc preparation
+system is definitely not a vital component of a real-time operating
+system you must first install groff-1.09 (or newer).
+
+XFree86 manual pages may be installed using
<tscreen><verb>
- make install.linkkit
+ make install.man
</verb></tscreen>
- With LynxOS 2.2.1 programs will not be stripped during
- installation. This is due to a problem with the strip program which
- shows up when installing across file system boundaries.
+The index and whatis database for the XFree86 manual pages will be
+created automatically. If you already have a whatis database or index
+file in the destination directories you should perform a sort/uniq
+operation to remove duplicate entries:
- Refer to section <ref id="installman" name="Installing XFree86 manual pages">
- for manual page installation.
-
- On LynxOS AT 2.5.0 you may encounter problems with <tt>make</tt> in
- deeply nested subdirectories (eg core dumps, hangups). In this case
- update to GNU make version 3.75 or higher.
+ <tscreen><verb>
+ for i in 1 3 5
+ do
+ rm -f /tmp/tmpfile
+ sort /usr/X11R6/man/cat$i/LIST$i | uniq > /tmp/tmpfile
+ mv /tmp/tmpfile /usr/X11R6/man/cat$i/LIST$i
+ done
+ sort /usr/X11R6/man/whatis | uniq > /tmp/tmpfile
+ mv /tmp/tmpfile /usr/X11R6/man/whatis
+ </verb></tscreen>
+
+<!--
<sect>Building on microSPARC and PowerPC<label id="others"><p>
XFree86 3.3 compiles on LynxOS microSPARC and on LynxOS PPC as well. On the
@@ -539,14 +447,6 @@ few little adjustments to your system:
The server for monochrome cards builds properly if you enable it in
<tt>lynx.cf</tt> but it has never been tested (reports are welcome).
+-->
-<verb>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml,v 3.17 1999/08/23 06:38:47 dawes Exp $
-
-
-
-
-
-$XConsortium: LynxOS.sgml /main/10 1996/10/28 05:13:07 kaleb $
-</verb>
</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml
index e96875808..f2ad0e480 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml
@@ -12,7 +12,7 @@ Matthieu Herrb
<Date>Last modified on: 20 February 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml,v 3.52 2000/02/21 18:05:47 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml,v 3.55 2000/03/03 21:28:09 dawes Exp $
</ident>
<toc>
@@ -29,12 +29,12 @@ See the <htmlurl url="COPYRIGHT.html" name="Copyright Notice">.
The sources for XFree86 are available by anonymous ftp from:
-<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/snapshots/&relvers;"
-url="ftp://ftp.XFree86.org/pub/XFree86/current">
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/&relvers;"
+url="ftp://ftp.XFree86.org/pub/XFree86/&relvers;">
Binaries for NetBSD 1.3 and later are available from:
-<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/snapshots/&relvers;/binaries/NetBSD"
-url="ftp://ftp.XFree86.org/pub/XFree86/snapshots/&relvers;/NetBSD">
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/&relvers;/binaries/NetBSD"
+url="ftp://ftp.XFree86.org/pub/XFree86/&relvers;/NetBSD">
A list of mirror sites is provided by
@@ -51,14 +51,21 @@ XFree86 also supports NetBSD on PC98 machines.
<sect>Bug Reports for This Document
<p>
-Send email to <em/herrb@XFree86.Org/ (Matthieu Herrb) or
-<em/XFree86@XFree86.org/ if you have comments or suggestions about
+Send email to <email>herrb@XFree86.Org</email> (Matthieu Herrb) or
+<email>XFree86@XFree86.org</email> if you have comments or suggestions about
this file and we'll revise it.
-<sect>New OS dependant features
+<sect>New OS dependent features
<p>
See the <htmlurl url="RELNOTES.html" name="Release Notes"> for
non-OS dependent new features in XFree86 &relvers;.
+
+<sect1>New OS dependent features in 4.0
+<p>
+<itemize>
+<item>Preliminary APM support.
+</itemize>
+
<sect1>New OS dependent features in 3.9.18
<p>
<itemize>
@@ -79,8 +86,8 @@ support is included.
<sect>Installing the Binaries
<p>
-Refer to section 5 of the <htmlurl url="RELNOTES.html" name="Release
-Notes"> for detailed installation instructions.
+Refer to the <htmlurl url="Install.html" name="Installation Document">
+for detailed installation instructions.
<sect>Configuring X for Your Hardware
@@ -318,8 +325,10 @@ extension.
<sect> Rebuilding the XFree86 Distribution
<p>
+<!-- out of date
See <htmlurl url="INSTALL.html" name="INSTALL"> for instructions on
unbundling and building the source distribution.
+-->
You should configure the distribution by editing
<tt>xc/config/cf/host.def</tt> before compiling. To compile the
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml
index 5e7453bb5..a7b70c75d 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml
@@ -9,7 +9,7 @@ Matthieu Herrb
<Date>Last modified on: 20 February 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml,v 1.7 2000/02/21 18:05:47 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml,v 1.10 2000/03/03 21:28:10 dawes Exp $
</ident>
<toc>
@@ -27,13 +27,13 @@ See the <htmlurl url="COPYRIGHT.html" name="Copyright Notice">.
The sources for XFree86 &relvers; are available by anonymous ftp from:
-<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/snapshots/&relvers;"
-url="ftp://ftp.XFree86.org/pub/XFree86/snapshots">
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/&relvers;"
+url="ftp://ftp.XFree86.org/pub/XFree86/&relvers;">
Binaries for OpenBSD/i386 2.6 and later are available from:
-<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/snapshots/&relvers;/binaries/OpenBSD"
-url="ftp://ftp.XFree86.org/pub/XFree86/snapshots/&relvers;/binaries/OpenBSD">
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/&relvers;/binaries/OpenBSD"
+url="ftp://ftp.XFree86.org/pub/XFree86/&relvers;/binaries/OpenBSD">
A list of mirror sites is provided by
<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/MIRRORS"
@@ -48,14 +48,23 @@ XFree86 also builds on other OpenBSD architectures. See section
<sect>Bug Reports for This Document
<p>
-Send email to <em/herrb@xfree86.org/ (Matthieu Herrb) or
-<em/XFree86@XFree86.org/ if you have comments or suggestions about
+Send email to <email>herrb@xfree86.org</email> (Matthieu Herrb) or
+<email>XFree86@XFree86.org</email> if you have comments or suggestions about
this file and we'll revise it.
-<sect>New OS dependant features
+<sect>New OS dependent features
<p>
See the <htmlurl url="RELNOTES.html" name="Release Notes"> for
non-OS dependent new features in XFree86 &relvers;.
+
+<sect1>New OS dependent features in 4.0
+<p>
+<itemize>
+<item>Multi-thread safe libraries are built by default on OpenBSD 2.6
+ and later,
+<item>Preliminary APM support.
+</itemize>
+
<sect1>New OS dependent features in 3.9.18
<p>
<itemize>
@@ -75,8 +84,8 @@ post 2.6 OpenBSD-current for PS/2 mices.
<sect>Installing the Binaries
<p>
-Refer to section 5 of the <htmlurl url="RELNOTES.html" name="Release
-Notes"> for detailed installation instructions.
+Refer to the <htmlurl url="Install.html" name="Installation Document">
+for detailed installation instructions.
<sect>Configuring X for Your Hardware
<p>
@@ -242,8 +251,10 @@ changes to the <tt/xf86site.def/, type ``<tt>./mkmf</tt>'' and
``<tt/make/'' to link the server. See <tt>/usr/X11R6/lib/Server/README</tt>
for more info.
+<!-- out of date
See <htmlurl url="INSTALL.html" name="INSTALL"> for instructions on
unbundling and building the source distribution.
+-->
You should configure the distribution by editing
<tt>xc/config/cf/host.def</tt> before compiling. To compile the
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml
index fcfcd4d67..4cc3953fd 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml
@@ -1,8 +1,8 @@
<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
<!ENTITY % defs SYSTEM "defs.ent"> %defs;
<!ENTITY % onediff 'IGNORE'> <!-- patch is a single diff file -->
-<!ENTITY % twodiffs 'IGNORE'> <!-- patch is split into two diff files -->
-<!ENTITY % threediffs 'INCLUDE'> <!-- patch is split into three diff files -->
+<!ENTITY % twodiffs 'INCLUDE'> <!-- patch is split into two diff files -->
+<!ENTITY % threediffs 'IGNORE'> <!-- patch is split into three diff files -->
]>
@@ -10,10 +10,10 @@
<title>README for XFree86&tm; &relvers;
<author>The XFree86 Project, Inc
-<date>21 February 2000
+<date>26 February 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v 3.100 2000/02/21 22:41:41 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v 3.103 2000/03/08 20:36:43 dawes Exp $
</ident>
<abstract>
@@ -28,6 +28,7 @@ operating systems on Intel and other platforms.
<sect>What is XFree86 &relvers;?
<p>
+<![ %snapshot [
XFree86 &relvers; is a ``work in progress'' snapshot of the XFree86 4.0
development code. It is <![ %latersnap; [one of]]>
<![ %firstsnap; [the first in]]>
@@ -48,10 +49,44 @@ compared with the 3.3.x versions, and only a small number of drivers have
been converted so far. That means that this release does not support a
wide range of video hardware. Some of the drivers and new features are
well developed and reasonably stable, while others are not.
+]]>
+
+<![ %release [
+XFree86 &relvers; is <![ %firstrel; [the first]]>
+<![ %laterrel; [a]]> full release of the <![ %earlyrel; [new]]> XFree86 4
+series.
+The road to XFree86 4 began in mid 1997, with serious work starting in
+early 1998. The first pre-4.0 snapshot was released in mid 1999, and
+4.0 was released in early 2000. A lot has been completed in that time,
+and even more has been started since the "4.0" design was drafted. The
+result is that this release contains a lot of new features, some new
+drivers, and some significant performance improvements. This release
+contains components in various stages of development, ranging from stable
+and well tested to new and not-so-well tested. One the other side,
+there are drivers from the 3.3.x series that have not yet been ported
+to XFree86 4. Most of these are for old hardware. To find more
+information about which hardware is supported, see the <htmlurl
+name="Driver Status document" url="Status.html">.
+
+XFree86 4 uses a very modular design. We had hoped to finalise and fully
+document the driver module API/ABI in time for the 4.0 release, but instead
+we are planning to have this done for a subsequent release. We will try
+where possible to retain backward compatibility with the module interfaces
+in 4.0 in future releases, but we can't make guarantees about that until
+the interfaces have been fully documented.
+]]>
Information on this release's features and their status can be found in
the <htmlurl name="Release Notes" url="RELNOTES.html">.
+Information about obtaining and installing binary distributions of this
+release can be found in the <htmlurl name="Installation Document"
+url="Install.html">.
+
+Copyright and Licensing information for this release can be found in
+the <htmlurl name="License Document" url="LICENSE.html">.
+
+<![ %snapshot [
<sect>Redistribution of the Snapshots
<p>
@@ -60,22 +95,35 @@ prohibit vendors and others redistributing binaries of this release, we
don't recommend it. We ask that if you do distribute such binaries,
you make it clear that people using then should contact you for support
and not XFree86.
+]]>
<sect>Developers
<p>
-If you would like to work on the development on XFree86 4.0, then it is
+If you would like to work on the development of XFree86 4, then it is
recommended that you <url name="join the XFree86 development team"
-url="http://www.xfree86.org:/developer.html">. That way you will have access
-to the latest source and to other developers.
+url="http://www.xfree86.org:/developer.html">. That way you will have
+access to the latest source and to other developers.
<sect>How to get XFree86 &relvers;
<p>
+<![ %snapshot; [
XFree86 &relvers; can be found at the <url name="XFree86 ftp server"
url="ftp://ftp.xfree86.org/pub/XFree86/snapshots/&relvers;/">, and at
mirrors of this server. This snapshot is available primarily in source
-form. Binaries for some platforms may be made available at a later time.
+form. Binaries for some platforms may be made available at a later
+time.
+]]>
+
+<![ %release; [
+XFree86 &relvers; can be found at the <url name="XFree86 ftp server"
+url="ftp://ftp.xfree86.org/pub/XFree86/&relvers;/">,
+and at mirrors of this server. Information about obtaining and installing
+binary distributions of this release can be found in the
+<htmlurl name="Installation Document" url="Install.html">. Information about
+obtaining the release in source form is given below.
+]]>
The source for version &relvers; is split into three tarballs:
<tt>X&srcvers;src-1.tgz</tt>, <tt>X&srcvers;src-2.tgz</tt>,
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml
index b36f2411b..a90c11317 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml
@@ -6,10 +6,10 @@
<title>Release Notes for XFree86&trade; &relvers;
<author>The XFree86 Project, Inc
-<date>21 February 2000
+<date>7 March 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.29 2000/02/21 22:29:07 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.37 2000/03/08 20:11:55 dawes Exp $
</ident>
<abstract>
@@ -21,8 +21,70 @@ in XFree86 &relvers; and their status.
<toc>
+<sect>Introduction
+<p>
+XFree86 4.0 is the first official release of the new XFree86 4. XFree86
+4 represents a significant redesign of the XFree86 X server. It is very
+important to keep in mind that XFree86 4 is still very much in development,
+and it contains a lot of new work. That means two things: there is a
+lot of new exciting stuff to try, but being new code, it hasn't had
+nearly as much of a workout as the stable 3.3.x releases. If you're
+looking for a well-tested, stable release, and can't afford the
+inconveniences that new software can sometimes cause, then you are
+probably better off sticking with the 3.3.x releases for now. If you
+have the resources to try out the new version and investigate its
+features, or if you just like being on the bleeding edge, then please
+try &relvers;!
+
+This release isn't quite as complete as we would have liked. The main
+missing pieces are a nice configuration tool and support for some of
+the hardware that 3.3.x supports. The first point means that configuring
+the server might be more painful than usual. The second means that your
+hardware might not be supported by &relvers;, or it might be supported at a
+lesser level (conversely, some hardware is better supported in &relvers;).
+We've attempted to provide some information about the second point in
+our <htmlurl name="Driver Status document" url="Status.html">. Please
+check there first before trying &relvers;. Unfortunately that document is
+still fairly basic, but it should at least give you an idea of whether
+you're likely to be able to use &relvers; at all or not.
+
+On the subject of configuration, we have updated the basic text-based
+tool "<tt>xf86config</tt>" to generate config files in the format required
+by &relvers; (3.3.x config files won't really work with &relvers;). We're also
+working on some other configuration tools, including one that is built-in
+to the X server. An early version of this is included in the release,
+and it works well for some hardware. To try it out, just run (as root)
+"<tt>XFree86 -configure</tt>". Both of these configuration options will
+at worst give you a reasonable starting point for a suitable configuration
+file. We've put some effort into documenting the &relvers; config file format,
+and you can find that information in the XF86Config manual page. Please
+check that and the driver manual pages and related documentation for
+further information about that.
+
+Oh, another thing you might notice is that our documentation is rather
+patchy. Most of what is present should be in reasonable shape, but
+there are gaps. We thought it better to leave out docs that were
+very out of date rather than providing inaccurate and misleading
+information.
+
+Finally, before you download and install the binary distributions for
+this release, please have a quick read through the <htmlurl
+name="Installation Document" url="Install.html">. It may save you some
+time.
+
+If those cautionary notes haven't turned you away (and we certainly hope
+not), please read on... The sections below describe some of the new
+features and changes between 3.3.x and &relvers;. There is a lot of new
+stuff, and we definitely don't have enough space to cover it all here.
+
+<!--
<sect>Summary of new features in &relvers; compared with &prevrelvers;.
<p>
+-->
+
+<!--
+<sect>Summary of new features in 3.9.18 compared with 3.9.17.
+<p>
This section contains a brief summary of what has changed since the
previous snapshot. Unfortunately, only a small number of changes are
listed here. For detailed information, refer to the <tt>CHANGELOG</tt>
@@ -123,19 +185,20 @@ that are new to the pre-4.0 snapshot series.
<item>Some work on adding WYSIWYG capabilities to the Xaw text widget.
<item>Some preliminary support for programming modes has been added to xedit.
</itemize>
+-->
<sect>X server
<p>
Unlike XFree86 3.3.x where there are multiple X server binaries, each
of which drive different hardware, XFree86 &relvers; has a single X server
-binary (called <tt>XFree86</tt>). This binary can either have one or
+binary called <tt>XFree86</tt>. This binary can either have one or
more video drivers linked in statically, or, more usually, dynamically
load the video drivers and other modules that are needed.
XFree86 &relvers; has X server support for most UNIX(R) and UNIX-like
operating systems on Intel/x86 platforms, plus support for Linux on
-Alpha and PowerPC platforms. Support for additional architectures and
-operating systems is planned for future releases.
+Alpha and PowerPC platforms. Work on support for additional architectures
+and operating systems is in progress, and is planned for future releases.
<sect1>Loader and Modules
<p>
@@ -149,30 +212,34 @@ and makes it possible for the modules to be operating system independent
that, for example, a module compiled on Linux/x86 can be loaded by an
X server running on Solaris/x86, or FreeBSD, or even OS/2. One of the
main benefits of this is that when modules are updated, they don't need
-to be recompiled for each different operating system.
+to be recompiled for each different operating system. We're planning to
+take advantage of this to provide more frequent driver module updates in
+between major releases.
The loader in version &relvers; has support for Intel (x86), Alpha and
-PowerPC platforms. It also has preliminary support for Sparc platforms.
+PowerPC platforms. It also has preliminary support for Sparc platforms
+but this isn't used yet.
The X server makes use of modules for video drivers, X server extensions,
font rasterisers, input device drivers, framebuffer layers (like mfb,
cfb, etc), and internal components used by some drivers (like XAA),
-The module interfaces (API and ABI) used in the snapshot releases are
-subject to change without notice. This means that there is no guarantee
-that modules built for one snapshot release will function with another
-snapshot release. As of the 4.0 release we plan to make every effort
-to provide backward compatibility for the module interfaces (that means
-older modules working with newer core X server binaries).
+The module interfaces (API and ABI) used in this release is still subject
+to change without notice. While we'll attempt to provide backward
+compatibility for the module interfaces as of the 4.0 release (meaning
+that 4.0 modules will work with future core X server binaries), we can't
+guarantee that this will be the case. We are planning to fully document
+and stabilise the module interfaces in a future release, and at that
+point backward compatibility will be easier to achieve.
<bf>Note about module security</bf>
<quote><p>
- The XFree86 X server runs with root privileges, which means that the
- X server loadable modules also run with these privileges. For this
- reason we recommend that all users be careful to only use loadable
- modules from reliable sources. By the time that XFree86 4.0 is
- released, we hope to have implemented a method for signing/verifying
- modules that we provide.
+ The XFree86 X server runs with root privileges, which means that
+ the X server loadable modules also run with these privileges.
+ For this reason we recommend that all users be careful to only
+ use loadable modules from reliable sources. We hope to have a
+ mechanism for signing/verifying the modules that we provide
+ available in a future release.
</quote>
@@ -182,12 +249,15 @@ older modules working with newer core X server binaries).
The X server configuration file format has been extended to handle some
of the new functionality. The <tt>xf86config</tt> utility can be used
to generate a basic config file, that may require some manual editing.
+The X server also has preliminary support for generating a basic config
+file. This is done by running (as root) "<tt>XFree86 -configure</tt>".
Alternatively, the sample config file <tt>XF86Config.eg</tt> that is
installed in <tt>/usr/X11R6/lib/X11</tt> may be used as a starting point.
The <tt>XF86Setup</tt> utility is currently not usable, but work is
continuing in this area.
-The main changes are:
+The main changes are covered here, but please refer to the XF86Config
+manual page for more comprehensive information:
<itemize>
<item>The Module section is used to load server extension modules and
@@ -197,7 +267,10 @@ The main changes are:
instead of the usual Load keyword. The <tt>bitmap</tt> module
is the only font module that is loaded by default. No server
extensions are loaded by default, but some are built-in to the
- server. The following example shows how to load all the server
+ server. It is strongly recommended that the extension module
+ containing a range of small miscellaneous extensions (<tt>extmod</tt>)
+ be loaded because some commonly used things won't work correctly
+ without it. The following example shows how to load all the server
extensions plus the Type1 and TrueType fonts support, and a
commented example that shows how to pass options to an extension
(this one is for loading the misc extensions (<tt>extmod</tt>)
@@ -252,7 +325,7 @@ EndSection
specified.
Note: the value must always be enclosed in double quotes
- (<tt>"</tt>).
+ (<tt>"</tt>), even when it is numerical.
<item>The ServerFlags section now accepts its parameters as Options
instead of as special keywords. The older keyword format is
@@ -267,16 +340,17 @@ EndSection
Option "blank time" "10"
Option "standby time" "20"
Option "suspend time" "30"
- Option "off time" "60"
+ Option "off time" "40"
</verb></quote>
<item>The Keyboard, Pointer and XInput sections have been replaced by a
more general InputDevice section. The old Keyboard and Pointer
sections are still recognised for compatibility purposes, but
they are deprecated and support for them may be dropped in future
- releases. The keywords from the old sections are expressed as
- Options in the InputDevice sections. The following example shows
- typical InputDevice sections for the core mouse and keyboard.
+ releases. The old XInput sections are no longer recognised.
+ The keywords from the old sections are expressed as Options in
+ the InputDevice sections. The following example shows typical
+ InputDevice sections for the core mouse and keyboard.
<quote><verb>
Section "InputDevice"
@@ -292,27 +366,32 @@ Section "InputDevice"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/mouse"
- SampleRate 80
+ Option "SampleRate" "80"
EndSection
</verb></quote>
+<!-- what is this doing in the middle of information about the config file??
+j
Note: Additional sample rates have been added for some mice.
Matching the mouse sampling rate with the vertical refresh
rate can yield very noticeable improvements in smoothness of
pointer event driven operations such as window moves and
scrolling.
-
+-->
<item>The Monitor section is mostly unchanged. The main difference is
that a set of VESA modes is defined internally in the server,
and so for most monitors, it isn't necessary to specify any modes
- explicitly in the Monitor section. The Monitor section may also
+ explicitly in the Monitor section. There is also a new Modes section
+ that can be used to define a set of modes separately from the
+ Monitor section, and the Monitor section may "include" them
+ with the "<tt>UseModes</tt>" keyword. The Monitor section may also
include Options. Options that are monitor-specific, like the
<tt>"DPMS"</tt> and <tt>"Sync on Green"</tt> options are best
specified in the Monitor sections.
<item>The Device sections are mostly unchanged. The main difference
- is the new (and mandatory) Driver keyword, that specifies which
+ is the new (and mandatory) Driver keyword that specifies which
video driver should be loaded to drive the video card. Another
difference is the BusID keyword that is used to specify which of
possibly multiple video cards the Device section is for. The
@@ -352,14 +431,15 @@ Section "ServerLayout"
EndSection
</verb></quote>
- See the document xc/programs/Xserver/hw/xfree86/doc/DESIGN for a
- more detailed explanation of the new ServerLayout section syntax.
+See the XF86Config man page for a more detailed explanation of the format
+of the new ServerLayout section.
</itemize>
The config file search patch has been extended, with the directories
-<tt>/etc/X11</tt> and <tt>/usr/X11R6/etc</tt> being added.
+<tt>/etc/X11</tt> and <tt>/usr/X11R6/etc/X11</tt> being added. The full
+search path details are documented in the XF86Config manual page.
<sect1>Command Line Options
@@ -458,17 +538,15 @@ The following new X server command line options have been added:
<tt>-logfile</tt> <it>file</it>
<quote><p>
This specifies the log file name. When specified here, it
- overrides the value specified in the config file. This option
- is only available when the server is started by the <tt>root</tt>
- user.
+ overrides the default value. This option is only available when
+ the server is started by the <tt>root</tt> user.
</quote>
<tt>-scanpci</tt>
<quote><p>
This specifies that the <tt>scanpci</tt> module should be loaded and
- executed. This does a scan of the PCI bus. This option is only
- available when the server is started by the <tt>root</tt> user.
+ executed. This does a scan of the PCI bus.
</quote>
@@ -521,17 +599,17 @@ XAA module.
Some multi-head configurations are supported in this release, primarily
with multiple PCI/AGP cards. However, this is an area that is still
being worked on, and we expect that the range of configurations for which
-it works well will increase in future snapshots. A configuration that
+it works well will increase in future releases. A configuration that
is known to work well in most cases is multiple (supported) Matrox cards.
One of the main problems is with drivers not sufficiently initialising
-cards that were not initialised at boot time. Normally only the primary
-video card gets initialised at boot time. Some combinations can be made
-to work better by changing which card is the primary card (either by
-using a different PCI slot, or by changing the system BIOS's preference for
-the primary card). We are investigating options for ``soft-booting''
-secondary video cards to deal with this problem, and we've had some very
-encouraging results.
+cards that were not initialised at boot time. This has been improved
+somewhat with the INT10 support that is used by most drivers (which
+allows secondary card to be "soft-booted", but in some cases there are
+other issues that still need to be resolved. Some combinations can be
+made to work better by changing which card is the primary card (either
+by using a different PCI slot, or by changing the system BIOS's preference
+for the primary card).
<sect1>Xinerama
<p>
@@ -545,15 +623,11 @@ an 8-bit screen together with a 16-bit screen in Xinerama mode.
Xinerama is not enabled by default, and can be enabled with the
<tt>+xinerama</tt> command line option for the X server.
-Xinerama was included with X11R6.4. The version included in this snapshot
-contains many bug fixes. This is an area that we are still working on, and
-we expect it to be improved further in future snapshots.
+Xinerama was included with X11R6.4. The version included in this release
+was completely rewritten for improved performance and correctness.
Known problems:
<itemize>
- <item>It appears that there are still some bugs that cause unexpected
- behaviour from time to time.
-
<item>Most (all?) window managers are not Xinerama-aware, and so some
operations like window placement and resizing might not behave
in an ideal way. This is an issue that needs to be dealt with
@@ -562,10 +636,11 @@ Known problems:
</itemize>
-<!--
<sect1>XVideo extension
<p>
--->
+
+The XVideo extension is included in this release, but nobody seems
+interested in writing up some information about it.
<sect1>DGA version 2
<p>
@@ -573,82 +648,58 @@ Known problems:
DGA 2.0 is nearly completed but still not implemented by all drivers.
Preliminary documentation for the client libraries can be found in the
xc/programs/Xserver/hw/xfree86/DGA document. Some degree of backwards
-compatibility with version 1.0 is provided.
+compatibility with version 1.0 is provided. This information is out of date.
<sect1>DDC
<p>
-The VESA(R) Display Data Channel (DDC&trade;) standard (related to, but
-separate from, the VESA(R) Plug and Display standard) allows the
-monitor to tell the video card (or on some cases the computer
-directly) about itself; particularly the supported screen resolutions
-and refresh rates.
-
-Partial or complete DDC support is available in the following hardware modules:
-<itemize>
- <item>APM
- <item>Chips
- <item>Cirrus
- <item>Glint
- <item>MGA
- <item>Neomagic
- <item>S3 ViRGE
- <item>SIS
- <item>Trident
-</itemize>
+The VESA(R) Display Data Channel (DDC&trade;) standard allows the monitor
+to tell the video card (or on some cases the computer directly) about
+itself; particularly the supported screen resolutions and refresh rates.
-DDC is enabled by default, but can be disabled
-with a "Device" section entry:
-<tt>Option "NoDDC"</tt>.
-We have support for DDC versions 1 and 2; these can be disabled independently
-with <tt>Option "NoDDC1"</tt> and <tt>Option "NoDDC2"</tt>.
+Partial or complete DDC support is available in most of the video drivers.
+DDC is enabled by default, but can be disabled with a "Device" section
+entry: <tt>Option "NoDDC"</tt>. We have support for DDC versions 1
+and 2; these can be disabled independently with <tt>Option "NoDDC1"</tt>
+and <tt>Option "NoDDC2"</tt>.
At startup the server prints out DDC information from the display,
-but it does not yet use it the determine modelines.
+but it does not yet use it the determine modelines. For some drivers,
+the X server's new <tt>-configure</tt> option uses the DDC information
+when generating the config file.
Changed behavior caused by DDC. Several drivers uses DDC information to
-set the monitor gamma (brightness) curve, and the screen size and
-pitch.
-<itemize>
- <item>The gamma is particularly noticeable; every monitor I have tried has
- a gamma setting >&nbsp;2, which means that the picture is much
- lighter than under 3.3.x or without DDC. To revert to the previous
- behavior put
-
- <tscreen>
-Gamma 1.0 1.0 1.0
- </tscreen>
-
- in the appropriate "Monitor" section of the config file.
+set the screen size and pitch. This can be overridden by explicitly
+resetting it to the and non-DDC default value 75 with the <tt>-dpi
+75</tt> command line option for the X server, or by specifying appropriate
+screen dimensions with the "DisplaySize" keyword in the "Monitor" section
+of the config file.
- <item>Similarly, you can override the DDC probed "dpi" value by explicitly
- resetting it to the 3.3.x and non-DDC default value 75 with the
- <tt>-dpi 75</tt> command line option for the X server, or by
- specifying appropriate screen dimensions with the "DisplaySize"
- keyword in the "Monitor" section of the config file.
-
-</itemize>
<sect1>GLX and the Direct Rendering Infrastructure (DRI)
<p>
<url name="Precision Insight" url="http://www.precisioninsight.com">
has been provided with funding and support from <url name="Red Hat"
-url="http://www.redhat.com"> and <url name="SGI" url="http://www.sgi.com">
-to integrate the GLX extension for 3D rendering in an X11 window. The
-3D core rendering component is the <url name="Mesa"
-url="http://www.mesa3d.org"> library. SGI has released the sources to
-the extension framework under an open license, which essentially provides
-the glue between the 3D library and this windowing system. Precision
-Insight has integrated these components into this XFree86 X Server and
-added a Direct Rendering Infrastructure. Direct Rendering provides a
-highly optimized path for sending 3D data directly to the graphics
-hardware. This release <url name="demonstrates a sample implementation
-of direct rendering" url="http://www.precisioninsight.com/demo.html">
-by providing a single path of 3D hardware accelerated rendering for
-the GMX2000 and 3dfx voodoo graphics cards. Future releases will support
-much broader implementations of hardware accelerated direct rendering on
-a wide range of 3D capable graphics devices.
+url="http://www.redhat.com">, <url name="SGI" url="http://www.sgi.com">,
+<url name="3Dfx" url="http://www.3dfx.com">, <url name="Intel"
+url="http://www.intel.com">, <url name="ATI" url="http://www.ati.com">,
+and <url name="Matrox" url="http://www.matrox.com"> to integrate the GLX
+extension for 3D rendering in an X11 window. The 3D core rendering
+component is the <url name="Mesa" url="http://www.mesa3d.org"> library.
+SGI has released the sources to the GLX extension framework under an
+open license, which essentially provides the glue between the 3D
+library and this windowing system. Precision Insight has integrated
+these components into the XFree86 X Server and added a Direct Rendering
+Infrastructure (DRI). Direct Rendering provides a highly optimized
+path for sending 3D data directly to the graphics hardware. This
+release provides a complete implementation of direct rendering support
+for the 3Dfx Banshee and Voodoo3 graphics cards. Additional direct
+rendering drivers will be available for 3Dfx, Intel, ATI and Matrox
+boards during the second quarter of 2000. Updated information on DRI
+compatible drivers can be found at the <url name="DRI Project"
+url="http://dri.sourceforge.net"> on <url name="SourceForge"
+url="http://www.sourceforge.net">.
<sect1>X-Video Extension (Xv)
<p>
@@ -664,7 +715,7 @@ by the Matrox G200/G400 cards at the moment.
<p>
The XFree86-Misc extension has not been fully ported to the new server
-architecture yet. This should be completed in a future snapshot.
+architecture yet. This should be completed in a future release.
The XFree86-VidModeExtension extension has been updated, and mostly
ported to the new server architecture. The area of mode validation
@@ -673,7 +724,7 @@ extension has support for changing the gamma setting at run-time, for
modes where this is possible. The new <tt>xgamma</tt> utility makes
use of this feature. Compatibility with the 3.3.x version of the
extension is provided. The missing parts of this extension and some
-new features should be completed in a future snapshot.
+new features should be completed in a future release.
<sect1>Drivers
@@ -692,7 +743,7 @@ XFree86 &relvers; includes the following drivers:
<tabrow><tt>cyrix</tt> (*)<colsep>Cyrix MediaGX</tabrow>
<tabrow><tt>fbdev</tt><colsep>Linux fbdev</tabrow>
<tabrow><tt>glide</tt><colsep>Glide2x (3Dfx)</tabrow>
- <tabrow><tt>glint</tt><colsep>3Dlabs</tabrow>
+ <tabrow><tt>glint</tt><colsep>3Dlabs, TI</tabrow>
<tabrow><tt>i740</tt><colsep>Intel i740</tabrow>
<tabrow><tt>i810</tt><colsep>Intel i810</tabrow>
<tabrow><tt>mga</tt><colsep>Matrox</tabrow>
@@ -716,28 +767,13 @@ but are not complete and/or stable yet.
<sect2>APM <label id="apm">
<p>
-It's the driver for Alliance AT3D/AT25 and AT24 chips. There is a rather
+This is the driver for Alliance AT3D/AT25 and AT24 chips. There is a rather
complete support for the functions with acceleration at 8,15,16,24 and 32 bits
(limited by the chip at 24bpp). There is preliminary, still buggy, support
for the AP6422 chip, which is still supported in 3.3.x servers. The Xv driver
is almost ok. The Rush extension for glide2x works, with some additions,
including overlay of the result. DGA and DGA2 have been tested ok.
-
-Main useful options:
-<descrip>
-<tag>SetMclk</tag>
- to set the memory clock (default should be OK).
-<tag>SWCursor</tag>
- to force the software cursor.
-<tag>HWCursor</tag>
- to force the hardware cursor.
-<tag>NoAccel</tag>
- to disable (XAA) acceleration.
-<tag>ShadowFB</tag>
- to enable shadow framebuffer operation (the rendering is done in
- system memory and then copied to the framebuffer, useful when
- acceleration is disabled).
-</descrip>
+Further information can be found in <htmlurl name="README.apm" url="apm.html">.
<sect2>Chips &amp; Technologies
<p>
@@ -748,7 +784,7 @@ name="README.chips" url="chips.html">.
<sect2>s3virge
<p>
-The s3virge driver is a port of the 3.3.3.1 SVGA S3 ViRGE driver. As
+The s3virge driver is a port of the 3.3.x SVGA S3 ViRGE driver. As
such it should be as stable and functional as previous XFree86
releases. There are a couple additional benefits included primarily due
to common enhancements:
@@ -762,6 +798,9 @@ to common enhancements:
<item>Multi-head is reported to work.
<item>The <tt>s3virge</tt> man page lists options and has configuration
notes for this release of the driver.
+ <item>Trio 3D and Trio 3D/2X support has been added, matching the 3.3.6
+ driver.
+ <item>Supports screen rotation and shadow framebuffer.
</itemize>
@@ -771,6 +810,9 @@ Outstanding items not implemented or fully tested:
<item>DGA support is implemented, but preliminary and untested.
</itemize>
+Further information can be found in <htmlurl name="README.s3virge"
+url="s3virge.html">.
+
<sect2>TGA
<p>
@@ -784,13 +826,12 @@ information.
The MGA driver supports the same range or hardware as XFree86 3.3.4,
but has a number of enhancements including multi-head support and
-support for overlays (8-bit + 24-bit).
+support for (non-destructive) overlays (8-bit + 24-bit).
Option <tt>"overlay"</tt> when the server is started in 32bpp
(<tt>-fbbpp&nbsp;32</tt>) will enable the 8+24 mode. The current
implementation doesn't optimize away unnecessary exposures yet so the
-performance of this option will be better in future snapshots. The
-option is not supported on the G100 due to a missing hardware feature.
+performance of this option will be better in future release.
By default, the color key for the overlays is 255, but this can be
changed with the <tt>"ColorKey"</tt> option to work around problems in
specific programs. Valid values for the key are 2-255.
@@ -807,15 +848,13 @@ Further information can be found in the <tt>mga</tt> man page.
Information about the ATI driver can be found in <url name="README.ati"
url="ati.html">. The current version is not accelerated. Acceleration
-support is planned for a future snapshot.
+support is planned for a future release.
<sect2>NVIDIA
<p>
The "nv" driver supports all Riva TNT accelerators as well as the
-new GeForce and Quadro accelerators. 3.9.17 adds DGA 2.0 support
-and performance improvements as well as resolving some rendering
-correctness issues.
+new GeForce and Quadro accelerators. DGA 2.0 support is included.
Further information can be found in the nv man page.
@@ -842,6 +881,18 @@ reading this man page.
For Voodoo Banshee and Voodoo 3 boards or later: Please use the tdfx
driver which talks directly to the hardware and is much faster.
+<sect2>GLINT <label id="glint">
+<p>
+
+The "glint" driver supports most 3Dlabs/Texas Instruments GLINT/Permedia
+chips. There is a rather complete support (better than in 3.3.x) for
+acceleration at 8, 15, 16, and 24 bit depths (limited by some chips at
+some depths). 8+24 overlay is supported. The Xv extension is supported
+for some boards.
+
+Further information about this driver can be found in the 'glint' driver
+man page.
+
<sect>X libraries and clients
<p>
@@ -903,11 +954,13 @@ New features:
</itemize>
- <item>This snapshot shows the current state of the work to add to the Xaw
+<!-- is this still true?
+ <item>This release shows the current state of the work to add to the Xaw
text widget WYSIWYG capabilities. The state is very initial, and
can be seen as a candidate to a candidate to a very early alpha
snapshot. There is no public interface for programming yet, because
the current one is very likely to change before ready to use.
+-->
</itemize>
@@ -1177,15 +1230,17 @@ version of xedit. These include:
</itemize>
<item>A first tentative to add programming modes was done. Currently, there
- are two modes:
+ is one mode:
<itemize>
<item><bf>C-mode:</bf> this mode is expected to be stable, and fully
usable.
+<!-- This was removed, right?
<item><bf>Html-mode:</bf> a lot of work needs to be done yet. It is
included in this snapshot only to show what the new text widget
capabilities can do.
+-->
</itemize>
</itemize>
@@ -1235,17 +1290,36 @@ encoding modules.
The glyph metrics array, which all the X clients using a particular font
have access to, is now placed in shared memory, so as to reduce redundant
memory consumption. For non-local clients, the glyph metrics array is
-trasmitted in a compressed format.
+transmitted in a compressed format.
-<sect1>Unicode support
+<sect1>Unicode/ISO 10646 support
<p>
What is included:
<itemize>
- <item>ISO 10646-1 extension of ``fixed'' BDF fonts added that cover
- over 2000 characters including all Latin, Greek, Cyrillic,
- Armenian, and Gregorian characters, plus numerous scientific
- and technical symbols (further fonts are under preparation).
+ <item>All ``-misc-fixed-*'' BDF fonts are now available in the
+ ISO10646-1 encoding and cover at least the 614 characters
+ found in ISO 8859-{1-5,7-10,14,15}, CP1252, and MES-1. The
+ non-bold fonts also cover all Windows Glyph List 4 (WGL4)
+ characters, including those found in all 8-bit MS-DOS/Windows
+ code pages. The 8-bit variants of the ``-misc-fixed-*'' BDF
+ fonts (ISO8859-1, ISO8859-2, KOI8-R, etc.) have all been
+ automatically generated from the new ISO10646-1 master fonts.
+
+ <item>Some ``-misc-fixed-*'' BDF ISO10646-1 fonts now cover a
+ comprehensive Unicode repertoire of over 3000 characters
+ including all Latin, Greek, Cyrillic, Armenian, Gregorian,
+ Hebrew, IPA, and APL characters, plus numerous scientific,
+ typographic, technical, and backwards-compatibility
+ symbols. Some of these fonts also cover Arabic, Ethiopian,
+ Thai, Han/Kanji, Hangul, full ISO 8859, and more. For the 6x13
+ font there is now a 12x13ja Kanji extension and for the 9x18
+ font there is a 18x18ja Kanji/Han/Hangul extension, which
+ covers all ISO-2022-JP-2 (RFC 1554) characters. The 9x18 font
+ can also be used to implement simple combining characters by
+ accent overstriking. For more information, read Markus Kuhn's
+ <url name="UTF-8 and Unicode FAQ"
+ url="http://www.cl.cam.ac.uk/~mgk25/unicode.html">.
<item>Mark Leisher's ClearlyU proportional font (similar to Computer
Modern).
@@ -1262,19 +1336,39 @@ What is included:
Known problems:
<itemize>
- <item>Xlib does not yet support UTF-8 as a locale, which means that
+ <item>Xlib does not yet fully support UTF-8 as a locale, which means that
xterm UTF-8 keyboard support is at the moment a temporary hack.
- <item>ISO 10646-1 cell-spaced fonts such as ``fixed'' work nicely, but
- mono-spaced and proportional fonts are handled inefficiently
- by the X protocol, resulting in metrics for 64k glyphs even if
- only 2000 glyphs are used.
+ <item>Most ISO10646-1 fonts encode no characters above U+31FF. This
+ avoids the inefficient allocation and transmission of a
+ >700 kB large XFontStruct structure, which would happen if the
+ (not very important) ligatures and symbols above U+f000 were
+ present.
+
+ <item>ISO 10646 Level 2 combining characters are not yet supported by
+ xterm (will be needed for instance for Thai and IPA).
- <item>ISO 10646 Level 2 combining characters not yet supported by
- xterm (will be needed for instance for the Thai script).
+ <item>Switching between a half-width and full-width font pair (such
+ as 9x18 and 18x18ja) is not yet supported by xterm (will be
+ needed for CJK scripts).
</itemize>
+<sect1>Lucidux fonts from Bigelow and Holmes
+<p>
+
+XFree86 now includes the ``Lucidux'' family of professionally hinted
+Type 1 fonts. This family consists of the fonts ``Lucidux Serif'',
+``Lucidux Sans'' and ``Lucidux Mono'' in Roman and oblique variants,
+and includes over 370 glyphs in each font covering among others the
+glyphs needed for ISO 8859-1, 2, 3, 4, 9 and 15. Bold variants will be
+included in a future release. The design and font outlines were donated
+by Charles Bigelow and Kris Holmes from Bigelow and Holmes Inc., and
+the hinting was donated by Berthold Horn and Blenda Horn from Y&amp;Y, Inc.
+For more information, please contact
+<email>design@bigelowandholmes.com</email> or
+<email>sales@yandy.com</email>, or consult <url name="Y&amp;Y's web site"
+url="http://www.yandy.com">.
<sect>Miscellaneous
<p>
@@ -1283,11 +1377,16 @@ Known problems:
<p>
Some changes to the installed XFree86 directory structure have been
-planned for 4.0. Not all of these changes have been implemented in this
-snapshot, and they will appear in a future snapshot. One important
-change that has been implemented is a modified search path for the X
+implemented for 4.0.
+One important
+change is a modified search path for the X
server's <tt>XF86Config</tt> file. The details of this can be found
-above in the <ref id="config" name="Configuration File"> section.
+in the XF86Config manual page. The other main change is moving
+most of the run-time configuration files to <tt>/etc/X11</tt>, with
+symbolic links in the old <tt>/usr/X11R6/lib/X11</tt> location pointing
+to the new location. Some run-time generated files are now located
+under the appropriate subdirectories of <tt>/var</tt>, again with the
+relevant symbolic links in the old location.
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml
index 745190cb5..58d11cefa 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml
@@ -6,11 +6,11 @@
<!-- Title information -->
<title>Information for SiS Users
-<author>Juanjo Santamarta (<it>santamarta@ctv.es</it>)
-<date>17 April 1999
+<author>Juanjo Santamarta (<email>santamarta@ctv.es</email>)
+<date>5 March 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml,v 3.6 1999/10/13 04:21:08 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml,v 3.7 2000/03/06 22:59:24 dawes Exp $
</ident>
<!-- Table of contents -->
@@ -30,6 +30,7 @@ The driver supports :
<item>XAA support (XFree86 Acceleration Architecture)
</itemize>
+<!-- this is incorrect
<sect> Supported chips <p>
<quote>
@@ -40,14 +41,13 @@ This driver needs linear framebuffer support in the card. Because this
SiS 86C201 and 86C202 based cards don't work with this driver.
Color expansion is not supported by the engine in 16M-color graphic mode.
+-->
<sect> XF86Config Options <p>
-The following options are of particular interest for the SiS driver. Each of
-them must be specified in the `svga' driver section of the XF86Config file,
-within the Screen subsections of the depths to which they are applicable
-(you can enable options for all depths by specifying them in the Device
-section).
+The following options are of particular interest for the SiS
+driver. Each of them must be specified in the Device section of the
+XF86Config file for this card.
<descrip>
<tag>Option "SetMclk"</tag>
@@ -62,6 +62,7 @@ section).
This option lets you to modify the maximum allowed dotclock).
<tag>Option "sw_cursor", "hw_cursor"</tag>
The default is for using the hardware cursor.
+<!-- Which of these chips is even supported? -->
<tag>Option "Turboqueue"</tag>
5597/8 and 6326 have the option to extend the engine command queue on
VRAM. With extended queue length, the driver only checks queue status
@@ -75,6 +76,17 @@ section).
Enables 1 cycle memory access. Try it. Increased memory bandwidth reduces
the possibility of glitches and noise on high resolution modes.
+<tag>Option "PciRetry"</tag>
+
+<tag>Option "NoAccel"</tag>
+ Disables various hardware accelerations.
+
+<tag>VideoRAM size</tag> The SiS chips can only directly address 4096K
+ bytes of video RAM. Some video cards using these chips are
+ shipped with additional video RAM. The videoRAM must be
+ explicitly limited to 4096 for those cards. Attempting to use
+ the additional RAM leads to a variety of scrambled screen
+ artifacts.
</descrip>
@@ -106,8 +118,10 @@ driver you'll need to consider several points:
<sect> Troubleshooting <p>
+<!-- don't have XF86Setup for 4.0
The generic VGA driver don't work with 6326, so XF86Setup can't be used
for this card. Please use xf86config instead.
+-->
Some video modes with high dot-clocks don't work at all, resulting on black
screen. Lowering dotclock in that case could solve the problem.
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml
index ce35a4d0e..36f767175 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml
@@ -6,10 +6,10 @@
<title>Driver Status for XFree86&trade; &relvers;
<author>The XFree86 Project, Inc
-<date>12 February 2000
+<date>3 March 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml,v 1.13 2000/02/21 22:29:08 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml,v 1.15 2000/03/03 21:28:10 dawes Exp $
</ident>
<abstract>
@@ -89,7 +89,6 @@ dependencies/limitations, other architectures known to work on
Support (including acceleration?) for the AT24, AT25 and AT3D.
This support is provided by the "apm" driver. This driver
currently has only incomplete support for the AP6422.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
The AP6422 is supported in &legacyvers; but not fully in
@@ -109,7 +108,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No ARK Logic chips are supported in &relvers;.
@@ -161,7 +159,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old drivers
have not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Avance Logic chips are supported in &relvers;.
@@ -203,7 +200,6 @@ dependencies/limitations, other architectures known to work on
Support (accelerated) for the Alpine (5430, 5434, 5436, 5446,
5480), and Laguna (5462, 5464, 5465) chips is provided by the
"cirrus" driver.
- NEED TO CHECK IF THE OTHERS WILL WORK WITH fbdev.
<tag>Summary:</tag>
The following chips are supported in &legacyvers; but not in
@@ -249,7 +245,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
A preliminary port of the driver is available, but it isn't
ready for widespread use.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Cyrix chips are well-supported in &relvers;.
@@ -266,7 +261,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for this chipset, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Epson chips are supported in &relvers;.
@@ -285,7 +279,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for this chipset, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Genoa chips are supported in &relvers;.
@@ -328,7 +321,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No IIT chips are supported in &relvers;.
@@ -347,12 +339,13 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
Support (accelerated) for the Intel i740 is provided by the
- "i740" driver. The i810 driver has not yet been ported and/or
- contributed.
+ "i740" driver, and support for the Intel i810 is provided by
+ the "i810" driver. The "i810" driver is currently Linux-only,
+ and requires the agpgart.o kernel module.
<tag>Summary:</tag>
- The i740 is supported in both version, but the i810 is not supported
- in &relvers; or on non-Linux/x86 platforms.
+ The i740 and i810 are supported in both versions, but the i810 is
+ only supported on Linux/x86 platforms at present.
</descrip>
@@ -387,7 +380,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for this chipset, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No MX (???) chips are supported in &relvers;.
@@ -406,7 +398,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for this chipset, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No NCR chips are supported in &relvers;.
@@ -462,7 +453,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Number Nine chips are supported in &relvers;.
@@ -480,7 +470,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Oak chips are supported in &relvers;.
@@ -500,7 +489,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Paradise/Western Digital chips are supported in &relvers;.
@@ -519,7 +507,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No RealTek chips are supported in &relvers;.
@@ -587,9 +574,8 @@ dependencies/limitations, other architectures known to work on
there are some problems with it in this version.
<tag>Summary:</tag>
- Support for the older (CHECK: are they all older than the
- supported chips?) chips: 86C201, 86C202 and 620,
- is only available in &legacyvers;.
+ Support for the 86C201, 86C202, 86C215, 86C225, 5597 and 5598
+ is currently only available in &legacyvers;.
</descrip>
@@ -604,7 +590,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No SMI chips are supported in &relvers;.
@@ -632,7 +617,6 @@ dependencies/limitations, other architectures known to work on
Cyber9397, Cyber9520, Cyber9397/DVD, Cyber9525/DVD, 3DImage975,
3DImage875, Blade3D, CyberBlade/i7, CyberBlade/DSTN/i7 and
CyberBlade/i1 is provided by the "trident" driver.
- NEED TO CHECK IF THE OTHERS WILL WORK WITH fbdev.
<tag>Summary:</tag>
The following (older) chipsets that are supported in &legacyvers;
@@ -676,7 +660,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Video 7 chips are supported in &relvers;.
@@ -694,7 +677,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old drivers
have not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Weitek chips are supported in &relvers;.
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml
index 019afa017..e9f8c6747 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml
@@ -1196,7 +1196,7 @@ Here is a copy of modeplot:
#
# Do `modeplot -?' to see the control options.
#
-# ($Id: VidModes.sgml,v 1.1.1.2 2000/02/22 15:43:16 kem Exp $)
+# (Id: video-modes.sgml,v 1.2 1997/08/08 15:07:24 esr Exp $)
# Monitor description. Bandwidth in MHz, horizontal frequencies in kHz
# and vertical frequencies in Hz.
@@ -1235,7 +1235,7 @@ output can be redirected to a printer. See gnuplot(1) for details.
The modeplot tool was created by Eric S. Raymond <esr@thyrsus.com> based on
analysis and scratch code by Martin Lottermoser <Martin.Lottermoser@mch.sni.de>
-This is modeplot $Revision: 1.1.1.2 $
+This is modeplot Revision: 1.2 $
EOF
exit;;
esac
@@ -1408,7 +1408,7 @@ mathematical analysis behind <TT>modeplot</TT>. The distributed
<TT>modeplot</TT> was redesigned and generalized by ESR from
Martin's original gnuplot code for one case.
<verb>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml,v 3.15 2000/01/24 19:38:29 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml,v 3.16 2000/02/23 20:30:16 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml
index 06aa60f9a..196c5b705 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml
@@ -1,20 +1,28 @@
-<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
<article>
<title> Information for Alliance Promotion chipset users
-<author> Henrik Harmsen (Henrik.Harmsen@erv.ericsson.se)
-<date> 23 February 1998
+<author> Loïc Grenié (<email>grenie@math.jussieu.fr</email>),
+ Henrik Harmsen (<email>Henrik.Harmsen@erv.ericsson.se</email>)
+<date> 6 March 2000
+<ident>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml,v 1.3 2000/03/08 05:38:43 dawes Exp $
+</ident>
<toc>
<sect> Support chipsets
<p>
The apm driver in the SVGA server is for Alliance Promotion
-(www.alsc.com) graphics chipsets. The following chipsets are supported:
+graphics chipsets. The following chipsets are supported:
<itemize>
<item> 6422
- Old chipset without color expansion hardware (text accel).
+ Old chipset. The driver is still very unstable, including computer
+ crashes. You would prefer using XFree86 3.3.x for this chipset.
+
<item> AT24
@@ -22,9 +30,9 @@ The apm driver in the SVGA server is for Alliance Promotion
<item> AT25, AT3D
- AT3D is found in Hercules Stingray 128/3D. Most other Voodoo
- Rush based cards use the AT25 which is identical except it
- doesn't have the 3D stuff in it.
+ AT3D is found in Hercules Stingray 128/3D. Most other Voodoo
+ Rush based cards use the AT25 which is identical except it
+ doesn't have the 3D stuff in it.
</itemize>
<sect> Acceleration
@@ -36,27 +44,62 @@ SVGA server. It has support for the following acceleration:
<item> Bitblts (rectangle copy operation)
<item> Lines (solid, single pixel)
<item> Filled rectangles
-<item> CPU->Screen colour expansion (text accel). Not for 6422.
-<item> Hardware cursor
+<item> CPU->Screen image transfers.
+<item> CPU->Screen colour expansion (text accel).
+<item> Screen->Screen colour expansion (cached text accel).
+<item> Mono 8x8 pattern fill. Not for 6422.
+<item> Colour 8x8 pattern fill (in 8bpp). Not for 6422.
+<item> Hardware cursor.
+<item> Pixmap caching.
</itemize>
-All in 8, 16 and 32 bpp modes. No 24bpp mode is supported.
-Also VESA DPMS power save mode is fully supported with "standby",
+All in 8, 16 and 32 bpp modes. In 24bpp mode only Bitblts and Filled rectangles
+is supported. Also VESA DPMS power save mode is fully supported with "standby",
"suspend" and "off" modes (set with with the "xset dpms" command).
+<sect> DGA
+<p>
+Full DGA 2.0 support with framebuffer access and drawing acceleration.
+
+<sect> Video
+<p>
+A limited hardware support for video decoding on AT24 and AT25/3D. It can
+display an image in YUV colours inside the desktop. There are some more exotic
+formats (YUV 4.1.1, YUV 4.0.0, RGB 8,16.32bpp).
+
+<sect> Shadow framebuffer
+<p>
+There is a mode, called shadow framebuffer, where the graphics is only used
+to display the images. All rendering is done in memory in a so-called shadow
+framebuffer. This mode is useful if you need lots of reading in the video
+memory. You will have to put
+<verb>
+ Option "ShadowFB"
+</verb>
+
+in your XF86Config file.
+
<sect> Configuration
<p>
-First: Please run the XF86Setup program to create a correct
+First: Please run the xf86config program to create a correct
configuration.
You can turn off hardware cursor by inserting the following line in the
Device section of the XF86Config file:
-
- Option "sw_cursor"
+<verb>
+ Option "SWcursor"
+</verb>
Or turn off hardware acceleration:
-
+<verb>
Option "noaccel"
+</verb>
+
+Or turn off MMIO
+
+<verb>
+ Option "nolinear"
+</verb>
Please don't specify the amount of video RAM you have or which chipset
you have in the config file, let the driver probe for this. Also please
@@ -65,9 +108,14 @@ a fully programmable clock that can take (almost) any modeline you throw
at it. It might fail at some specific clock values but you should just
try a slightly different clock and it should work.
+<sect> glide2x
+<p>
+There is support for the XF86Rush extension for use with the glide2x library.
+
+<sect> Questions
+<p>
+Any questions regarding this driver should be sent to Loïc Grenié. It should
+be possible to add support for the 3210 chipset if someone needs it.
-<verb>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml,v 1.2 1999/08/23 06:18:33 dawes Exp $
-</verb>
</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml
index 170a1003a..cda9a90df 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml
@@ -6,12 +6,12 @@
<!-- Title information -->
<title> Information for Chips and Technologies Users
-<author> David Bateman (<it>dbateman@eng.uts.edu.au</it>),
- Egbert Eich (<it>Egbert.Eich@Physik.TH-Darmstadt.DE</it>)
+<author> David Bateman (<email>dbateman@club-internet.fr</email>),
+ Egbert Eich (<email>eich@xfree86.org</email>)
<date> 19th July 1999
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml,v 3.29 1999/08/28 11:18:16 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml,v 3.30 2000/03/05 16:59:11 dawes Exp $
</ident>
<!-- Table of contents -->
@@ -860,8 +860,8 @@ video processor beyond it capabilities won't cause damage.
If you are having driver-related problems that are not addressed by this
document, or if you have found bugs in accelerated functions, you can
try contacting the XFree86 team (the current driver maintainer can be
- reached at <it>dbateman@eng.uts.edu.au</it> or
- <it>Egbert.Eich@Physik.TH-Darmstadt.DE)</it>,
+ reached at <email>dbateman@club-internet.fr</email> or
+ <email>eich@xfree86.org</email>),
or post in the Usenet newsgroup "<it>comp.windows.x.i386unix</it>".
<sect> Disclaimer <p>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml
index 4da998ea0..a0861c91a 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml
@@ -1,14 +1,19 @@
-<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
<article>
<title>Information for Cyrix Chipset Users
<author>The XFree86 Project Inc.
-<date>22 June 1999
+<date>7 March 2000
+<ident>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml,v 1.3 2000/03/08 05:38:43 dawes Exp $
+</ident>
<toc>
<sect>Supported hardware <p>
-This driver (as used in the SVGA (VGA256), VGA16 and VGA_Mono servers)
+This driver
supports a single chipset `mediagx' that should work on the following Cyrix
CPUs with integrated graphics:
@@ -20,62 +25,38 @@ CPUs with integrated graphics:
<sect>Features <p>
<itemize>
-<item>accelerated
-<item>hardware cursor
-<item>support color depths 1, 4, 8 and 16
+<item>Rather sparse (color depth hardcoded to 8)
</itemize>
<sect>XF86Config Option <p>
<descrip>
<tag>Option "sw_cursor"</tag>
-disable the hardware cursor.
+disable the hardware cursor. (Code not verified yet!)
<tag>Option "no_accel"</tag>
completely disables acceleration. Usually not recommended.
</descrip>
<sect>Bugs and Limitations<p>
<itemize>
+<item>As a first cut at the new design, known problems are everywhere.
+The console font is corrupted upon exit. The server seems stable if
+the virtual desktop and resolution size match. I found 1024x768 usable
+and that's why I released this version. Geeks can have fun with this
+but NEWBIES should use the 3.3.3.1 release instead!
<item>On some older chipsets, the driver may trigger an illegal instruction
just after probing for the ``scratchpad size''. If this is the case,
-email to hecker@cat.dfrc.nasa.gov with the output of
+email to <email>hecker@cat.dfrc.nasa.gov</email> with the output of
<verb>
-XF86_SVGA -probeonly -verbose
+XFree86 -probeonly -verbose
</verb>
and this will be fixed.
-<item>There are limitations to the modeline values that can be specified.
-Particularly, the difference between the first two horizontal
-timings (e.g. 640 656, 1024 1048) must be at least 16 and at most 24.
-The modeline values are not used in the 3.3.4 server since there is a
-static array used to load the registers. The modeline only identifies
-that a particular resolution is desired. The standard VESA modes up
-to 1280x768 are supported. For more specific information, consult
-the source code.
-<item>The 4 colour server is slow due to the VGA banking mode used.
-Moreover,
-it does not work the way it is run by XF86Setup, which is probably
-due to the timing limitations.
-<item>The 3.3.4 server MAY totally hang the machine at times. It is
-reported to be stable on a BSD platform using twm. It has crashed
-when using resolutions greater than 800x600 on a Linux (Debian
-based) system using wm as the window manager. The safest course is
-to use the 3.3.3.1 server instead. Efforts are under way to resolve
-this issue and provide a more robust server under the 4.x release.
-
</itemize>
<sect>Authors<p>
<itemize>
-<item>Annius Groenink <it>&lt;Annius.Groenink@cwi.nl&gt;</it>
-<item>Dirk Hohndel <it>&lt;hohndel@XFree86.org&gt;</it>
-<item>Brian Falardeau
-<item>Special thanks to Cyrix and Wyse for helping us with the development of
-this server. Brian, a Cyrix employee, made the 3.3.4 update possible since
-the new 4.0 server has been our top priority.
+<item>Richard Hecker <email>hecker@cat.dfrc.nasa.gov</email>
</itemize>
-<verb>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml,v 1.2 1999/08/23 06:18:33 dawes Exp $
-</verb>
</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent b/xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent
index 5f6b8135b..17c8c740f 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent
@@ -1,17 +1,25 @@
-<!-- $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent,v 1.7 2000/02/08 17:19:08 dawes Exp $ -->
+<!-- $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent,v 1.11 2000/03/08 18:04:15 dawes Exp $ -->
<!-- shared entity definitions for the XFree86 documentation -->
<!-- XFree86 version string -->
-<!ENTITY relvers CDATA "3.9.18">
-<!ENTITY prevrelvers CDATA "3.9.17">
-<!ENTITY srcvers CDATA "3918">
-<!ENTITY prevsrcvers CDATA "3917">
+<!ENTITY relvers CDATA "4.0">
+<!ENTITY prevrelvers CDATA "3.9.18">
+<!ENTITY srcvers CDATA "400">
+<!ENTITY prevsrcvers CDATA "3918">
<!-- Version of the most recent 3.3.x release -->
<!ENTITY legacyvers CDATA "3.3.6">
-<!-- Swap these for the next snapshot -->
+<!-- SuperProbe version strings -->
+<!ENTITY spvers CDATA "2.22">
+<!ENTITY legacyspvers CDATA "2.21">
+
+<!-- These should be set according to which snapshot/release this is -->
<!ENTITY % firstsnap 'IGNORE'>
<!ENTITY % latersnap 'INCLUDE'>
-
+<!ENTITY % snapshot 'IGNORE'>
+<!ENTITY % release 'INCLUDE'>
+<!ENTITY % firstrel 'INCLUDE'>
+<!ENTITY % earlyrel 'INCLUDE'>
+<!ENTITY % laterrel 'IGNORE'>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml
index 871dffd4c..119cd0838 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml
@@ -6,18 +6,17 @@
<title>Fonts in XFree86
<author>Juliusz Chroboczek, <tt/Juliusz.Chroboczek@ens.fr/
-<date>14 February 2000</date>
+<date>5 March 2000</date>
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.6 2000/02/14 19:20:44 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.7 2000/03/06 22:59:25 dawes Exp $
</ident>
<toc>
-<p>This version of XFree86 includes a number of improvements to the
-handling of fonts, including
+<p>XFree86 contains a number of improvements related to fonts, including
<itemize>
-<item> new Unicode-encoded bitmap fonts;
+<item> inclusion of new fonts;
<item> internationalisation of the scalable font backends (Type 1, Speedo,
and TrueType);
<item> support for TrueType fonts;
@@ -113,14 +112,16 @@ When used in X11, Unicode-encoded fonts should have the last two
fields of their XLFD set to `<tt/iso10646-1/'.
-<sect>Unicode-encoded bitmap fonts
+<sect>New fonts
+
+<sect1>Bitmap fonts
<p>XFree86 includes two new Unicode-encoded fonts with a large
collection of non-ideographic glyphs. While it is possible to use
these fonts as main fonts, applications may also use them as fallbacks
when a given glyph is not available in the current font.
-<sect1>The Unicode `fixed' font
+<sect2>The Unicode `fixed' font
<p>The font file
<tscreen>
@@ -151,7 +152,7 @@ with XLFD
The standard aliases `<tt/fixed/' and `<tt/6x13/' still point at the
ISO&nbsp;8859-1 versions of the font.
-<sect1>The ClearlyU Unicode font
+<sect2>The ClearlyU Unicode font
<p>The ClearlyU font set of fonts provides a set of 12pt, 100dpi
proportional fonts with many of the glyphs needed for Unicode text.
@@ -173,6 +174,47 @@ Additional ClearlyU fonts include
<p>-mutt-ClearlyU&nbsp;PUA-medium-r-normal--17-120-100-100-p-111-iso10646-1
</tscreen>
+<sect1>Scalable fonts
+
+<p>XFree86 includes the ``Lucidux'' family of Type&nbsp;1 fonts. This
+family consists of the fonts ``Lucidux Serif'', with XLFD
+<tscreen>
+-b&amp;h-lucidux serif-medium-*-normal--*-*-*-*-p-*-*-*
+</tscreen>
+``Lucidux Sans'', with XLFD
+<tscreen>
+-b&amp;h-lucidux sans-medium-*-normal--*-*-*-*-p-*-*-*
+</tscreen>
+and ``Lucidux Mono'', with XLFD
+<tscreen>
+-b&amp;h-lucidux mono-medium-*-normal--*-*-*-*-m-*-*-*
+</tscreen>
+Each of these fonts currently comes in Roman and oblique variants
+(bold variants will be included in a future release) and has 337
+glyphs covering the basic ``ASCII'' glyph set, the Latin&nbsp;1 glyph
+set, as well as the ``Extended Latin'' glyph set. In particular,
+these fonts include all the glyphs needed for ISO&nbsp;8859 parts 1,
+2, 3, 4, 9 and 15.
+
+The Lucidux fonts are original designs by Charles Bigelow and Kris
+Holmes. Lucidux fonts include seriffed, sans-serif, and monospaced
+styles which share the same stem weight, x-height, capital height,
+ascent and descent. Lucidux fonts harmonise with Lucida (R) fonts of
+the same vertical proportions and weights. The character width
+metrics of Lucidux roman fonts match those of core fonts bundled with
+several window systems.
+
+Each PFA file has a copy of the license terms in PS comment lines.
+The license terms are also included in the file <tt/COPYRIGHT.BH/ for
+convenience, and in the <htmlurl name="License document" url="LICENSE.html">.
+
+The design and font outlines were donated by Charles Bigelow and
+Kris Holmes from Bigelow and Holmes Inc., and the hinting was donated
+by Berthold Horn and Blenda Horn from Y&amp;Y, Inc. For more information,
+please contact <email/design@bigelowandholmes.com/ or
+<email/sales@yandy.com/, or consult <url name="Y&amp;Y's web site"
+url="http://www.yandy.com">.
+
<sect>Internationalisation of scalable font backends.
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml
index 8bb8fe369..3c978ae80 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml
@@ -1,25 +1,30 @@
-<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
<article>
<title>Information for i740 Users
<author>Precision Insight, Inc.
<date>18 February 1999
+<ident>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml,v 1.3 2000/03/04 00:26:30 dawes Exp $
+</ident>
<toc>
<sect>Supported Hardware
<p>
<itemize>
- <item>Intel 740 based cards
+ <item>Intel 740 based cards.
</itemize>
<sect>Features
<p>
<itemize>
- <item>Full support for 8, 15, 16, 24 and 32 bit per pixel depths.
+ <item>Full support for 8, 15, 16, and 24 bit pixel depths.
<item>Hardware cursor support to reduce sprite flicker.
<item>Hardware accelerated 2D drawing engine support for 8, 15, 16 and
- 24 bit per pixel depths.
+ 24 bit pixel depths.
<item>Support for high resolution video modes up to 1600x1200.
<item>Support for doublescan video modes (e.g., 320x200 and 320x240).
<item>Support for gamma correction at all pixel depths.
@@ -31,7 +36,8 @@
<sect>Technical Notes
<p>
<itemize>
- <item>Hardware acceleration is not possible in 32 bit per pixel depth.
+ <item>Hardware acceleration is not possible when using the framebuffer
+ in 32 bit per pixel format.
<item>Interlace modes cannot be supported.
</itemize>
@@ -87,10 +93,11 @@ initialize the card. The only lines you need in the "Device"
section of your XF86Config file are:
<verb>
Section "Device"
- Identifier "i740"
+ Identifier "Intel i740"
+ Driver "i740"
EndSection
</verb>
-or let xf86config or XF86Setup do this for you.
+or let <tt>xf86config</tt> do this for you.
However, if you have problems with auto-detection, you can specify:
<itemize>
@@ -104,11 +111,13 @@ However, if you have problems with auto-detection, you can specify:
<sect>Driver Options
<p>
<itemize>
- <item>"hw_cursor" - request hardware cursor (default)
- <item>"sw_cursor" - software cursor only
- <item>"no_accel" - software rendering only
- <item>"sgram" - force the use of SGRAM timing info
- <item>"sdram" - force the use of SDRAM timing info
+ <item>"NoAccel" - Turn off hardware acceleration
+ <item>"SWCursor" - Request a software cursor (hardware is default)
+ <item>"SDRAM" - Force the use of SDRAM timings
+ <item>"SGRAM" - Force the use of SGRAM timings
+ <item>"SlowRam" - Force the use of slower ram timings
+ <item>"Dac6Bit" - Force the use of a 6 Bit Dac (8 Bit is the default)
+ <item>"UsePIO - Force the use of programmed IO (Memory mapped is the default)
</itemize>
Note: the i740 X server should automatically detect whether your
@@ -119,15 +128,17 @@ if it is incorrectly detected.
<sect>Known Limitations
<p>
<itemize>
- <item>Certain drawing operations are very slow when using 24 bit per
- pixel depth mode. We hope to fix this in a future release.
+ <item>Certain drawing operations are very slow when using 24 bit
+ pixel depth mode.
</itemize>
<sect>Author
<p>
<itemize>
- <item>Kevin E. Martin <it>&lt;kevin@precisioninsight.com&gt;</it>
+ <item>Original version by Kevin E Martin
+ <email>kevin@precisioninsight.com</email>
+ <item>Daryll Strauss <email>daryll@precisioninsight.com</email>
</itemize>
This driver was donated to The XFree86 Project by:
@@ -140,8 +151,5 @@ This driver was donated to The XFree86 Project by:
<htmlurl name="http://www.precisioninsight.com"
url="http://www.precisioninsight.com">
-<verb>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml,v 1.2 1999/08/23 06:18:34 dawes Exp $
-</verb>
</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/i810.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/i810.sgml
new file mode 100644
index 000000000..ef8c09536
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/i810.sgml
@@ -0,0 +1,125 @@
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
+
+<article>
+<title>Information for i810 Users
+<author>Precision Insight, Inc.
+<date>3 March 2000
+<ident>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/i810.sgml,v 1.2 2000/03/04 00:00:30 dawes Exp $
+</ident>
+<toc>
+
+<sect>Supported Hardware
+<p>
+<itemize>
+ <item>Intel 810 motherboards:
+ <itemize>
+ <item>i810,
+ <item>i810-dc100,
+ <item>i810e
+ </itemize>
+</itemize>
+
+
+<sect>Features
+<p>
+<itemize>
+ <item>Full support for 8, 15, 16, and 24 bit pixel depths.
+ <item>Hardware cursor support to reduce sprite flicker.
+ <item>Hardware accelerated 2D drawing engine support for 8, 15, 16 and
+ 24 bit pixel depths.
+ <item>Support for high resolution video modes up to 1600x1200.
+ <item>Fully programmable clock supported.
+ <item>Robust text mode restore for VT switching.
+</itemize>
+
+
+<sect>Technical Notes
+<p>
+<itemize>
+ <item>Hardware acceleration is not possible when using the framebuffer
+ in 32 bit per pixel format, and this mode is not supported by
+ this driver.
+ <item>Interlace modes cannot be supported.
+ <item>This driver currently only works for Linux/ix86, and normal use
+ requires the agpgart.o kernel module, included in Linux kernels
+ 2.3.42 and higher.
+</itemize>
+
+
+<sect>Reported Working Video Cards
+<p>
+<itemize>
+ <item>Intel evaluation hardware - i810, i810-dc100 and i810e.
+ <item>Tyan Tomcat Motherboard.
+ <item>HappyPC set-top box.
+</itemize>
+
+
+<sect>Configuration
+<p>
+The driver auto-detects all device information necessary to
+initialize the card. The only lines you need in the "Device"
+section of your XF86Config file are:
+<verb>
+ Section "Device"
+ Identifier "Intel i810"
+ Driver "i810"
+ EndSection
+</verb>
+or let <tt>xf86config</tt> do this for you.
+
+However, if you have problems with auto-detection, you can specify:
+<itemize>
+ <item>DacSpeed - in MHz
+ <item>MemBase - physical address of the linear framebuffer
+ <item>IOBase - physical address of the memory mapped IO registers
+</itemize>
+
+In order to use most resolutions, it is necessary to install the
+'agpgart.o' module. You will probably have to compile the module yourself
+(see the notes in the module).
+
+Note: the i810 driver detects whether your motherboard has display cache
+video memory. This memory is has reduced bandwidth compared to normal
+system memory, and isn't used by the server. The main function of this
+memory is for ancillary buffers (eg. z buffer) in a forthcoming 3d
+capable server.
+
+
+<sect>Driver Options
+<p>
+<itemize>
+ <item>"NoAccel" - Turn off hardware acceleration
+ <item>"SWCursor" - Request a software cursor (hardware is default)
+ <item>"Dac6Bit" - Force the use of a 6 Bit Dac (8 Bit is the default)
+</itemize>
+
+<sect>Known Limitations
+<p>
+<itemize>
+ <item>No 3D support in this release.
+ <item>Running two X servers on different VTs is not supported at this time.
+</itemize>
+
+
+<sect>Author
+<p>
+<itemize>
+ <item>Keith Whitwell
+</itemize>
+
+This driver was donated to The XFree86 Project by:
+<verb>
+ Precision Insight, Inc.
+ Cedar Park, TX
+ USA
+</verb>
+
+<htmlurl name="http://www.precisioninsight.com"
+ url="http://www.precisioninsight.com">
+
+
+</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre b/xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre
index b798df3c1..2330554b5 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre
@@ -7,10 +7,10 @@
<!-- Title information -->
<title>Documentation for XFree86&trade; version &relvers;
<author>The XFree86 Project, Inc
-<date>31 August 1999
+<date>8 March 2000
<!--
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre,v 1.3 1999/08/31 08:39:09 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre,v 1.6 2000/03/08 05:38:44 dawes Exp $
-->
<p>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml
index 8eaadcd72..3f9d6aaa1 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml
@@ -7,10 +7,10 @@
<!-- made up title -->
<title> Information for ISC Users
<author> Michael Rohleder
-<date> 06 March 1999
+<date> 05 March 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml,v 3.22 1999/08/28 10:43:33 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml,v 3.24 2000/03/06 22:59:25 dawes Exp $
</ident>
<toc>
@@ -35,6 +35,13 @@ consuming if you want to build X11-clients with X11R6. Best you mix X11R6
Server with X11R5 and X11R4 clients. And only compile clients who need the
new facilities provided in the X11R6 Libraries against them.
+<code>
+Please note:
+ XFree86 Version 4.0 will be the last version which is known
+ to compile on Interactive Unix.
+ I've only tested this version on Interactive Unix, Version 4.1mu.
+</code>
+
<sect> Things needed for compiling the sources<p>
<descrip>
@@ -336,33 +343,6 @@ I could only test these cards on Interactive UNIX
</itemize>
-<sect>XKeyboard Extension<p>
-
-<itemize>
-<item>Sample Setup &hellip; <p>
-Here is a sample XKeyboard Definition to include inside the Keyboard Section
-of your XF86Config File.
-<verb>
- Xkbkeycodes "xfree86"
-/* XkbSymbols "us(pc101)+de_nodead" */
-/* This has changed between 3.1.2E and 3.1.2F */
-/* it is now: */
- XkbSymbols "us(pc102)+de(nodeadkeys)"
- XkbTypes "default"
- XkbCompat "default"
- XkbGeometry "pc"
-</verb>
-
-or you could use this one with the new Options:
-<verb>
- XkbRules "xfree86"
- XkbModel "pc102"
- XkbLayout "de"
- XkbVariant "nodeadkeys"
-</verb>
-
-</itemize>
-
<sect> Multibuffer Extension <p>
This is an obsolete Extension. Anyway, if you want to include this Extension
@@ -372,72 +352,44 @@ Please note, this Extension should be disabled when building the Loader Server.
<sect> Default Definitions <p>
-These are default options defined inside isc.cf.
+These are default options defined inside isc.cf.
You can redefine them inside host.def.
+Here is a sample host.def (the one I use for XFree86 4.0):
+
<verb>
-/* Disable the use of /var/X11 */
-#ifndef HasVarDirectory
-#define HasVarDirectory NO
-#endif
-/* Use mmap Driver */
-#ifndef HasSVR3mmapDrv
-# define HasSVR3mmapDrv YES
-#endif
+/* Disable the use of /var/X11 and /etc/X11 */
+#define HasVarDirectory NO
+#define UseEtcX11 NO
/* Use inline Math from linux ;-) package inline-math-2.6.tar.gz */
/* should be available on your favorite linux ftp */
-#ifndef UseInlineMath
# define UseInlineMath YES
-#endif
/* Use cbrt from liboptm.a (Interactive icc Compiler) */
-#ifndef HasCbrt
# define HasCbrt YES
-#endif
/* Use GNUs MallocLibrary (and the Location for the Lib) */
-#ifndef UseGnuMalloc
# define UseGnuMalloc YES
-#endif
-
-/* Install Zlib Headers - used in lib/zlib/Imakefile */
-#ifndef OsNeedZlibHeaders
-# define OsNeedZlibHeaders YES
-#endif
/* Expand Manual Pages (needs S5L) */
-#ifndef ExpandManNames
# define ExpandManNames YES
-#endif
/* if you have groff or the TextProcessingWorkbench - don't preformat*/
-#ifndef FormattedManPages
# define FormattedManPages NO
-#endif
-
-#ifndef HasSgmlFmt /* HasLinuxDoc */
-# define HasSgmlFmt YES
-#endif
/* XF86Setup Util */
-#ifndef HasTk
-#define HasTk YES
-#define HasTcl YES
-#endif
-
-#ifndef HasPosixRegex /* Need extra/regex since 3.9Ns */
-#define HasPosixRegex NO
-#endif
+# define HasTk YES
+# define HasTcl YES
-#ifndef DoLoadableServer
-#define DoLoadableServer YES
-#endif
+/* use doctools */
+# define HasSgmlFmt YES
+# define BuildAllDocs YES
+# define BuildLinuxDocText NO
+# define BuildLinuxDocPS NO
-#ifndef CpuOption
-#define CpuOption -mpentium
-#endif
+#define GlxBuiltInMesa YES
</verb>
@@ -456,10 +408,6 @@ make install.man
</verb>
to install the compressed nroff versions of the manual pages into
/usr/X11R6/man. This directory will be generated if it doesn't exist.
-<verb>
-make install.linkkit
-</verb>
-to install the server binary LinkKit into /usr/X11R6/lib/Server.
<code>
You should tune the Kernel using the command-file
@@ -517,20 +465,6 @@ You could do this automatically with menu entry no. 5.
The new Xprint Server is configured to use lpr as its print helper
so you have to install and configure lpr to use Xprt.<p>
-<item>Keyboard:<p>
- You don't need any modmap-File to get your keyboard
- working with any iso-8859-1 Font. Simply enable
-
- <itemize>
- <item>LeftAlt Meta
-
- <item>RightAlt ModeShift
-
- <item>RightCtl Compose
- </itemize>
-
- in your XF86Config - Section "Keyboard"
-
<item>xpcterm: <p>
if you want to get the German 'Umlaut' inside your ISC X11R4 client
xpcterm when you are using the ega/vga font. Set up the
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml
index 1740204fa..4ff052d40 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml
@@ -8,7 +8,7 @@
<date>9 February 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml,v 1.9 2000/02/12 20:45:20 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml,v 1.11 2000/03/01 00:25:23 dawes Exp $
</ident>
<toc>
@@ -440,7 +440,7 @@ of those buttons into <tt>N</tt> too.
</verb>
<sect1>ZAxisMappping <p>
-This option maps the Z axis (wheel) motion to a pair of buttons or to
+This option maps the Z axis (wheel) motion to buttons or to
another axis.
<verb>
@@ -460,12 +460,25 @@ or <tt>N2</tt> actually exists in the mouse,
their actions won't be detected by the X server.
The last example is useful for the mouse with two wheels of which
-the second wheel is used to generate horizontal scroll action.
+the second wheel is used to generate horizontal scroll action,
+and the mouse which has a knob or a stick which can detect the horizontal
+force applied by the user.
The motion of the second wheel will be mapped to the buttons <tt>N3</tt>,
for the negative direction, and <tt>N4</tt>, for the positive direction.
If the buttons <tt>N3</tt> and <tt>N4</tt> actually exist in this mouse,
their actions won't be detected by the X server.
+NOTE #1: horizontal movement may not always be detected
+by the current version of the XFree86 X servers,
+because there appears to be no accepted standard as to how the horizontal
+direction is encoded in mouse data.
+
+NOTE #2: Some mice think left is the negative horizontal direction,
+others may think otherwise.
+Moreover, there are some mice whose two wheels are both mounted vertically,
+and the direction of the second vertical wheel does not match the
+first one's.
+
Currently this option can not be set in the <tt>XF86Setup</tt> program.
You need to edit the <tt>XF86Config</tt> file by hand to add this option.
@@ -933,7 +946,7 @@ This can be done by the following command:
xmodmap -e "pointer = 1 6 3 2 4 5"
</verb>
-After this command is run, the correspondance between the buttons and
+After this command is run, the correspondence between the buttons and
button numbers will be as shown in the following table.
<verb>
@@ -964,7 +977,7 @@ EndSection
The IntelliMouse Explorer has 5 buttons, thus, you should give "7"
to the <tt>Buttons</tt> option if you want to map the wheel movement
to buttons (6 and 7).
-With this configuration, the correspondance between the buttons and
+With this configuration, the correspondence between the buttons and
button numbers will be as follows:
<verb>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml
index 94f3997bf..18fdb4a5e 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml
@@ -8,11 +8,8 @@
<date>12 November 1999
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml,v 1.4 2000/01/24 19:38:30 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml,v 1.7 2000/03/08 15:14:48 dawes Exp $
</ident>
-<!--
-$PI: xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml,v 1.2 1999/10/21 20:51:15 faith Exp $
--->
<toc>
@@ -27,7 +24,7 @@ $PI: xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml,v 1.2 1999/10/21 20:51:15
<p>
<itemize>
<item>Full support (including hardware accelerated 2D drawing) for 8, 15,
- 16, 24, and 32 bit per pixel depths.
+ 16, 24 bit pixel depths.
<item>Hardware cursor support to reduce sprite flicker.
<item>Support for high resolution video modes up to 1800x1440 @ 70Hz.
<item>Support for doublescan video modes (e.g., 320x200 and 320x240).
@@ -60,11 +57,11 @@ initialize the card. The only lines you need in the "Device"
section of your XF86Config file are:
<verb>
Section "Device"
- Identifier "Rage 128"
- Driver "r128"
+ Identifier "Rage 128"
+ Driver "r128"
EndSection
</verb>
-or let xf86config or XF86Setup do this for you.
+or let <tt>xf86config</tt> do this for you.
However, if you have problems with auto-detection, you can specify:
<itemize>
@@ -89,19 +86,19 @@ However, if you have problems with auto-detection, you can specify:
<sect>Known Limitations
<p>
<itemize>
- <item>None
+ <item>DGA is not supported yet
</itemize>
<sect>Authors
<p>
-The XFree86 3.9 driver was ported from XFree86 3.3 and enhanced by:
+The XFree86 4 driver was ported from XFree86 3.3.x and enhanced by:
<itemize>
<item>Rickard E. (Rik) Faith <email>faith@precisioninsight.com</email>
<item>Kevin E. Martin <email>kevin@precisioninsight.com</email>
</itemize>
<p>
-The XFree86 3.9 driver was funded by ATI and was donated to The XFree86
+The XFree86 4 driver was funded by ATI and was donated to The XFree86
Project by:
<verb>
Precision Insight, Inc.
@@ -109,12 +106,12 @@ Project by:
USA
</verb>
<p>
-The XFree86 3.3 driver used for the port was written by:
+The XFree86 3.3.x driver used for the port was written by:
<itemize>
<item>Rickard E. (Rik) Faith <email>faith@precisioninsight.com</email>
<item>Kevin E. Martin <email>kevin@precisioninsight.com</email>
</itemize>
-The XFree86 3.3 driver was funded by ATI and was donated to The XFree86
+The XFree86 3.3.x driver was funded by ATI and was donated to The XFree86
Project by Precision Insight, Inc. It was based in part on an earlier
driver that was written by:
<itemize>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml
index a7c9ba916..f8a923a1c 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml
@@ -8,14 +8,14 @@
<date>12 December 1999
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml,v 1.6 2000/01/24 19:38:30 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml,v 1.8 2000/03/01 23:54:34 dawes Exp $
</ident>
<toc>
<sect>Supported hardware <p>
All cards based on the V1000 or the V2x00 should be supported. The server
-was tested on a miroCRYSTAL VRX (V1000), Intergraph Intense-100 3D (V1000), Diamond Stealth II S220 (V2100), Hercules Thriller3D (V2200) and Innovision Warrior3D (V2200).
+was tested on a miroCRYSTAL VRX (V1000), Intergraph Intense-100 3D (V1000), Diamond Stealth II S220 (V2100), Hercules Thriller3D (V2200), Innovision Warrior3D (V2200) and Genoa V-Raptor (v2200).
<sect>Limitations <p>
V1000 cards can only work as primary display card due to hardware limitations. <p>
@@ -56,6 +56,20 @@ Set custom ramdac limit. We have currently no way of knowing if the v2x00 chip i
If writecombine is disabled in BIOS, and you add this option in in configuration file, then the driver will try to request writecombined access to the framebuffer. This can drastically increase the performance on unaccelerated server. Requires that "MTRR"-support is compiled into the OS-kernel.
<tag>Option "NoDDC"</tag>
Disable probing of DDC-information from your monitor. This information is not used yet and is only there for informational purposes. This might change before final XFree86 4.0 release. Safe to disable if you experience problems during startup of X-server.
+<tag>Option "ShadowFB"</tag>
+If this option is enabled, the driver will cause the CPU to do each drawing
+operation first into a shadow frame buffer in system virtual memory and then
+copy the result into video memory.
+If this option is not active, the CPU will draw directly into video memory.
+Enabling this option is beneficial for those systems where reading from video
+memory is, on average, slower than the corresponding read/modify/write
+operation in system virtual memory.
+This is normally the case for PCI or AGP adapters, and, so, this option is
+enabled by default unless acceleration is enabled.
+<tag>Option "Rotate"</tag>
+The option expect a value "CW" for clockwise or "CCW" for counterclockwise rotation of the screen. This is useful when you need more height then width on the screen. Desktop publishing is one example where a monitor could display the whole page at once on a monitor laying on the side.
+Notice that this option requires "ShadowFB" and automatically enable it. It also disables the acceleration.
+The option is not activated by default.
</descrip>
<sect>News in this release <p>
@@ -63,11 +77,17 @@ Disable probing of DDC-information from your monitor. This information is not us
<item>Acceleration! Disabled for the moment.
</itemize>
-<sect>Major fixes in this release <p>
+<sect>Major changes in this release <p>
<itemize>
+<item>ShadowFB support added
<item>To be determined before final release.
</itemize>
+<sect>Bugfixes<p>
+<itemize>
+<item>8bpp finally works correctly again
+</itemize>
+
<sect>Known problems in current driver<p>
<itemize>
<item>The acceleration code hangs the computer during X-server startup.
diff --git a/xc/programs/Xserver/hw/xfree86/doc/xinput b/xc/programs/Xserver/hw/xfree86/doc/xinput
index e2e9aa3df..ba4432a20 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/xinput
+++ b/xc/programs/Xserver/hw/xfree86/doc/xinput
@@ -239,4 +239,4 @@ Consult the man pages for details.
$XConsortium: xinput.sgml /main/3 1996/10/27 11:06:13 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/xinput,v 3.10 2000/02/21 22:44:47 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/xinput,v 3.11 2000/03/01 01:48:32 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/Imakefile
index 667283b06..8bf4ef3cb 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/Imakefile,v 1.14 1999/11/19 13:54:29 hohndel Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/Imakefile,v 1.15 2000/03/08 04:05:04 robin Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -15,7 +15,7 @@ OBJS = al2101/?*.o mx/?*.o oak/?*.o realtek/?*.o sis/?*.o trident/?*.o \
cirrus/?*.o cl64xx/?*.o compaq/?*.o et3000/?*.o glint/?*.o \
gvga/?*.o hercules/?*.o hgc1280/?*.o mga/?*.o ncr/?*.o \
nv/?*.o s3_pio/?*.o s3_newmmio/?*.o sigma/?*.o tseng/?*.o \
- vga/?*.o video7/?*.o wd/?*.o i740/?*.o r128/?.o
+ vga/?*.o video7/?*.o wd/?*.o i740/?*.o r128/?*.o
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile
index 346657691..088c2ba5b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile,v 1.16 2000/02/12 02:54:40 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile,v 1.17 2000/03/03 01:05:33 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -38,6 +38,11 @@ ObjectModuleTarget(apm,$(OBJS))
InstallObjectModule(apm,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(apm,)
+InstallModuleManPage(apm)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/apm)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.cpp b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.cpp
new file mode 100644
index 000000000..ee527418f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm.cpp,v 1.1 2000/03/03 01:05:33 dawes Exp $
+.TH APM __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+apm \- Alliance ProMotion video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""apm"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B apm
+is an XFree86 driver for Alliance ProMotion video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B apm
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h
index 1a38635fa..00801bc6f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h,v 1.12 2000/02/14 19:20:45 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h,v 1.13 2000/02/29 03:09:17 dawes Exp $ */
/* Everything using inb/outb, etc needs "compiler.h" */
@@ -121,7 +121,7 @@ typedef struct {
int xbase;
unsigned char savedSR10;
CARD8 MiscOut;
- CARD8 c9, d9, db;
+ CARD8 c9, d9, db, Rush;
unsigned long saveCmd;
pointer FontInfo;
Bool hwCursor;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c
index a66780ee3..6f5415c77 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c,v 1.33 2000/02/21 19:22:56 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c,v 1.38 2000/03/08 19:25:09 dawes Exp $ */
#include "apm.h"
@@ -375,8 +375,6 @@ ApmProbe(DriverPtr drv, int flags)
EntityInfoPtr pEnt;
int foundScreen = FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
/*
* Check if there is a chipset override in the config file
*/
@@ -397,12 +395,10 @@ ApmProbe(DriverPtr drv, int flags)
ApmChipsets, ApmPciChipsets, DevSections, numDevSections,
drv, &usedChips);
- if ((numUsed > 0) && (flags & PROBE_DETECTPCI))
- return TRUE;
- if ((numUsed <= 0) && (flags & PROBE_DETECTPCI))
- return FALSE;
if (numUsed > 0) {
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
pEnt = xf86GetEntityInfo(usedChips[i]);
if (pEnt && pEnt->active) {
@@ -430,9 +426,9 @@ ApmProbe(DriverPtr drv, int flags)
ApmIsaChipsets, drv, ApmFindIsaDevice, DevSections,
numDevSections, &usedChips);
if (numUsed > 0) {
- if (flags & PROBE_DETECTISA)
- return TRUE;
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
/*
@@ -444,9 +440,10 @@ ApmProbe(DriverPtr drv, int flags)
NULL, NULL, NULL, NULL, NULL);
}
}
+#if 0 /* This causes problems with -configure? */
if (DevSections)
xfree(DevSections);
- DevSections = NULL;
+#endif
return foundScreen;
}
@@ -495,6 +492,8 @@ ApmPreInit(ScrnInfoPtr pScrn, int flags)
xf86MonPtr MonInfo = NULL;
double real;
+ if (flags & PROBE_DETECT) return FALSE;
+
/*
* Note: This function is only called once at server startup, and
* not at the start of each server generation. This means that
@@ -2053,7 +2052,7 @@ ApmEnterVT(int scrnIndex, int flags)
if (pApm->Chipset >= AT3D) {
if (!pApm->noLinear) {
/* If you change it, change it also in apm_funcs.c */
- WRXB(0xDB, (pApm->db & 0xF4) | 0x0A);
+ WRXB(0xDB, (pApm->db & 0xF4) | 0x0A | pApm->Rush);
WRXB(0xD9, (pApm->d9 & 0xCF) | 0x20);
}
else {
@@ -2068,9 +2067,10 @@ ApmEnterVT(int scrnIndex, int flags)
* Set color mode
*/
hwp->writeMiscOut(hwp, pApm->MiscOut | 0x0F);
- /* Should we re-save the text mode on each VT enter? */
+
if (!ApmModeInit(pScrn, pScrn->currentMode))
return FALSE;
+ ApmAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
return TRUE;
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h
index df148614d..5f2699384 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h,v 1.6 2000/02/14 19:20:47 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h,v 1.7 2000/02/29 03:09:18 dawes Exp $ */
@@ -214,3 +214,6 @@
#define DEC_QUICKSTART_NONE (0 << 29)
#define DEC_START (1 << 31)
#define DEC_START_NO (0 << 31)
+
+#define AT3D_SST_STATUS 0x1F4
+#define SST_BUSY 1
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c
index 6910c8f20..109fc40a5 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c,v 1.6 2000/02/14 19:20:47 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c,v 1.8 2000/02/29 17:32:54 tsi Exp $ */
/*
* Copyright Loïc Grenié 1999
*/
@@ -6,6 +6,8 @@
#include "apm.h"
#include "xaalocal.h"
+extern DriverRec APM;
+
static Bool RushDestroyPixmap(PixmapPtr);
static __inline__ void __xf86UnlockPixmap(ApmPtr, PixmapLinkPtr);
static int xf86RushLockPixmap(int, PixmapPtr);
@@ -43,7 +45,7 @@ xf86RushLockPixmap(int scrnIndex, PixmapPtr pix)
FBAreaPtr area = pXAAPriv->offscreenArea;
int p2, width = (pScrn->displayWidth * pScrn->bitsPerPixel) / 8;
- if (strcmp(pScrn->chipset, "AT3D"))
+ if (pScrn->drv != &APM || pApm->Chipset != AT3D)
return 0;
pApm->apmLock = TRUE;
pApmPriv->num = 0;
@@ -235,7 +237,8 @@ __xf86UnlockPixmap(ApmPtr pApm, PixmapLinkPtr pLink)
area->RemoveAreaCallback = pApmPriv->RemoveAreaCallback;
area->devPrivate.ptr = pApmPriv->devPriv;
}
- if (i = pApmPriv->num) {
+ i = pApmPriv->num;
+ if (i) {
pApm->RushY[i - 1] = 0;
pix->drawable.y %= pApm->CurrentLayout.Scanlines;
}
@@ -247,7 +250,7 @@ xf86RushUnlockPixmap(int scrnIndex, PixmapPtr pix)
APMDECL(xf86Screens[scrnIndex]);
PixmapLinkPtr pLink = GET_XAAINFORECPTR_FROM_SCREEN(xf86Screens[scrnIndex]->pScreen)->OffscreenPixmaps;
- if (pApm->Chipset != AT3D)
+ if (xf86Screens[scrnIndex]->drv != &APM || pApm->Chipset != AT3D)
return;
if (pApm->apmLock) {
/*
@@ -255,12 +258,18 @@ xf86RushUnlockPixmap(int scrnIndex, PixmapPtr pix)
* registers.
*/
if (!pApm->noLinear) {
- WRXB(0xDB, (RDXB(0xDB) & 0xF4) | 0x0A);
+ CARD8 db;
+
+ db = RDXB(0xDB);
+ WRXB(0xDB, (db & 0xF4) | 0x0A);
ApmWriteSeq(0x1B, 0x20);
ApmWriteSeq(0x1C, 0x2F);
}
else {
- WRXB_IOP(0xDB, (RDXB_IOP(0xDB) & 0xF4) | 0x0A);
+ CARD8 db;
+
+ db = RDXB_IOP(0xDB);
+ WRXB_IOP(0xDB, (db & 0xF4) | 0x0A);
wrinx(0x3C4, 0x1B, 0x20);
wrinx(0x3C4, 0x1C, 0x2F);
}
@@ -278,12 +287,14 @@ xf86RushUnlockAllPixmaps()
int scrnIndex;
for (scrnIndex = 0; scrnIndex < screenInfo.numScreens; scrnIndex++) {
- PixmapLinkPtr pLink = GET_XAAINFORECPTR_FROM_SCREEN(xf86Screens[scrnIndex]->pScreen)->OffscreenPixmaps;
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ APMDECL(pScrn);
+ PixmapLinkPtr pLink = GET_XAAINFORECPTR_FROM_SCREEN(pScrn->pScreen)->OffscreenPixmaps;
- if (APMPTR(xf86Screens[scrnIndex])->Chipset != AT3D)
+ if (pScrn->drv != &APM || pApm->Chipset != AT3D)
continue;
while(pLink) {
- __xf86UnlockPixmap(APMPTR(xf86Screens[scrnIndex]), pLink);
+ __xf86UnlockPixmap(pApm, pLink);
pLink = pLink->next;
}
}
@@ -317,6 +328,9 @@ static DISPATCH_PROC(ProcXF86RushUnlockAllPixmaps);
static DISPATCH_PROC(ProcXF86RushSetCopyMode);
static DISPATCH_PROC(ProcXF86RushSetPixelStride);
static DISPATCH_PROC(ProcXF86RushOverlayPixmap);
+static DISPATCH_PROC(ProcXF86RushStatusRegOffset);
+static DISPATCH_PROC(ProcXF86RushAT3DEnableRegs);
+static DISPATCH_PROC(ProcXF86RushAT3DDisableRegs);
static int rush_ext_generation = -1;
@@ -334,7 +348,8 @@ XFree86RushExtensionInit(ScreenPtr pScreen)
return;
#endif
if (rush_ext_generation == serverGeneration) {
- if (APMPTR(xf86Screens[pScreen->myNum])-> Chipset == AT3D) {
+ if (xf86Screens[pScreen->myNum]->drv == &APM &&
+ APMPTR(xf86Screens[pScreen->myNum])->Chipset == AT3D) {
pScreen->CreatePixmap = RushCreatePixmap;
pScreen->DestroyPixmap = RushDestroyPixmap;
}
@@ -350,7 +365,8 @@ XFree86RushExtensionInit(ScreenPtr pScreen)
StandardMinorOpcode))) {
RushReqCode = (unsigned char)extEntry->base;
RushErrorBase = extEntry->errorBase;
- if (APMPTR(xf86Screens[pScreen->myNum])-> Chipset == AT3D) {
+ if (xf86Screens[pScreen->myNum]->drv == &APM &&
+ APMPTR(xf86Screens[pScreen->myNum])->Chipset == AT3D) {
pScreen->CreatePixmap = RushCreatePixmap;
pScreen->DestroyPixmap = RushDestroyPixmap;
}
@@ -383,7 +399,7 @@ ProcXF86RushQueryVersion(register ClientPtr client)
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
}
- WriteToClient(client, sizeof(xXF86RushQueryVersionReply), (char *)&rep);
+ WriteToClient(client, sz_xXF86RushQueryVersionReply, (char *)&rep);
return (client->noClientException);
}
@@ -480,6 +496,12 @@ ProcXF86RushDispatch (register ClientPtr client)
return ProcXF86RushSetPixelStride(client);
case X_XF86RushOverlayPixmap:
return ProcXF86RushOverlayPixmap(client);
+ case X_XF86RushStatusRegOffset:
+ return ProcXF86RushStatusRegOffset(client);
+ case X_XF86RushAT3DEnableRegs:
+ return ProcXF86RushAT3DEnableRegs(client);
+ case X_XF86RushAT3DDisableRegs:
+ return ProcXF86RushAT3DDisableRegs(client);
default:
return BadRequest;
}
@@ -516,7 +538,8 @@ ProcXF86RushOverlayPixmap(ClientPtr client)
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
pScrn = xf86Screens[pDraw->pScreen->myNum];
- if (strcmp(pScrn->chipset, "AT3D"))
+ pApm = APMPTR(pScrn);
+ if (pScrn->drv != &APM || pApm->Chipset != AT3D)
return (_XvBadPort);
if(!(pPort = LOOKUP_PORT(stuff->port, client) )) {
@@ -584,3 +607,118 @@ ProcXF86RushOverlayPixmap(ClientPtr client)
return status;
}
+
+static int
+ProcXF86RushStatusRegOffset(ClientPtr client)
+{
+ int scrnIndex;
+ ScrnInfoPtr pScrn;
+ ApmPtr pApm;
+ REQUEST(xXF86RushStatusRegOffsetReq);
+ xXF86RushStatusRegOffsetReply rep;
+ register int n;
+
+ REQUEST_SIZE_MATCH(xXF86RushStatusRegOffsetReq);
+ scrnIndex = stuff->screen;
+ if (scrnIndex < 0 || scrnIndex > screenInfo.numScreens)
+ return BadValue;
+ pScrn = xf86Screens[scrnIndex];
+ pApm = APMPTR(pScrn);
+ if (pScrn->drv != &APM || pApm->Chipset != AT3D)
+ return BadMatch;
+ rep.type = X_Reply;
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
+ rep.offset = 0xFFEDF4;
+ if (client->swapped) {
+ swapl(&rep.offset, n);
+ }
+ WriteToClient(client, sz_xXF86RushStatusRegOffsetReply, (char *)&rep);
+
+ return client->noClientException;
+}
+
+static int
+ProcXF86RushAT3DEnableRegs(ClientPtr client)
+{
+ u32 db, tmp;
+ int scrnIndex;
+ ScrnInfoPtr pScrn;
+ ApmPtr pApm;
+ REQUEST(xXF86RushAT3DEnableRegsReq);
+
+ REQUEST_SIZE_MATCH(xXF86RushAT3DEnableRegsReq);
+ scrnIndex = stuff->screen;
+ if (scrnIndex < 0 || scrnIndex > screenInfo.numScreens)
+ return BadValue;
+ pScrn = xf86Screens[scrnIndex];
+ pApm = APMPTR(pScrn);
+ if (pScrn->drv != &APM || pApm->Chipset != AT3D)
+ return BadMatch;
+ pApm->Rush = 0x04;
+ if (!pApm->noLinear) {
+ db = RDXL(0xDB);
+ WRXL(0xDB, db | 0x04);
+ WRXB(0x110, 0x03);
+ tmp = RDXB(0x1F0);
+ WRXB(0x1F0, tmp | 0xD0);
+ tmp = RDXB(0x1F1);
+ WRXB(0x1F1, (tmp & ~0xC0) | 0x10);
+ tmp = RDXB(0x1F2);
+ WRXB(0x1F2, tmp | 0x10);
+ }
+ else {
+ db = RDXL(0xDB);
+ WRXL_IOP(0xDB, db | 0x04);
+ WRXB_IOP(0x110, 0x03);
+ tmp = RDXB_IOP(0x1F0);
+ WRXB_IOP(0x1F0, tmp | 0xD0);
+ tmp = RDXB_IOP(0x1F1);
+ WRXB_IOP(0x1F1, (tmp & ~0xC0) | 0x10);
+ tmp = RDXB_IOP(0x1F2);
+ WRXB_IOP(0x1F2, tmp | 0x10);
+ }
+
+ return client->noClientException;
+}
+
+static int
+ProcXF86RushAT3DDisableRegs(ClientPtr client)
+{
+ u32 db, tmp;
+ int scrnIndex;
+ ScrnInfoPtr pScrn;
+ ApmPtr pApm;
+ REQUEST(xXF86RushAT3DDisableRegsReq);
+
+ REQUEST_SIZE_MATCH(xXF86RushAT3DDisableRegsReq);
+ scrnIndex = stuff->screen;
+ if (scrnIndex < 0 || scrnIndex > screenInfo.numScreens)
+ return BadValue;
+ pScrn = xf86Screens[scrnIndex];
+ pApm = APMPTR(pScrn);
+ if (pScrn->drv != &APM || pApm->Chipset != AT3D)
+ return BadMatch;
+ if (!pApm->noLinear) {
+ tmp = RDXB(0x1F2);
+ WRXB(0x1F2, tmp & ~0x10);
+ tmp = RDXB(0x1F0);
+ WRXB(0x1F0, tmp & ~0xD0);
+ WRXB(0x110, 0);
+ pApm->Rush = 0x00;
+ db = RDXL(0xDB);
+ WRXL(0xDB, db & ~0x04);
+ }
+ else {
+ tmp = RDXB_IOP(0x1F2);
+ WRXB_IOP(0x1F2, tmp & ~0x10);
+ tmp = RDXB_IOP(0x1F0);
+ WRXB_IOP(0x1F0, tmp & ~0xD0);
+ WRXB_IOP(0x110, 0);
+ pApm->Rush = 0x00;
+ db = RDXL_IOP(0xDB);
+ WRXL_IOP(0xDB, db & ~0x04);
+ }
+
+ return client->noClientException;
+}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c
index f4cced36c..10fbb0f1b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c,v 1.4 2000/02/14 19:20:47 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c,v 1.6 2000/02/29 03:09:18 dawes Exp $ */
#if PSZ != 24
#include "dixstruct.h"
@@ -49,7 +49,7 @@ void A(InitVideo)(ScreenPtr pScreen)
int num_adaptors;
Bool freeAdaptors = FALSE;
- num_adaptors = xf86XVListGenericAdaptors(&adaptors);
+ num_adaptors = xf86XVListGenericAdaptors(pScrn, &adaptors);
if (pApm->Chipset >= AT24) {
if ((newAdaptor = A(SetupImageVideo)(pScreen))) {
@@ -121,6 +121,7 @@ static XF86AttributeRec Attributes[NUM_ATTRIBUTES] =
};
#define NUM_IMAGES 8
+typedef char c8;
static XF86ImageRec Images[NUM_IMAGES] =
{
@@ -197,7 +198,7 @@ static XF86ImageRec Images[NUM_IMAGES] =
XvYUV,
LSBFirst,
{'Y','V','1','2',
- 0x00,0x00,0x00,0x10,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71},
+ 0x00,0x00,0x00,0x10,(c8)0x80,0x00,0x00,(c8)0xAA,0x00,0x38,(c8)0x9B,0x71},
12,
XvPlanar,
3,
@@ -214,7 +215,7 @@ static XF86ImageRec Images[NUM_IMAGES] =
XvYUV,
LSBFirst,
{'U','Y','V','Y',
- 0x00,0x00,0x00,0x10,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71},
+ 0x00,0x00,0x00,0x10,(c8)0x80,0x00,0x00,(c8)0xAA,0x00,0x38,(c8)0x9B,0x71},
16,
XvPlanar,
1,
@@ -231,7 +232,7 @@ static XF86ImageRec Images[NUM_IMAGES] =
XvYUV,
LSBFirst,
{'Y','V','Y','U',
- 0x00,0x00,0x00,0x10,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71},
+ 0x00,0x00,0x00,0x10,(c8)0x80,0x00,0x00,(c8)0xAA,0x00,0x38,(c8)0x9B,0x71},
16,
XvPlanar,
1,
@@ -248,7 +249,7 @@ static XF86ImageRec Images[NUM_IMAGES] =
XvYUV,
LSBFirst,
{'V','Y','U','Y',
- 0x00,0x00,0x00,0x10,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71},
+ 0x00,0x00,0x00,0x10,(c8)0x80,0x00,0x00,(c8)0xAA,0x00,0x38,(c8)0x9B,0x71},
16,
XvPlanar,
1,
@@ -857,32 +858,35 @@ A(PutImage)(ScrnInfoPtr pScrn, short src_x, short src_y,
break;
}
pPriv->Bps = pPriv->Bpp * pPriv->xden;
- offset = (area->box.y1 * pitch) + (top * dstPitch);
- dst_start = ((unsigned char *)pApm->FbBase) + (pPriv->data = offset + left);
- switch(id) {
- case 0x32315659:
- top &= ~1;
- tmp = ((top >> 1) * srcPitch2) + (left >> 2);
- offset2 += tmp;
- offset3 += tmp;
- nlines = ((((y2 + 0xffff) >> 16) + 1) & ~1) - top;
- ApmCopyMungedData(buf + (top * srcPitch) + (left >> 1),
- buf + offset2, buf + offset3, dst_start,
- srcPitch, srcPitch2, dstPitch, nlines, npixels);
- break;
- default:
- if (id == 0x32335652)
- npixels <<= 1;
- else if (id == 0x59595959)
- npixels >>= 1;
- buf += (top * srcPitch) + left;
- nlines = ((y2 + 0xffff) >> 16) - top;
- if (offscreen)
- ApmCopyData(buf, dst_start, srcPitch, dstPitch, nlines, npixels);
- else
- pPriv->data = buf - (unsigned char *)pApm->FbBase;
- break;
+ if (offscreen) {
+ offset = (area->box.y1 * pitch) + (top * dstPitch);
+ dst_start = ((unsigned char *)pApm->FbBase) +
+ (pPriv->data = offset + left);
+ switch(id) {
+ case 0x32315659:
+ top &= ~1;
+ tmp = ((top >> 1) * srcPitch2) + (left >> 2);
+ offset2 += tmp;
+ offset3 += tmp;
+ nlines = ((((y2 + 0xffff) >> 16) + 1) & ~1) - top;
+ ApmCopyMungedData(buf + (top * srcPitch) + (left >> 1),
+ buf + offset2, buf + offset3, dst_start,
+ srcPitch, srcPitch2, dstPitch, nlines, npixels);
+ break;
+ default:
+ if (id == 0x32335652)
+ npixels <<= 1;
+ else if (id == 0x59595959)
+ npixels >>= 1;
+ buf += (top * srcPitch) + left;
+ nlines = ((y2 + 0xffff) >> 16) - top;
+ if (offscreen)
+ ApmCopyData(buf, dst_start, srcPitch, dstPitch, nlines, npixels);
+ break;
+ }
}
+ else
+ pPriv->data = buf - (unsigned char *)pApm->FbBase;
pPriv->on = 1;
A(WaitForFifo)(pApm, 3);
WRXW(pPriv->reg + 0x02, dstPitch >> 2);
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile
index 862915c88..4c5b293aa 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile,v 1.12 2000/02/18 12:19:10 tsi Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile,v 1.13 2000/03/03 01:05:34 dawes Exp $
XCOMM
XCOMM Copyright 1997 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
XCOMM
@@ -66,10 +66,13 @@ ObjectModuleTarget(ati,$(OBJS))
InstallObjectModule(ati,$(MODULEDIR),drivers)
-#ifndef OS2Architecture
-DependTarget()
+#if !defined(XF86DriverSDK)
+CppManTarget(ati,)
+InstallModuleManPage(ati)
#endif
+DependTarget()
+
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/ati)
InstallDriverSDKNonExecFile(ati.c,$(DRIVERSDKDIR)/drivers/ati)
InstallDriverSDKNonExecFile(ati.h,$(DRIVERSDKDIR)/drivers/ati)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/ati.cpp b/xc/programs/Xserver/hw/xfree86/drivers/ati/ati.cpp
new file mode 100644
index 000000000..28ba4ed72
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/ati.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ati.cpp,v 1.1 2000/03/03 01:05:34 dawes Exp $
+.TH ATI __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+ati \- ATI video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""ati"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B ati
+is an XFree86 driver for ATI video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B ati
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h
index 22ba9e291..ec2240b74 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h,v 1.5 2000/02/18 12:19:23 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h,v 1.6 2000/03/01 16:00:57 tsi Exp $ */
/*
* Copyright 1997 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -117,12 +117,18 @@ extern void ATIAccessMach64PLLReg FunctionPrototype((ATIPtr, const CARD8,
{ \
while (inw(GP_STAT) & (GPBUSY | 1)); \
}
-#define ProbeWaitIdleEmpty() \
- { \
- int _i; \
- for (_i = 0; _i < 100000; _i++) \
- if (!(inw(GP_STAT) & (GPBUSY | 1))) \
- break; \
+#define ProbeWaitIdleEmpty() \
+ { \
+ int _i; \
+ CARD16 _value; \
+ for (_i = 0; _i < 100000; _i++) \
+ { \
+ _value = inw(GP_STAT); \
+ if (_value == (CARD16)(-1)) \
+ break; \
+ if (!(_value & (GPBUSY | 1))) \
+ break; \
+ } \
}
/* Wait until GP has data available */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c
index a75e5dc77..c69d77a21 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c,v 1.4 2000/02/18 12:19:24 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c,v 1.5 2000/03/07 16:13:34 tsi Exp $ */
/*
* Copyright 1999 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -113,13 +113,13 @@ ATIUnlock
outl(pATI->CPIO_GEN_TEST_CNTL, tmp | GEN_GUI_EN);
pATI->LockData.crtc_gen_cntl = inl(pATI->CPIO_CRTC_GEN_CNTL) &
~(CRTC_EN | CRTC_LOCK_REGS);
- tmp = pATI->LockData.crtc_gen_cntl & ~CRTC_EXT_DISP_EN;
+ tmp = pATI->LockData.crtc_gen_cntl & ~CRTC_EN;
if (pATI->Chip >= ATI_CHIP_264XL)
tmp = (tmp & ~CRTC_INT_ENS_X) | CRTC_INT_ACKS_X;
outl(pATI->CPIO_CRTC_GEN_CNTL, tmp | CRTC_EN);
outl(pATI->CPIO_CRTC_GEN_CNTL, tmp);
outl(pATI->CPIO_CRTC_GEN_CNTL, tmp | CRTC_EN);
- if (pATI->LCDPanelID >= 0)
+ if ((pATI->LCDPanelID >= 0) && (pATI->Chip != ATI_CHIP_264LT))
{
pATI->LockData.lcd_index = inl(pATI->CPIO_LCD_INDEX);
if (pATI->Chip >= ATI_CHIP_264XL)
@@ -476,7 +476,7 @@ ATILock
outl(pATI->CPIO_DAC_CNTL, pATI->LockData.dac_cntl);
if (pATI->Chip < ATI_CHIP_264CT)
outl(pATI->CPIO_MEM_INFO, pATI->LockData.mem_info);
- else if (pATI->LCDPanelID >= 0)
+ else if ((pATI->LCDPanelID >= 0) && (pATI->Chip != ATI_CHIP_264LT))
outl(pATI->CPIO_LCD_INDEX, pATI->LockData.lcd_index);
}
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c
index 39bc21762..4e8fdd07b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c,v 1.10 2000/02/18 12:19:25 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c,v 1.12 2000/03/03 04:47:13 tsi Exp $ */
/*
* Copyright 1997 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -350,7 +350,7 @@ ATIMach64Save
pATIHW->config_cntl = inl(pATI->CPIO_CONFIG_CNTL);
/* Save draw engine state */
- if ((pATI->OptionAccel) && (pATIHW == &pATI->OldHW))
+ if (pATI->OptionAccel && (pATIHW == &pATI->OldHW))
{
ATIMach64WaitForIdle();
@@ -634,6 +634,7 @@ ATIMach64Set
/* Load draw engine */
if (pATI->OptionAccel)
{
+ pATI->EngineIsBusy = TRUE; /* Force engine poll */
ATIMach64WaitForIdle();
/* Load FIFO size */
@@ -763,47 +764,95 @@ ATIMach64Sync
}
/*
- * ATIMach64SetClippingRectangle --
+ * ATIMach64SetupForScreenToScreenCopy --
*
- * This function sets the draw engine's clipping rectangle.
+ * This function sets up the draw engine for a series of screen-to-screen copy
+ * operations.
*/
static void
-ATIMach64SetClippingRectangle
+ATIMach64SetupForScreenToScreenCopy
(
- ScrnInfoPtr pScreenInfo,
- int left,
- int top,
- int right,
- int bottom
+ ScrnInfoPtr pScreenInfo,
+ int xdir,
+ int ydir,
+ int rop,
+ unsigned int planemask,
+ int TransparencyColour
)
{
ATIPtr pATI = ATIPTR(pScreenInfo);
- ATIMach64WaitForFIFO(2);
- outm(SC_LEFT_RIGHT, SetWord(((right + 1) * pATI->PitchModifier) - 1, 1) |
- SetWord(left * pATI->PitchModifier, 0));
- outm(SC_TOP_BOTTOM, SetWord(bottom, 1) | SetWord(top, 0));
+ pATI->dst_cntl = 0;
+
+ if (ydir > 0)
+ pATI->dst_cntl |= DST_Y_DIR;
+ if (xdir > 0)
+ pATI->dst_cntl |= DST_X_DIR;
+
+ if (pATI->PitchModifier == 1)
+ {
+ ATIMach64WaitForFIFO(4);
+ outm(DST_CNTL, pATI->dst_cntl);
+ }
+ else
+ {
+ ATIMach64WaitForFIFO(3);
+ pATI->dst_cntl |= DST_24_ROT_EN;
+ }
+
+ outm(DP_MIX, SetBits(ATIMach64ALU[rop], DP_FRGD_MIX));
+ outm(DP_WRITE_MASK, planemask);
+ outm(DP_SRC, SetBits(DP_MONO_SRC_ALLONES, DP_MONO_SRC) |
+ SetBits(SRC_BLIT, DP_FRGD_SRC) | SetBits(SRC_BKGD, DP_BKGD_SRC));
}
/*
- * ATIMach64DisableClipping --
+ * ATIMach64SubsequentScreenToScreenCopy --
*
- * This function resets the draw engine's clipping rectangle to include the
- * entire virtual resolution.
+ * This function performs a screen-to-screen copy operation.
*/
static void
-ATIMach64DisableClipping
+ATIMach64SubsequentScreenToScreenCopy
(
- ScrnInfoPtr pScreenInfo
+ ScrnInfoPtr pScreenInfo,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ int w,
+ int h
)
{
ATIPtr pATI = ATIPTR(pScreenInfo);
- ATIMach64WaitForFIFO(2);
- outm(SC_LEFT_RIGHT,
- SetWord(pATI->NewHW.sc_right, 1) | SetWord(pATI->NewHW.sc_left, 0));
- outm(SC_TOP_BOTTOM,
- SetWord(pATI->NewHW.sc_bottom, 1) | SetWord(pATI->NewHW.sc_top, 0));
+ xSrc *= pATI->PitchModifier;
+ xDst *= pATI->PitchModifier;
+ w *= pATI->PitchModifier;
+
+ if (!(pATI->dst_cntl & DST_X_DIR))
+ {
+ xSrc += w - 1;
+ xDst += w - 1;
+ }
+
+ if (!(pATI->dst_cntl & DST_Y_DIR))
+ {
+ ySrc += h - 1;
+ yDst += h - 1;
+ }
+
+ if (pATI->PitchModifier == 1)
+ ATIMach64WaitForFIFO(4);
+ else
+ {
+ ATIMach64WaitForFIFO(5);
+ outm(DST_CNTL, pATI->dst_cntl | SetBits((xDst / 4) % 6, DST_24_ROT));
+ }
+
+ outm(SRC_Y_X, SetWord(xSrc, 1) | SetWord(ySrc, 0));
+ outm(SRC_WIDTH1, w);
+ outm(DST_Y_X, SetWord(xDst, 1) | SetWord(yDst, 0));
+ outm(DST_HEIGHT_WIDTH, SetWord(w, 1) | SetWord(h, 0));
}
/*
@@ -830,8 +879,7 @@ ATIMach64SetupForSolidFill
outm(DST_CNTL, pATI->NewHW.dst_cntl);
}
- outm(DP_MIX, SetBits(ATIMach64ALU[rop], DP_FRGD_MIX) |
- SetBits(MIX_DST, DP_BKGD_MIX));
+ outm(DP_MIX, SetBits(ATIMach64ALU[rop], DP_FRGD_MIX));
outm(DP_WRITE_MASK, planemask);
outm(DP_SRC, SetBits(DP_MONO_SRC_ALLONES, DP_MONO_SRC) |
SetBits(SRC_FRGD, DP_FRGD_SRC) | SetBits(SRC_BKGD, DP_BKGD_SRC));
@@ -872,6 +920,50 @@ ATIMach64SubsequentSolidFillRect
}
/*
+ * ATIMach64SetClippingRectangle --
+ *
+ * This function sets the draw engine's clipping rectangle.
+ */
+static void
+ATIMach64SetClippingRectangle
+(
+ ScrnInfoPtr pScreenInfo,
+ int left,
+ int top,
+ int right,
+ int bottom
+)
+{
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+
+ ATIMach64WaitForFIFO(2);
+ outm(SC_LEFT_RIGHT, SetWord(((right + 1) * pATI->PitchModifier) - 1, 1) |
+ SetWord(left * pATI->PitchModifier, 0));
+ outm(SC_TOP_BOTTOM, SetWord(bottom, 1) | SetWord(top, 0));
+}
+
+/*
+ * ATIMach64DisableClipping --
+ *
+ * This function resets the draw engine's clipping rectangle to include the
+ * entire virtual resolution.
+ */
+static void
+ATIMach64DisableClipping
+(
+ ScrnInfoPtr pScreenInfo
+)
+{
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+
+ ATIMach64WaitForFIFO(2);
+ outm(SC_LEFT_RIGHT,
+ SetWord(pATI->NewHW.sc_right, 1) | SetWord(pATI->NewHW.sc_left, 0));
+ outm(SC_TOP_BOTTOM,
+ SetWord(pATI->NewHW.sc_bottom, 1) | SetWord(pATI->NewHW.sc_top, 0));
+}
+
+/*
* ATIMach64AccelInit --
*
* This function fills in structure fields needed for acceleration on Mach64
@@ -897,6 +989,16 @@ ATIMach64AccelInit
/* Sync */
pXAAInfo->Sync = ATIMach64Sync;
+ /* Screen-to-screen copy */
+ pXAAInfo->ScreenToScreenCopyFlags = NO_TRANSPARENCY; /* For now */
+ pXAAInfo->SetupForScreenToScreenCopy = ATIMach64SetupForScreenToScreenCopy;
+ pXAAInfo->SubsequentScreenToScreenCopy =
+ ATIMach64SubsequentScreenToScreenCopy;
+
+ /* Solid fills */
+ pXAAInfo->SetupForSolidFill = ATIMach64SetupForSolidFill;
+ pXAAInfo->SubsequentSolidFillRect = ATIMach64SubsequentSolidFillRect;
+
/* Clips */
pXAAInfo->ClippingFlags = HARDWARE_CLIP_SCREEN_TO_SCREEN_COLOR_EXPAND |
HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY | HARDWARE_CLIP_MONO_8x8_FILL |
@@ -905,9 +1007,5 @@ ATIMach64AccelInit
pXAAInfo->SetClippingRectangle = ATIMach64SetClippingRectangle;
pXAAInfo->DisableClipping = ATIMach64DisableClipping;
- /* Solid fills */
- pXAAInfo->SetupForSolidFill = ATIMach64SetupForSolidFill;
- pXAAInfo->SubsequentSolidFillRect = ATIMach64SubsequentSolidFillRect;
-
return TRUE;
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c
index 848349f90..0ed5146a1 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c,v 1.12 2000/02/18 12:19:28 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c,v 1.16 2000/03/07 16:31:53 tsi Exp $ */
/*
* Copyright 1999 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -349,6 +349,9 @@ ATIPreInit
int minPitch, maxPitch = 0xFFU, pitchInc;
LookupModeFlags Strategy = LOOKUP_CLOSEST_CLOCK;
+ if (flags & PROBE_DETECT)
+ return FALSE;
+
if (pScreenInfo->numEntities != 1)
{
xf86DrvMsg(pScreenInfo->scrnIndex, X_ERROR,
@@ -842,6 +845,8 @@ ATIPreInit
if (LCDPanelInfo > 0)
{
+ CARD8 ClockMask, PostMask, xpDiv, maxpDiv, pDiv;
+
pATI->LCDPanelID = BIOSByte(LCDPanelInfo);
pATI->LCDHorizontal = BIOSWord(LCDPanelInfo + 0x19U);
pATI->LCDVertical = BIOSWord(LCDPanelInfo + 0x1BU);
@@ -852,12 +857,17 @@ ATIPreInit
else
i = (inb(R_GENMO) & 0x0CU) >> 2;
- /* Get post divider */
- j = (GetBits(ATIGetMach64PLLReg(PLL_XCLK_CNTL),
- PLL_VCLK0_XDIV << i) *
- (MaxBits(PLL_VCLK0_POST_DIV) + 1)) |
- GetBits(ATIGetMach64PLLReg(PLL_VCLK_POST_DIV),
- PLL_VCLK0_POST_DIV << (i * 2));
+ /*
+ * Get post divider. A GCC bug has caused the following
+ * expression to be broken down into its individual
+ * components.
+ */
+ ClockMask = PLL_VCLK0_XDIV << i;
+ PostMask = PLL_VCLK0_POST_DIV << (i * 2);
+ xpDiv = GetBits(ATIGetMach64PLLReg(PLL_XCLK_CNTL), ClockMask);
+ maxpDiv = MaxBits(PLL_VCLK0_POST_DIV) + 1;
+ pDiv = GetBits(ATIGetMach64PLLReg(PLL_VCLK_POST_DIV), PostMask);
+ j = (xpDiv * maxpDiv) | pDiv;
/* Calculate clock of mode on entry */
Numerator = ATIGetMach64PLLReg(PLL_VCLK0_FB_DIV + i) *
@@ -1285,12 +1295,13 @@ ATIPreInit
if ((IOValue2 &= pGDev->MemBase) &&
(IOValue2 <= (MaxBits(CFG_MEM_AP_LOC) << 22)))
pATI->LinearBase = IOValue2;
- }
- if (pATI->LinearBase)
- {
- if ((pATI->BusType != ATI_BUS_PCI) &&
- (pATI->BusType != ATI_BUS_AGP))
+ if (!pATI->LinearBase)
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
+ "Linear aperture not configured. Specify"
+ " \"MemBase\" override in XF86Config \"Device\""
+ " section.\n");
+ else
{
if (pATI->VideoRAM < 4096)
pATI->LinearSize = 4 * 1024 * 1024;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c
index c22795f45..67e6174a7 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c,v 1.9 2000/02/18 12:19:30 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c,v 1.11 2000/03/07 16:13:35 tsi Exp $ */
/*
* Copyright 1997 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -45,9 +45,12 @@ ATIPrintBIOS
unsigned int Index = Start & ~(16U - 1U);
unsigned char Printable[17];
+ if (xf86GetVerbosity() <= 4)
+ return;
+
memset(Printable, 0, SizeOf(Printable));
- xf86ErrorFVerb(4, "\n BIOS data at 0x%08X:", Start + pATI->BIOSBase);
+ xf86ErrorFVerb(5, "\n BIOS data at 0x%08X:", Start + pATI->BIOSBase);
for (; Index < ((End + (16U - 1U)) & ~(16U - 1U)); Index++)
{
@@ -56,20 +59,20 @@ ATIPrintBIOS
if (!(Index & (16U - 1U)))
{
if (Printable[0])
- xf86ErrorFVerb(4, " |%s|", Printable);
+ xf86ErrorFVerb(5, " |%s|", Printable);
Char = Printable;
- xf86ErrorFVerb(4, "\n 0x%08X: ", Index + pATI->BIOSBase);
+ xf86ErrorFVerb(5, "\n 0x%08X: ", Index + pATI->BIOSBase);
}
- xf86ErrorFVerb(4, " ");
+ xf86ErrorFVerb(5, " ");
}
if ((Index < Start) || (Index >= End))
{
- xf86ErrorFVerb(4, " ");
+ xf86ErrorFVerb(5, " ");
*Char++ = ' ';
}
else
{
- xf86ErrorFVerb(4, "%02X", BIOS[Index]);
+ xf86ErrorFVerb(5, "%02X", BIOS[Index]);
if (isprint(BIOS[Index]))
*Char++ = BIOS[Index];
else
@@ -77,7 +80,7 @@ ATIPrintBIOS
}
}
- xf86ErrorFVerb(4, " |%s|\n", Printable);
+ xf86ErrorFVerb(5, " |%s|\n", Printable);
}
/*
@@ -490,7 +493,7 @@ ATIPrintRegisters
if (pATI->pBlock[0])
{
xf86ErrorFVerb(4, " Block 0 aperture at 0x%08X.\n", pATI->pBlock[0]);
- if (inl(pATI->CPIOBase) == *((CARD32 *)pATI->pBlock[0]))
+ if (inl(pATI->CPIOBase) == MMIO_IN32(pATI->pBlock[0], 0))
xf86ErrorFVerb(4, " MMIO registers are correctly mapped.\n");
else
xf86ErrorFVerb(4, " MMIO mapping is in error!\n");
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c
index dac0fe833..36c5735a7 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c,v 1.17 2000/02/18 12:19:32 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c,v 1.19 2000/03/07 16:13:36 tsi Exp $ */
/*
* Copyright 1997 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -714,7 +714,9 @@ ATIAssignVGA
{
/*
* Some adapters are reputed to append ATI extended VGA registers
- * to the VGA Graphics controller registers.
+ * to the VGA Graphics controller registers. In particular, 0x01CE
+ * cannot, in general, be used in a PCI environment due to routing
+ * of I/O through the bus tree.
*/
pATI->CPIO_VGAWonder = GRAX;
ATIVGAWonderProbe(pATI, p8514, ProbeFlags);
@@ -833,14 +835,6 @@ ATIProbe
(_p)->iEntity = -2; \
} while (0)
- /*
- * This driver doesn't invoke, nor depend on, any support for fbdev. Also,
- * temporarily disable -configure support until it gets fixed to not depend
- * on optional driver behaviour.
- */
- if (flags & (PROBE_DETECTFBDEV | PROBE_DETECTPCI | PROBE_DETECTISA))
- return FALSE;
-
if (!(flags & PROBE_DETECT))
{
/*
@@ -1519,7 +1513,17 @@ NoVGAWonder:;
((pATI->Adapter != ATI_ADAPTER_8514A) ||
((pATI->VGAAdapter != ATI_ADAPTER_VGA) &&
(pATI->VGAAdapter != ATI_ADAPTER_NONE))))
+ {
nAdapter++;
+ pGDev = xf86AddDeviceToConfigure(ATI_DRIVER_NAME,
+ pATI->PCIInfo, ATI_CHIPSET_ATI);
+ if (pGDev)
+ {
+ /* Fill in additional information */
+ pGDev->vendor = ATI_NAME;
+ pGDev->chipset = (char *)ATIChipsetNames[ATI_CHIPSET_ATI];
+ }
+ }
xfree(pATI);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h
index 5aeb80cb9..7b6f65860 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h,v 1.11 2000/02/18 12:19:40 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h,v 1.12 2000/03/03 04:47:13 tsi Exp $ */
/*
* Copyright 1999 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -216,6 +216,7 @@ typedef struct _ATIRec
XAAInfoRecPtr pXAAInfo;
int nAvailableFIFOEntries, nFIFOEntries;
CARD8 EngineIsBusy, EngineIsLocked, PitchModifier;
+ CARD32 dst_cntl; /* For SetupFor/Subsequent communication */
/*
* Clock-related definitions.
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h
index 65a55f442..160924266 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h,v 1.11 2000/02/18 12:19:43 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h,v 1.13 2000/03/07 16:13:37 tsi Exp $ */
/*
* Copyright 1997 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -27,12 +27,13 @@
#define ATI_NAME "ATI"
#define ATI_DRIVER_NAME "ati"
-#define ATI_VERSION_NAME "5.3.0"
+#define ATI_VERSION_NAME "5.3.2"
#define ATI_VERSION_MAJOR 5
#define ATI_VERSION_MINOR 3
-#define ATI_VERSION_PATCH 0
+#define ATI_VERSION_PATCH 2
-#define ATI_VERSION_CURRENT ((ATI_VERSION_MAJOR << 16) | ATI_VERSION_MINOR)
+#define ATI_VERSION_CURRENT \
+ ((ATI_VERSION_MAJOR << 20) | (ATI_VERSION_MINOR << 10) | ATI_VERSION_PATCH)
#endif /* ___ATIVERSION_H___ */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp b/xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp
index 5bd02cfb2..3c9842327 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp,v 1.2 1999/11/19 14:59:17 hohndel Exp $
-.TH CHIPS __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp,v 1.3 2000/03/03 01:05:34 dawes Exp $
+.TH CHIPS __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
chips \- Chips and Technologies video driver
.SH SYNOPSIS
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c
index 808283a2d..bf123fa87 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c,v 1.80 2000/02/21 19:22:58 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c,v 1.84 2000/03/06 23:54:08 dawes Exp $ */
/*
* Copyright 1993 by Jon Block <block@frc.com>
@@ -7,20 +7,20 @@
*
* Major Contributors to XFree86 3.2
* Modified 1995/6 by Nozomi Ytow
- * Modified 1996 by Egbert Eich <Egbert.Eich@Physik.TH-Darmstadt.DE>
- * Modified 1996 by David Bateman <dbateman@ee.uts.edu.au>
+ * Modified 1996 by Egbert Eich <eich@xfree86.org>
+ * Modified 1996 by David Bateman <dbateman@club-internet.fr>
* Modified 1996 by Xavier Ducoin <xavier@rd.lectra.fr>
*
* Contributors to XFree86 3.2
* Modified 1995/6 by Ken Raeburn <raeburn@raeburn.org>
* Modified 1996 by Shigehiro Nomura <nomura@sm.sony.co.jp>
- * Modified 1996 by Marc de Courville <courvill@sig.enst.fr>
+ * Modified 1996 by Marc de Courville <marc@courville.org>
* Modified 1996 by Adam Sulmicki <adam@cfar.umd.edu>
* Modified 1996 by Jens Maurer <jmaurer@cck.uni-kl.de>
*
* Large parts rewritten for XFree86 4.0
- * Modified 1998 by David Bateman <dbateman@eng.uts.edu.au>
- * Modified 1998 by Egbert Eich <Egbert.Eich@Physik.TH-Darmstadt.DE>
+ * Modified 1998 by David Bateman <dbateman@club-internet.fr>
+ * Modified 1998 by Egbert Eich <eich@xfree86.org>
* Modified 1998 by Nozomi Ytow
*
* Permission to use, copy, modify, distribute, and sell this software and its
@@ -699,6 +699,11 @@ static const char *shadowSymbols[] = {
NULL
};
+static const char *vbeSymbols[] = {
+ "VBEInit",
+ NULL
+};
+
#ifdef XFree86LOADER
static MODULESETUPPROTO(chipsSetup);
@@ -743,7 +748,7 @@ chipsSetup(pointer module, pointer opts, int *errmaj, int *errmin)
*/
LoaderRefSymLists(vgahwSymbols, cfbSymbols, xaaSymbols,
ramdacSymbols, ddcSymbols, i2cSymbols,
- shadowSymbols, NULL);
+ shadowSymbols, vbeSymbols, NULL);
/*
* The return value must be non-NULL on success even though there
@@ -822,7 +827,6 @@ CHIPSProbe(DriverPtr drv, int flags)
int *usedChips;
int i;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* Find the config file Device sections that match this
* driver, and return if there are none.
@@ -837,12 +841,10 @@ CHIPSProbe(DriverPtr drv, int flags)
CHIPSChipsets, CHIPSPCIchipsets,
devSections,numDevSections, drv,
&usedChips);
- if ((numUsed > 0) && (flags & PROBE_DETECTPCI))
- return TRUE;
- if ((numUsed <= 0) && (flags & PROBE_DETECTPCI))
- return FALSE;
if (numUsed > 0) {
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
/* Allocate a ScrnInfoRec */
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
pScrn->driverVersion = VERSION;
@@ -860,6 +862,8 @@ CHIPSProbe(DriverPtr drv, int flags)
foundScreen = TRUE;
xf86ConfigActivePciEntity(pScrn,usedChips[i],CHIPSPCIchipsets,
NULL,NULL,NULL,NULL,NULL);
+ }
+ xfree(usedChips);
}
}
@@ -867,10 +871,10 @@ CHIPSProbe(DriverPtr drv, int flags)
numUsed = xf86MatchIsaInstances(CHIPS_NAME,CHIPSChipsets,CHIPSISAchipsets,
drv,chipsFindIsaDevice,devSections,
numDevSections,&usedChips);
- if(numUsed > 0)
- if (flags & PROBE_DETECTISA)
- return TRUE;
- for (i = 0; i < numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
pScrn->driverVersion = VERSION;
@@ -889,9 +893,9 @@ CHIPSProbe(DriverPtr drv, int flags)
xf86ConfigActiveIsaEntity(pScrn,usedChips[i],CHIPSISAchipsets,
NULL,NULL,NULL,NULL,NULL);
}
+ xfree(usedChips);
}
- if (devSections)
- xfree(devSections);
+ xfree(devSections);
return foundScreen;
}
@@ -991,6 +995,8 @@ CHIPSPreInit(ScrnInfoPtr pScrn, int flags)
const char *reqSym = NULL;
Bool res = FALSE;
+ if (flags & PROBE_DETECT) return FALSE;
+
/* The vgahw module should be loaded here when needed */
if (!xf86LoadSubModule(pScrn, "vgahw"))
return FALSE;
@@ -1040,12 +1046,10 @@ CHIPSPreInit(ScrnInfoPtr pScrn, int flags)
#endif
}
#endif
-#ifdef XFree86LOADER
if (xf86LoadSubModule(pScrn, "vbe")) {
cPtr->pVbe = VBEInit(NULL,cPtr->pEnt->index);
}
-#endif
/* Now that we've identified the chipset, setup the capabilities flags */
switch (cPtr->Chipset) {
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h b/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h
index 02ca8f3e5..c708efb8e 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h
@@ -1,7 +1,7 @@
/* $XConsortium: ct_driver.h /main/3 1996/10/27 11:49:29 kaleb $ */
/*
- * Modified 1996 by Egbert Eich <Egbert.Eich@Physik.TH-Darmstadt.DE>
- * Modified 1996 by David Bateman <dbateman@ee.uts.edu.au>
+ * Modified 1996 by Egbert Eich <eich@xfree86.org>
+ * Modified 1996 by David Bateman <dbateman@club-internet.fr>
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -22,7 +22,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h,v 1.25 2000/02/08 13:13:12 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h,v 1.26 2000/03/05 16:59:13 dawes Exp $ */
#ifndef _CT_DRIVER_H_
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile
index 147d67d59..b7fa4ce61 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile,v 1.26 2000/02/16 14:43:51 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile,v 1.27 2000/03/03 01:05:35 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the Cirrus Logic driver.
XCOMM
@@ -86,6 +86,11 @@ SubDriverObjectModuleTarget(cirrus_laguna,$(LOBJS))
InstallSubDriverObjectModule(cirrus_laguna,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(cirrus,)
+InstallModuleManPage(cirrus)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(CirrusClk.c,$(DRIVERSDKDIR)/drivers/cirrus)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c
index 2da62431a..4513adfa8 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c
@@ -9,7 +9,7 @@
* Guy DESBIEF
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c,v 1.6 2000/02/21 19:22:59 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c,v 1.8 2000/02/27 02:45:26 alanh Exp $ */
/* Everything using inb/outb, etc needs "compiler.h" */
#include "compiler.h"
@@ -511,6 +511,8 @@ AlpPreInit(ScrnInfoPtr pScrn, int flags)
ClockRangePtr clockRanges;
char *mod = NULL;
char *s;
+
+ if (flags & PROBE_DETECT) return FALSE;
#ifdef ALP_DEBUG
ErrorF("AlpPreInit\n");
@@ -1627,7 +1629,7 @@ AlpScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n)
xf86XVScreenInit(pScreen, ptr, n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h
index 47533712e..016702037 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h,v 1.14 2000/02/08 13:13:14 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h,v 1.15 2000/03/05 23:47:50 dawes Exp $ */
/* (c) Itai Nahshon */
@@ -9,7 +9,9 @@
#include "xaa.h"
#include "xf86i2c.h"
+#if 0
#define CIR_DEBUG
+#endif
/* Card-specific driver information */
#define CIRPTR(p) ((CirPtr)((p)->driverPrivate))
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c
index b123cbb41..d7eb3a0c7 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c
@@ -9,7 +9,7 @@
* Guy DESBIEF
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c,v 1.51 2000/02/18 12:19:57 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c,v 1.54 2000/03/08 21:21:29 dawes Exp $ */
/* All drivers should typically include these */
#include "xf86.h"
@@ -180,13 +180,32 @@ CIRAvailableOptions(int chipid, int busid)
int vendor = (chipid & 0xffff0000) >> 16;
int chip = chipid & 0xffff;
+#if 0
if (chip == PCI_CHIP_GD5462 ||
chip == PCI_CHIP_GD5464 ||
chip == PCI_CHIP_GD5464BD ||
chip == PCI_CHIP_GD5465)
- return LgAvailableOptions(chipid);
- else
- return AlpAvailableOptions(chipid);
+ if (!lg_loaded) {
+ if(!xf86LoadSubModule(pScrn, "cirrus_laguna")) {
+ return NULL;
+ }
+ xf86LoaderReqSymLists(lgSymbols, NULL);
+ lg_loaded = TRUE;
+ }
+ return LgAvailableOptions(chipid);
+ } else {
+ if (!alp_loaded) {
+ if (!xf86LoadSubModule(pScrn, "cirrus_alpine")) {
+ return NULL;
+ }
+ xf86LoaderReqSymLists(alpSymbols, NULL);
+ alp_loaded = TRUE;
+ }
+ return AlpAvailableOptions(chipid);
+ }
+#else
+ return NULL;
+#endif
}
/* Mandatory */
@@ -222,8 +241,6 @@ CIRProbe(DriverPtr drv, int flags)
* fits in with what is given in the config file, and allow the config
* file info to override any contradictions.
*/
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* All of the cards this driver supports are PCI, so the "probing" just
@@ -246,10 +263,9 @@ CIRProbe(DriverPtr drv, int flags)
devSections = NULL;
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
/* Allocate a ScrnInfoRec and claim the slot */
@@ -279,7 +295,7 @@ CIRProbe(DriverPtr drv, int flags)
xf86LoaderReqSymLists(lgSymbols, NULL);
lg_loaded = TRUE;
}
- subProbe = LgProbe;
+ subProbe = LgProbe;
} else {
if (!alp_loaded) {
if (!xf86LoadSubModule(pScrn, "cirrus_alpine")) {
@@ -289,7 +305,7 @@ CIRProbe(DriverPtr drv, int flags)
xf86LoaderReqSymLists(alpSymbols, NULL);
alp_loaded = TRUE;
}
- subProbe = AlpProbe;
+ subProbe = AlpProbe;
}
if (subProbe(usedChips[i], pScrn))
foundScreen = TRUE;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cirrus.cpp b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cirrus.cpp
new file mode 100644
index 000000000..a5c29e047
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cirrus.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/cirrus.cpp,v 1.1 2000/03/03 01:05:35 dawes Exp $
+.TH CIRRUS __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+cirrus \- Cirrus Logic video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""cirrus"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B cirrus
+is an XFree86 driver for Cirrus Logic video chips.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B cirrus
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c
index 0dc8c579f..2c253390e 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c
@@ -13,7 +13,7 @@
* David Dawes, Andrew E. Mileski, Leonard N. Zubkoff,
* Guy DESBIEF, Itai Nahshon.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c,v 1.22 2000/02/21 19:23:00 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c,v 1.24 2000/02/27 02:45:26 alanh Exp $ */
#define EXPERIMENTAL
@@ -431,6 +431,8 @@ LgPreInit(ScrnInfoPtr pScrn, int flags)
char *mod = NULL;
int fbPCIReg, ioPCIReg;
char *s;
+
+ if (flags & PROBE_DETECT) return FALSE;
#ifdef LG_DEBUG
ErrorF("LgPreInit\n");
@@ -1544,7 +1546,7 @@ LgScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n)
xf86XVScreenInit(pScreen, ptr, n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile
index b5c1a9c1f..2bc25102b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile,v 1.1 2000/02/13 00:56:09 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile,v 1.2 2000/03/03 01:05:35 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the CYRIX driver.
XCOMM
@@ -26,4 +26,9 @@ ObjectModuleTarget(cyrix,$(OBJS))
InstallObjectModule(cyrix,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(cyrix,)
+InstallModuleManPage(cyrix)
+#endif
+
DependTarget()
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix.cpp b/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix.cpp
new file mode 100644
index 000000000..b88b832ac
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix.cpp,v 1.1 2000/03/03 01:05:36 dawes Exp $
+.TH CYRIX __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+cyrix \- Cyrix video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""cyrix"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B cyrix
+is an XFree86 driver for Cyrix video chips.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B cyrix
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c
index fe80b998c..40a61e271 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c
@@ -26,7 +26,7 @@
* Dirk H. Hohndel (hohndel@suse.de),
* Portions: the GGI project & confidential CYRIX databooks.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c,v 1.4 2000/02/21 19:23:01 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c,v 1.6 2000/03/01 16:01:07 tsi Exp $ */
#include "compiler.h"
#include "fb.h"
@@ -318,8 +318,6 @@ CYRIXProbe(DriverPtr drv, int flags)
int device_step, device_revision;
ScrnInfoPtr pScrn;
- if (flags & PROBE_DETECT) return FALSE;
-
/*
* The aim here is to find all cards that this driver can handle,
* and for the ones not already claimed by another driver, claim the
@@ -347,6 +345,9 @@ CYRIXProbe(DriverPtr drv, int flags)
CYRIXFindIsaDevice,devSections,
numDevSections,&usedChips);
+ if (numUsed <= 0)
+ return FALSE;
+
/* use register probing to decide whether the chip is
* `suitable' for us.
*/
@@ -386,6 +387,9 @@ CYRIXProbe(DriverPtr drv, int flags)
/* end GGI MediaGX driver based code */
if (padsize == 0) return (FALSE);
+ if (flags & PROBE_DETECT)
+ return TRUE;
+
xf86ErrorF("%s: GX_BASE: 0x%x\n",CYRIX_NAME, physbase);
xf86ErrorF("%s: Scratchpad size: %d kbytes\n",CYRIX_NAME, padsize);
@@ -417,9 +421,7 @@ CYRIXProbe(DriverPtr drv, int flags)
/* Free it since we don't need that list after this */
xfree(devSections);
- devSections = NULL;
- if (numUsed >= 0)
for (i=0; i < numUsed; i++) {
@@ -440,8 +442,8 @@ CYRIXProbe(DriverPtr drv, int flags)
pScrn->ValidMode = CYRIXValidMode;
xf86ConfigActiveIsaEntity(pScrn, usedChips[i], CYRIXISAChipsets,
NULL, NULL, NULL, NULL, NULL);
- return (TRUE);
}
+ return (TRUE);
}
static int
@@ -449,8 +451,7 @@ CYRIXFindIsaDevice(GDevPtr dev)
{
CARD32 CurrentValue, TestValue;
- /* Unlock VGA registers */
- VGAHW_UNLOCK(vgaIOBase);
+ /* No need to unlock VGA CRTC registers here */
/* VGA has one more read/write attribute register than EGA */
(void) inb(vgaIOBase + 0x0AU); /* Reset flip-flop */
@@ -461,9 +462,6 @@ CYRIXFindIsaDevice(GDevPtr dev)
TestValue = inb(0x3C1);
outb(0x3C0, CurrentValue);
- /* XXX: This should restore lock state, rather than relock */
- VGAHW_LOCK(vgaIOBase);
-
/* Quit now if no VGA is present */
if ((CurrentValue ^ 0x0F) != TestValue)
return -1;
@@ -482,6 +480,8 @@ CYRIXPreInit(ScrnInfoPtr pScrn, int flags)
char *mod = NULL;
const char *Sym;
+ if (flags & PROBE_DETECT) return FALSE;
+
/* Allocate the CYRIXRec driverPrivate */
if (!CYRIXGetRec(pScrn)) return FALSE;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile
index 76e6f413b..36f895c38 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile
@@ -1,7 +1,7 @@
XCOMM
XCOMM This is an Imakefile for the fbdev driver.
XCOMM
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile,v 1.6 1999/08/14 10:49:44 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile,v 1.7 2000/02/25 18:28:10 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -15,11 +15,11 @@ INCLUDES = -I. -I../../include
INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(SERVERSRC)/mfb -I$(SERVERSRC)/mi \
-I$(SERVERSRC)/afb \
- -I$(SERVERSRC)/cfb -I$(XF86SRC)/xaa \
+ -I$(SERVERSRC)/fb -I$(XF86SRC)/xaa \
-I$(XF86SRC)/fbdevhw -I$(XF86SRC)/ramdac \
-I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
-I$(XF86SRC)/rac \
- -I$(SERVERSRC)/Xext -I$(XF86SRC)/xf8_32bpp\
+ -I$(SERVERSRC)/Xext -I$(XF86SRC)/xf24_32bpp\
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
-I$(XF86SRC)/shadowfb -I$(EXTINCSRC)
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c b/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c
index 11a876726..119bdbe92 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c
@@ -1,4 +1,9 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c,v 1.16 2000/02/15 18:01:06 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c,v 1.20 2000/03/01 16:01:07 tsi Exp $ */
+
+/*
+ * Authors: Alan Hourihane, <alanh@fairlite.demon.co.uk>
+ * Michel Dänzer, <michdaen@iiic.ethz.ch>
+ */
/* all driver need this */
#include "xf86.h"
@@ -13,12 +18,8 @@
#include "shadowfb.h"
/* for visuals */
-#define PSZ 8
-#include "cfb.h"
-#undef PSZ
-#include "cfb16.h"
-#include "cfb24.h"
-#include "cfb32.h"
+#include "fb.h"
+#include "cfb24_32.h"
#ifdef USE_AFB
#include "afb.h"
#endif
@@ -58,6 +59,12 @@ static Bool FBDevSaveScreen(ScreenPtr pScreen, int mode);
/* -------------------------------------------------------------------- */
+/*
+ * This is intentionally screen-independent. It indicates the binding
+ * choice made in the first PreInit.
+ */
+static int pix24bpp = 0;
+
#define VERSION 4000
#define FBDEV_NAME "FBDev"
#define FBDEV_DRIVER_NAME "fbdev"
@@ -113,11 +120,8 @@ static const char *afbSymbols[] = {
};
static const char *cfbSymbols[] = {
- "cfbScreenInit",
- "cfb16ScreenInit",
- "cfb24ScreenInit",
- "cfb32ScreenInit",
- "cfbCreateDefColormap",
+ "fbScreenInit",
+ "cfb24_32ScreenInit",
NULL
};
@@ -249,9 +253,7 @@ FBDevProbe(DriverPtr drv, int flags)
TRACE("probe start");
/* For now, just bail out for PROBE_DETECT. */
- if ((flags & PROBE_DETECTISA) ||
- (flags & PROBE_DETECTFBDEV) ||
- (flags & PROBE_DETECTPCI))
+ if (flags & PROBE_DETECT)
return FALSE;
pScrn0 = xf86AllocateScreen(drv, 0);
@@ -332,6 +334,8 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
const char *reqSym = NULL;
Gamma zeros = {0.0, 0.0, 0.0};
+ if (flags & PROBE_DETECT) return FALSE;
+
TRACE_ENTER("PreInit");
/* Check the number of entities, and fail if it isn't one. */
@@ -365,6 +369,10 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
return FALSE;
xf86PrintDepthBpp(pScrn);
+ /* Get the depth24 pixmap format */
+ if (pScrn->depth == 24 && pix24bpp == 0)
+ pix24bpp = xf86GetBppFromDepth(pScrn, 24);
+
/* color weight */
if (pScrn->depth > 8) {
rgb zeros = { 0, 0, 0 };
@@ -403,7 +411,22 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
"Option ShadowFB is %s\n",fPtr->shadowFB ? "on" : "off");
/* select video modes */
+
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Checking Modes against framebuffer device...\n");
fbdevHWSetVideoModes(pScrn);
+
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Checking Modes against monitor...\n");
+ {
+ DisplayModePtr mode, first = mode = pScrn->modes;
+
+ if (mode != NULL) do {
+ mode->status = xf86CheckModeForMonitor(mode, pScrn->monitor);
+ mode = mode->next;
+ } while (mode != NULL && mode != first);
+
+ xf86PruneDriverModes(pScrn);
+ }
+
if (NULL == pScrn->modes)
fbdevHWUseBuildinMode(pScrn);
pScrn->currentMode = pScrn->modes;
@@ -421,47 +444,49 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
reqSym = "afbScreenInit";
break;
case FBDEVHW_PACKED_PIXELS:
+ mod = "fb";
+ reqSym = "fbScreenInit";
+
switch (pScrn->bitsPerPixel)
{
case 8:
- mod = "cfb";
- reqSym = "cfbScreenInit";
- break;
case 16:
- mod = "cfb16";
- reqSym = "cfb16ScreenInit";
+ case 32:
break;
case 24:
- mod = "cfb24";
- reqSym = "cfb24ScreenInit";
- break;
- case 32:
- mod = "cfb32";
- reqSym = "cfb32ScreenInit";
+ if (pix24bpp == 32)
+ {
+ mod = "xf24_32bpp";
+ reqSym = "cfb24_32ScreenInit";
+ }
break;
+ default:
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Unsupported bpp: %d", pScrn->bitsPerPixel);
+ return FALSE;
}
break;
case FBDEVHW_INTERLEAVED_PLANES:
/* Not supported yet, don't know what to do with this */
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "Interleaved Planes are not supprted yet by drivers/fbdev.");
- break;
+ "Interleaved Planes are not supported yet by drivers/fbdev.");
+ return FALSE;
case FBDEVHW_TEXT:
/* This should never happen ...
* we should check for this much much earlier ... */
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Text mode is not supprted by drivers/fbdev.\n"
"Why do you want to run the X in TEXT mode anyway ?");
- break;
+ return FALSE;
case FBDEVHW_VGA_PLANES:
/* Not supported yet */
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"EGA/VGA Planes are not supprted yet by drivers/fbdev.");
- break;
+ return FALSE;
default:
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Fbdev type (%d) not supported yet.");
- break;
+ return FALSE;
}
if (mod && xf86LoadSubModule(pScrn, mod) == NULL) {
FBDevFreeRec(pScrn);
@@ -600,25 +625,20 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
#endif
case FBDEVHW_PACKED_PIXELS:
switch (pScrn->bitsPerPixel) {
+ case 24:
+ if (pix24bpp == 32)
+ {
+ ret = cfb24_32ScreenInit
+ (pScreen, fPtr->fbstart, pScrn->virtualX, pScrn->virtualY,
+ pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth);
+ break;
+ }
case 8:
- ret = cfbScreenInit
- (pScreen, fPtr->fbstart, pScrn->virtualX, pScrn->virtualY,
- pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth);
- break;
case 16:
- ret = cfb16ScreenInit
- (pScreen, fPtr->fbstart, pScrn->virtualX, pScrn->virtualY,
- pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth);
- break;
- case 24:
- ret = cfb24ScreenInit
- (pScreen, fPtr->fbstart, pScrn->virtualX, pScrn->virtualY,
- pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth);
- break;
case 32:
- ret = cfb32ScreenInit
+ ret = fbScreenInit
(pScreen, fPtr->fbstart, pScrn->virtualX, pScrn->virtualY,
- pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth);
+ pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth, pScrn->bitsPerPixel);
break;
default:
xf86DrvMsg(scrnIndex, X_ERROR,
@@ -697,7 +717,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
break;
#endif
case FBDEVHW_PACKED_PIXELS:
- if (!cfbCreateDefColormap(pScreen))
+ if (!miCreateDefColormap(pScreen))
return FALSE;
break;
case FBDEVHW_INTERLEAVED_PLANES:
@@ -734,7 +754,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
{
XF86VideoAdaptorPtr *ptr;
- int n = xf86XVListGenericAdaptors(&ptr);
+ int n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n) {
xf86XVScreenInit(pScreen,ptr,n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp b/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp
index d64701b92..2a75c3e60 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp,v 1.4 1999/08/22 13:04:25 dawes Exp $
-.TH FBDEV __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp,v 1.5 2000/03/03 01:05:36 dawes Exp $
+.TH FBDEV __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
fbdev \- video driver for framebuffer device
.SH SYNOPSIS
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile
index 433f48917..518640402 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile
@@ -1,17 +1,17 @@
XCOMM
XCOMM This is an Imakefile for the glide driver.
XCOMM
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile,v 1.2 1999/08/14 10:49:44 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile,v 1.3 2000/03/07 14:31:45 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
-#if !HasGlide || !defined(GlideIncDir)
+#if !HasGlide2 || !defined(Glide2IncDir)
all::
- @echo "This driver requires that you define HasGlide and GlideIncDir in host.def"
+ @echo "This driver requires that you define HasGlide2 and Glide2IncDir in host.def"
@exit 1
install::
- @echo "This driver requires that you define HasGlide and GlideIncDir in host.def"
+ @echo "This driver requires that you define HasGlide2 and Glide2IncDir in host.def"
@exit 1
#endif
@@ -21,7 +21,7 @@ OBJS = glide_driver.o
#if defined(XF86DriverSDK)
INCLUDES = -I. -I../../include
#else
-INCLUDES = -I. -I$(GLIDEINCDIR) -I$(XF86COMSRC) -I$(XF86OSSRC) \
+INCLUDES = -I. -I$(GLIDE2INCDIR) -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(SERVERSRC)/mfb -I$(SERVERSRC)/mi \
-I$(SERVERSRC)/cfb -I$(XF86SRC)/xaa \
-I$(XF86SRC)/vgahw -I$(XF86SRC)/ramdac \
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp b/xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp
index 6213314be..5ae2e5560 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp,v 1.6 1999/08/28 10:43:35 dawes Exp $
-.TH GLIDE __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp,v 1.7 2000/03/03 01:05:37 dawes Exp $
+.TH GLIDE __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
glide \- Glide video driver
.SH SYNOPSIS
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c
index 2689bd8ef..7e9f82c0d 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c
@@ -45,7 +45,7 @@
* Support static loading.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c,v 1.10 2000/02/15 18:01:06 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c,v 1.12 2000/03/01 16:01:08 tsi Exp $ */
#include "xaa.h"
#include "xf86Cursor.h"
@@ -393,8 +393,10 @@ GLIDEProbe(DriverPtr drv, int flags)
/* hw.num_sst : number of Glide boards available */
- if (hw.num_sst > 0 && (flags & PROBE_DETECT))
+ if (hw.num_sst > 0 && (flags & PROBE_DETECT)) {
+ /* XXX Need to call xf886AddDeviceToConfigure() here */
return TRUE;
+ }
for (sst = 0; sst < hw.num_sst; sst++)
{
@@ -457,6 +459,8 @@ GLIDEPreInit(ScrnInfoPtr pScrn, int flags)
const char *reqSym = NULL;
int sst;
+ if (flags & PROBE_DETECT) return FALSE;
+
/* Check the number of entities, and fail if it isn't one. */
if (pScrn->numEntities != 1)
return FALSE;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt b/xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt
index 5e175996e..5bac4f31c 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt
@@ -9,8 +9,7 @@ Permission is granted to make and distribute verbatim copies
of this document provided the copyright notice and this permission
notice are preserved on all copies.
-$XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt,v 1.1 1999/06/14 07:31:50 dawes Exp $
-$PI: xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt,v 1.6 1999/05/27 03:46:29 jens Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt,v 1.2 2000/02/23 04:47:06 martin Exp $
GLINT State Transition Strategy
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile
index 399359d6c..c8624e19f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile
@@ -1,5 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile,v 1.20 2000/01/23 04:44:29 dawes Exp $
-XCOMM $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile,v 1.11 1999/06/26 03:13:53 faith Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile,v 1.22 2000/03/03 01:05:37 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the GLINT driver.
XCOMM
@@ -49,6 +48,11 @@ ObjectModuleTarget(glint,$(OBJS))
InstallObjectModule(glint,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(glint,)
+InstallModuleManPage(glint)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(IBMramdac.c,$(DRIVERSDKDIR)/drivers/glint)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c
index 2fa291bb3..3d3e88d66 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c
@@ -27,8 +27,7 @@
* glintOutTIIndReg() and glintInTIIndReg() are used to access
* the indirect TI RAMDAC registers only.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c,v 1.1 1999/06/14 07:31:51 dawes Exp $ */
-/* $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c,v 1.4 1999/05/27 03:46:29 jens Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c,v 1.2 2000/02/23 04:47:06 martin Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c
index ea8a2400e..a6d34a4bf 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c
@@ -28,8 +28,7 @@
* Modified version of tx_accel.c to support dual MX chips by
* Jens Owen, <jens@precisioninsight.com>
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c,v 1.5 2000/01/21 01:12:15 dawes Exp $ */
-/* $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c,v 1.15 1999/06/09 20:05:12 jens Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c,v 1.6 2000/02/23 04:47:06 martin Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c
index 1bc32ea8d..a17ab1c8b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c
@@ -27,8 +27,7 @@
* Modified version of tx_dac.c to support Dual MX rasterizers by
* Jens Owen <jens@precisioninsight.com>
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c,v 1.2 1999/07/04 06:38:56 dawes Exp $ */
-/* $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c,v 1.13 1999/06/09 20:05:12 jens Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c,v 1.3 2000/02/23 04:47:07 martin Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.cpp b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.cpp
new file mode 100644
index 000000000..63baa3b28
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.cpp
@@ -0,0 +1,112 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint.cpp,v 1.2 2000/03/07 01:37:46 dawes Exp $
+.TH GLINT __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+glint \- GLINT/Permedia video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""glint"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B glint
+is an XFree86 driver for 3Dlabs & Texas Instruments GLINT/Permedia based video
+cards. The driver is rather fully accelerated, and provides support for the
+following framebuffer depths: 8, 15 (may give bad results with FBDev support),
+16, 24 (32 bpp recommended, 24 bpp has problems), 30, and an 8+24 overlay mode.
+.SH SUPPORTED HARDWARE
+The
+.B glint
+driver supports 3Dlabs (GLINT MX, GLINT 500TX, GLINT GAMMA, Permedia,
+Permedia 2, Permedia 2v) and Texas Instruments (Permedia, Permedia 2) chips.
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.PP
+The driver auto-detects the chipset type, but the following
+.B ChipSet
+names may optionally be specified in the config file
+.B """Device"""
+section, and will override the auto-detection:
+.PP
+.RS 4
+"ti_pm2", "ti_pm", "pm2v", "pm2", "pm", "500tx", "mx", "gamma".
+.RE
+.PP
+The driver will try to auto-detect the amount of video memory present for all
+chips. If it's not detected correctly, the actual amount of video memory should
+be specified with a
+.B VideoRam
+entry in the config file
+.B """Device"""
+section.
+.PP
+Additionally, you may need to specify the bus ID of your card with a
+.B BusID
+entry in the config file
+.B """Device"""
+section, especially with FBDev support.
+.PP
+The following driver
+.B Options
+are supported:
+.TP
+.BI "Option ""HWCursor"" """ boolean """
+Enable or disable the HW cursor. Default: on.
+.TP
+.BI "Option ""SWCursor"" """ boolean """
+Enable or disable the SW cursor. Default: off.
+This option disables the
+.B HWCursor
+option and vice versa.
+.TP
+.BI "Option ""NoAccel"" """ boolean """
+Disable or enable acceleration. Default: acceleration is enabled.
+.TP
+.BI "Option ""Overlay""
+Enable 8+24 overlay mode. Only appropriate for depth 24, 32 bpp.
+.RB ( Note:
+This hasn't been tested with FBDev support and probably won't work.)
+Recognized values are: "8,24", "24,8". Default: off.
+.TP
+.BI "Option ""PciRetry"" """ boolean """
+Enable or disable PCI retries.
+.RB ( Note:
+This doesn't work with Permedia2 based cards for Amigas.) Default: off.
+.TP
+.BI "Option ""ShadowFB"" """ boolean """
+Enable or disable use of the shadow framebuffer layer. See
+shadowfb(__drivermansuffix__) for further information.
+.RB ( Note:
+This disables hardware acceleration.) Default: off.
+.TP
+.BI "Option ""UseFBDev"" """ boolean """
+Enable or disable use of an OS-specific fb interface (which is not supported
+on all OSs). See fbdevhw(__drivermansuffix__) for further information.
+Default: off.
+.ig
+.TP
+.BI "Option ""RGBbits"" """ integer """
+Each gun of the RGB triple can have either 8 or 10 bits. Default: 8
+..
+.TP
+.BI "Option ""BlockWrite"" """ boolean """
+Enable or disable block writes for the various Permedia 2 chips. This improves
+acceleration in general, but disables it for some special cases. Default: off.
+.TP
+.BI "Option ""FireGL3000"" """ boolean """
+If you have a card of the same name, turn this on. Default: off.
+.TP
+.BI "Option ""SetMClk"" """ freq """
+The driver will try to auto-detect the memory clock for all chips. If it's not
+detected correctly, the actual value (in MHz) should be specified with this
+option.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: Alan Hourihane, Dirk Hohndel, Stefan Dirsch, Michel Dänzer
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h
index 3250fbd28..48c1d1a5e 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h,v 1.24 2000/01/18 18:40:12 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h,v 1.25 2000/02/26 03:33:43 dawes Exp $ */
/*
* Copyright 1997,1998 by Alan Hourihane <alanh@fairlite.demon.co.uk>
*
@@ -137,6 +137,7 @@ typedef struct {
DrawablePtr CurrentDrawable;
I2CBusPtr DDCBus, VSBus;
CARD8* XAAScanlineColorExpandBuffers[2];
+ CARD32 RasterizerSwap;
#ifdef XF86DRI
Bool directRenderingEnabled;
DRIInfoPtr pDRIInfo;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c
index a81cdaa76..9acce4b54 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c,v 1.10 2000/02/14 20:31:19 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c,v 1.12 2000/03/02 16:07:47 martin Exp $ */
/**************************************************************************
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
@@ -31,7 +31,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Author:
* Jens Owen <jens@precisioninsight.com>
*
- * $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c,v 1.54 1999/08/04 18:18:58 faith Exp $
*/
#include "xf86.h"
@@ -58,6 +57,9 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
static char GLINTKernelDriverName[] = "gamma";
static char GLINTClientDriverName[] = "gamma";
+static void GLINTDestroyContext(ScreenPtr pScreen, drmContext hwContext,
+ DRIContextType contextStore);
+
static int
GLINTDRIControlInitSingleMX(int drmSubFD, int irq)
{
@@ -415,8 +417,9 @@ GLINTDRIScreenInit(ScreenPtr pScreen)
pDRIInfo->contextSize = sizeof(GLINTDRIContextRec);
/* setup call backs */
- pDRIInfo->CreateContext = GLINTCreateContext;
- pDRIInfo->SwapContext = GLINTDRISwapContext;
+ pDRIInfo->CreateContext = GLINTCreateContext;
+ pDRIInfo->DestroyContext = GLINTDestroyContext;
+ pDRIInfo->SwapContext = GLINTDRISwapContext;
pDRIInfo->InitBuffers = GLINTDRIInitBuffers;
pDRIInfo->MoveBuffers = GLINTDRIMoveBuffers;
pDRIInfo->bufferRequests = DRI_ALL_WINDOWS;
@@ -554,7 +557,7 @@ GLINTDRIScreenInit(ScreenPtr pScreen)
pGlint->drmBufs->count);
/* tell the generic kernel driver how to handle Gamma DMA */
- if (!pGlint->irq) {
+ if (pGlint->irq <= 0) {
pGlint->irq = drmGetInterruptFromBusID(pGlint->drmSubFD,
((pciConfigPtr)pGlint->PciInfo
->thisCard)->busnum,
@@ -658,6 +661,13 @@ GLINTCreateContext(ScreenPtr pScreen,
return TRUE;
}
+static void
+GLINTDestroyContext(ScreenPtr pScreen,
+ drmContext hwContext,
+ DRIContextType contextStore)
+{
+}
+
Bool
GLINTDRIFinishScreenInit(ScreenPtr pScreen)
{
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h
index 2b6ff8307..03f4d9fed 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h,v 1.2 1999/06/27 14:08:05 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h,v 1.3 2000/02/23 04:47:10 martin Exp $ */
/**************************************************************************
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
@@ -31,7 +31,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Author:
* Jens Owen <jens@precisioninsight.com>
*
- * $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h,v 1.5 1999/06/15 17:46:16 faith Exp $
*/
/*
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h
index 26a0b3d30..fe29ffccf 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h,v 1.1 1999/06/14 07:31:53 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h,v 1.2 2000/02/23 04:47:10 martin Exp $ */
/**************************************************************************
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
@@ -31,7 +31,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Author:
* Jens Owen <jens@precisioninsight.com>
*
- * $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h,v 1.13 1999/06/07 13:05:07 faith Exp $
*/
extern void GlxSetVisualConfigs(
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c
index 1febf2ef3..8c33db140 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c
@@ -27,8 +27,7 @@
* this work is sponsored by S.u.S.E. GmbH, Fuerth, Elsa GmbH, Aachen and
* Siemens Nixdorf Informationssysteme
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c,v 1.66 2000/02/21 19:23:01 dawes Exp $ */
-/* $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c,v 1.37 1999/07/02 18:38:31 faith Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c,v 1.71 2000/03/07 01:37:47 dawes Exp $ */
#define PSZ 8
#include "cfb.h"
@@ -122,7 +121,7 @@ static Bool GLINTModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
* choice made in the first PreInit.
*/
static int pix24bpp = 0;
-static Bool FBDev = FALSE;
+static Bool FBDevProbed = FALSE;
#define VERSION 4000
#define GLINT_NAME "GLINT"
@@ -204,7 +203,6 @@ static OptionInfoRec GLINTOptions[] = {
{ OPTION_OVERLAY, "Overlay", OPTV_ANYSTR, {0}, FALSE },
{ OPTION_SHADOW_FB, "ShadowFB", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_FBDEV, "UseFBDev", OPTV_BOOLEAN, {0}, FALSE },
- { OPTION_NOWRITEBITMAP, "NoWriteBitmap",OPTV_BOOLEAN, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
@@ -623,9 +621,6 @@ GLINTProbe(DriverPtr drv, int flags)
* specified.
*/
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE; /* SEE BELOW */
-
if ((numDevSections = xf86MatchDevice(GLINT_DRIVER_NAME,
&devSections)) <= 0) {
/*
@@ -674,12 +669,12 @@ GLINTProbe(DriverPtr drv, int flags)
/* Check for pm2fb */
if (strcmp(fbdevHWGetName(pScrn0),"Permedia2")) continue;
-#if 0 /* Need to find better way of detecting FBDEV */
- /* Probably to use BUSID FBDEV */
- if (flags & PROBE_DETECTFBDEV)
+ if (flags & PROBE_DETECT) {
+ xf86AddDeviceToConfigure(GLINT_NAME, NULL, -1);
return TRUE;
-#endif
- foundScreen = FBDev = TRUE;
+ }
+
+ foundScreen = FBDevProbed = TRUE;
pScrn = xf86AllocateScreen(drv, 0);
xf86LoadSubModule(pScrn, "fbdevhw");
xf86LoaderReqSymLists(fbdevHWSymbols, NULL);
@@ -734,10 +729,9 @@ GLINTProbe(DriverPtr drv, int flags)
devSections = NULL;
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
foundScreen = TRUE;
+ if (!(flags & PROBE_DETECT))
for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
@@ -969,6 +963,8 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
char *mod = NULL;
const char *s;
+ if (flags & PROBE_DETECT) return FALSE;
+
TRACE_ENTER("GLINTPreInit");
/*
@@ -1000,8 +996,6 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
return FALSE;
}
pGlint = GLINTPTR(pScrn);
- /* If the FBDev stuff was needed for probing, keep using it until the options are checked */
- pGlint->FBDev = FBDev;
/* Get the entities, and make sure they are PCI. */
pGlint->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
@@ -1069,7 +1063,7 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
* Our default depth is 8, so pass it to the helper function.
* We support both 24bpp and 32bpp layouts, so indicate that.
*/
- if (pGlint->FBDev) {
+ if (FBDevProbed) {
int default_depth;
if (!fbdevHWInit(pScrn,NULL,xf86FindOptionValue(pGlint->pEnt->device->options,"fbdev"))) {
@@ -1193,14 +1187,23 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
"Using \"Shadow Framebuffer\" - acceleration disabled\n");
}
- if (xf86ReturnOptValBool(GLINTOptions, OPTION_NOWRITEBITMAP, FALSE)) {
- pGlint->WriteBitmap = FALSE;
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
- "WriteBitmap() replacement disabled\n");
- } else pGlint->WriteBitmap = TRUE;
/* Check whether to use the FBDev stuff and fill in the rest of pScrn */
if (xf86ReturnOptValBool(GLINTOptions, OPTION_FBDEV, FALSE)) {
+ if (!FBDevProbed && !xf86LoadSubModule(pScrn, "fbdevhw"))
+ {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "couldn't load fbdevHW module!\n");
+ return FALSE;
+ }
+
+ xf86LoaderReqSymLists(fbdevHWSymbols, NULL);
+
+ if (!fbdevHWInit(pScrn,NULL,xf86FindOptionValue(pGlint->pEnt->device->options,"fbdev")))
+ {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "fbdevHWInit failed!\n");
+ return FALSE;
+ }
+
pGlint->FBDev = TRUE;
from = X_CONFIG;
@@ -1254,8 +1257,8 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
* Set the Chipset and ChipRev, allowing config file entries to
* override.
*/
- if (pGlint->FBDev) { /* pm2fb AFAIK only supports the Permedia2 */
- pScrn->chipset = "pm2";
+ if (FBDevProbed) { /* pm2fb so far only supports the Permedia2 */
+ pScrn->chipset = "ti_pm2";
pGlint->Chipset = xf86StringToToken(GLINTChipsets, pScrn->chipset);
from = X_PROBED;
} else {
@@ -1322,7 +1325,7 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
}
}
- if (!pGlint->FBDev) {
+ if (!FBDevProbed) {
if (pGlint->pEnt->device->MemBase != 0) {
/*
* XXX Should check that the config file value matches one of the
@@ -1365,6 +1368,9 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
else
pGlint->IOAddress = pGlint->PciInfo->memBase[0] & 0xFFFFC000;
}
+#if X_BYTE_ORDER == X_BIG_ENDIAN
+ pGlint->IOAddress += 0x10000;
+#endif
xf86DrvMsg(pScrn->scrnIndex, from, "MMIO registers at 0x%lX\n",
(unsigned long)pGlint->IOAddress);
@@ -1405,7 +1411,7 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
pGlint->HwBpp = pScrn->bitsPerPixel;
pGlint->FbBase = NULL;
- if (!pGlint->FBDev) {
+ if (!FBDevProbed) {
if (pGlint->pEnt->device->videoRam != 0) {
pScrn->videoRam = pGlint->pEnt->device->videoRam;
from = X_CONFIG;
@@ -1653,7 +1659,7 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
break;
}
- if (pGlint->FBDev)
+ if (pGlint->FBDev || FBDevProbed)
pGlint->VGAcore = FALSE;
if (pGlint->VGAcore) {
@@ -1842,13 +1848,13 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
if (pGlint->HWCursor) {
- DisplayModePtr mode = pScrn->modes;
-
- while (mode) {
+ DisplayModePtr mode, first = mode = pScrn->modes;
+
+ do { /* We know there is at least the built-in mode */
mode->Flags |= V_PHSYNC | V_PVSYNC;
- if (mode->next != mode) mode = mode->next;
- else mode = NULL;
- }
+ mode->Flags &= ~V_NHSYNC | ~V_NVSYNC;
+ mode = mode->next;
+ } while (mode != NULL && mode != first);
}
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h
index 08ba5a9a1..f33e42c80 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h,v 1.14 1999/07/04 06:39:00 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h,v 1.15 2000/03/07 01:37:47 dawes Exp $ */
/*
* glint register file
@@ -17,6 +17,8 @@
#ifndef _GLINTREG_H_
#define _GLINTREG_H_
+#include "compiler.h"
+
/**********************************************
* GLINT 500TX Configuration Region Registers *
***********************************************/
@@ -1147,15 +1149,18 @@
#define GLINT_WRITE_REG(v,r) \
do{ \
*(volatile CARD32 *)((char *)pGlint->IOBase+(r))=v; \
+ mem_barrier(); \
}while(0)
#define GLINT_READ_REG(r) \
(*(volatile CARD32 *)((char *)pGlint->IOBase+(r)))
-#endif
+#endif
#define GLINT_WAIT(n) \
do{ \
if(!pGlint->UsePCIRetry) \
- while(GLINT_READ_REG(InFIFOSpace)<(n)); \
+ while(GLINT_READ_REG(InFIFOSpace)<(n)){ \
+ mem_barrier(); \
+ } \
}while(0)
#define GLINT_MASK_WRITE_REG(v,m,r) \
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c
index 2a575f3ff..6d1863f0a 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c
@@ -30,7 +30,7 @@
*
* Permedia 2 accelerated options.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c,v 1.22 2000/02/12 20:45:21 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c,v 1.23 2000/02/25 21:02:50 dawes Exp $ */
#include "Xarch.h"
#include "xf86.h"
@@ -144,9 +144,9 @@ static void Permedia2PolySegmentThinSolidWrapper(DrawablePtr pDraw, GCPtr pGC,
#define MAX_FIFO_ENTRIES 256
#if X_BYTE_ORDER == X_BIG_ENDIAN
-# define HOST_SWAP 1|0<<7|0<<15 /* Swap the bitmask - see manuals */
+# define STIPPLE_SWAP 1<<18 /* Mirror stipple pattern horizontally */
#else
-# define HOST_SWAP 0
+# define STIPPLE_SWAP 0
#endif
void
@@ -195,14 +195,26 @@ Permedia2InitializeEngine(ScrnInfoPtr pScrn)
GLINT_SLOW_WRITE_REG(UNIT_DISABLE, FBSourceBase);
GLINT_SLOW_WRITE_REG(UNIT_DISABLE, LBWindowBase);
+#if X_BYTE_ORDER == X_BIG_ENDIAN
+ pGlint->RasterizerSwap = 1;
+#else
+ pGlint->RasterizerSwap = 0;
+#endif
+
switch (pScrn->bitsPerPixel) {
case 8:
pGlint->PixelWidth = 0x0; /* 8 Bits */
pGlint->TexMapFormat = pGlint->pprod;
+#if X_BYTE_ORDER == X_BIG_ENDIAN
+ pGlint->RasterizerSwap |= 3<<15; /* Swap host data */
+#endif
break;
case 16:
pGlint->PixelWidth = 0x1; /* 16 Bits */
pGlint->TexMapFormat = pGlint->pprod | 1<<19;
+#if X_BYTE_ORDER == X_BIG_ENDIAN
+ pGlint->RasterizerSwap |= 2<<15; /* Swap host data */
+#endif
break;
case 24:
pGlint->PixelWidth = 0x4; /* 24 Bits */
@@ -343,7 +355,6 @@ Permedia2AccelInit(ScreenPtr pScreen)
infoPtr->ColorExpandRange = MAX_FIFO_ENTRIES;
- if (pGlint->WriteBitmap)
infoPtr->WriteBitmap = Permedia2WriteBitmap;
if (pScrn->bitsPerPixel == 8)
@@ -568,6 +579,7 @@ Permedia2PolySegmentThinSolidWrapper(
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_GC(pGC);
GLINTPtr pGlint = GLINTPTR(infoRec->pScrn);
pGlint->CurrentGC = pGC;
+ pGlint->CurrentDrawable = pDraw;
if(infoRec->NeedToSync) (*infoRec->Sync)(infoRec->pScrn);
XAAPolySegment(pDraw, pGC, nseg, pSeg);
}
@@ -667,6 +679,7 @@ Permedia2SetupForFillRectSolid(ScrnInfoPtr pScrn, int color,
int rop, unsigned int planemask)
{
GLINTPtr pGlint = GLINTPTR(pScrn);
+ TRACE_ENTER("Permedia2SetupForFillRectSolid");
REPLICATE(color);
@@ -683,6 +696,7 @@ Permedia2SetupForFillRectSolid(ScrnInfoPtr pScrn, int color,
GLINT_WRITE_REG(pGlint->pprod|FBRM_DstEnable|FBRM_Packed, FBReadMode);
}
LOADROP(rop);
+ TRACE_EXIT("Permedia2SetupForFillRectSolid");
}
static void
@@ -699,6 +713,7 @@ Permedia2SubsequentFillRectSolid(ScrnInfoPtr pScrn, int x, int y, int w, int h)
{
GLINTPtr pGlint = GLINTPTR(pScrn);
int speed = 0;
+ TRACE_ENTER("Permedia2SubsequentFillRectSolid");
if (pGlint->ROP == GXcopy) {
GLINT_WAIT(3);
@@ -712,6 +727,7 @@ Permedia2SubsequentFillRectSolid(ScrnInfoPtr pScrn, int x, int y, int w, int h)
speed = 0;
}
GLINT_WRITE_REG(PrimitiveRectangle | XPositive | YPositive | speed, Render);
+ TRACE_EXIT("Permedia2SubsequentFillRectSolid");
}
static void MoveBYTE(
@@ -770,33 +786,6 @@ static void MoveDWORDS(
*(dest + 2) = *(src + 2);
}
-/* MoveDWORDS hacks for my Amiga (all Big Endian machines?) */
-
-static void MoveDWORDS16BE(
- register CARD32* dest,
- register unsigned short* src,
- register int dwords )
-{
- while(dwords) {
- *dest = *(src + 1) << 16 | *src;
- src += 2;
- dest += 1;
- dwords -= 1;
- }
-}
-
-static void MoveDWORDS8BE(
- register CARD32* dest,
- register unsigned char* src,
- register int dwords )
-{
- while(dwords) {
- *dest = *(src + 3) << 24 | *(src + 2) << 16 | *(src + 1) << 8 | *src;
- src += 4;
- dest += 1;
- dwords -= 1;
- }
-}
static void
Permedia2SetupForMono8x8PatternFill24bpp(ScrnInfoPtr pScrn,
@@ -840,6 +829,7 @@ Permedia2SetupForMono8x8PatternFill(ScrnInfoPtr pScrn,
unsigned int planemask)
{
GLINTPtr pGlint = GLINTPTR(pScrn);
+ TRACE_ENTER("Permedia2SetupForMono8x8PatternFill");
if (bg == -1) pGlint->FrameBufferReadMode = -1;
else pGlint->FrameBufferReadMode = 0;
@@ -849,6 +839,10 @@ Permedia2SetupForMono8x8PatternFill(ScrnInfoPtr pScrn,
REPLICATE(pGlint->ForeGroundColor);
REPLICATE(pGlint->BackGroundColor);
+#if DEBUG
+ ErrorF("patternx: %x patterny: %x\n", patternx, patterny);
+#endif
+
GLINT_WAIT(13);
DO_PLANEMASK(planemask);
GLINT_WRITE_REG((patternx & 0xFF), AreaStipplePattern0);
@@ -868,6 +862,7 @@ Permedia2SetupForMono8x8PatternFill(ScrnInfoPtr pScrn,
GLINT_WRITE_REG(pGlint->pprod | FBRM_DstEnable, FBReadMode);
}
LOADROP(rop);
+ TRACE_EXIT("Permedia2SetupForMono8x8PatternFill");
}
static void
@@ -884,7 +879,7 @@ Permedia2SubsequentMono8x8PatternFillRect24bpp(ScrnInfoPtr pScrn,
if (pGlint->FrameBufferReadMode != -1) {
GLINT_WRITE_REG(pGlint->BackGroundColor, ConstantColor);
GLINT_WRITE_REG(patternx<<7|patterny<<12| ASM_InvertPattern |
- UNIT_ENABLE, AreaStippleMode);
+ STIPPLE_SWAP | UNIT_ENABLE, AreaStippleMode);
GLINT_WRITE_REG(AreaStippleEnable | XPositive |
YPositive | PrimitiveRectangle, Render);
}
@@ -912,14 +907,14 @@ Permedia2SubsequentMono8x8PatternFillRect(ScrnInfoPtr pScrn,
if (pGlint->ROP == GXcopy) {
GLINT_WRITE_REG(pGlint->BackGroundColor, FBBlockColor);
GLINT_WRITE_REG(ASM_InvertPattern|patternx<<7|patterny<<12|
- UNIT_ENABLE, AreaStippleMode);
+ STIPPLE_SWAP | UNIT_ENABLE, AreaStippleMode);
GLINT_WRITE_REG(AreaStippleEnable | FastFillEnable |
XPositive | YPositive | PrimitiveRectangle, Render);
} else {
GLINT_WRITE_REG(pGlint->ForeGroundColor, ConstantColor);
GLINT_WRITE_REG(pGlint->BackGroundColor, Texel0);
GLINT_WRITE_REG(patternx<<7|patterny<<12|
- UNIT_ENABLE, AreaStippleMode);
+ STIPPLE_SWAP | UNIT_ENABLE, AreaStippleMode);
GLINT_WRITE_REG(AreaStippleEnable | XPositive | TextureEnable |
YPositive | PrimitiveRectangle, Render);
return;
@@ -933,7 +928,7 @@ Permedia2SubsequentMono8x8PatternFillRect(ScrnInfoPtr pScrn,
GLINT_WRITE_REG(pGlint->ForeGroundColor, ConstantColor);
pGlint->FrameBufferReadMode = 0;
}
- GLINT_WRITE_REG(patternx<<7|patterny<<12|UNIT_ENABLE, AreaStippleMode);
+ GLINT_WRITE_REG(patternx<<7|patterny<<12|STIPPLE_SWAP|UNIT_ENABLE, AreaStippleMode);
GLINT_WRITE_REG(AreaStippleEnable | pGlint->FrameBufferReadMode |
XPositive | YPositive | PrimitiveRectangle, Render);
@@ -973,11 +968,12 @@ Permedia2SetupForCPUToScreenColorExpandFill(
} else {
GLINT_WRITE_REG(fg, FBBlockColor);
}
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
pGlint->FrameBufferReadMode = FastFillEnable;
} else {
GLINT_WRITE_REG(UNIT_ENABLE, ColorDDAMode);
- GLINT_WRITE_REG(BitMaskPackingEachScanline|dobackground|HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(BitMaskPackingEachScanline|dobackground|
+ pGlint->RasterizerSwap,RasterizerMode);
GLINT_WRITE_REG(fg, ConstantColor);
if (dobackground) {
pGlint->FrameBufferReadMode = TextureEnable;
@@ -1042,11 +1038,12 @@ Permedia2SetupForScanlineCPUToScreenColorExpandFill(
pGlint->FrameBufferReadMode = FastFillEnable;
GLINT_WRITE_REG(UNIT_DISABLE, ColorDDAMode);
GLINT_WRITE_REG(fg, FBBlockColor);
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
} else {
GLINT_WRITE_REG(UNIT_ENABLE, ColorDDAMode);
GLINT_WRITE_REG(fg, ConstantColor);
- GLINT_WRITE_REG(BitMaskPackingEachScanline|dobackground|HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(BitMaskPackingEachScanline|dobackground|
+ pGlint->RasterizerSwap,RasterizerMode);
if (dobackground) {
GLINT_WRITE_REG(bg, Texel0);
pGlint->FrameBufferReadMode = TextureEnable;
@@ -1132,11 +1129,12 @@ Permedia2WriteBitmap(ScrnInfoPtr pScrn,
if ((pScrn->bitsPerPixel != 24) && (rop == GXcopy)) {
mode = FastFillEnable;
GLINT_WRITE_REG(UNIT_DISABLE, ColorDDAMode);
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
} else {
mode = 0;
GLINT_WRITE_REG(UNIT_ENABLE, ColorDDAMode);
- GLINT_WRITE_REG(BitMaskPackingEachScanline|HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(BitMaskPackingEachScanline|
+ pGlint->RasterizerSwap,RasterizerMode);
}
if(bg == -1) {
@@ -1198,18 +1196,18 @@ SECOND_PASS:
REPLICATE(bg);
GLINT_WAIT(3);
if ((pScrn->bitsPerPixel != 24) && (rop == GXcopy)) {
- GLINT_WRITE_REG(InvertBitMask|HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(InvertBitMask|pGlint->RasterizerSwap,RasterizerMode);
GLINT_WRITE_REG(bg, FBBlockColor);
} else {
- GLINT_WRITE_REG(InvertBitMask|BitMaskPackingEachScanline|HOST_SWAP,
- RasterizerMode);
+ GLINT_WRITE_REG(InvertBitMask|BitMaskPackingEachScanline|
+ pGlint->RasterizerSwap, RasterizerMode);
GLINT_WRITE_REG(bg, ConstantColor);
}
goto SECOND_PASS;
}
GLINT_WAIT(1);
- GLINT_WRITE_REG(0, RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap, RasterizerMode);
Permedia2DisableClipping(pScrn);
SET_SYNC_FLAG(infoRec);
TRACE_EXIT("Permedia2WriteBitmap");
@@ -1237,7 +1235,7 @@ Permedia2WritePixmap8bpp(
GLINT_WAIT(3);
DO_PLANEMASK(planemask);
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
if (rop == GXcopy) {
GLINT_WRITE_REG(pGlint->pprod | FBRM_Packed, FBReadMode);
} else {
@@ -1245,7 +1243,9 @@ Permedia2WritePixmap8bpp(
}
dwords = (w + 3) >> 2;
- if((!(x&3)) && (!(w&3))) FastTexLoad = TRUE;
+#if X_BYTE_ORDER == X_LITTLE_ENDIAN
+ if((!(x&3)) && (!(w&3))) FastTexLoad = TRUE;
+#endif
if((rop != GXcopy) || (planemask != ~0))
FastTexLoad = FALSE;
@@ -1279,13 +1279,8 @@ Permedia2WritePixmap8bpp(
/* (0x11 << 4) | 0x0D is the TAG for TextureData */
GLINT_WRITE_REG(((MAX_FIFO_ENTRIES - 2) << 16) | (0x11 << 4) |
0x0D, OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS8BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned char*)srcp, MAX_FIFO_ENTRIES - 1);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, MAX_FIFO_ENTRIES - 1);
-#endif
count -= MAX_FIFO_ENTRIES - 1;
address += MAX_FIFO_ENTRIES - 1;
srcp += MAX_FIFO_ENTRIES - 1;
@@ -1295,13 +1290,8 @@ Permedia2WritePixmap8bpp(
/* (0x11 << 4) | 0x0D is the TAG for TextureData */
GLINT_WRITE_REG(((count - 1) << 16) | (0x11 << 4) | 0x0D,
OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS8BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned char*)srcp, count);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, count);
-#endif
}
src += srcwidth;
y++;
@@ -1336,13 +1326,8 @@ Permedia2WritePixmap8bpp(
/* (0x15 << 4) | 0x05 is the TAG for FBSourceData */
GLINT_WRITE_REG(((MAX_FIFO_ENTRIES - 2) << 16) | (0x15 << 4) |
0x05, OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS8BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned char*)srcp, MAX_FIFO_ENTRIES - 1);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, MAX_FIFO_ENTRIES - 1);
-#endif
count -= MAX_FIFO_ENTRIES - 1;
srcp += MAX_FIFO_ENTRIES - 1;
}
@@ -1351,13 +1336,8 @@ Permedia2WritePixmap8bpp(
/* (0x15 << 4) | 0x05 is the TAG for FBSourceData */
GLINT_WRITE_REG(((count - 1) << 16) | (0x15 << 4) |
0x05, OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS8BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned char*)srcp, count);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, count);
-#endif
}
src += srcwidth;
}
@@ -1414,7 +1394,7 @@ Permedia2WritePixmap16bpp(
TRACE_ENTER("Permedia2WritePixmap16bpp");
GLINT_WAIT(3);
DO_PLANEMASK(planemask);
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
if (rop == GXcopy) {
GLINT_WRITE_REG(pGlint->pprod | FBRM_Packed, FBReadMode);
} else {
@@ -1423,7 +1403,9 @@ Permedia2WritePixmap16bpp(
FastTexLoad = FALSE;
dwords = (w + 1) >> 1;
+#if X_BYTE_ORDER == X_LITTLE_ENDIAN
if((!(x&1)) && (!(w&1))) FastTexLoad = TRUE;
+#endif
if((rop != GXcopy) || (planemask != ~0))
FastTexLoad = FALSE;
@@ -1456,13 +1438,8 @@ Permedia2WritePixmap16bpp(
/* (0x11 << 4) | 0x0D is the TAG for TextureData */
GLINT_WRITE_REG(((MAX_FIFO_ENTRIES - 2) << 16) | (0x11 << 4) |
0x0D, OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS16BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned short*)srcp, MAX_FIFO_ENTRIES - 1);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, MAX_FIFO_ENTRIES - 1);
-#endif
count -= MAX_FIFO_ENTRIES - 1;
address += MAX_FIFO_ENTRIES - 1;
srcp += MAX_FIFO_ENTRIES - 1;
@@ -1472,13 +1449,8 @@ Permedia2WritePixmap16bpp(
/* (0x11 << 4) | 0x0D is the TAG for TextureData */
GLINT_WRITE_REG(((count - 1) << 16) | (0x11 << 4) | 0x0D,
OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS16BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned short*)srcp, count);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, count);
-#endif
}
src += srcwidth;
y++;
@@ -1513,13 +1485,8 @@ Permedia2WritePixmap16bpp(
/* (0x15 << 4) | 0x05 is the TAG for FBSourceData */
GLINT_WRITE_REG(((MAX_FIFO_ENTRIES - 2) << 16) | (0x15 << 4) |
0x05, OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS16BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned short*)srcp, MAX_FIFO_ENTRIES - 1);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, MAX_FIFO_ENTRIES - 1);
-#endif
count -= MAX_FIFO_ENTRIES - 1;
srcp += MAX_FIFO_ENTRIES - 1;
}
@@ -1528,13 +1495,8 @@ Permedia2WritePixmap16bpp(
/* (0x15 << 4) | 0x05 is the TAG for FBSourceData */
GLINT_WRITE_REG(((count - 1) << 16) | (0x15 << 4) |
0x05, OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS16BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned short*)srcp, count);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, count);
-#endif
}
src += srcwidth;
}
@@ -1589,7 +1551,7 @@ Permedia2WritePixmap24bpp(
CARD32* srcp;
GLINT_WAIT(3);
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
GLINT_WRITE_REG(UNIT_DISABLE, ColorDDAMode);
if (rop == GXcopy) {
GLINT_WRITE_REG(pGlint->pprod, FBReadMode);
@@ -1691,7 +1653,7 @@ Permedia2WritePixmap32bpp(
GLINT_WAIT(3);
DO_PLANEMASK(planemask);
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
if (rop == GXcopy) {
GLINT_WRITE_REG(pGlint->pprod, FBReadMode);
} else {
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile
index 48c466ce3..11c60bd84 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile,v 1.2 1999/08/30 01:25:03 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile,v 1.5 2000/03/03 01:05:38 dawes Exp $
XCOMM
XCOMM This is the Imakefile for the i740 driver.
XCOMM
@@ -18,9 +18,9 @@ INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(XF86SRC)/xaa -I$(XF86SRC)/rac \
-I$(SERVERSRC)/cfb -I$(XF86SRC)/xaa -I$(XF86SRC)/ramdac \
-I$(XF86SRC)/vgahw -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
- -I$(SERVERSRC)/Xext \
+ -I$(SERVERSRC)/Xext -I$(XF86OSSRC)/vbe \
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
- -I$(EXTINCSRC)
+ -I$(EXTINCSRC) -I$(XF86SRC)/int10
#endif
#if MakeHasPosixVariableSubstitutions
@@ -33,9 +33,10 @@ ObjectModuleTarget(i740,$(OBJS))
InstallObjectModule(i740,$(MODULEDIR),drivers)
-XCOMM To install a man page remove the x and add these lines
-XCOMM xCppManTarget(i740,)
-XCOMM xInstallModuleManPage(i740)
+#if !defined(XF86DriverSDK)
+CppManTarget(i740,)
+InstallModuleManPage(i740)
+#endif
DependTarget()
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.cpp b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.cpp
new file mode 100644
index 000000000..41150123e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740.cpp,v 1.1 2000/03/03 01:05:38 dawes Exp $
+.TH I740 __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+i740 \- Intel i740 video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""i740"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B i740
+is an XFree86 driver for Intel i740 video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B i740
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h
index 69773949d..96f33f1fd 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h,v 1.2 1999/12/03 19:17:34 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h,v 1.3 2000/02/23 04:47:12 martin Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
#ifndef _I740_H_
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c
index 71d52e9c0..4195a8e49 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c,v 1.2 1999/10/13 04:21:15 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c,v 1.3 2000/02/23 04:47:13 martin Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
#include <math.h>
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c
index 857855aca..2b914f8d7 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c,v 1.3 1999/10/13 04:21:15 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c,v 1.4 2000/02/23 04:47:13 martin Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
#include "xf86.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c
index 05f56e0dd..44a78034f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c,v 1.11 2000/02/21 19:23:02 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c,v 1.18 2000/03/06 23:54:09 dawes Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
/*
@@ -93,6 +92,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "xf86xv.h"
#include "Xv.h"
+#include "vbe.h"
+
/* Required Functions: */
static OptionInfoPtr I740AvailableOptions(int chipid, int busid);
@@ -242,6 +243,12 @@ static const char *ramdacSymbols[] = {
NULL
};
+static const char *vbeSymbols[] = {
+ "VBEInit",
+ "vbeDoEDID",
+ NULL
+};
+
#ifdef XFree86LOADER
static MODULESETUPPROTO(i740Setup);
@@ -283,7 +290,7 @@ i740Setup(pointer module, pointer opts, int *errmaj, int *errmin)
* might refer to.
*/
LoaderRefSymLists(vgahwSymbols, cfbSymbols, xaaSymbols,
- xf8_32bppSymbols, ramdacSymbols,
+ xf8_32bppSymbols, ramdacSymbols, vbeSymbols,
0 /* ddcsymbols */, 0 /* i2csymbols */, 0 /* shadowSymbols */,
0 /* fbdevsymbols */, NULL);
@@ -356,9 +363,6 @@ I740Probe(DriverPtr drv, int flags) {
Bool foundScreen = FALSE;
EntityInfoPtr pEnt;
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
/*
Find the config file Device sections that match this
driver, and return if there are none.
@@ -379,10 +383,10 @@ I740Probe(DriverPtr drv, int flags) {
devSections, numDevSections,
drv, &usedChips);
- if (numUsed > 0 && (flags & PROBE_DETECTPCI))
- return TRUE;
-
- for (i=0; i<numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i=0; i<numUsed; i++) {
pEnt = xf86GetEntityInfo(usedChips[i]);
if (pEnt->active) {
@@ -408,8 +412,9 @@ I740Probe(DriverPtr drv, int flags) {
xf86ConfigActivePciEntity(pScrn, usedChips[i], I740PciChipsets, 0, 0, 0, 0, 0);
}
xfree(pEnt);
+ }
+ xfree(usedChips);
}
- if (numUsed) xfree(usedChips);
/* Look for Real3D based chips */
numUsed = xf86MatchPciInstances(I740_NAME, PCI_VENDOR_REAL3D,
@@ -417,10 +422,10 @@ I740Probe(DriverPtr drv, int flags) {
devSections, numDevSections,
drv, &usedChips);
- if (numUsed > 0 && (flags & PROBE_DETECTPCI))
- return TRUE;
-
- for (i=0; i<numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i=0; i<numUsed; i++) {
pEnt = xf86GetEntityInfo(usedChips[i]);
if (pEnt->active) {
@@ -446,8 +451,9 @@ I740Probe(DriverPtr drv, int flags) {
xf86ConfigActivePciEntity(pScrn, usedChips[i], I740PciChipsets, 0, 0, 0, 0, 0);
}
xfree(pEnt);
+ }
+ xfree(usedChips);
}
- if (numUsed) xfree(usedChips);
if (devSections)
xfree(devSections);
@@ -455,6 +461,18 @@ I740Probe(DriverPtr drv, int flags) {
return foundScreen;
}
+extern xf86MonPtr ConfiguredMonitor;
+
+void
+I740ProbeDDC(ScrnInfoPtr pScrn, int index)
+{
+ vbeInfoPtr pVbe;
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ pVbe = VBEInit(NULL,index);
+ ConfiguredMonitor = vbeDoEDID(pVbe);
+ }
+}
+
/*
* I740PreInit --
*
@@ -476,14 +494,6 @@ I740PreInit(ScrnInfoPtr pScrn, int flags) {
if (pScrn->numEntities != 1) return FALSE;
- /* The vgahw module should be loaded here when needed */
- if (!xf86LoadSubModule(pScrn, "vgahw")) return FALSE;
-
- xf86LoaderReqSymLists(vgahwSymbols, NULL);
-
- /* Allocate a vgaHWRec */
- if (!vgaHWGetHWRec(pScrn)) return FALSE;
-
/* Allocate driverPrivate */
if (!I740GetRec(pScrn)) {
return FALSE;
@@ -494,6 +504,19 @@ I740PreInit(ScrnInfoPtr pScrn, int flags) {
pI740->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
if (pI740->pEnt->location.type != BUS_PCI) return FALSE;
+ if (flags & PROBE_DETECT) {
+ I740ProbeDDC(pScrn, pI740->pEnt->index);
+ return TRUE;
+ }
+
+ /* The vgahw module should be loaded here when needed */
+ if (!xf86LoadSubModule(pScrn, "vgahw")) return FALSE;
+
+ xf86LoaderReqSymLists(vgahwSymbols, NULL);
+
+ /* Allocate a vgaHWRec */
+ if (!vgaHWGetHWRec(pScrn)) return FALSE;
+
pI740->PciInfo = xf86GetPciInfoForEntity(pI740->pEnt->index);
pI740->PciTag = pciTag(pI740->PciInfo->bus, pI740->PciInfo->device,
pI740->PciInfo->func);
@@ -1540,7 +1563,7 @@ I740ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n) {
xf86XVScreenInit(pScreen, ptr, n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c
index 0c575852d..4f47b0199 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c
@@ -24,13 +24,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c,v 1.2 1999/12/03 19:17:34 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c,v 1.3 2000/02/23 04:47:14 martin Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
#include "xf86.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h
index bdaf0a599..59c0b89d0 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h,v 1.1 1999/08/29 12:20:59 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h,v 1.2 2000/02/23 04:47:14 martin Exp $ */
/*
* Authors:
* Kevin E. Martin <kevin@precisioninsight.com>
*
- * $PI$
*/
#define WAIT_ENGINE_IDLE_PIO() { \
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h
index 2431605b7..0366d7ec2 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h,v 1.1 1999/08/29 12:20:59 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h,v 1.2 2000/02/23 04:47:14 martin Exp $ */
/*
* Authors:
* Kevin E. Martin <kevin@precisioninsight.com>
*
- * $PI$
*/
/* I/O register offsets */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile
index b5ba45398..331396f38 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile,v 1.2 2000/02/14 06:27:22 martin Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile,v 1.4 2000/03/03 01:05:38 dawes Exp $
XCOMM
XCOMM This is the Imakefile for the i810 driver.
XCOMM
@@ -9,14 +9,14 @@ XCOMM
#
# Uncomment these to build with DRI support when available
#
-#if 0
+#undef BuildXF86DRI
#if BuildXF86DRI
-DRISRCS = i810_dri.c
-DRIOBJS = i810_dri.o
-DRIINCLUDES = -I$(SERVERSRC)/GL/dri -I$(LIBSRC)/GL/dri
+DRISRCS = i810_dri.c i810_drm.c
+DRIOBJS = i810_dri.o i810_drm.o
+DRIINCLUDES = -I$(SERVERSRC)/GL/dri -I$(LIBSRC)/GL/dri \
+ -I$(XF86OSSRC)/linux/drm/kernel
DRIDEFINES = $(GLX_DEFINES)
#endif
-#endif
SRCS = i810_driver.c i810_cursor.c i810_accel.c i810_io.c \
i810_memory.c i810_wmark.c $(DRISRCS)
@@ -49,9 +49,10 @@ ObjectModuleTarget(i810,$(OBJS))
InstallObjectModule(i810,$(MODULEDIR),drivers)
-XCOMM To install a man page remove the x and add these lines
-XCOMM xCppManTarget(i810,)
-XCOMM xInstallModuleManPage(i810)
+#if !defined(XF86DriverSDK)
+CppManTarget(i810,)
+InstallModuleManPage(i810)
+#endif
DependTarget()
@@ -70,4 +71,3 @@ InstallDriverSDKNonExecFile(i810_macros.h,$(DRIVERSDKDIR)/drivers/i810)
InstallDriverSDKNonExecFile(i810_reg.h,$(DRIVERSDKDIR)/drivers/i810)
InstallDriverSDKObjectModule(i810,$(DRIVERSDKMODULEDIR),drivers)
-
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/README b/xc/programs/Xserver/hw/xfree86/drivers/i810/README
new file mode 100644
index 000000000..f7e30d386
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/README
@@ -0,0 +1,93 @@
+ Information for i810 Users
+ i810 Driver Version 2.0.0
+
+
+1. Supported Hardware
+
+ * Intel 810 motherboards:
+ i810,
+ i810-dc100,
+ i810e.
+
+
+2. Features
+
+ * Full support for 8, 15, 16 and 24 bit per pixel depths.
+ * Hardware cursor support to reduce sprite flicker.
+ * Hardware accelerated 2D drawing engine support for 8, 15, 16 and
+ 24 bit per pixel depths.
+ * Support for high resolution video modes up to 1600x1200.
+ * Fully programmable clock supported.
+ * Robust text mode restore for VT switching.
+
+
+3. Technical Notes
+
+ * Hardware acceleration is not possible in 32 bit per pixel depth,
+ and this mode is not supported by this driver.
+ * Interlace modes cannot be supported.
+ * Normal use requires the agpgart.o module, included in linux kernels
+ 2.3.42 and higher.
+
+
+4. Reported Working Video Cards
+
+ * Intel evaluation hardware - i810, i810-dc100 and i810e.
+ * Tyan Tomcat Motherboard.
+ * HappyPC set-top box.
+
+5. Configuration
+
+ The driver auto-detects all device information necessary to
+ initialize the card. The only lines you need in the "Device"
+ section of your XF86Config file are:
+
+ Section "Device"
+ Identifier "i810"
+ EndSection
+
+ If you have problems with auto-detection, you can specify:
+
+ DacSpeed - in MHz
+ MemBase - physical address of the linear framebuffer
+ IOBase - physical address of the memory mapped IO registers
+
+
+ In order to use most resolutions, it is necessary to install the
+ 'agpgart.o' module which accompanies this server. You will probably
+ have to compile the module yourself (see the notes in the module).
+
+ Note: the i810 X server detects whether your motherboard has
+ display cache video memory. This memory is has reduced bandwidth
+ compared to normal system memory, and isn't used by the server. The
+ main function of this memory is for ancillary buffers (eg. z buffer)
+ in a forthcoming 3d capable server.
+
+
+6. Driver Options
+
+ "no_accel" - software rendering only
+
+
+7. Known Limitations
+
+ - No 3d support in this release.
+ - No 32bpp support in this driver.
+ - Running Two Xservers on different VT's is not supported at this time.
+
+8. Author
+
+ Keith Whitwell
+ Precision Insight, Inc.
+ Cedar Park, TX
+ USA
+
+ http://www.precisioninsight.com
+
+9. Support
+
+ For detailed installation instructions and other Linux on i810
+ related matters, please consult:
+
+ http://support.intel.com/support/graphics/intel810/linuxinstal.htm
+
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.cpp b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.cpp
new file mode 100644
index 000000000..2587db57d
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810.cpp,v 1.1 2000/03/03 01:05:39 dawes Exp $
+.TH I810 __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+i810 \- Intel i810 video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""i810"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B i810
+is an XFree86 driver for Intel i810 video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B i810
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h
index 523eda66f..6aceea540 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h
@@ -25,21 +25,17 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h,v 1.2 2000/02/14 06:27:22 martin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h,v 1.4 2000/03/02 16:07:48 martin Exp $ */
/*
* Authors:
* Keith Whitwell <keithw@precisioninsight.com>
*
- * $PI$
*/
#ifndef _I810_H_
#define _I810_H_
-/* Temporarily turn off building in DRI support */
-#undef XF86DRI
-
#include "xf86PciInfo.h"
#include "xf86Pci.h"
@@ -47,6 +43,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "xaa.h"
#include "xf86Cursor.h"
+#undef XF86DRI
#ifdef XF86DRI
@@ -71,11 +68,6 @@ typedef void (*I810WriteByteFunc)(I810Ptr pI810, int addr, char value);
typedef char (*I810ReadByteFunc)(I810Ptr pI810, int addr);
-#ifdef XF86DRI
-extern void FillPrivateDRI(I810Ptr pI810, I810DRIPtr pI810DRI);
-#endif
-
-
extern void I810SetTiledMemory(ScrnInfoPtr pScrn,
int nr,
unsigned start,
@@ -86,7 +78,6 @@ extern void I810SetTiledMemory(ScrnInfoPtr pScrn,
/* Linear region allocated in framebuffer.
*/
typedef struct {
-/* FBAreaPtr Fbarea; */
unsigned long Start;
unsigned long End;
unsigned long Size;
@@ -127,16 +118,10 @@ typedef struct {
unsigned int LprbStart;
unsigned int LprbLen;
- unsigned short IntrHwStatMask;
- unsigned short IntrEnabled;
- unsigned short IntrIdentity;
- unsigned short IntrMask;
- unsigned short ErrorMask;
+ unsigned int Fence[8];
} I810RegRec, *I810RegPtr;
-
-
typedef struct _I810Rec {
unsigned char *MMIOBase;
unsigned char *FbBase;
@@ -145,11 +130,15 @@ typedef struct _I810Rec {
int MaxClock;
unsigned int bufferOffset; /* for I810SelectBuffer */
-
+ Bool DoneFrontAlloc;
+ BoxRec FbMemBox;
I810MemRange FrontBuffer;
I810MemRange BackBuffer;
I810MemRange DepthBuffer;
I810MemRange TexMem;
+ I810MemRange Scratch;
+ I810MemRange BufferMem;
+
int auxPitch;
int auxPitchBits;
@@ -201,27 +190,29 @@ typedef struct _I810Rec {
int numVisualConfigs;
__GLXvisualConfig* pVisualConfigs;
I810ConfigPrivPtr pVisualConfigsPriv;
+ unsigned long dcacheHandle;
+ unsigned long backHandle;
+ unsigned long zHandle;
+ unsigned long cursorHandle;
+ unsigned long sysmemHandle;
+ Bool agpAcquired;
+ drmHandle buffer_map;
+ drmHandle ring_map;
#endif
-
-
+ Bool agpAcquired2d;
} I810Rec;
#define I810PTR(p) ((I810Ptr)((p)->driverPrivate))
-#define DRAW_STATE_CLIPPING 0x1
-#define DRAW_STATE_TRANSPARENT 0x2
-#define DRAW_STATE_CLIP1CHANGED 0x4
-
#define I810_FRONT 0
#define I810_BACK 1
#define I810_DEPTH 2
-#define I8102XCUTOFF 135000
-
-
extern Bool I810DRIScreenInit(ScreenPtr pScreen);
extern void I810DRICloseScreen(ScreenPtr pScreen);
extern Bool I810DRIFinishScreenInit(ScreenPtr pScreen);
+extern Bool I810drmInitDma(ScrnInfoPtr pScrn);
+extern Bool I810drmCleanupDma(ScrnInfoPtr pScrn);
#define I810PTR(p) ((I810Ptr)((p)->driverPrivate))
#define I810REGPTR(p) (&(I810PTR(p)->ModeReg))
@@ -239,6 +230,7 @@ extern unsigned long I810LocalToPhysical( ScrnInfoPtr pScrn,
unsigned long local );
extern int I810AllocLow( I810MemRange *result, I810MemRange *pool, int size );
extern int I810AllocHigh( I810MemRange *result, I810MemRange *pool, int size );
+extern Bool I810AllocateFront(ScrnInfoPtr pScrn);
extern void I810SetCursorPosition(ScrnInfoPtr pScrn, int x, int y);
@@ -288,13 +280,8 @@ extern void I810EmitInvarientState(ScrnInfoPtr pScrn);
if (n>2 && (I810_DEBUG&DEBUG_ALWAYS_SYNC)) I810Sync( pScrn ); \
if (pI810->LpRing.space < n*4) I810WaitLpRing( pScrn, n*4, 0); \
pI810->LpRing.space -= n*4; \
- if (I810_DEBUG & DEBUG_VERBOSE_RING) { \
- CARD32 tail = INREG(LP_RING+RING_TAIL); \
+ if (I810_DEBUG & DEBUG_VERBOSE_RING) \
ErrorF( "BEGIN_LP_RING %d in %s\n", n, __FUNCTION__); \
- if (tail != pI810->LpRing.tail) \
- FatalError("tail %x pI810->LpRing.tail %x\n", \
- tail, pI810->LpRing.tail); \
- } \
outring = pI810->LpRing.tail; \
ringmask = pI810->LpRing.tail_mask; \
virt = pI810->LpRing.virtual_start;
@@ -325,7 +312,7 @@ extern void I810EmitInvarientState(ScrnInfoPtr pScrn);
/* To remove all debugging, make sure I810_DEBUG is defined as a
* preprocessor symbol, and equal to zero.
*/
-/* #define I810_DEBUG 0 */
+#define I810_DEBUG 0
#ifndef I810_DEBUG
#warning "Debugging enabled - expect reduced performance"
extern int I810_DEBUG;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c
index 8ea98c9cd..0f67180d2 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c
@@ -30,15 +30,9 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Authors:
* Keith Whitwell <keithw@precisioninsight.com>
*
- * $PI$
*/
-#include <math.h>
-#include <stdio.h>
-#include <sys/mman.h>
-#include <sys/time.h>
-#include <signal.h>
-
+#include "xf86_ansic.h"
#include "xf86.h"
#include "i810.h"
@@ -116,7 +110,6 @@ I810AccelInit( ScreenPtr pScreen )
XAAInfoRecPtr infoPtr;
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
I810Ptr pI810 = I810PTR(pScrn);
- I810MemRange scratch; /* push into pI810 */
if (I810_DEBUG & DEBUG_VERBOSE_ACCEL)
ErrorF( "I810AccelInit\n");
@@ -161,6 +154,7 @@ I810AccelInit( ScreenPtr pScreen )
infoPtr->SubsequentScreenToScreenCopy = I810SubsequentScreenToScreenCopy;
}
+
/* 8x8 pattern fills
*/
{
@@ -181,15 +175,12 @@ I810AccelInit( ScreenPtr pScreen )
/* Scanline color expansion - Use the same scheme as the 3.3 driver.
*
*/
- if ( I810AllocLow( &scratch, &(pI810->SysMem), 64*1024 ) ||
- I810AllocLow( &scratch, &(pI810->SysMem), 16*1024 ) )
- {
+ if(pI810->Scratch.Size != 0) {
int i;
int width = ((pScrn->displayWidth + 31) & ~31) / 8;
- int nr_buffers = scratch.Size / width;
- unsigned char *ptr = pI810->FbBase + scratch.Start;
+ int nr_buffers = pI810->Scratch.Size / width;
+ unsigned char *ptr = pI810->FbBase + pI810->Scratch.Start;
-
pI810->NumScanlineColorExpandBuffers = nr_buffers;
pI810->ScanlineColorExpandBuffers = (unsigned char **)
xnfcalloc( nr_buffers, sizeof (unsigned char *) );
@@ -219,14 +210,12 @@ I810AccelInit( ScreenPtr pScreen )
I810SubsequentScanlineCPUToScreenColorExpandFill;
infoPtr->SubsequentColorExpandScanline =
- I810SubsequentColorExpandScanline;
-
+ I810SubsequentColorExpandScanline;
}
/* Possible todo: Image writes w/ non-GXCOPY rop.
*/
-
I810SelectBuffer(pScrn, I810_FRONT);
return XAAInit(pScreen, infoPtr);
@@ -242,15 +231,18 @@ I810WaitLpRing( ScrnInfoPtr pScrn, int n, int timeout_millis )
int start = 0;
int now = 0;
int last_head = 0;
-
+ int first = 0;
+
/* If your system hasn't moved the head pointer in 2 seconds, I'm going to
* call it crashed.
*/
if (timeout_millis == 0)
timeout_millis = 2000;
- if (I810_DEBUG & DEBUG_VERBOSE_ACCEL)
+ if (I810_DEBUG & DEBUG_VERBOSE_ACCEL) {
ErrorF( "I810WaitLpRing %d\n", n);
+ first = GetTimeInMillis();
+ }
while (ring->space < n)
{
@@ -265,11 +257,20 @@ I810WaitLpRing( ScrnInfoPtr pScrn, int n, int timeout_millis )
iters++;
now = GetTimeInMillis();
if ( start == 0 || now < start || ring->head != last_head) {
+ if (I810_DEBUG & DEBUG_VERBOSE_ACCEL)
+ if (now > start)
+ ErrorF( "space: %d wanted %d\n", ring->space, n );
start = now;
last_head = ring->head;
} else if ( now - start > timeout_millis ) {
I810PrintErrorState( pScrn );
ErrorF( "space: %d wanted %d\n", ring->space, n );
+#ifdef XF86DRI
+ if(pI810->directRenderingEnabled) {
+ DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
+ DRICloseScreen(screenInfo.screens[pScrn->scrnIndex]);
+ }
+#endif
FatalError("lockup\n");
}
@@ -277,6 +278,15 @@ I810WaitLpRing( ScrnInfoPtr pScrn, int n, int timeout_millis )
;
}
+ if (I810_DEBUG & DEBUG_VERBOSE_ACCEL)
+ {
+ now = GetTimeInMillis();
+ if (now - first) {
+ ErrorF("Elapsed %d ms\n", now - first);
+ ErrorF( "space: %d wanted %d\n", ring->space, n );
+ }
+ }
+
return iters;
}
@@ -292,9 +302,12 @@ I810Sync( ScrnInfoPtr pScrn )
/* VT switching tries to do this.
*/
if (!pI810->LockHeld) {
- ErrorF( "I810Sync called with lock not held\n" );
- return;
+ return;
}
+
+
+/* if (pI810->directRenderingEnabled) */
+/* DRIUnlockLockQueiscent( pScrn->pScreen ); */
#endif
/* Send a flush instruction and then wait till the ring is empty.
@@ -303,7 +316,7 @@ I810Sync( ScrnInfoPtr pScrn )
*/
{
BEGIN_LP_RING(2);
- OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH );
+ OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH | INST_FLUSH_MAP_CACHE );
OUT_RING( 0 ); /* pad to quadword */
ADVANCE_LP_RING();
}
@@ -314,7 +327,6 @@ I810Sync( ScrnInfoPtr pScrn )
pI810->nextColorExpandBuf = 0;
}
-
void
I810SetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop,
unsigned int planemask)
@@ -578,7 +590,7 @@ I810EmitFlush( ScrnInfoPtr pScrn )
I810Ptr pI810 = I810PTR(pScrn);
BEGIN_LP_RING(2);
- OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH );
+ OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH | INST_FLUSH_MAP_CACHE);
OUT_RING( 0 );
ADVANCE_LP_RING();
}
@@ -630,9 +642,9 @@ I810EmitInvarientState(ScrnInfoPtr pScrn)
I810Ptr pI810 = I810PTR(pScrn);
BEGIN_LP_RING( 8 );
- OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH );
+ OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH | INST_FLUSH_MAP_CACHE );
OUT_RING( GFX_CMD_CONTEXT_SEL | CS_UPDATE_USE | CS_USE_CTX0 );
- OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH );
+ OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH | INST_FLUSH_MAP_CACHE);
OUT_RING( 0 );
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c
index 8c7d31632..903ecd5b9 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c,v 1.1 2000/02/11 17:25:51 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c,v 1.2 2000/02/23 04:47:15 martin Exp $ */
/*
* Authors:
* Keith Whitwell <keithw@precisioninsight.com>
*
- * $PI$
*/
#include "xf86.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c
index ae4d01c52..c63f9ed20 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c,v 1.1 2000/02/11 17:25:51 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c,v 1.2 2000/03/02 16:07:49 martin Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
@@ -46,7 +46,21 @@ extern void GlxSetVisualConfigs(int nconfigs,
__GLXvisualConfig *configs,
void **configprivs);
-
+static int i810_pitches[] = {
+ 512,
+ 1024,
+ 2048,
+ 4096,
+ 0
+};
+
+static int i810_pitch_flags[] = {
+ 0x0,
+ 0x1,
+ 0x2,
+ 0x3,
+ 0
+};
static Bool
I810InitVisualConfigs(ScreenPtr pScreen)
@@ -100,12 +114,12 @@ I810InitVisualConfigs(ScreenPtr pScreen)
pConfigs[0].vid = -1;
pConfigs[0].class = -1;
pConfigs[0].rgba = TRUE;
- pConfigs[0].redSize = 8;
- pConfigs[0].greenSize = 8;
- pConfigs[0].blueSize = 8;
- pConfigs[0].redMask = 0x00FF0000;
- pConfigs[0].greenMask = 0x0000FF00;
- pConfigs[0].blueMask = 0x000000FF;
+ pConfigs[0].redSize = 5;
+ pConfigs[0].greenSize = 6;
+ pConfigs[0].blueSize = 5;
+ pConfigs[0].redMask = 0x0000F800;
+ pConfigs[0].greenMask = 0x000007E0;
+ pConfigs[0].blueMask = 0x0000001F;
pConfigs[0].alphaMask = 0;
pConfigs[0].accumRedSize = 0;
pConfigs[0].accumGreenSize = 0;
@@ -114,7 +128,7 @@ I810InitVisualConfigs(ScreenPtr pScreen)
pConfigs[0].doubleBuffer = FALSE;
pConfigs[0].stereo = FALSE;
pConfigs[0].bufferSize = 16;
- pConfigs[0].depthSize = 0;
+ pConfigs[0].depthSize = 16;
pConfigs[0].stencilSize = 0;
pConfigs[0].auxBuffers = 0;
pConfigs[0].level = 0;
@@ -129,12 +143,12 @@ I810InitVisualConfigs(ScreenPtr pScreen)
pConfigs[1].vid = -1;
pConfigs[1].class = -1;
pConfigs[1].rgba = TRUE;
- pConfigs[1].redSize = 8;
- pConfigs[1].greenSize = 8;
- pConfigs[1].blueSize = 8;
- pConfigs[1].redMask = 0x00FF0000;
- pConfigs[1].greenMask = 0x0000FF00;
- pConfigs[1].blueMask = 0x000000FF;
+ pConfigs[1].redSize = 5;
+ pConfigs[1].greenSize = 6;
+ pConfigs[1].blueSize = 5;
+ pConfigs[1].redMask = 0x0000F800;
+ pConfigs[1].greenMask = 0x000007E0;
+ pConfigs[1].blueMask = 0x0000001F;
pConfigs[1].alphaMask = 0;
pConfigs[1].accumRedSize = 0;
pConfigs[1].accumGreenSize = 0;
@@ -158,12 +172,12 @@ I810InitVisualConfigs(ScreenPtr pScreen)
pConfigs[2].vid = -1;
pConfigs[2].class = -1;
pConfigs[2].rgba = TRUE;
- pConfigs[2].redSize = 8;
- pConfigs[2].greenSize = 8;
- pConfigs[2].blueSize = 8;
- pConfigs[2].redMask = 0x00FF0000;
- pConfigs[2].greenMask = 0x0000FF00;
- pConfigs[2].blueMask = 0x000000FF;
+ pConfigs[2].redSize = 5;
+ pConfigs[2].greenSize = 6;
+ pConfigs[2].blueSize = 5;
+ pConfigs[2].redMask = 0x0000F800;
+ pConfigs[2].greenMask = 0x000007E0;
+ pConfigs[2].blueMask = 0x0000001F;
pConfigs[2].alphaMask = 0;
pConfigs[2].accumRedSize = 0;
pConfigs[2].accumGreenSize = 0;
@@ -172,7 +186,7 @@ I810InitVisualConfigs(ScreenPtr pScreen)
pConfigs[2].doubleBuffer = TRUE;
pConfigs[2].stereo = FALSE;
pConfigs[2].bufferSize = 16;
- pConfigs[2].depthSize = 0;
+ pConfigs[2].depthSize = 16;
pConfigs[2].stencilSize = 0;
pConfigs[2].auxBuffers = 0;
pConfigs[2].level = 0;
@@ -187,12 +201,12 @@ I810InitVisualConfigs(ScreenPtr pScreen)
pConfigs[3].vid = -1;
pConfigs[3].class = -1;
pConfigs[3].rgba = TRUE;
- pConfigs[3].redSize = 8;
- pConfigs[3].greenSize = 8;
- pConfigs[3].blueSize = 8;
- pConfigs[3].redMask = 0x00FF0000;
- pConfigs[3].greenMask = 0x0000FF00;
- pConfigs[3].blueMask = 0x000000FF;
+ pConfigs[3].redSize = 5;
+ pConfigs[3].greenSize = 6;
+ pConfigs[3].blueSize = 5;
+ pConfigs[3].redMask = 0x0000F800;
+ pConfigs[3].greenMask = 0x000007E0;
+ pConfigs[3].blueMask = 0x0000001F;
pConfigs[3].alphaMask = 0;
pConfigs[3].accumRedSize = 0;
pConfigs[3].accumGreenSize = 0;
@@ -221,6 +235,15 @@ I810InitVisualConfigs(ScreenPtr pScreen)
return TRUE;
}
+
+static unsigned int mylog2(unsigned int n)
+{
+ unsigned int log2 = 1;
+ while (n>1) n >>= 1, log2++;
+ return log2;
+}
+
+
Bool I810DRIScreenInit(ScreenPtr pScreen)
{
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
@@ -229,14 +252,27 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
I810DRIPtr pI810DRI;
unsigned long tom;
unsigned long agpHandle;
-/* int bufs; */
+ unsigned long dcacheHandle;
+ int sysmem_size = 0;
+ int back_size = 0;
+ int pitch_idx = 0;
+ int bufs;
+ int width = pScrn->displayWidth * pI810->cpp;
+ int i;
+
+ /* ToDo : save agpHandles? */
+
pDRIInfo = DRICreateInfoRec();
if (!pDRIInfo) {
ErrorF("DRICreateInfoRec failed\n");
return FALSE;
}
+
+/* pDRIInfo->wrap.ValidateTree = 0; */
+/* pDRIInfo->wrap.PostValidateTree = 0; */
+
pI810->pDRIInfo = pDRIInfo;
pI810->LockHeld = 0;
@@ -251,7 +287,10 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
pDRIInfo->ddxDriverMinorVersion = 1;
pDRIInfo->ddxDriverPatchVersion = 0;
pDRIInfo->frameBufferPhysicalAddress = pI810->LinearAddr;
- pDRIInfo->frameBufferSize = pI810->FbMapSize;
+ pDRIInfo->frameBufferSize = (((pScrn->displayWidth *
+ pScrn->virtualY * pI810->cpp) +
+ 4096 - 1) / 4096) * 4096;
+
pDRIInfo->frameBufferStride = pScrn->displayWidth*pI810->cpp;
pDRIInfo->ddxDrawableTableEntry = I810_MAX_DRAWABLES;
@@ -263,7 +302,7 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
/* For now the mapping works by using a fixed size defined
* in the SAREA header
*/
- if (sizeof(XF86DRISAREARec)+sizeof(I810SAREAPriv)>SAREA_MAX) {
+ if (sizeof(XF86DRISAREARec)+sizeof(drm_i810_sarea_t)>SAREA_MAX) {
ErrorF("Data does not fit in SAREA\n");
return FALSE;
}
@@ -277,15 +316,15 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
pDRIInfo->devPrivate = pI810DRI;
pDRIInfo->devPrivateSize = sizeof(I810DRIRec);
pDRIInfo->contextSize = sizeof(I810DRIContextRec);
-
+
pDRIInfo->CreateContext = I810CreateContext;
pDRIInfo->DestroyContext = I810DestroyContext;
pDRIInfo->SwapContext = I810DRISwapContext;
pDRIInfo->InitBuffers = I810DRIInitBuffers;
pDRIInfo->MoveBuffers = I810DRIMoveBuffers;
pDRIInfo->bufferRequests = DRI_ALL_WINDOWS;
-
-
+
+
/* This adds the framebuffer as a drm map *before* we have asked agp
* to allocate it. Scary stuff, hold on...
*/
@@ -297,7 +336,7 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
pI810->pDRIInfo=0;
return FALSE;
}
-
+
pI810DRI->regsSize=I810_REG_SIZE;
if (drmAddMap(pI810->drmSubFD, (drmHandle)pI810->MMIOAddr,
pI810DRI->regsSize, DRM_REGISTERS, 0, &pI810DRI->regs)<0) {
@@ -307,9 +346,14 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
}
xf86DrvMsg(pScreen->myNum, X_INFO, "[drm] Registers = 0x%08lx\n",
pI810DRI->regs);
-
-
-
+
+ pI810->backHandle = 0;
+ pI810->zHandle = 0;
+ pI810->cursorHandle = 0;
+ pI810->sysmemHandle = 0;
+ pI810->agpAcquired = FALSE;
+ pI810->dcacheHandle = 0;
+
/* Agp Support - Need this just to get the framebuffer.
*/
if(drmAgpAcquire(pI810->drmSubFD) < 0) {
@@ -317,72 +361,176 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
DRICloseScreen(pScreen);
return FALSE;
}
-
-
-
- /* Now allocate and bind the agp space. This memory will include the
- * regular framebuffer as well as back and texture memory.
- *
- * --> What about the dcache???
- */
- agpHandle = drmAgpAlloc(pI810->drmSubFD, pScrn->videoRam * 1024, 0, NULL);
- if(agpHandle == 0) {
- ErrorF("drmAgpAlloc failed\n");
- DRICloseScreen(pScreen);
- return FALSE;
- }
-
- if(drmAgpBind(pI810->drmSubFD, agpHandle, 0) != 0) {
- ErrorF("drmAgpBind failed\n");
+ pI810->agpAcquired = TRUE;
+
+ if (drmAgpEnable(pI810->drmSubFD, 0) < 0) {
+ ErrorF("drmAgpEnable failed\n");
DRICloseScreen(pScreen);
return FALSE;
}
- pI810->SysMem.Start = 0;
- pI810->SysMem.Size = pScrn->videoRam * 1024;
- pI810->SysMem.End = pScrn->videoRam * 1024;
- pI810->SavedSysMem = pI810->SysMem;
-
- tom = pI810->SysMem.End;
-
xf86memset (&pI810->DcacheMem, 0, sizeof(I810MemRange));
+ xf86memset (&pI810->BackBuffer, 0, sizeof(I810MemRange));
+ xf86memset (&pI810->DepthBuffer, 0, sizeof(I810MemRange));
pI810->CursorPhysical = 0;
-
+
/* Dcache - half the speed of normal ram, but has use as a Z buffer
* under the DRI.
*/
+ dcacheHandle = drmAgpAlloc(pI810->drmSubFD, 4096 * 1024, 1, NULL);
+ pI810->dcacheHandle = dcacheHandle;
- /* Keep it 512K aligned for the sake of tiled regions.
- */
- tom += 0x7ffff;
- tom &= ~0x7ffff;
+
+#define Elements(x) sizeof(x)/sizeof(*x)
+ for (pitch_idx = 0 ; pitch_idx < Elements(i810_pitches) ; pitch_idx++)
+ if (width <= i810_pitches[pitch_idx])
+ break;
+
+ if (pitch_idx == Elements(i810_pitches)) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Couldn't find depth/back buffer pitch");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+ else {
+ back_size = i810_pitches[pitch_idx] * pScrn->virtualY;
+ back_size = ((back_size + 4096 - 1) / 4096) * 4096;
+ }
+
+ sysmem_size = pScrn->videoRam * 1024;
+ if(dcacheHandle != 0) {
+ if(back_size > 4*1024*1024) {
+ ErrorF("Backsize is larger then 4 meg\n");
+ sysmem_size = sysmem_size - 2*back_size;
+ drmAgpFree(pI810->drmSubFD, dcacheHandle);
+ pI810->dcacheHandle = dcacheHandle = 0;
+ } else {
+ sysmem_size = sysmem_size - back_size;
+ }
+ } else {
+ sysmem_size = sysmem_size - 2*back_size;
+ }
+
+ sysmem_size -= 4096;
+ if(sysmem_size > ((48*1024*1024) - 1) ) {
+ sysmem_size = (48*1024*1024) - (2*4096);
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "User requested more memory then fits in the agp aperture\n"
+ "Truncating to %d bytes of memory\n",
+ sysmem_size);
+ }
+ pI810->SysMem.Start = 0;
+ pI810->SysMem.Size = sysmem_size;
+ pI810->SysMem.End = sysmem_size;
+ tom = sysmem_size;
- agpHandle = drmAgpAlloc(pI810->drmSubFD, 4096 * 1024, 1, NULL);
- if (agpHandle != 0) {
- if(drmAgpBind(pI810->drmSubFD, agpHandle, tom) == 0) {
+ pI810->SavedSysMem = pI810->SysMem;
+
+ if (dcacheHandle != 0) {
+ /* The Z buffer is always aligned to the 48 mb mark in the aperture */
+
+ if(drmAgpBind(pI810->drmSubFD, dcacheHandle, 48*1024*1024) == 0) {
+ xf86memset (&pI810->DcacheMem, 0, sizeof(I810MemRange));
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"GART: Found 4096K Z buffer memory\n");
- pI810->DcacheMem.Start = tom;
+ pI810->DcacheMem.Start = 48*1024*1024;
pI810->DcacheMem.Size = 1024 * 4096;
pI810->DcacheMem.End = pI810->DcacheMem.Start + pI810->DcacheMem.Size;
- tom = pI810->DcacheMem.End;
+ if (!I810AllocLow(&(pI810->DepthBuffer),
+ &(pI810->DcacheMem),
+ back_size))
+ {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Depth buffer allocation failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
} else {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "GART: dcache bind failed\n");
- }
+ drmAgpFree(pI810->drmSubFD, dcacheHandle);
+ pI810->dcacheHandle = dcacheHandle = 0;
+ }
} else {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "GART: no dcache memory found\n");
}
-
-
- pI810->SavedDcacheMem = pI810->DcacheMem;
-
- /* Mouse cursor - needs the physical address for hardware.
+ agpHandle = drmAgpAlloc(pI810->drmSubFD, back_size, 0, NULL);
+ pI810->backHandle = agpHandle;
+
+ if(agpHandle != 0) {
+ /* The backbuffer is always aligned to the 56 mb mark in the aperture */
+ if(drmAgpBind(pI810->drmSubFD, agpHandle, 56*1024*1024) == 0) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Bound backbuffer memory\n");
+
+ pI810->BackBuffer.Start = 56*1024*1024;
+ pI810->BackBuffer.Size = back_size;
+ pI810->BackBuffer.End = (pI810->BackBuffer.Start +
+ pI810->BackBuffer.Size);
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Unable to bind backbuffer\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Unable to allocate backbuffer memory\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+
+ if(dcacheHandle == 0) {
+ /* The Z buffer is always aligned to the 48 mb mark in the aperture */
+ agpHandle = drmAgpAlloc(pI810->drmSubFD, back_size, 0,
+ NULL);
+ pI810->zHandle = agpHandle;
+
+ if(agpHandle != 0) {
+ if(drmAgpBind(pI810->drmSubFD, agpHandle, 48*1024*1024) == 0) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Bound depthbuffer memory\n");
+ pI810->DepthBuffer.Start = 48*1024*1024;
+ pI810->DepthBuffer.Size = back_size;
+ pI810->DepthBuffer.End = (pI810->DepthBuffer.Start +
+ pI810->DepthBuffer.Size);
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Unable to bind depthbuffer\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Unable to allocate depthbuffer memory\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+ }
+
+ /* Now allocate and bind the agp space. This memory will include the
+ * regular framebuffer as well as texture memory.
*/
+
+ agpHandle = drmAgpAlloc(pI810->drmSubFD, sysmem_size, 0, NULL);
+ if(agpHandle == 0) {
+ ErrorF("drmAgpAlloc failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+ pI810->sysmemHandle = agpHandle;
+
+ if(drmAgpBind(pI810->drmSubFD, agpHandle, 0) != 0) {
+ ErrorF("drmAgpBind failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+
agpHandle = drmAgpAlloc(pI810->drmSubFD, 4096, 2,
(unsigned long *)&pI810->CursorPhysical);
+ pI810->cursorHandle = agpHandle;
+
if (agpHandle != 0) {
+ tom = sysmem_size;
+
if(drmAgpBind(pI810->drmSubFD, agpHandle, tom) == 0) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"GART: Allocated 4K for mouse cursor image\n");
@@ -397,34 +545,114 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
pI810->CursorPhysical = 0;
}
+
+ I810SetTiledMemory(pScrn, 1,
+ pI810->DepthBuffer.Start,
+ i810_pitches[pitch_idx],
+ 8*1024*1024);
+
+ I810SetTiledMemory(pScrn, 2,
+ pI810->BackBuffer.Start,
+ i810_pitches[pitch_idx],
+ 8*1024*1024);
+
+ pI810->auxPitch = i810_pitches[pitch_idx];
+ pI810->auxPitchBits = i810_pitch_flags[pitch_idx];
+
+ pI810->SavedDcacheMem = pI810->DcacheMem;
+
+ pI810DRI->backbufferSize = pI810->BackBuffer.Size;
+ if (drmAddMap(pI810->drmSubFD, (drmHandle)pI810->BackBuffer.Start,
+ pI810->BackBuffer.Size, DRM_AGP, 0,
+ &pI810DRI->backbuffer) < 0) {
+ ErrorF("drmAddMap(backbuffer) failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+
+ pI810DRI->depthbufferSize = pI810->DepthBuffer.Size;
+ if (drmAddMap(pI810->drmSubFD, (drmHandle)pI810->DepthBuffer.Start,
+ pI810->DepthBuffer.Size, DRM_AGP, 0,
+ &pI810DRI->depthbuffer) < 0) {
+ ErrorF("drmAddMap(depthbuffer) failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+
+ /* Allocate FrontBuffer etc. */
+ I810AllocateFront(pScrn);
+
+ /* Allocate buffer memory */
+ I810AllocHigh( &(pI810->BufferMem), &(pI810->SysMem),
+ I810_DMA_BUF_NR * I810_DMA_BUF_SZ);
+
+ if(drmAddMap(pI810->drmSubFD, (drmHandle)pI810->BufferMem.Start,
+ pI810->BufferMem.Size, DRM_AGP, 0,
+ &pI810->buffer_map) < 0) {
+ ErrorF("drmAddMap(buffer_map) failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
-#if 0
- if((bufs = drmAddBufs(pI810->drmSubFD,
- 63,
- 65536,
- DRM_AGP_BUFFER)) <= 0) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] failure adding %d %d byte DMA buffers\n",
- 63,
- 65536);
+ pI810DRI->agp_buffers = pI810->buffer_map;
+ pI810DRI->agp_buf_size = pI810->BufferMem.Size;
+
+ if (drmAddMap(pI810->drmSubFD, (drmHandle)pI810->LpRing.mem.Start,
+ pI810->LpRing.mem.Size, DRM_AGP, 0,
+ &pI810->ring_map) < 0) {
+ ErrorF("drmAddMap(ring_map) failed\n");
DRICloseScreen(pScreen);
return FALSE;
}
+
+ /* Use the rest of memory for textures. */
+ pI810DRI->textureSize = pI810->SysMem.Size;
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] added %d %d byte DMA buffers\n",
- bufs, 65536);
- if (!(pI810DRI->drmBufs = drmMapBufs(pI810->drmSubFD))) {
+ i = mylog2(pI810DRI->textureSize / I810_NR_TEX_REGIONS);
+
+ if (i < I810_LOG_MIN_TEX_REGION_SIZE)
+ i = I810_LOG_MIN_TEX_REGION_SIZE;
+
+ pI810DRI->logTextureGranularity = i;
+ pI810DRI->textureSize = (pI810DRI->textureSize >> i) << i; /* truncate */
+
+
+ if(pI810DRI->textureSize < 512*1024) {
+ ErrorF("Less then 512k for textures\n");
+ DRICloseScreen(pScreen);
+ }
+
+ I810AllocLow( &(pI810->TexMem), &(pI810->SysMem),
+ pI810DRI->textureSize);
+
+
+ if (drmAddMap(pI810->drmSubFD, (drmHandle)pI810->TexMem.Start,
+ pI810->TexMem.Size, DRM_AGP, 0,
+ &pI810DRI->textures) < 0) {
+ ErrorF("drmAddMap(textures) failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+
+ if((bufs = drmAddBufs(pI810->drmSubFD,
+ I810_DMA_BUF_NR,
+ I810_DMA_BUF_SZ,
+ DRM_AGP_BUFFER, pI810->BufferMem.Start)) <= 0) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] failure mapping DMA buffers\n");
+ "[drm] failure adding %d %d byte DMA buffers\n",
+ I810_DMA_BUF_NR,
+ I810_DMA_BUF_SZ);
DRICloseScreen(pScreen);
return FALSE;
}
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] buffers mapped with %p\n",
- pI810DRI->drmBufs);
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] %d DMA buffers mapped\n",
- pI810DRI->drmBufs->count);
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] added %d %d byte DMA buffers\n",
+ bufs, I810_DMA_BUF_SZ);
+
+ I810drmInitDma(pScrn);
+
+ /* Okay now initialize the dma engine */
if (!pI810DRI->irq) {
pI810DRI->irq = drmGetInterruptFromBusID(pI810->drmSubFD,
@@ -434,42 +662,92 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
->thisCard)->devnum,
((pciConfigPtr)pI810->PciInfo
->thisCard)->funcnum);
+ if((drmCtlInstHandler(pI810->drmSubFD, pI810DRI->irq)) != 0) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "[drm] failure adding irq handler, there is a device "
+ "already using that irq\n Consider rearranging your "
+ "PCI cards\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
}
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"[drm] dma control initialized, using IRQ %d\n",
pI810DRI->irq);
-#endif
+ pI810DRI=(I810DRIPtr)pI810->pDRIInfo->devPrivate;
+ pI810DRI->deviceID=pI810->PciInfo->chipType;
+ pI810DRI->width=pScrn->virtualX;
+ pI810DRI->height=pScrn->virtualY;
+ pI810DRI->mem=pScrn->videoRam*1024;
+ pI810DRI->cpp=pI810->cpp;
+
+ pI810DRI->fbOffset=pI810->FrontBuffer.Start;
+ pI810DRI->fbStride=pI810->auxPitch;
+
+ pI810DRI->bitsPerPixel = pScrn->bitsPerPixel;
+
+
+ pI810DRI->textureOffset=pI810->TexMem.Start;
+
+ pI810DRI->backOffset=pI810->BackBuffer.Start;
+ pI810DRI->depthOffset=pI810->DepthBuffer.Start;
+
+ pI810DRI->ringOffset=pI810->LpRing.mem.Start;
+ pI810DRI->ringSize=pI810->LpRing.mem.Size;
+
+ pI810DRI->auxPitch = pI810->auxPitch;
+ pI810DRI->auxPitchBits = pI810->auxPitchBits;
if (!(I810InitVisualConfigs(pScreen))) {
ErrorF("I810InitVisualConfigs failed\n");
DRICloseScreen(pScreen);
return FALSE;
}
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "visual configs initialized\n" );
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "visual configs initialized\n" );
+ pI810->pDRIInfo->driverSwapMethod = DRI_HIDE_X_CONTEXT;
+
return TRUE;
}
void
I810DRICloseScreen(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- I810Ptr pI810 = I810PTR(pScrn);
-
- DRICloseScreen(pScreen);
-
- if (pI810->pDRIInfo) {
- if (pI810->pDRIInfo->devPrivate) {
- xfree(pI810->pDRIInfo->devPrivate);
- pI810->pDRIInfo->devPrivate=0;
- }
- DRIDestroyInfoRec(pI810->pDRIInfo);
- pI810->pDRIInfo=0;
- }
- if (pI810->pVisualConfigs) xfree(pI810->pVisualConfigs);
- if (pI810->pVisualConfigsPriv) xfree(pI810->pVisualConfigsPriv);
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ I810Ptr pI810 = I810PTR(pScrn);
+
+ I810drmCleanupDma(pScrn);
+
+ if(pI810->dcacheHandle) drmAgpFree(pI810->drmSubFD, pI810->dcacheHandle);
+ if(pI810->backHandle) drmAgpFree(pI810->drmSubFD, pI810->backHandle);
+ if(pI810->zHandle) drmAgpFree(pI810->drmSubFD, pI810->zHandle);
+ if(pI810->cursorHandle) drmAgpFree(pI810->drmSubFD, pI810->cursorHandle);
+ if(pI810->sysmemHandle) drmAgpFree(pI810->drmSubFD, pI810->sysmemHandle);
+
+ if(pI810->agpAcquired == TRUE) drmAgpRelease(pI810->drmSubFD);
+
+ pI810->backHandle = 0;
+ pI810->zHandle = 0;
+ pI810->cursorHandle = 0;
+ pI810->sysmemHandle = 0;
+ pI810->agpAcquired = FALSE;
+ pI810->dcacheHandle = 0;
+
+
+ DRICloseScreen(pScreen);
+
+ if (pI810->pDRIInfo) {
+ if (pI810->pDRIInfo->devPrivate) {
+ xfree(pI810->pDRIInfo->devPrivate);
+ pI810->pDRIInfo->devPrivate=0;
+ }
+ DRIDestroyInfoRec(pI810->pDRIInfo);
+ pI810->pDRIInfo=0;
+ }
+ if (pI810->pVisualConfigs) xfree(pI810->pVisualConfigs);
+ if (pI810->pVisualConfigsPriv) xfree(pI810->pVisualConfigsPriv);
}
static Bool
@@ -477,75 +755,24 @@ I810CreateContext(ScreenPtr pScreen, VisualPtr visual,
drmContext hwContext, void *pVisualConfigPriv,
DRIContextType contextStore)
{
- I810DRIContextPtr ctx;
-
- ctx=(I810DRIContextPtr)contextStore;
- return TRUE;
+ return TRUE;
}
static void
I810DestroyContext(ScreenPtr pScreen, drmContext hwContext,
DRIContextType contextStore)
{
- I810DRIContextPtr ctx;
- ctx=(I810DRIContextPtr)contextStore;
}
-static unsigned int mylog2(unsigned int n)
-{
- unsigned int log2 = 0;
- while (n>1) n >>= 1, log2++;
- return log2;
-}
Bool
I810DRIFinishScreenInit(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- I810Ptr pI810 = I810PTR(pScrn);
- I810DRIPtr pI810DRI = (I810DRIPtr) pI810->pDRIInfo->devPrivate;
- I810SAREAPriv *sPriv = (I810SAREAPriv *)DRIGetSAREAPrivate(pScreen);
- int i;
-
- pI810->pDRIInfo->driverSwapMethod = DRI_HIDE_X_CONTEXT;
-
- pI810DRI->deviceID=pI810->PciInfo->chipType;
- pI810DRI->width=pScrn->virtualX;
- pI810DRI->height=pScrn->virtualY;
- pI810DRI->mem=pScrn->videoRam*1024;
- pI810DRI->cpp=pI810->cpp;
- pI810DRI->fbOffset=pI810->FrontBuffer.Start;
- pI810DRI->fbStride=pI810->auxPitch;
- pI810DRI->bitsPerPixel = pScrn->bitsPerPixel;
- pI810DRI->textureOffset=pI810->TexMem.Start;
- pI810DRI->textureSize=pI810->TexMem.Size;
- pI810DRI->backOffset=pI810->BackBuffer.Start;
- pI810DRI->depthOffset=pI810->DepthBuffer.Start;
- pI810DRI->ringOffset=pI810->LpRing.mem.Start;
- pI810DRI->ringSize=pI810->LpRing.mem.Size;
- pI810DRI->auxPitch = pI810->auxPitch;
- pI810DRI->auxPitchBits = pI810->auxPitchBits;
-
-
-#define I810_LOG_MIN_TEX_REGION_SIZE 18
-
- i = mylog2(pI810DRI->textureSize / I810_NR_TEX_REGIONS);
-
- if (i < I810_LOG_MIN_TEX_REGION_SIZE)
- i = I810_LOG_MIN_TEX_REGION_SIZE;
-
- pI810DRI->logTextureGranularity = i;
- pI810DRI->textureSize = (pI810DRI->textureSize >> i) << i; /* truncate */
-
- ErrorF( "texture granularity: 0x%x size: 0x%x\n",
- (1<<i), pI810DRI->textureSize );
-
+ drm_i810_sarea_t *sPriv = (drm_i810_sarea_t *)DRIGetSAREAPrivate(pScreen);
xf86memset( sPriv, 0, sizeof(sPriv) );
-
return DRIFinishScreenInit(pScreen);
}
-
void
I810DRISwapContext(ScreenPtr pScreen, DRISyncType syncType,
DRIContextType oldContextType, void *oldContext,
@@ -735,8 +962,8 @@ I810DRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg,
int w = pbox->x2 - x1 + 1;
int h = pbox->y2 - y1 + 1;
- if ( destx < 0 ) w += destx, destx = 0;
- if ( desty < 0 ) h += desty, desty = 0;
+ if ( destx < 0 ) x1 -= destx, w += destx, destx = 0;
+ if ( desty < 0 ) y1 -= desty, h += desty, desty = 0;
if ( destx + w > screenwidth ) w = screenwidth - destx;
if ( desty + h > screenheight ) h = screenheight - desty;
if ( w <= 0 ) continue;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h
index fcfca517a..e593f36b2 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h
@@ -1,10 +1,10 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h,v 1.1 2000/02/11 17:25:52 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h,v 1.2 2000/03/02 16:07:49 martin Exp $ */
#ifndef _I810_DRI_
#define _I810_DRI_
#include <xf86drm.h>
-#include "i810_sarea.h"
+#include "i810_drm_public.h"
#define I810_MAX_DRAWABLES 256
@@ -12,6 +12,19 @@ typedef struct {
drmHandle regs;
drmSize regsSize;
drmAddress regsMap;
+
+ drmSize backbufferSize;
+ drmHandle backbuffer;
+
+ drmSize depthbufferSize;
+ drmHandle depthbuffer;
+
+ drmHandle textures;
+ int textureSize;
+
+ drmHandle agp_buffers;
+ drmSize agp_buf_size;
+
int deviceID;
int width;
int height;
@@ -29,7 +42,6 @@ typedef struct {
int logTextureGranularity;
int textureOffset;
- int textureSize;
/* For non-dma direct rendering.
*/
@@ -41,8 +53,6 @@ typedef struct {
} I810DRIRec, *I810DRIPtr;
-
-
typedef struct {
/* Nothing here yet */
int dummy;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dripriv.h b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dripriv.h
new file mode 100644
index 000000000..b4bbab133
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dripriv.h
@@ -0,0 +1,24 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dripriv.h,v 1.1 2000/03/02 16:07:50 martin Exp $ */
+
+#ifndef _I810_DRIPRIV_H_
+#define _I810_DRIPRIV_H_
+
+#define I810_MAX_DRAWABLES 256
+
+extern void GlxSetVisualConfigs(
+ int nconfigs,
+ __GLXvisualConfig *configs,
+ void **configprivs
+);
+
+typedef struct {
+ /* Nothing here yet */
+ int dummy;
+} I810ConfigPrivRec, *I810ConfigPrivPtr;
+
+typedef struct {
+ /* Nothing here yet */
+ int dummy;
+} I810DRIContextRec, *I810DRIContextPtr;
+
+#endif
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
index 34f108089..e489d17c9 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v 1.3 2000/02/21 19:23:03 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v 1.7 2000/03/02 16:07:50 martin Exp $ */
/*
* Authors:
* Keith Whitwell <keithw@precisioninsight.com>
*
- * $PI$
*/
/*
@@ -83,7 +82,7 @@ static Bool I810ScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv);
static Bool I810EnterVT(int scrnIndex, int flags);
static void I810LeaveVT(int scrnIndex, int flags);
static Bool I810CloseScreen(int scrnIndex, ScreenPtr pScreen);
-static Bool I810SaveScreen(ScreenPtr pScreen, int mode);
+static Bool I810SaveScreen(ScreenPtr pScreen, Bool unblank);
static Bool I810SwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
static void I810AdjustFrame(int scrnIndex, int x, int y, int flags);
static void I810FreeScreen(int scrnIndex, int flags);
@@ -255,25 +254,6 @@ static const char *driSymbols[] = {
#endif
-#ifdef XF86DRI
-static int i810_pitches[] = {
- 512,
- 1024,
- 2048,
- 4096,
- 0
-};
-
-static int i810_pitch_flags[] = {
- 0x0,
- 0x1,
- 0x2,
- 0x3,
- 0
-};
-#endif
-
-
#ifndef I810_DEBUG
int I810_DEBUG = (0
/* | DEBUG_ALWAYS_SYNC */
@@ -287,7 +267,15 @@ int I810_DEBUG = (0
);
#endif
-
+#ifdef XF86DRI
+static int i810_pitches[] = {
+ 512,
+ 1024,
+ 2048,
+ 4096,
+ 0
+};
+#endif
#ifdef XFree86LOADER
@@ -312,12 +300,12 @@ XF86ModuleData i810ModuleData = {&i810VersRec, i810Setup, 0};
static pointer
i810Setup(pointer module, pointer opts, int *errmaj, int *errmin)
{
- static Bool setupDone = FALSE;
+ static Bool setupDone = 0;
/* This module should be loaded only once, but check to be sure.
*/
if (!setupDone) {
- setupDone = TRUE;
+ setupDone = 1;
xf86AddDriver(&I810, module, 0);
/*
@@ -399,7 +387,7 @@ static Bool
I810Probe(DriverPtr drv, int flags) {
int i, numUsed, numDevSections, *usedChips;
GDevPtr *devSections;
- Bool foundScreen = FALSE;
+ Bool foundScreen = 0;
EntityInfoPtr pEnt;
/*
@@ -549,12 +537,6 @@ I810PreInit(ScrnInfoPtr pScrn, int flags) {
hwp = VGAHWPTR(pScrn);
pI810->cpp = pScrn->bitsPerPixel/8;
- ErrorF( "Depth %d BitsPerPixel %d cpp %d\n",
- pScrn->depth,
- pScrn->bitsPerPixel,
- pI810->cpp);
-
-
/* Process the options */
xf86CollectOptions(pScrn, NULL);
xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, I810Options);
@@ -661,7 +643,9 @@ I810PreInit(ScrnInfoPtr pScrn, int flags) {
xf86DrvMsg(pScrn->scrnIndex, from, "Will alloc AGP framebuffer: %d kByte\n",
pScrn->videoRam);
- pI810->FbMapSize = pScrn->videoRam*1024 + (4096*1024) + (4096);
+ /* Since we always want write combining on first 32 mb of framebuffer
+ * we pass a mapsize of 32 mb */
+ pI810->FbMapSize = 32*1024*1024;
/*
* If the driver can do gamma correction, it should call xf86SetGamma()
@@ -806,7 +790,7 @@ I810PreInit(ScrnInfoPtr pScrn, int flags) {
return TRUE;
}
-static Bool
+static Bool
I810MapMMIO(ScrnInfoPtr pScrn)
{
int mmioFlags;
@@ -919,6 +903,7 @@ DoSave(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, I810RegPtr i810Reg, Bool saveFonts)
{
I810Ptr pI810;
vgaHWPtr hwp;
+ int i;
pI810 = I810PTR(pScrn);
hwp = VGAHWPTR(pScrn);
@@ -958,11 +943,8 @@ DoSave(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, I810RegPtr i810Reg, Bool saveFonts)
i810Reg->DisplayControl = INREG8(DISPLAY_CNTL);
i810Reg->LMI_FIFO_Watermark = INREG(FWATER_BLC);
- i810Reg->IntrHwStatMask = INREG16(HWSTAM);
- i810Reg->IntrEnabled = INREG16(IER);
- i810Reg->IntrIdentity = INREG16(IIR);
- i810Reg->IntrMask = INREG16(IMR);
- i810Reg->ErrorMask = INREG16(EMR);
+ for (i = 0 ; i < 8 ; i++)
+ i810Reg->Fence[i] = INREG(FENCE+i*4);
i810Reg->LprbTail = INREG(LP_RING + RING_TAIL);
i810Reg->LprbHead = INREG(LP_RING + RING_HEAD);
@@ -1048,11 +1030,6 @@ static void i810PrintMode( vgaRegPtr vgaReg, I810RegPtr mode )
ErrorF(" LprbHead: %x\n", mode->LprbHead);
ErrorF(" LprbStart: %x\n", mode->LprbStart);
ErrorF(" LprbLen: %x\n", mode->LprbLen);
- ErrorF(" IntrHwStatMask: %x\n", mode->IntrHwStatMask);
- ErrorF(" IntrEnabled: %x\n", mode->IntrEnabled);
- ErrorF(" IntrIdentity: %x\n", mode->IntrIdentity);
- ErrorF(" IntrMask: %x\n", mode->IntrMask);
- ErrorF(" ErrorMask: %x\n", mode->ErrorMask);
}
@@ -1064,8 +1041,8 @@ DoRestore(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, I810RegPtr i810Reg,
I810Ptr pI810;
vgaHWPtr hwp;
unsigned char temp;
- unsigned short stemp;
unsigned int itemp;
+ int i;
pI810 = I810PTR(pScrn);
hwp = VGAHWPTR(pScrn);
@@ -1176,30 +1153,9 @@ DoRestore(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, I810RegPtr i810Reg,
temp &= ~DISPLAY_COLOR_MODE;
temp |= i810Reg->PixelPipeCfg1;
OUTREG8( PIXPIPE_CONFIG_1, temp );
-
- stemp = INREG16(HWSTAM);
- stemp &= INTR_RESERVED;
- stemp |= i810Reg->IntrHwStatMask;
- OUTREG16(HWSTAM, stemp);
-
- stemp = INREG16(IER);
- stemp &= INTR_RESERVED;
- stemp |= i810Reg->IntrEnabled;
- OUTREG16(IER, stemp);
-
- stemp = INREG16(IMR);
- stemp &= INTR_RESERVED;
- stemp |= i810Reg->IntrMask;
- OUTREG16(IMR, stemp);
-
+
OUTREG16(EIR, 0);
- stemp = INREG16(EMR);
- stemp &= ERROR_RESERVED;
- stemp |= i810Reg->ErrorMask;
- OUTREG16(EMR, stemp);
-
-
itemp = INREG(FWATER_BLC);
itemp &= ~(LM_BURST_LENGTH | LM_FIFO_WATERMARK |
MM_BURST_LENGTH | MM_FIFO_WATERMARK );
@@ -1207,6 +1163,12 @@ DoRestore(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, I810RegPtr i810Reg,
OUTREG(FWATER_BLC, itemp);
+ for (i = 0 ; i < 8 ; i++) {
+ OUTREG( FENCE+i*4, i810Reg->Fence[i] );
+ if (I810_DEBUG & DEBUG_VERBOSE_VGA)
+ ErrorF("Fence Register : %x\n", i810Reg->Fence[i]);
+ }
+
/* First disable the ring buffer (Need to wait for empty first?, if so
* should probably do it before entering this section)
*/
@@ -1345,7 +1307,6 @@ I810CalcVCLK( ScrnInfoPtr pScrn, double freq )
m_best, n_best, p_best);
}
-
static Bool
I810SetMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
{
@@ -1354,9 +1315,6 @@ I810SetMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
vgaRegPtr pVga = &VGAHWPTR(pScrn)->ModeReg;
double dclk = mode->Clock/1000.0;
- ErrorF("I810SetMode, depth %d displayWidth %d\n",
- pScrn->depth, pScrn->displayWidth);
-
switch (pScrn->depth) {
case 8:
pVga->CRTC[0x13] = pScrn->displayWidth >> 3;
@@ -1446,13 +1404,6 @@ I810SetMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
/* Calculate the FIFO Watermark and Burst Length. */
i810Reg->LMI_FIFO_Watermark = I810CalcWatermark(pScrn, dclk, FALSE);
-
- i810Reg->IntrHwStatMask = ~INTR_RESERVED;
- i810Reg->IntrEnabled = 0x0000;
- i810Reg->IntrIdentity = 0x0000;
- i810Reg->IntrMask = ~INTR_RESERVED; /* unmask all interrupts */
-
- i810Reg->ErrorMask = 0;
/* Setup the ring buffer */
i810Reg->LprbTail = 0;
@@ -1500,7 +1451,7 @@ I810ModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
#ifdef XF86DRI
if (pI810->directRenderingEnabled) {
- DRILock(screenInfo.screens[pScrn->scrnIndex]);
+ DRILock(screenInfo.screens[pScrn->scrnIndex], 0);
pI810->LockHeld = 1;
}
#endif
@@ -1570,8 +1521,59 @@ I810LoadPalette24(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
}
}
+Bool
+I810AllocateFront(ScrnInfoPtr pScrn) {
+ I810Ptr pI810 = I810PTR(pScrn);
+
+ if(pI810->DoneFrontAlloc)
+ return TRUE;
+
+ xf86memset(&(pI810->FbMemBox), 0, sizeof(BoxRec));
+ /* Alloc FrontBuffer/Ring/Accel memory */
+ pI810->FbMemBox.x1=0;
+ pI810->FbMemBox.x2=pScrn->displayWidth;
+ pI810->FbMemBox.y1=0;
+ pI810->FbMemBox.y2=pScrn->virtualY;
+
+ /* Make sure there is room for pixcache either beside or below
+ * the screen.
+ */
+ if (pScrn->displayWidth < pScrn->virtualX + 64)
+ pI810->FbMemBox.y2 += 64;
+
+ /* Reserve room for the framebuffer and pixcache. Put at the top
+ * of memory so we can have nice alignment for the tiled regions at
+ * the start of memory.
+ */
+ I810AllocLow( &(pI810->FrontBuffer),
+ &(pI810->SysMem),
+ ((pI810->FbMemBox.x2 *
+ pI810->FbMemBox.y2 *
+ pI810->cpp) + 4095) & ~4095);
+
+ xf86memset( &(pI810->LpRing), 0, sizeof( I810RingBuffer ) );
+ if(I810AllocLow( &(pI810->LpRing.mem), &(pI810->SysMem), 16*4096 )) {
+ if (I810_DEBUG & DEBUG_VERBOSE_MEMORY)
+ ErrorF( "ring buffer at local %lx\n",
+ pI810->LpRing.mem.Start);
+ pI810->LpRing.tail_mask = pI810->LpRing.mem.Size - 1;
+ pI810->LpRing.virtual_start = pI810->FbBase + pI810->LpRing.mem.Start;
+ pI810->LpRing.head = 0;
+ pI810->LpRing.tail = 0;
+ pI810->LpRing.space = 0;
+ }
+
+ if ( I810AllocLow( &pI810->Scratch, &(pI810->SysMem), 64*1024 ) ||
+ I810AllocLow( &pI810->Scratch, &(pI810->SysMem), 16*1024 ) ) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Allocated Scratch Memory\n");
+ }
+
+ pI810->DoneFrontAlloc = TRUE;
+ return TRUE;
+}
static Bool
I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
@@ -1579,7 +1581,6 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
vgaHWPtr hwp;
I810Ptr pI810;
VisualPtr visual;
- BoxRec MemBox;
pScrn = xf86Screens[pScreen->myNum];
pI810 = I810PTR(pScrn);
@@ -1592,29 +1593,41 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
if (!miSetVisualTypes(pScrn->depth, miGetDefaultVisualMask(pScrn->depth),
pScrn->rgbBits, pScrn->defaultVisual))
return FALSE;
+
+ {
+ I810RegPtr i810Reg = &pI810->ModeReg;
+ int i;
+
+ for (i = 0 ; i < 8 ; i++)
+ i810Reg->Fence[i] = 0;
+ }
/* Have to init the DRM earlier than in other drivers to get agp
* memory. Wonder if this is going to be a problem...
*/
-
#ifdef XF86DRI
/*
* Setup DRI after visuals have been established, but before cfbScreenInit
* is called. cfbScreenInit will eventually call into the drivers
* InitGLXVisuals call back.
*/
- pI810->directRenderingEnabled = I810DRIScreenInit(pScreen);
-#else
- if (!I810AllocateGARTMemory( pScrn )) {
- return FALSE;
+
+ if (!xf86ReturnOptValBool(I810Options, OPTION_NOACCEL, FALSE)) {
+ pI810->directRenderingEnabled = I810DRIScreenInit(pScreen);
+ } else {
+ pI810->directRenderingEnabled = FALSE;
}
+
+#else
+ if (!I810AllocateGARTMemory( pScrn ))
+ return FALSE;
+ I810AllocateFront(pScrn);
#endif
-
+
if (!I810MapMem(pScrn)) return FALSE;
-
pScrn->memPhysBase = (int)pI810->FbBase;
pScrn->fbOffset = 0;
@@ -1625,10 +1638,9 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
I810Save(pScrn);
if (!I810ModeInit(pScrn, pScrn->currentMode)) return FALSE;
- I810SaveScreen(pScreen, SCREEN_SAVER_ON);
+ I810SaveScreen(pScreen, FALSE);
I810AdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
-
switch (pScrn->bitsPerPixel) {
case 8:
if (!cfbScreenInit(pScreen, pI810->FbBase + pScrn->fbOffset,
@@ -1711,76 +1723,34 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn, &ptr);
if (n) {
xf86XVScreenInit(pScreen, ptr, n);
}
}
#endif
-
-
- MemBox.x1=0;
- MemBox.x2=pScrn->displayWidth;
- MemBox.y1=0;
- MemBox.y2=pScrn->virtualY;
-
- /* Make sure there is room for pixcache either beside or below
- * the screen.
- */
- if (pScrn->displayWidth < pScrn->virtualX + 64)
- MemBox.y2 += 64;
-
-
- /* Reserve room for the framebuffer and pixcache. Put at the start
- * of memory because it's difficult to put it anywhere else.
- */
- I810AllocLow( &(pI810->FrontBuffer),
- &(pI810->SysMem),
- ((MemBox.x2 * MemBox.y2 * pI810->cpp) + 4095) & ~4095);
-
-
- ErrorF("Framebuffer 0x%x, size 0x%x\n",
- pI810->FrontBuffer.Start,
- pI810->FrontBuffer.Size);
+#ifdef XF86DRI
+ if (!pI810->directRenderingEnabled) {
+ pI810->DoneFrontAlloc = FALSE;
+ if (!I810AllocateGARTMemory( pScrn ))
+ return FALSE;
+ I810AllocateFront(pScrn);
+ }
+#endif
- ErrorF("DisplayWidth %d, virtualX %d\n",
- pScrn->displayWidth,
- pScrn->virtualX);
-
-
- if (!xf86InitFBManager(pScreen, &MemBox)) {
+ if (!xf86InitFBManager(pScreen, &(pI810->FbMemBox))) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Failed to init memory manager\n");
return FALSE;
}
-
-
- xf86memset( &(pI810->LpRing), 0, sizeof( I810RingBuffer ) );
-
if (!xf86ReturnOptValBool(I810Options, OPTION_NOACCEL, FALSE)) {
- if (
-#ifdef XF86DRI
- I810AllocLow( &(pI810->LpRing.mem), &(pI810->SysMem), 64*4096 ) ||
-#endif
- I810AllocLow( &(pI810->LpRing.mem), &(pI810->SysMem), 4096 )
- ) {
-
- if (I810_DEBUG & DEBUG_VERBOSE_MEMORY)
- ErrorF( "ring buffer at local %lx\n",
- pI810->LpRing.mem.Start);
-
- pI810->LpRing.tail_mask = pI810->LpRing.mem.Size - 1;
- pI810->LpRing.virtual_start = pI810->FbBase + pI810->LpRing.mem.Start;
- pI810->LpRing.head = 0;
- pI810->LpRing.tail = 0;
- pI810->LpRing.space = 0;
-
+ if (pI810->LpRing.mem.Size != 0) {
I810SetRingRegs( pScrn );
-
+
if (!I810AccelInit(pScreen)) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "Hardware acceleration initialization failed\n");
+ "Hardware acceleration initialization failed\n");
}
}
}
@@ -1792,70 +1762,11 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
}
}
-
-#ifdef XF86DRI
-#define Elements(x) sizeof(x)/sizeof(*x)
+#if XF86DRI
if (pI810->LpRing.mem.Start == 0) {
pI810->directRenderingEnabled = 0;
I810DRICloseScreen(pScreen);
}
-
- if (pI810->directRenderingEnabled) {
- int width = MemBox.x2 * pI810->cpp;
- int i;
-
- for (i = 0 ; i < Elements(i810_pitches) ; i++)
- if (width <= i810_pitches[i])
- break;
-
- if (i == Elements(i810_pitches)) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Couldn't find depth/back buffer pitch");
- pI810->directRenderingEnabled = 0;
- I810DRICloseScreen(pScreen);
- }
- else {
- int sz = i810_pitches[i] * pScrn->virtualY;
-
- /* Round to 512K for tiling - potentially wasteful.
- */
- sz += 0x7ffff;
- sz &= ~0x7ffff;
-
- if (I810AllocHigh(&(pI810->BackBuffer), &(pI810->SysMem), sz) &&
- (I810AllocLow(&(pI810->DepthBuffer), &(pI810->DcacheMem), sz) ||
- I810AllocHigh(&(pI810->DepthBuffer), &(pI810->SysMem), sz)))
- {
- /* Set up tiled regions for depth and back buffers.
- */
- if (1) {
- I810SetTiledMemory( pScrn, 1,
- pI810->DepthBuffer.Start,
- i810_pitches[i],
- sz );
-
- I810SetTiledMemory( pScrn, 2,
- pI810->BackBuffer.Start,
- i810_pitches[i],
- sz );
- }
-
- /* Use the rest of memory for textures.
- */
- I810AllocLow( &(pI810->TexMem), &(pI810->SysMem),
- pI810->SysMem.Size);
- pI810->auxPitch = i810_pitches[i];
- pI810->auxPitchBits = i810_pitch_flags[i];
- }
- else
- {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Insufficient memory for back and/or depth buffers\n");
- pI810->directRenderingEnabled = 0;
- I810DRICloseScreen(pScreen);
- }
- }
- }
if (pI810->directRenderingEnabled) {
/* Now that mi, cfb, drm and others have done their thing,
@@ -1863,17 +1774,20 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
*/
pI810->directRenderingEnabled = I810DRIFinishScreenInit(pScreen);
}
-
+#endif
+
if (pI810->directRenderingEnabled) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering: Enabled\n");
} else {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering: Disabled\n");
- if (!I810AllocateGARTMemory( pScrn ))
- return FALSE;
+ if(pI810->agpAcquired2d == TRUE) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering: Disabled\n");
+ }
+ else {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering: Failed\n");
+ return FALSE;
+ }
}
-#endif
-
pScreen->SaveScreen = I810SaveScreen;
pI810->CloseScreen = pScreen->CloseScreen;
pScreen->CloseScreen = I810CloseScreen;
@@ -1938,20 +1852,18 @@ I810AdjustFrame(int scrnIndex, int x, int y, int flags) {
static Bool
I810EnterVT(int scrnIndex, int flags) {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ I810Ptr pI810 = I810PTR(pScrn);
if (I810_DEBUG & DEBUG_VERBOSE_DRI)
ErrorF("\n\n\ENTER VT\n");
#ifdef XF86DRI
- {
- I810Ptr pI810 = I810PTR(pScrn);
- if (pI810->directRenderingEnabled) {
- if (I810_DEBUG & DEBUG_VERBOSE_DRI)
- ErrorF("calling dri unlock\n");
- DRIUnlock( screenInfo.screens[scrnIndex] );
- pI810->LockHeld = 0;
- }
+ if (pI810->directRenderingEnabled) {
+ if (I810_DEBUG & DEBUG_VERBOSE_DRI)
+ ErrorF("calling dri unlock\n");
+ DRIUnlock( screenInfo.screens[scrnIndex] );
+ pI810->LockHeld = 0;
}
#endif
@@ -1976,10 +1888,11 @@ I810LeaveVT(int scrnIndex, int flags) {
if (pI810->directRenderingEnabled) {
if (I810_DEBUG & DEBUG_VERBOSE_DRI)
ErrorF("calling dri lock\n");
- DRILock( screenInfo.screens[scrnIndex] );
+ DRILock( screenInfo.screens[scrnIndex], 0 );
pI810->LockHeld = 1;
}
#endif
+
I810RefreshRing( pScrn );
I810Sync( pScrn );
I810Restore(pScrn);
@@ -1995,13 +1908,7 @@ I810CloseScreen(int scrnIndex, ScreenPtr pScreen)
XAAInfoRecPtr infoPtr = pI810->AccelInfoRec;
-#ifndef XF86DRI
- /* Need to free this here as we are now allocating it in
- * I810ScreenInit() -- the question is will we always be able to
- * get it back...
- */
- I810FreeGARTMemory( pScrn );
-#else
+#ifdef XF86DRI
if (pI810->directRenderingEnabled) {
I810DRICloseScreen(pScreen);
pI810->directRenderingEnabled=FALSE;
@@ -2043,8 +1950,7 @@ I810CloseScreen(int scrnIndex, ScreenPtr pScreen)
static void
I810FreeScreen(int scrnIndex, int flags) {
I810FreeRec(xf86Screens[scrnIndex]);
- if (xf86LoaderCheckSymbol("vgaHWFreeHWRec"))
- vgaHWFreeHWRec(xf86Screens[scrnIndex]);
+ vgaHWFreeHWRec(xf86Screens[scrnIndex]);
}
static int
@@ -2061,9 +1967,9 @@ I810ValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) {
}
static Bool
-I810SaveScreen(ScreenPtr pScreen, Bool mode)
+I810SaveScreen(ScreenPtr pScreen, Bool unblack)
{
- return vgaHWSaveScreen(pScreen, mode);
+ return vgaHWSaveScreen(pScreen, unblack);
}
#ifdef DPMSExtension
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_drm.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_drm.c
new file mode 100644
index 000000000..13f2658e1
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_drm.c
@@ -0,0 +1,59 @@
+#include "xf86.h"
+#include "xf86_OSproc.h"
+#include "xf86Resources.h"
+#include "xf86_ansic.h"
+#include "compiler.h"
+#include "xf86PciInfo.h"
+#include "xf86Pci.h"
+#include "xf86Priv.h"
+#include "i810.h"
+
+#ifndef XFree86LOADER
+#include <sys/stat.h>
+#include <sys/mman.h>
+#endif
+
+#include "xf86drm.h"
+#include "drm.h"
+#include "i810_drm_public.h"
+
+Bool I810drmCleanupDma(ScrnInfoPtr pScrn)
+{
+ I810Ptr pI810 = I810PTR(pScrn);
+ drm_i810_init_t init;
+
+ memset(&init, 0, sizeof(drm_i810_init_t));
+ init.func = I810_CLEANUP_DMA;
+
+ if(ioctl(pI810->drmSubFD, DRM_IOCTL_I810_INIT, &init)) {
+ ErrorF("I810 Dma Cleanup Failed\n");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+Bool I810drmInitDma(ScrnInfoPtr pScrn)
+{
+ I810Ptr pI810 = I810PTR(pScrn);
+ I810RingBuffer *ring = &(pI810->LpRing);
+
+ drm_i810_init_t init;
+
+ memset(&init, 0, sizeof(drm_i810_init_t));
+ init.func = I810_INIT_DMA;
+ init.ring_map_idx = 6;
+ init.buffer_map_idx = 5;
+ init.ring_start = ring->mem.Start;
+ init.ring_end = ring->mem.End;
+ init.ring_size = ring->mem.Size;
+ init.sarea_priv_offset = sizeof(XF86DRISAREARec);
+ ErrorF("I810 Dma Initialization start\n");
+
+ if(ioctl(pI810->drmSubFD, DRM_IOCTL_I810_INIT, &init)) {
+ ErrorF("I810 Dma Initialization Failed\n");
+ return FALSE;
+ }
+ ErrorF("I810 Dma Initialization done\n");
+ return TRUE;
+}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c
index 488ba2bb6..4378e060d 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c
@@ -24,13 +24,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c,v 1.1 2000/02/11 17:25:52 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c,v 1.2 2000/02/23 04:47:16 martin Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
#include "xf86.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c
index 09ce091c2..2cedd9682 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c
@@ -1,3 +1,4 @@
+
/**************************************************************************
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
@@ -29,7 +30,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Authors:
* Keith Whitwell <keithw@precisioninsight.com>
*
- * $PI$
*/
@@ -41,6 +41,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "xf86Priv.h"
#include "xf86_OSlib.h"
+/* #include "xf86_ansic.h" */
+
#include "i810.h"
#include "i810_reg.h"
@@ -87,26 +89,40 @@ int I810AllocateGARTMemory( ScrnInfoPtr pScrn )
int pages = pScrn->videoRam / 4;
I810Ptr pI810 = I810PTR(pScrn);
long tom = 0;
+ int gartfd = -1;
- pI810->gartfd = xf86open("/dev/agpgart", O_RDWR, 0);
+ gartfd = xf86open("/dev/agpgart", O_RDWR, 0);
- if (pI810->gartfd == -1) {
+ if (gartfd == -1) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "unable to open /dev/agpgart\n");
return FALSE;
}
- if (xf86ioctl(pI810->gartfd, AGPIOC_ACQUIRE, 0) != 0) {
+ if (xf86ioctl(gartfd, AGPIOC_ACQUIRE, 0) != 0) {
+ if(pI810->agpAcquired2d == TRUE) {
+ xf86close(gartfd);
+ return TRUE;
+ }
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "AGPIOC_ACQUIRE failed\n");
return FALSE;
}
+ /* This allows the 2d only Xserver to regen */
+ pI810->agpAcquired2d = TRUE;
+ pI810->gartfd = gartfd;
+
if (xf86ioctl(pI810->gartfd, AGPIOC_INFO, &agpinf) != 0) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"error doing xf86ioctl(AGPIOC_INFO)\n");
return FALSE;
}
-
-
+
+ if (agpinf.version.major != 0 ||
+ agpinf.version.minor != 99) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Agp kernel driver version not correct\n");
+ return FALSE;
+ }
/* Treat the gart like video memory - we assume we own all that is
@@ -234,19 +250,21 @@ void I810SetTiledMemory(ScrnInfoPtr pScrn,
unsigned size)
{
I810Ptr pI810 = I810PTR(pScrn);
+ I810RegPtr i810Reg = &pI810->ModeReg;
CARD32 val;
- if (nr > 7) {
+ if (nr < 0 || nr > 7) {
ErrorF("I810SetTiledMemory - fence %d out of range\n", nr);
return;
}
+ i810Reg->Fence[nr] = 0;
+
if (start & ~FENCE_START_MASK) {
ErrorF("I810SetTiledMemory %d: start (%x) is not 512k aligned\n",
nr, start);
return;
}
-
if (start % size) {
ErrorF("I810SetTiledMemory %d: start (%x) is not size (%x) aligned\n",
nr, start, size);
@@ -286,5 +304,5 @@ void I810SetTiledMemory(ScrnInfoPtr pScrn,
return;
}
- OUTREG( FENCE+nr*4, val );
+ i810Reg->Fence[nr] = val;
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h
index 1a21b79b9..db67793ab 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h
@@ -34,7 +34,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Kevin E. Martin <kevin@precisioninsight.com>
*
*
- * $PI$
*/
/* I/O register offsets
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_sarea.h b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_sarea.h
index 3dd0ada84..0f70d3535 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_sarea.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_sarea.h
@@ -1,44 +1,6 @@
#ifndef I810_SAPRIV_H
#define I810_SAPRIV_H
-/* Each region is a minimum of 32k, and there are at most 128 of them.
- */
-#define I810_NR_TEX_REGIONS 128
-
-
-
-typedef struct {
- unsigned char next, prev; /* array indices to form a circular LRU list */
- unsigned char in_use; /* owned by a client, or free? */
- int age; /* tracked by clients to update local LRU's */
-} i810TexRegion;
-
-typedef struct {
- int ringOwner; /* not used */
- int ctxOwner; /* last context to upload state */
-
- /* Maintain an LRU of contiguous regions of texture space. If
- * you think you own a region of texture memory, and it has an age
- * different to the one you set, then you are mistaken and it has
- * been stolen by another client. If texAge hasn't changed, there
- * is no need to walk the list.
- *
- * These regions can be used as a proxy for the fine-grained texture
- * information of other clients - by maintaining them in the same
- * lru which is used to age their own textures, clients have an
- * approximate lru for the whole of global texture space, and can
- * make informed decisions as to which areas to kick out. There is
- * no need to choose whether to kick out your own texture or someone
- * else's - simply eject them all in LRU order.
- */
- i810TexRegion texList[I810_NR_TEX_REGIONS+1]; /* Last element is sentinal */
- int texAge; /* Current age counter */
-
-
- int lastWrap;
- int lastSync;
- int ringAge;
-
-} I810SAREAPriv;
+#include "i810_drm_public.h"
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile
index 15e46b0f3..3150ec756 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile,v 1.31 2000/02/14 06:27:23 martin Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile,v 1.32 2000/02/28 19:53:12 alanh Exp $
XCOMM
XCOMM This is an Imakefile for the MGA driver.
XCOMM
@@ -34,7 +34,7 @@ INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(SERVERSRC)/Xext -I$(XF86SRC)/xf8_32bpp\
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
-I$(XF86SRC)/xf24_32bpp -I$(XF86SRC)/shadowfb -I$(EXTINCSRC) \
- $(DRIINCLUDES)
+ -I$(XF86OSSRC)/vbe $(DRIINCLUDES)
#endif
DEFINES = $(DRIDEFINES)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp
index 334579fd0..87f97e2e0 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp,v 1.10 1999/11/19 13:54:40 hohndel Exp $
-.TH MGA __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp,v 1.13 2000/03/07 01:37:49 dawes Exp $
+.TH MGA __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
mga \- Matrox video driver
.SH SYNOPSIS
@@ -16,7 +16,7 @@ mga \- Matrox video driver
.B mga
is an XFree86 driver for Matrox video cards. The driver is fully
accelerated, and provides support for the following framebuffer depths:
-8, 15, 16, 24, and an 8+24 overlay mode (all chips except G100). All
+8, 15, 16, 24, and an 8+24 overlay mode. All
visual types are supported for depth 8, and both TrueColor and DirectColor
visuals are supported for the other depths except 8+24 mode which supports
PseudoColor, GrayScale and TrueColor. Multi-head configurations
@@ -81,7 +81,9 @@ Enable or disable the HW cursor. Default: on.
.BI "Option ""MGASDRAM"" """ boolean """
Specify whether G100 and G200 cards have SDRAM. The driver attempts to
auto-detect this based on the card's PCI subsystem ID. This option may
-be used to override that auto-detection. Default: auto-detected.
+be used to override that auto-detection. The mga driver is not able to
+auto-detect the prescence SDRAM on secondary heads in multihead configurations.
+Default: auto-detected.
.TP
.BI "Option ""NoAccel"" """ boolean """
Disable or enable acceleration. Default: acceleration is enabled.
@@ -91,7 +93,10 @@ Set clocks to values used by some commercial X-Servers (G100, G200 and G400
only). Default: off.
.TP
.BI "Option ""Overlay""
-Enable 8+24 overlay mode. Only appropriate for depth 24. Default: off.
+Enable 8+24 overlay mode. Only appropriate for depth 24.
+.RB ( Note:
+the G100 is unaccelerated in the 8+24 overlay mode due to a missing
+hardware feature) Default: off.
.TP
.BI "Option ""PciRetry"" """ boolean """
Enable or disable PCI retries. Default: off.
@@ -114,6 +119,10 @@ Default: off.
Enable or disable use of on OS-specific fb interface (and is not supported
on all OSs). See fbdevhw(__drivermansuffix__) for further information.
Default: off.
+.TP
+.BI "Option ""VideoKey"" """ integer """
+This sets the default pixel value for the YUV video overlay key.
+Default: undefined.
.SH "SEE ALSO"
XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
.SH AUTHORS
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h
index ee1e66301..2027171da 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h,v 1.54 2000/02/14 06:27:23 martin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h,v 1.57 2000/02/27 02:50:47 mvojkovi Exp $ */
/*
* MGA Millennium (MGA2064W) functions
*
@@ -200,6 +200,7 @@ typedef struct {
I2CBusPtr I2C;
Bool FBDev;
int colorKey;
+ int videoKey;
int fifoCount;
int Rotate;
MGAFBLayout CurrentLayout;
@@ -217,8 +218,6 @@ typedef struct {
MGADRIServerPrivatePtr DRIServerInfo;
#endif
- Bool timerIsOn;
- Time offTime;
XF86VideoAdaptorPtr adaptor;
} MGARec, *MGAPtr;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c
index 559481f32..6aabc62c3 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c
@@ -43,7 +43,7 @@
* Fixed 32bpp hires 8MB horizontal line glitch at middle right
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c,v 1.140 2000/02/21 19:23:04 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c,v 1.149 2000/03/07 01:37:49 dawes Exp $ */
/*
* This is a first cut at a non-accelerated version to work with the
@@ -77,7 +77,7 @@
#include "xf86DDC.h"
#include "xf86RAC.h"
-#include "xf86int10.h"
+#include "vbe.h"
/*
@@ -215,6 +215,7 @@ typedef enum {
OPTION_COLOR_KEY,
OPTION_SET_MCLK,
OPTION_OVERCLOCK_MEM,
+ OPTION_VIDEO_KEY,
OPTION_ROTATE
} MGAOpts;
@@ -232,6 +233,7 @@ static OptionInfoRec MGAOptions[] = {
{ OPTION_COLOR_KEY, "ColorKey", OPTV_INTEGER, {0}, FALSE },
{ OPTION_SET_MCLK, "SetMclk", OPTV_FREQ, {0}, FALSE },
{ OPTION_OVERCLOCK_MEM, "OverclockMem", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_VIDEO_KEY, "VideoKey", OPTV_INTEGER, {0}, FALSE },
{ OPTION_ROTATE, "Rotate", OPTV_ANYSTR, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
@@ -364,6 +366,12 @@ static const char *shadowSymbols[] = {
NULL
};
+static const char *vbeSymbols[] = {
+ "VBEInit",
+ "vbeDoEDID",
+ NULL
+};
+
static const char *fbdevHWSymbols[] = {
"fbdevHWInit",
"fbdevHWUseBuildinMode",
@@ -436,7 +444,7 @@ mgaSetup(pointer module, pointer opts, int *errmaj, int *errmin)
LoaderRefSymLists(vgahwSymbols, cfbSymbols, xaaSymbols,
xf8_32bppSymbols, ramdacSymbols,
ddcSymbols, i2cSymbols, shadowSymbols,
- fbdevHWSymbols,
+ fbdevHWSymbols, vbeSymbols,
#ifdef XF86DRI
drmSymbols, driSymbols,
#endif
@@ -537,8 +545,6 @@ MGAProbe(DriverPtr drv, int flags)
* data structures.
*/
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE; /* can't detect fbdev yet */
/*
* Check if there has been a chipset override in the config file.
* For this we must find out if there is an active device section which
@@ -583,10 +589,9 @@ MGAProbe(DriverPtr drv, int flags)
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
#ifdef DISABLE_VGA_IO
MgaSavePtr smga;
@@ -766,8 +771,6 @@ MGAReadBios(ScrnInfoPtr pScrn)
ErrorF("Pins[0x%02x] is 0x%02x\n", i,
((unsigned char *)pBios2)[i]);
#endif
- ErrorF("0x20 of Pins[0x34] is %s\n",
- (pBios2->VidCtrl & 0x20) ? "set" : "cleared");
return;
} else {
/* Set default MCLK values (scaled by 10 kHz) */
@@ -924,50 +927,6 @@ MGACountRam(ScrnInfoPtr pScrn)
return SizeFound;
}
-/*
- * GetAccelPitchValues -
- *
- * This function returns a list of display width (pitch) values that can
- * be used in accelerated mode.
- */
-#if 0
-static int *
-GetAccelPitchValues(ScrnInfoPtr pScrn)
-{
- int *linePitches = NULL;
- int i, n = 0;
- MGAPtr pMga = MGAPTR(pScrn);
-
- /* XXX ajv - 512, 576, and 1536 may not be supported
- line pitches. see sdk pp 4-59 for more
- details. Why anyone would want less than 640 is
- bizarre. (maybe lots of pixels tall?) */
-
- /* The only line pitches the accelerator supports */
-#if 0
- int accelWidths[] = { 512, 576, 640, 768, 800, 960,
- 1024, 1152, 1280, 1536, 1600, 1920, 2048, 0 };
-#else
- int accelWidths[] = { 640, 768, 800, 960, 1024, 1152, 1280,
- 1600, 1920, 2048, 0 };
-#endif
-
- for (i = 0; accelWidths[i] != 0; i++) {
- if (accelWidths[i] % pMga->Rounding == 0) {
- n++;
- linePitches = xnfrealloc(linePitches, n * sizeof(int));
- linePitches[n - 1] = accelWidths[i];
- }
- }
- /* Mark the end of the list */
- if (n > 0) {
- linePitches = xnfrealloc(linePitches, (n + 1) * sizeof(int));
- linePitches[n] = 0;
- }
- return linePitches;
-}
-#endif
-
static xf86MonPtr
MGAdoDDC(ScrnInfoPtr pScrn)
{
@@ -1011,7 +970,6 @@ MGAdoDDC(ScrnInfoPtr pScrn)
/* Initialize I2C bus - used by DDC if available */
if (pMga->i2cInit) {
pMga->i2cInit(pScrn);
- ErrorF("I2C initialized on %p\n",pMga->I2C);
}
/* Read and output monitor info using DDC2 over I2C bus */
if (pMga->I2C) {
@@ -1105,6 +1063,18 @@ VgaIOEnable(void *arg)
}
#endif /* DISABLE_VGA_IO */
+extern xf86MonPtr ConfiguredMonitor;
+
+void
+MGAProbeDDC(ScrnInfoPtr pScrn, int index)
+{
+ vbeInfoPtr pVbe;
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ pVbe = VBEInit(NULL,index);
+ ConfiguredMonitor = vbeDoEDID(pVbe);
+ }
+}
+
/* Mandatory */
static Bool
MGAPreInit(ScrnInfoPtr pScrn, int flags)
@@ -1137,6 +1107,23 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
if (pScrn->numEntities != 1)
return FALSE;
+ /* Allocate the MGARec driverPrivate */
+ if (!MGAGetRec(pScrn)) {
+ return FALSE;
+ }
+
+ pMga = MGAPTR(pScrn);
+
+ /* Get the entity, and make sure it is PCI. */
+ pMga->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
+ if (pMga->pEnt->location.type != BUS_PCI)
+ return FALSE;
+
+ if (flags & PROBE_DETECT) {
+ MGAProbeDDC(pScrn, pMga->pEnt->index);
+ return TRUE;
+ }
+
/* The vgahw module should be loaded here when needed */
if (!xf86LoadSubModule(pScrn, "vgahw"))
return FALSE;
@@ -1149,17 +1136,6 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
if (!vgaHWGetHWRec(pScrn))
return FALSE;
- /* Allocate the MGARec driverPrivate */
- if (!MGAGetRec(pScrn)) {
- return FALSE;
- }
- pMga = MGAPTR(pScrn);
-
- /* Get the entity, and make sure it is PCI. */
- pMga->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
- if (pMga->pEnt->location.type != BUS_PCI)
- return FALSE;
-
#if 0
/* This is causing problems with restoring the card to it's
original state. If this is to be done, it needs to happen
@@ -1282,19 +1258,54 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, MGAOptions);
/* Set the bits per RGB for 8bpp mode */
- if (pScrn->depth == 8) {
- /* XXX This is here just to test options. */
- /* Default to 8 */
+ if (pScrn->depth == 8)
pScrn->rgbBits = 8;
-#if 0
- if (xf86GetOptValInteger(MGAOptions, OPTION_RGB_BITS,
- &pScrn->rgbBits)) {
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Bits per RGB set to %d\n",
- pScrn->rgbBits);
- }
-#endif
+
+
+ /*
+ * Set the Chipset and ChipRev, allowing config file entries to
+ * override.
+ */
+ if (pMga->pEnt->device->chipset && *pMga->pEnt->device->chipset) {
+ pScrn->chipset = pMga->pEnt->device->chipset;
+ pMga->Chipset = xf86StringToToken(MGAChipsets, pScrn->chipset);
+ from = X_CONFIG;
+ } else if (pMga->pEnt->device->chipID >= 0) {
+ pMga->Chipset = pMga->pEnt->device->chipID;
+ pScrn->chipset = (char *)xf86TokenToString(MGAChipsets, pMga->Chipset);
+ from = X_CONFIG;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "ChipID override: 0x%04X\n",
+ pMga->Chipset);
+ } else {
+ from = X_PROBED;
+ pMga->Chipset = pMga->PciInfo->chipType;
+ pScrn->chipset = (char *)xf86TokenToString(MGAChipsets, pMga->Chipset);
+ }
+ if (pMga->pEnt->device->chipRev >= 0) {
+ pMga->ChipRev = pMga->pEnt->device->chipRev;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "ChipRev override: %d\n",
+ pMga->ChipRev);
+ } else {
+ pMga->ChipRev = pMga->PciInfo->chipRev;
+ }
+
+ /*
+ * This shouldn't happen because such problems should be caught in
+ * MGAProbe(), but check it just in case.
+ */
+ if (pScrn->chipset == NULL) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "ChipID 0x%04X is not recognised\n", pMga->Chipset);
+ return FALSE;
+ }
+ if (pMga->Chipset < 0) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Chipset \"%s\" is not recognised\n", pScrn->chipset);
+ return FALSE;
}
+ xf86DrvMsg(pScrn->scrnIndex, from, "Chipset: \"%s\"\n", pScrn->chipset);
+
from = X_DEFAULT;
pMga->HWCursor = TRUE;
@@ -1337,10 +1348,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
}
if ((s = xf86GetOptValString(MGAOptions, OPTION_OVERLAY))) {
if (!*s || !xf86NameCmp(s, "8,24") || !xf86NameCmp(s, "24,8")) {
- if(pMga->Chipset == PCI_CHIP_MGAG100) {
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
- "Option \"Overlay\" is not supported by the G100\n");
- } else if(pScrn->bitsPerPixel == 32) {
+ if(pScrn->bitsPerPixel == 32) {
pMga->Overlay8Plus24 = TRUE;
if(!xf86GetOptValInteger(
MGAOptions, OPTION_COLOR_KEY,&(pMga->colorKey)))
@@ -1351,13 +1359,21 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
"PseudoColor overlay enabled\n");
} else {
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
- "Option \"Overlay\" is not supported in this configuration\n");
+ "Option \"Overlay\" is only supported in 32 bits per pixel\n");
}
} else {
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
"\"%s\" is not a valid value for Option \"Overlay\"\n", s);
}
- }
+ }
+ if(xf86GetOptValInteger(MGAOptions, OPTION_VIDEO_KEY, &(pMga->videoKey))) {
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "video key set to 0x%x\n",
+ pMga->videoKey);
+ } else {
+ pMga->videoKey = (1 << pScrn->offset.red) |
+ (1 << pScrn->offset.green) |
+ (((pScrn->mask.blue >> pScrn->offset.blue) - 1) << pScrn->offset.blue);
+ }
if (xf86ReturnOptValBool(MGAOptions, OPTION_SHADOW_FB, FALSE)) {
pMga->ShadowFB = TRUE;
pMga->NoAccel = TRUE;
@@ -1411,51 +1427,6 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
}
}
-
- /*
- * Set the Chipset and ChipRev, allowing config file entries to
- * override.
- */
- if (pMga->pEnt->device->chipset && *pMga->pEnt->device->chipset) {
- pScrn->chipset = pMga->pEnt->device->chipset;
- pMga->Chipset = xf86StringToToken(MGAChipsets, pScrn->chipset);
- from = X_CONFIG;
- } else if (pMga->pEnt->device->chipID >= 0) {
- pMga->Chipset = pMga->pEnt->device->chipID;
- pScrn->chipset = (char *)xf86TokenToString(MGAChipsets, pMga->Chipset);
- from = X_CONFIG;
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "ChipID override: 0x%04X\n",
- pMga->Chipset);
- } else {
- from = X_PROBED;
- pMga->Chipset = pMga->PciInfo->chipType;
- pScrn->chipset = (char *)xf86TokenToString(MGAChipsets, pMga->Chipset);
- }
- if (pMga->pEnt->device->chipRev >= 0) {
- pMga->ChipRev = pMga->pEnt->device->chipRev;
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "ChipRev override: %d\n",
- pMga->ChipRev);
- } else {
- pMga->ChipRev = pMga->PciInfo->chipRev;
- }
-
- /*
- * This shouldn't happen because such problems should be caught in
- * MGAProbe(), but check it just in case.
- */
- if (pScrn->chipset == NULL) {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "ChipID 0x%04X is not recognised\n", pMga->Chipset);
- return FALSE;
- }
- if (pMga->Chipset < 0) {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "Chipset \"%s\" is not recognised\n", pScrn->chipset);
- return FALSE;
- }
-
- xf86DrvMsg(pScrn->scrnIndex, from, "Chipset: \"%s\"\n", pScrn->chipset);
-
if(pMga->HasSDRAM) { /* don't bother checking */ }
else if ((pMga->PciInfo->subsysCard == PCI_CARD_MILL_G200_SD) ||
(pMga->PciInfo->subsysCard == PCI_CARD_MARV_G200_SD) ||
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c
index 88c1784d4..26ee6f8dc 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c,v 1.8 2000/01/18 16:35:51 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c,v 1.12 2000/03/08 01:14:27 mvojkovi Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
@@ -20,7 +20,14 @@
#include "xaalocal.h"
#include "dixstruct.h"
-#define OFF_DELAY 200 /* milliseconds */
+#define OFF_DELAY 200 /* milliseconds */
+#define FREE_DELAY 60000
+
+#define OFF_TIMER 0x01
+#define FREE_TIMER 0x02
+#define CLIENT_VIDEO_ON 0x04
+
+#define TIMER_MASK (OFF_TIMER | FREE_TIMER)
#ifndef XvExtension
void MGAInitVideo(ScreenPtr pScreen) {}
@@ -28,7 +35,7 @@ void MGAResetVideo(ScrnInfoPtr pScrn) {}
#else
static XF86VideoAdaptorPtr MGASetupImageVideoG(ScreenPtr);
-
+static void MGAInitOffscreenImages(ScreenPtr);
static void MGAStopVideoG(ScrnInfoPtr, pointer, Bool);
static int MGASetPortAttributeG(ScrnInfoPtr, Atom, INT32, pointer);
static int MGAGetPortAttributeG(ScrnInfoPtr, Atom ,INT32 *, pointer);
@@ -49,49 +56,55 @@ static Atom xvBrightness, xvContrast, xvColorKey;
void MGAInitVideo(ScreenPtr pScreen)
{
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- XF86VideoAdaptorPtr *adaptors, *newAdaptors;
- XF86VideoAdaptorPtr newAdaptor;
+ XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL;
+ XF86VideoAdaptorPtr newAdaptor = NULL;
MGAPtr pMga = MGAPTR(pScrn);
int num_adaptors;
- Bool freeAdaptors = FALSE;
- num_adaptors = xf86XVListGenericAdaptors(&adaptors);
-
if((pScrn->bitsPerPixel != 8) && !pMga->Overlay8Plus24 &&
((pMga->Chipset == PCI_CHIP_MGAG200) ||
(pMga->Chipset == PCI_CHIP_MGAG200_PCI) ||
(pMga->Chipset == PCI_CHIP_MGAG400)))
{
- if((newAdaptor = MGASetupImageVideoG(pScreen))) {
+ newAdaptor = MGASetupImageVideoG(pScreen);
+ MGAInitOffscreenImages(pScreen);
+ }
- newAdaptors = xalloc((num_adaptors + 1) *
- sizeof(XF86VideoAdaptorPtr*));
- if(newAdaptors) {
- if(num_adaptors)
- memcpy(newAdaptors, adaptors, num_adaptors *
+ num_adaptors = xf86XVListGenericAdaptors(pScrn, &adaptors);
+
+ if(newAdaptor) {
+ if(!num_adaptors) {
+ num_adaptors = 1;
+ adaptors = &newAdaptor;
+ } else {
+ newAdaptors = /* need to free this someplace */
+ xalloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*));
+ if(newAdaptors) {
+ memcpy(newAdaptors, adaptors, num_adaptors *
sizeof(XF86VideoAdaptorPtr));
newAdaptors[num_adaptors] = newAdaptor;
adaptors = newAdaptors;
num_adaptors++;
- freeAdaptors = TRUE;
- }
+ }
}
}
if(num_adaptors)
xf86XVScreenInit(pScreen, adaptors, num_adaptors);
- if(freeAdaptors)
- xfree(adaptors);
+ if(newAdaptors)
+ xfree(newAdaptors);
}
/* client libraries expect an encoding */
static XF86VideoEncodingRec DummyEncoding[1] =
{
+ {
0,
"XV_IMAGE",
1024, 1024,
{1, 1}
+ }
};
#define NUM_FORMATS_G 3
@@ -170,12 +183,18 @@ static XF86ImageRec ImagesG[NUM_IMAGES_G] =
typedef struct {
unsigned char brightness;
unsigned char contrast;
- FBAreaPtr area;
- RegionRec clip;
- CARD32 colorKey;
+ FBAreaPtr area;
+ RegionRec clip;
+ CARD32 colorKey;
+ CARD32 videoStatus;
+ Time offTime;
+ Time freeTime;
} MGAPortPrivRec, *MGAPortPrivPtr;
+#define GET_PORT_PRIVATE(pScrn) \
+ (MGAPortPrivPtr)((MGAPTR(pScrn))->adaptor->pPortPrivates[0].ptr)
+
#define outMGAdreg(reg, val) OUTREG8(RAMDAC_OFFSET + (reg), val)
#define outMGAdac(reg, val) \
(outMGAdreg(MGA1064_INDEX, reg), outMGAdreg(MGA1064_DATA, val))
@@ -210,7 +229,6 @@ MGASetupImageVideoG(ScreenPtr pScreen)
MGAPtr pMga = MGAPTR(pScrn);
XF86VideoAdaptorPtr adapt;
MGAPortPrivPtr pPriv;
- int i;
if(!(adapt = xcalloc(1, sizeof(XF86VideoAdaptorRec) +
sizeof(MGAPortPrivRec) +
@@ -248,11 +266,11 @@ MGASetupImageVideoG(ScreenPtr pScreen)
adapt->PutImage = MGAPutImageG;
adapt->QueryImageAttributes = MGAQueryImageAttributesG;
+ pPriv->colorKey = pMga->videoKey;
+ pPriv->videoStatus = 0;
pPriv->brightness = 0;
pPriv->contrast = 128;
- pPriv->colorKey = (1 << pScrn->offset.red) | (1 << pScrn->offset.green) |
- (((pScrn->mask.blue >> pScrn->offset.blue) - 1) << pScrn->offset.blue);
-
+
/* gotta uninit this someplace */
REGION_INIT(pScreen, &pPriv->clip, NullBox, 0);
@@ -384,13 +402,18 @@ MGAStopVideoG(ScrnInfoPtr pScrn, pointer data, Bool exit)
REGION_EMPTY(pScrn->pScreen, &pPriv->clip);
if(exit) {
- OUTREG(MGAREG_BESCTL, 0);
- pMga->timerIsOn = FALSE;
+ if(pPriv->videoStatus & CLIENT_VIDEO_ON)
+ OUTREG(MGAREG_BESCTL, 0);
+ if(pPriv->area) {
+ xf86FreeOffscreenArea(pPriv->area);
+ pPriv->area = NULL;
+ }
+ pPriv->videoStatus = 0;
} else {
- /* if it's being clipped delay turning off video for a short
- while to avoid flicker */
- pMga->timerIsOn = TRUE;
- pMga->offTime = currentTime.milliseconds + OFF_DELAY;
+ if(pPriv->videoStatus & CLIENT_VIDEO_ON) {
+ pPriv->videoStatus |= OFF_TIMER;
+ pPriv->offTime = currentTime.milliseconds + OFF_DELAY;
+ }
}
}
@@ -440,7 +463,6 @@ MGAGetPortAttributeG(
pointer data
){
MGAPortPrivPtr pPriv = (MGAPortPrivPtr)data;
- MGAPtr pMga = MGAPTR(pScrn);
if(attribute == xvBrightness) {
*value = pPriv->brightness;
@@ -521,6 +543,108 @@ MGACopyMungedData(
}
+static FBAreaPtr
+MGAAllocateMemory(
+ ScrnInfoPtr pScrn,
+ FBAreaPtr area,
+ int numlines
+){
+ ScreenPtr pScreen;
+ FBAreaPtr new_area;
+
+ if(area) {
+ if((area->box.y2 - area->box.y1) >= numlines)
+ return area;
+
+ if(xf86ResizeOffscreenArea(area, pScrn->displayWidth, numlines))
+ return area;
+
+ xf86FreeOffscreenArea(area);
+ }
+
+ pScreen = screenInfo.screens[pScrn->scrnIndex];
+
+ new_area = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth,
+ numlines, 0, NULL, NULL, NULL);
+
+ if(!new_area) {
+ int max_w, max_h;
+
+ xf86QueryLargestOffscreenArea(pScreen, &max_w, &max_h, 0,
+ FAVOR_WIDTH_THEN_AREA, PRIORITY_EXTREME);
+
+ if((max_w < pScrn->displayWidth) || (max_h < numlines))
+ return NULL;
+
+ xf86PurgeUnlockedOffscreenAreas(pScreen);
+ new_area = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth,
+ numlines, 0, NULL, NULL, NULL);
+ }
+
+ return new_area;
+}
+
+static void
+MGADisplayVideo(
+ ScrnInfoPtr pScrn,
+ int id,
+ int offset,
+ short width, short height,
+ int pitch,
+ int x1, int y1, int x2, int y2,
+ BoxPtr dstBox,
+ short src_w, short src_h,
+ short drw_w, short drw_h
+){
+ MGAPtr pMga = MGAPTR(pScrn);
+ int tmp;
+
+ /* got 64 scanlines to do it in */
+ tmp = INREG(MGAREG_VCOUNT) + 64;
+ if(tmp > pScrn->currentMode->VDisplay)
+ tmp -= pScrn->currentMode->VDisplay;
+
+ switch(id) {
+ case 0x59565955:
+ OUTREG(MGAREG_BESGLOBCTL, 0x000000c3 | (tmp << 16));
+ break;
+ case 0x32595559:
+ default:
+ OUTREG(MGAREG_BESGLOBCTL, 0x00000083 | (tmp << 16));
+ break;
+ }
+
+ OUTREG(MGAREG_BESA1ORG, offset);
+
+ if(y1 & 0x00010000)
+ OUTREG(MGAREG_BESCTL, 0x00050c41);
+ else
+ OUTREG(MGAREG_BESCTL, 0x00050c01);
+
+ OUTREG(MGAREG_BESHCOORD, (dstBox->x1 << 16) | (dstBox->x2 - 1));
+ OUTREG(MGAREG_BESVCOORD, (dstBox->y1 << 16) | (dstBox->y2 - 1));
+
+ OUTREG(MGAREG_BESHSRCST, x1 & 0x03fffffc);
+ OUTREG(MGAREG_BESHSRCEND, (x2 - 0x00010000) & 0x03fffffc);
+ OUTREG(MGAREG_BESHSRCLST, (width - 1) << 16);
+
+ OUTREG(MGAREG_BESPITCH, pitch >> 1);
+
+ OUTREG(MGAREG_BESV1WGHT, y1 & 0x0000fffc);
+ OUTREG(MGAREG_BESV1SRCLST, height - 1 - (y1 >> 16));
+
+ tmp = ((src_h - 1) << 16)/drw_h;
+ if(tmp >= (32 << 16))
+ tmp = (32 << 16) - 1;
+ OUTREG(MGAREG_BESVISCAL, tmp & 0x001ffffc);
+
+ tmp = (((src_w - 1) << 16)/drw_w) << 1;
+ if(tmp >= (32 << 16))
+ tmp = (32 << 16) - 1;
+ OUTREG(MGAREG_BESHISCAL, tmp & 0x001ffffc);
+
+}
+
static int
MGAPutImageG(
ScrnInfoPtr pScrn,
@@ -534,14 +658,11 @@ MGAPutImageG(
RegionPtr clipBoxes, pointer data
){
MGAPortPrivPtr pPriv = (MGAPortPrivPtr)data;
- ScreenPtr pScreen = pScrn->pScreen;
MGAPtr pMga = MGAPTR(pScrn);
INT32 x1, x2, y1, y2;
- unsigned char *dst, *src;
unsigned char *dst_start;
- int i, j, pitch, Bpp, new_h, offset, offset2, offset3, visHeight;
- FBAreaPtr area;
- int srcPitch, dstPitch, srcPitch2;
+ int pitch, new_h, offset, offset2, offset3;
+ int srcPitch, srcPitch2, dstPitch;
int top, left, npixels, nlines;
BoxRec dstBox;
CARD32 tmp;
@@ -570,73 +691,36 @@ MGAPutImageG(
dstBox.y1 -= pScrn->frameY0;
dstBox.y2 -= pScrn->frameY0;
- Bpp = pScrn->bitsPerPixel >> 3;
- pitch = Bpp * pScrn->displayWidth;
+ pitch = pScrn->bitsPerPixel * pScrn->displayWidth >> 3;
+
+ dstPitch = ((width << 1) + 15) & ~15;
+ new_h = ((dstPitch * height) + pitch - 1) / pitch;
switch(id) {
case 0x32315659:
- dstPitch = ((width << 1) + 31) & ~31;
srcPitch = (width + 3) & ~3;
offset2 = srcPitch * height;
srcPitch2 = ((width >> 1) + 3) & ~3;
- offset = srcPitch2 * (height >> 1);
- offset3 = offset + offset2;
- offset += offset3;
- new_h = (offset + pitch - 1) / pitch;
+ offset3 = (srcPitch2 * (height >> 1)) + offset2;
break;
case 0x59565955:
case 0x32595559:
default:
srcPitch = (width << 1);
- dstPitch = (srcPitch + 15) & ~15;
- offset = dstPitch * height;
- new_h = (offset + pitch - 1) / pitch;
break;
}
- area = pPriv->area;
-
- /* Allocate offscreen memory */
- if(!area || ((area->box.y2 - area->box.y1) < new_h)) {
- Bool nukeMem = FALSE;
-
- if(!area) {
- if(!(area = xf86AllocateOffscreenArea(pScreen,
- pScrn->displayWidth, new_h, 0, NULL, NULL, NULL)))
- {
- nukeMem = TRUE;
- }
- } else {
- if(!xf86ResizeOffscreenArea(area, pScrn->displayWidth, new_h)) {
- xf86FreeOffscreenArea(area);
- pPriv->area = area = NULL;
- nukeMem = TRUE;
- }
- }
- if(nukeMem) {
- int max_w, max_h;
- xf86QueryLargestOffscreenArea(pScreen, &max_w, &max_h, 0,
- FAVOR_WIDTH_THEN_AREA, PRIORITY_EXTREME);
-
- if((max_w < pScrn->displayWidth) || (max_h < new_h))
- return BadAlloc;
-
- xf86PurgeUnlockedOffscreenAreas(pScreen);
- area = xf86AllocateOffscreenArea(pScreen,
- pScrn->displayWidth, new_h, 0, NULL, NULL, NULL);
- }
+ if(!(pPriv->area = MGAAllocateMemory(pScrn, pPriv->area, new_h)))
+ return BadAlloc;
- pPriv->area = area;
- }
-
/* copy data */
top = y1 >> 16;
left = (x1 >> 16) & ~1;
npixels = ((((x2 + 0xffff) >> 16) + 1) & ~1) - left;
left <<= 1;
- offset = (area->box.y1 * pitch) + (top * dstPitch);
+ offset = (pPriv->area->box.y1 * pitch) + (top * dstPitch);
dst_start = pMga->FbStart + offset + left;
switch(id) {
@@ -668,52 +752,11 @@ MGAPutImageG(
REGION_RECTS(clipBoxes));
}
- /* got 64 scanlines to do it in */
- tmp = INREG(MGAREG_VCOUNT) + 64;
- if(tmp > pScrn->currentMode->VDisplay)
- tmp -= pScrn->currentMode->VDisplay;
-
- switch(id) {
- case 0x59565955:
- OUTREG(MGAREG_BESGLOBCTL, 0x000000c3 | (tmp << 16));
- break;
- case 0x32595559:
- default:
- OUTREG(MGAREG_BESGLOBCTL, 0x00000083 | (tmp << 16));
- break;
- }
-
- OUTREG(MGAREG_BESA1ORG, offset);
- if(y1 & 0x00010000)
- OUTREG(MGAREG_BESCTL, 0x00050c41);
- else
- OUTREG(MGAREG_BESCTL, 0x00050c01);
-
- OUTREG(MGAREG_BESHCOORD, (dstBox.x1 << 16) | (dstBox.x2 - 1));
- OUTREG(MGAREG_BESVCOORD, (dstBox.y1 << 16) | (dstBox.y2 - 1));
-
- OUTREG(MGAREG_BESHSRCST, x1 & 0x03fffffc);
- OUTREG(MGAREG_BESHSRCEND, (x2 - 0x00010000) & 0x03fffffc);
- OUTREG(MGAREG_BESHSRCLST, (width - 1) << 16);
-
- OUTREG(MGAREG_BESPITCH, dstPitch >> 1);
+ MGADisplayVideo(pScrn, id, offset, width, height, dstPitch,
+ x1, y1, x2, y2, &dstBox, src_w, src_h, drw_w, drw_h);
-
- OUTREG(MGAREG_BESV1WGHT, y1 & 0x0000fffc);
- OUTREG(MGAREG_BESV1SRCLST, height - 1 - (y1 >> 16));
-
- tmp = ((src_h - 1) << 16)/drw_h;
- if(tmp >= (32 << 16))
- tmp = (32 << 16) - 1;
- OUTREG(MGAREG_BESVISCAL, tmp & 0x001ffffc);
-
- tmp = (((src_w - 1) << 16)/drw_w) << 1;
- if(tmp >= (32 << 16))
- tmp = (32 << 16) - 1;
- OUTREG(MGAREG_BESHISCAL, tmp & 0x001ffffc);
-
- pMga->timerIsOn = FALSE;
+ pPriv->videoStatus = CLIENT_VIDEO_ON;
return Success;
}
@@ -770,6 +813,7 @@ MGABlockHandler (
ScreenPtr pScreen = screenInfo.screens[i];
ScrnInfoPtr pScrn = xf86Screens[i];
MGAPtr pMga = MGAPTR(pScrn);
+ MGAPortPrivPtr pPriv = GET_PORT_PRIVATE(pScrn);
pScreen->BlockHandler = pMga->BlockHandler;
@@ -777,14 +821,237 @@ MGABlockHandler (
pScreen->BlockHandler = MGABlockHandler;
- if(pMga->timerIsOn) {
+ if(pPriv->videoStatus & TIMER_MASK) {
UpdateCurrentTime();
- if(pMga->offTime < currentTime.milliseconds) {
- pMga->timerIsOn = FALSE;
- OUTREG(MGAREG_BESCTL, 0);
- }
+ if(pPriv->videoStatus & OFF_TIMER) {
+ if(pPriv->offTime < currentTime.milliseconds) {
+ OUTREG(MGAREG_BESCTL, 0);
+ pPriv->videoStatus = FREE_TIMER;
+ pPriv->freeTime = currentTime.milliseconds + FREE_DELAY;
+ }
+ } else { /* FREE_TIMER */
+ if(pPriv->freeTime < currentTime.milliseconds) {
+ if(pPriv->area) {
+ xf86FreeOffscreenArea(pPriv->area);
+ pPriv->area = NULL;
+ }
+ pPriv->videoStatus = 0;
+ }
+ }
+ }
+}
+
+
+/****************** Offscreen stuff ***************/
+
+typedef struct {
+ FBAreaPtr area;
+ Bool isOn;
+} OffscreenPrivRec, * OffscreenPrivPtr;
+
+static int
+MGAAllocateSurface(
+ ScrnInfoPtr pScrn,
+ int id,
+ unsigned short w,
+ unsigned short h,
+ XF86SurfacePtr surface
+){
+ FBAreaPtr area;
+ int pitch, fbpitch, numlines;
+ OffscreenPrivPtr pPriv;
+
+ if((w > 1024) || (h > 1024))
+ return BadAlloc;
+
+ w = (w + 1) & ~1;
+ pitch = ((w << 1) + 15) & ~15;
+ fbpitch = pScrn->bitsPerPixel * pScrn->displayWidth >> 3;
+ numlines = ((pitch * h) + fbpitch - 1) / fbpitch;
+
+ if(!(area = MGAAllocateMemory(pScrn, NULL, numlines)))
+ return BadAlloc;
+
+ surface->width = w;
+ surface->height = h;
+
+ if(!(surface->pitches = xalloc(sizeof(int))))
+ return BadAlloc;
+ if(!(surface->offsets = xalloc(sizeof(int)))) {
+ xfree(surface->pitches);
+ return BadAlloc;
+ }
+ if(!(pPriv = xalloc(sizeof(OffscreenPrivRec)))) {
+ xfree(surface->pitches);
+ xfree(surface->offsets);
+ return BadAlloc;
}
+
+ pPriv->area = area;
+ pPriv->isOn = FALSE;
+
+ surface->pScrn = pScrn;
+ surface->id = id;
+ surface->pitches[0] = pitch;
+ surface->offsets[0] = area->box.y1 * fbpitch;
+ surface->devPrivate.ptr = (pointer)pPriv;
+
+ return Success;
}
+static int
+MGAStopSurface(
+ XF86SurfacePtr surface
+){
+ OffscreenPrivPtr pPriv = (OffscreenPrivPtr)surface->devPrivate.ptr;
+
+ if(pPriv->isOn) {
+ MGAPtr pMga = MGAPTR(surface->pScrn);
+ OUTREG(MGAREG_BESCTL, 0);
+ pPriv->isOn = FALSE;
+ }
+
+ return Success;
+}
+
+
+static int
+MGAFreeSurface(
+ XF86SurfacePtr surface
+){
+ OffscreenPrivPtr pPriv = (OffscreenPrivPtr)surface->devPrivate.ptr;
+
+ if(pPriv->isOn)
+ MGAStopSurface(surface);
+ xf86FreeOffscreenArea(pPriv->area);
+ xfree(surface->pitches);
+ xfree(surface->offsets);
+ xfree(surface->devPrivate.ptr);
+
+ return Success;
+}
+
+static int
+MGAGetSurfaceAttribute(
+ XF86SurfacePtr surface,
+ Atom attribute,
+ INT32 *value
+){
+ return MGAGetPortAttributeG(surface->pScrn, attribute, value,
+ (pointer)(GET_PORT_PRIVATE(surface->pScrn)));
+}
+
+static int
+MGASetSurfaceAttribute(
+ XF86SurfacePtr surface,
+ Atom attribute,
+ INT32 value
+){
+ return MGASetPortAttributeG(surface->pScrn, attribute, value,
+ (pointer)(GET_PORT_PRIVATE(surface->pScrn)));
+}
+
+
+static int
+MGADisplaySurface(
+ XF86SurfacePtr surface,
+ short src_x, short src_y,
+ short drw_x, short drw_y,
+ short src_w, short src_h,
+ short drw_w, short drw_h,
+ RegionPtr clipBoxes
+){
+ OffscreenPrivPtr pPriv = (OffscreenPrivPtr)surface->devPrivate.ptr;
+ ScrnInfoPtr pScrn = surface->pScrn;
+ MGAPortPrivPtr portPriv = GET_PORT_PRIVATE(pScrn);
+ INT32 x1, y1, x2, y2;
+ BoxRec dstBox;
+
+ x1 = src_x;
+ x2 = src_x + src_w;
+ y1 = src_y;
+ y2 = src_y + src_h;
+
+ dstBox.x1 = drw_x;
+ dstBox.x2 = drw_x + drw_w;
+ dstBox.y1 = drw_y;
+ dstBox.y2 = drw_y + drw_h;
+
+ MGAClipVideo(&dstBox, &x1, &x2, &y1, &y2,
+ REGION_EXTENTS(pScreen, clipBoxes),
+ surface->width, surface->height);
+
+ if((x1 >= x2) || (y1 >= y2))
+ return Success;
+
+ dstBox.x1 -= pScrn->frameX0;
+ dstBox.x2 -= pScrn->frameX0;
+ dstBox.y1 -= pScrn->frameY0;
+ dstBox.y2 -= pScrn->frameY0;
+
+ XAAFillSolidRects(pScrn, portPriv->colorKey, GXcopy, ~0,
+ REGION_NUM_RECTS(clipBoxes),
+ REGION_RECTS(clipBoxes));
+
+ MGADisplayVideo(pScrn, surface->id, surface->offsets[0],
+ surface->width, surface->height, surface->pitches[0],
+ x1, y1, x2, y2, &dstBox, src_w, src_h, drw_w, drw_h);
+
+ pPriv->isOn = TRUE;
+ if(portPriv->videoStatus & CLIENT_VIDEO_ON) {
+ REGION_EMPTY(pScrn->pScreen, &portPriv->clip);
+ UpdateCurrentTime();
+ portPriv->videoStatus = FREE_TIMER;
+ portPriv->freeTime = currentTime.milliseconds + FREE_DELAY;
+ }
+
+ return Success;
+}
+
+
+static void
+MGAInitOffscreenImages(ScreenPtr pScreen)
+{
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ MGAPtr pMga = MGAPTR(pScrn);
+ int num = (pMga->Chipset == PCI_CHIP_MGAG400) ? 2 : 1;
+ XF86OffscreenImagePtr offscreenImages;
+
+ /* need to free this someplace */
+ if(!(offscreenImages = xalloc(num * sizeof(XF86OffscreenImageRec))))
+ return;
+
+ offscreenImages[0].image = &ImagesG[0];
+ offscreenImages[0].flags = VIDEO_OVERLAID_IMAGES |
+ VIDEO_CLIP_TO_VIEWPORT;
+ offscreenImages[0].alloc_surface = MGAAllocateSurface;
+ offscreenImages[0].free_surface = MGAFreeSurface;
+ offscreenImages[0].display = MGADisplaySurface;
+ offscreenImages[0].stop = MGAStopSurface;
+ offscreenImages[0].setAttribute = MGASetSurfaceAttribute;
+ offscreenImages[0].getAttribute = MGAGetSurfaceAttribute;
+ offscreenImages[0].max_width = 1024;
+ offscreenImages[0].max_height = 1024;
+ offscreenImages[0].num_attributes = (num == 1) ? 1 : 3;
+ offscreenImages[0].attributes = AttributesG;
+
+ if(num == 2) {
+ offscreenImages[1].image = &ImagesG[2];
+ offscreenImages[1].flags = VIDEO_OVERLAID_IMAGES |
+ VIDEO_CLIP_TO_VIEWPORT;
+ offscreenImages[1].alloc_surface = MGAAllocateSurface;
+ offscreenImages[1].free_surface = MGAFreeSurface;
+ offscreenImages[1].display = MGADisplaySurface;
+ offscreenImages[1].stop = MGAStopSurface;
+ offscreenImages[1].setAttribute = MGASetSurfaceAttribute;
+ offscreenImages[1].getAttribute = MGAGetSurfaceAttribute;
+ offscreenImages[1].max_width = 1024;
+ offscreenImages[1].max_height = 1024;
+ offscreenImages[1].num_attributes = 3;
+ offscreenImages[1].attributes = AttributesG;
+ }
+
+ xf86XVRegisterOffscreenImages(pScreen, offscreenImages, num);
+}
-#endif
+#endif /* !XvExtension */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile
index 79881aad9..fcd378f8a 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile,v 1.3 2000/02/08 13:13:18 eich Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile,v 1.4 2000/03/03 01:05:39 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -33,10 +33,13 @@ ObjectModuleTarget(neomagic,$(OBJS))
InstallObjectModule(neomagic,$(MODULEDIR),drivers)
-#ifndef OS2Architecture
-DependTarget()
+#if !defined(XF86DriverSDK)
+CppManTarget(neomagic,)
+InstallModuleManPage(neomagic)
#endif
+DependTarget()
+
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/neomagic)
InstallDriverSDKNonExecFile(neo.h,$(DRIVERSDKDIR)/drivers/neomagic)
InstallDriverSDKNonExecFile(neo_2070.c,$(DRIVERSDKDIR)/drivers/neomagic)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c
index e22199a19..b14a1dc4b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c
@@ -22,7 +22,7 @@ RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
**********************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c,v 1.15 2000/02/21 19:23:05 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c,v 1.18 2000/03/06 23:54:11 dawes Exp $ */
/*
* The original Precision Insight driver for
@@ -444,7 +444,6 @@ NEOProbe(DriverPtr drv, int flags)
int *usedChips;
int i;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* Find the config file Device sections that match this
* driver, and return if there are none.
@@ -461,12 +460,10 @@ NEOProbe(DriverPtr drv, int flags)
devSections,numDevSections,
drv, &usedChips);
- if (numUsed > 0 && (flags & PROBE_DETECTPCI))
- return TRUE;
- if (numUsed <= 0 && (flags & PROBE_DETECTPCI))
- return FALSE;
-
- for (i = 0; i < numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
/* Allocate a ScrnInfoRec and claim the slot */
pScrn = xf86AllocateScreen(drv,0);
@@ -485,19 +482,19 @@ NEOProbe(DriverPtr drv, int flags)
foundScreen = TRUE;
xf86ConfigActivePciEntity(pScrn, usedChips[i], NEOPCIchipsets,
NULL, NULL, NULL, NULL, NULL);
+ }
+ xfree(usedChips);
}
- if (numUsed > 0)
- xfree(usedChips);
}
/* Isa Bus */
numUsed = xf86MatchIsaInstances(NEO_NAME,NEOChipsets,NEOISAchipsets,
drv,neoFindIsaDevice,devSections,
numDevSections,&usedChips);
- if (numUsed > 0 && (flags & PROBE_DETECTISA))
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
pScrn = xf86AllocateScreen(drv,0);
@@ -516,12 +513,11 @@ NEOProbe(DriverPtr drv, int flags)
foundScreen = TRUE;
xf86ConfigActiveIsaEntity(pScrn, usedChips[i], NEOISAchipsets,
NULL, NULL, NULL, NULL, NULL);
+ }
+ xfree(usedChips);
}
- if (numUsed > 0)
- xfree(usedChips);
- if (devSections)
- xfree(devSections);
+ xfree(devSections);
return foundScreen;
}
@@ -574,6 +570,8 @@ NEOPreInit(ScrnInfoPtr pScrn, int flags)
int w;
int apertureSize;
char *s;
+
+ if (flags & PROBE_DETECT) return FALSE;
/* The vgahw module should be loaded here when needed */
if (!xf86LoadSubModule(pScrn, "vgahw"))
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neomagic.cpp b/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neomagic.cpp
new file mode 100644
index 000000000..8e41d5134
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neomagic.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/neomagic.cpp,v 1.1 2000/03/03 01:05:40 dawes Exp $
+.TH NEOMAGIC __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+neomagic \- NeoMagic video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""neomagic"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B neomagic
+is an XFree86 driver for NeoMagic video chips.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B neomagic
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile
index fae203411..f242d6200 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile
@@ -1,10 +1,10 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile,v 1.10 2000/01/23 04:44:30 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile,v 1.11 2000/02/25 21:02:54 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the NVIDIA driver.
XCOMM
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile,v 1.10 2000/01/23 04:44:30 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile,v 1.11 2000/02/25 21:02:54 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -26,7 +26,7 @@ INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(XF86SRC)/ramdac -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
-I$(SERVERSRC)/Xext -I$(XF86SRC)/int10 \
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
- -I$(XF86SRC)/shadowfb -I$(EXTINCSRC)
+ -I$(XF86SRC)/shadowfb -I$(EXTINCSRC) -I$(SERVERSRC)/fb
#endif
DEFINES = -DPSZ=8
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp
index 04260f046..490702f19 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp,v 1.5 1999/11/12 02:12:40 mvojkovi Exp $
-.TH NV __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp,v 1.6 2000/03/03 01:05:40 dawes Exp $
+.TH NV __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
nv \-NVIDIA video driver
.SH SYNOPSIS
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h
index aa92f4ff5..2fb4fc16a 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h,v 1.2 1999/08/01 12:17:40 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h,v 1.3 2000/02/25 21:02:55 dawes Exp $ */
#ifndef __NV_CONST_H__
#define __NV_CONST_H__
@@ -10,6 +10,8 @@
#define NV_MINOR_VERSION 0
#define NV_PATCHLEVEL 0
+/*#define NV_USE_FB*/
+
#ifdef DEBUG_PRINT
#define DEBUG(x) x
#else
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c
index 4335c513e..e45e00f5a 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c
@@ -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_driver.c,v 1.34 2000/02/21 19:23:06 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v 1.40 2000/03/05 23:47:51 dawes Exp $ */
#include "nv_include.h"
@@ -142,6 +142,7 @@ static const char *vgahwSymbols[] = {
NULL
};
+#ifndef NV_USE_FB
static const char *cfbSymbols[] = {
"cfbScreenInit",
"cfb16ScreenInit",
@@ -152,6 +153,13 @@ static const char *cfbSymbols[] = {
"cfb32BresS",
NULL
};
+#else
+static const char *fbSymbols[] = {
+ "fbScreenInit",
+ "fbBres",
+ NULL
+};
+#endif
static const char *xaaSymbols[] = {
"XAADestroyInfoRec",
@@ -337,7 +345,12 @@ nvSetup(pointer module, pointer opts, int *errmaj, int *errmin)
* Tell the loader about symbols from other modules that this module
* might refer to.
*/
- LoaderRefSymLists(vgahwSymbols, cfbSymbols, xaaSymbols,
+ LoaderRefSymLists(vgahwSymbols, xaaSymbols,
+#ifndef NV_USE_FB
+ cfbSymbols,
+#else
+ fbSymbols,
+#endif
ramdacSymbols, shadowSymbols,
i2cSymbols, ddcSymbols,
fbdevHWSymbols, int10Symbols, NULL);
@@ -394,9 +407,6 @@ NVProbe(DriverPtr drv, int flags)
* data structures.
*/
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
/*
* Check if there has been a chipset override in the config file.
* For this we must find out if there is an active device section which
@@ -444,10 +454,9 @@ NVProbe(DriverPtr drv, int flags)
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
/* Allocate a ScrnInfoRec and claim the slot */
@@ -655,7 +664,9 @@ NVdoDDC(ScrnInfoPtr pScrn)
/* Initialize I2C bus - used by DDC if available */
if (pNv->i2cInit) {
pNv->i2cInit(pScrn);
+#if 0
ErrorF("I2C initialized on %p\n",pNv->I2C);
+#endif
}
/* Read and output monitor info using DDC2 over I2C bus */
if (pNv->I2C) {
@@ -698,6 +709,8 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
const char *reqSym = NULL;
const char *s;
+ if (flags & PROBE_DETECT) return FALSE;
+
DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "NVPreInit\n"));
/*
* Note: This function is only called once at server startup, and
@@ -761,14 +774,12 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
resRange vgaio[] = { {ResShrIoBlock,0x3B0,0x3BB},
{ResShrIoBlock,0x3C0,0x3DF},
_END };
- resRange vga1mem[] = { {ResShrMemBlock,0xA0000,0xAFFFF},
+ resRange vgamem[] = { {ResShrMemBlock,0xA0000,0xAFFFF},
{ResShrMemBlock,0xB8000,0xBFFFF},
- _END };
- resRange vga2mem[] = { {ResShrMemBlock,0xB0000,0xB7FFF},
+ {ResShrMemBlock,0xB0000,0xB7FFF},
_END };
xf86SetOperatingState(vgaio, pNv->pEnt->index, ResUnusedOpr);
- xf86SetOperatingState(vga1mem, pNv->pEnt->index, ResDisableOpr);
- xf86SetOperatingState(vga2mem, pNv->pEnt->index, ResDisableOpr);
+ xf86SetOperatingState(vgamem, pNv->pEnt->index, ResDisableOpr);
}
/* Set pScrn->monitor */
@@ -1144,8 +1155,8 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
clockRanges->minClock = pNv->MinClock;
clockRanges->maxClock = pNv->MaxClock;
clockRanges->clockIndex = -1; /* programmable */
- clockRanges->interlaceAllowed = FALSE;
- clockRanges->doubleScanAllowed = FALSE;
+ clockRanges->interlaceAllowed = TRUE;
+ clockRanges->doubleScanAllowed = TRUE;
/*
* xf86ValidateModes will check that the mode HTotal and VTotal values
@@ -1205,7 +1216,8 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
* XXX This should be taken into account in some way in the mode valdation
* section.
*/
-
+
+#ifndef NV_USE_FB
/* Load bpp-specific modules */
switch (pScrn->bitsPerPixel) {
case 8:
@@ -1229,7 +1241,15 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
}
xf86LoaderReqSymbols(reqSym, NULL);
+#else
+ if (xf86LoadSubModule(pScrn, "fb") == NULL) {
+ NVFreeRec(pScrn);
+ return FALSE;
+ }
+ xf86LoaderReqSymLists(fbSymbols, NULL);
+#endif
+
/* Load XAA if needed */
if (!pNv->NoAccel) {
if (!xf86LoadSubModule(pScrn, "xaa")) {
@@ -1534,6 +1554,7 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
}
switch (pScrn->bitsPerPixel) {
+#ifndef NV_USE_FB
case 8:
ret = cfbScreenInit(pScreen, FBStart, width, height,
pScrn->xDpi, pScrn->yDpi, displayWidth);
@@ -1546,6 +1567,15 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
ret = cfb32ScreenInit(pScreen, FBStart, width, height,
pScrn->xDpi, pScrn->yDpi, displayWidth);
break;
+#else
+ case 8:
+ case 16:
+ case 32:
+ ret = fbScreenInit(pScreen, FBStart, pScrn->virtualX,
+ pScrn->virtualY, pScrn->xDpi, pScrn->yDpi,
+ displayWidth, pScrn->bitsPerPixel);
+ break;
+#endif
default:
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: invalid bpp (%d) in NVScreenInit\n",
@@ -1654,7 +1684,7 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n) {
xf86XVScreenInit(pScreen, ptr, n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h
index 443ad0f9c..4c9c5097f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h,v 1.6 2000/02/08 17:19:10 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h,v 1.7 2000/02/25 21:02:56 dawes Exp $ */
#ifndef __NV_INCLUDE_H__
#define __NV_INCLUDE_H__
@@ -8,6 +8,7 @@
#include "xf86_OSproc.h"
#include "xf86Resources.h"
#include "compiler.h"
+#include "xf86_ansic.h"
/* Drivers for PCI hardware need this */
#include "xf86PciInfo.h"
@@ -26,6 +27,9 @@
#include "xf86DDC.h"
#include "xf86RAC.h"
+
+#include "nv_const.h"
+#ifndef NV_USE_FB
/*
* If using cfb, cfb.h is required. Select the others for the bpp values
* the driver supports.
@@ -36,6 +40,9 @@
#include "cfb16.h"
#include "cfb24.h"
#include "cfb32.h"
+#else
+#include "fb.h"
+#endif
#include "xaa.h"
#include "xf86cmap.h"
@@ -53,7 +60,6 @@
#include "region.h"
#include "nv_local.h"
-#include "nv_const.h"
#include "nv_type.h"
#include "nv_proto.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h
index 79b7f2da6..d259babdc 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h,v 1.10 2000/01/30 17:58:44 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h,v 1.11 2000/02/25 21:02:57 dawes Exp $ */
#ifndef __NV_STRUCT_H__
#define __NV_STRUCT_H__
@@ -97,6 +97,9 @@ typedef struct {
int Rotate;
NVFBLayout CurrentLayout;
GCPtr CurrentGC;
+#ifdef NV_USE_FB
+ DrawablePtr CurrentDrawable;
+#endif
/* Cursor */
unsigned short curFg, curBg;
unsigned int curImage[MAX_CURS*2];
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c
index f930dbbaa..9ff7db70f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c
@@ -41,7 +41,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_xaa.c,v 1.13 2000/02/08 17:19:11 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c,v 1.14 2000/02/25 21:02:57 dawes Exp $ */
#include "nv_include.h"
#include "xaalocal.h"
@@ -49,11 +49,7 @@
#include "nvreg.h"
#include "nvvga.h"
-#define PSZ 8
-#include "cfb.h"
-#undef PSZ
-#include "cfb16.h"
-#include "cfb32.h"
+
#include "miline.h"
/*
@@ -505,6 +501,9 @@ NVPolylinesThinSolidWrapper(
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_GC(pGC);
NVPtr pNv = NVPTR(infoRec->pScrn);
pNv->CurrentGC = pGC;
+#ifdef NV_USE_FB
+ pNv->CurrentDrawable = pDraw;
+#endif
if(infoRec->NeedToSync)
while (pNv->riva.Busy(&pNv->riva));
XAAPolyLines(pDraw, pGC, mode, npt, pPts);
@@ -520,6 +519,9 @@ NVPolySegmentThinSolidWrapper(
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_GC(pGC);
NVPtr pNv = NVPTR(infoRec->pScrn);
pNv->CurrentGC = pGC;
+#ifdef NV_USE_FB
+ pNv->CurrentDrawable = pDraw;
+#endif
if(infoRec->NeedToSync)
while (pNv->riva.Busy(&pNv->riva));
XAAPolySegment(pDraw, pGC, nseg, pSeg);
@@ -548,12 +550,14 @@ NVSubsequentSolidHorVertLine(
pNv->riva.Bitmap->UnclippedRectangle[0].WidthHeight = (w << 16) | h;
}
+#ifndef NV_USE_FB
static void (*LineFuncs[4])() = {
cfbBresS,
cfb16BresS,
NULL,
cfb32BresS
};
+#endif
static void
NVSubsequentSolidBresenhamLine(
@@ -563,6 +567,7 @@ NVSubsequentSolidBresenhamLine(
int e, int len, int octant
){
NVPtr pNv = NVPTR(pScrn);
+#ifndef NV_USE_FB
cfbPrivGCPtr devPriv;
int Bpp = pScrn->bitsPerPixel >> 3;
@@ -578,6 +583,13 @@ NVSubsequentSolidBresenhamLine(
(octant & YDECREASING) ? -1 : 1,
(octant & YMAJOR) ? Y_AXIS : X_AXIS,
x, y, dmin + e, dmin, dmin - dmaj, len);
+#else
+ fbBres(pNv->CurrentDrawable, pNv->CurrentGC, 0,
+ (octant & XDECREASING) ? -1 : 1,
+ (octant & YDECREASING) ? -1 : 1,
+ (octant & YMAJOR) ? Y_AXIS : X_AXIS,
+ x, y, dmin + e, dmin, -dmaj, len);
+#endif
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile
index 86cf766a4..e3f7178bf 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile,v 1.4 2000/02/14 19:20:49 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile,v 1.6 2000/03/03 01:05:40 dawes Exp $
XCOMM
XCOMM This is the Imakefile for the ATI Rage 128 (r128) driver.
XCOMM
@@ -19,7 +19,7 @@ INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(SERVERSRC)/fb \
-I$(SERVERSRC)/cfb -I$(XF86SRC)/xaa -I$(XF86SRC)/ramdac \
-I$(XF86SRC)/vgahw -I$(XF86SRC)/fbdevhw \
- -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
+ -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c -I$(XF86OSSRC)/vbe \
-I$(XF86SRC)/int10 -I$(SERVERSRC)/Xext \
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
-I$(EXTINCSRC) -I$(XF86SRC)/xf24_32bpp
@@ -35,9 +35,10 @@ ObjectModuleTarget(r128,$(OBJS))
InstallObjectModule(r128,$(MODULEDIR),drivers)
-XCOMM To install a man page remove the x and add these lines
-XCOMM xCppManTarget(r128,)
-XCOMM xInstallModuleManPage(r128)
+#if !defined(XF86DriverSDK)
+CppManTarget(r128,)
+InstallModuleManPage(r128)
+#endif
DependTarget()
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/README b/xc/programs/Xserver/hw/xfree86/drivers/r128/README
index 74c69486b..27adcbbbd 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/README
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/README
@@ -44,7 +44,8 @@
section of your XF86Config file are:
Section "Device"
- Identifier "r128"
+ Identifier "Rage 128"
+ Driver "r128"
EndSection
or let xf86config or XF86Setup do this for you.
@@ -68,7 +69,7 @@
7. Known Limitations
- * None
+ * DGA is not supported yet
8. Authors
@@ -110,5 +111,4 @@
http://www.suse.com
-$XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/README,v 1.1 1999/11/19 13:54:42 hohndel Exp $
-$PI$
+$XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/README,v 1.3 2000/03/08 15:14:50 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.cpp b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.cpp
new file mode 100644
index 000000000..6d75efc5e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.cpp
@@ -0,0 +1,70 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128.cpp,v 1.3 2000/03/06 22:59:26 dawes Exp $
+.TH R128 __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+r128 \- ATI Rage 128 video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""r128"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B r128
+is an XFree86 driver for ATI Rage 128 based video cards. It contains
+full support for 8, 15, 16 and 24 bit pixel depths, hardware
+acceleration of drawing primitives, hardware cursor, video modes up to
+1800x1440 @ 70Hz, doublescan modes (e.g., 320x200 and 320x240), gamma
+correction at all pixel depths, a fully programming dot clock and robust
+text mode restoration for VT switching.
+.SH SUPPORTED HARDWARE
+The
+.B r128
+driver supports all ATI Rage 128 based video cards including the Rage
+Fury AGP 32MB, the XPERT 128 AGP 16MB and the XPERT 99 AGP 8MB.
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.PP
+The driver auto-detects all device information necessary to initialize
+the card. However, if you have problems with auto-detection, you can
+specify:
+.PP
+.RS 4
+VideoRam - in kilobytes
+.br
+MemBase - physical address of the linear framebuffer
+.br
+IOBase - physical address of the MMIO registers
+.br
+ChipID - PCI DEVICE ID
+.RE
+.PP
+In addition, the following driver
+.B Options
+are supported:
+.TP
+.BI "Option ""SWcursor"" """ boolean """
+Selects software cursor. The default is
+.B off.
+.TP
+.BI "Option ""NoAccel"" """ boolean """
+Enables or disables all hardware acceleration. The default is to
+.B enable
+hardware acceleration.
+.TP
+.BI "Option ""Dac6Bit"" """ boolean """
+Enables or disables the use of 6 bits per color component when in 8 bpp
+mode (emulates VGA mode). By default, all 8 bits per color component
+are used. The default is
+.B off.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+.nf
+Rickard E. (Rik) Faith \fIfaith@precisioninsight.com\fP
+Kevin E. Martin \fIkevin@precisioninsight.com\fP
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h
index bf282c937..d5d120153 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h,v 1.7 2000/02/18 16:23:22 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h,v 1.8 2000/02/23 04:47:18 martin Exp $ */
/**************************************************************************
Copyright 1999 ATI Technologies Inc. and Precision Insight, Inc.,
@@ -31,7 +31,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
* Rickard E. Faith <faith@precisioninsight.com>
* Kevin E. Martin <kevin@precisioninsight.com>
*
- * $PI$
*/
#ifndef _R128_H_
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c
index cb3faf061..5b0223661 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c,v 1.6 2000/02/13 19:33:55 martin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c,v 1.7 2000/02/23 04:47:18 martin Exp $ */
/**************************************************************************
Copyright 1999 ATI Technologies Inc. and Precision Insight, Inc.,
@@ -68,7 +68,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
* method slows down common operations. Perhaps additional
* XAA flags to use this only for some operations would help.
*
- * $PI$
*/
#define R128_CLIPPING 1
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c
index eb9f93381..a96872702 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c,v 1.4 2000/02/13 19:33:56 martin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c,v 1.6 2000/03/06 22:59:26 dawes Exp $ */
/**************************************************************************
Copyright 1999 ATI Technologies Inc. and Precision Insight, Inc.,
@@ -40,7 +40,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
* RAGE 128 Software Development Manual (Technical Reference Manual P/N
* SDK-G04000 Rev. 0.01), ATI Technologies: June 1999.
*
- * $PI$
*/
/* X and server generic header files */
@@ -66,11 +65,17 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "r128_reg.h"
#if X_BYTE_ORDER == X_BIG_ENDIAN
-#define P_SWAP( a , b ) \
- ((char *)a)[0] = ((char *)b)[3]; \
- ((char *)a)[1] = ((char *)b)[2]; \
- ((char *)a)[2] = ((char *)b)[1]; \
+#define P_SWAP32( a , b ) \
+ ((char *)a)[0] = ((char *)b)[3]; \
+ ((char *)a)[1] = ((char *)b)[2]; \
+ ((char *)a)[2] = ((char *)b)[1]; \
((char *)a)[3] = ((char *)b)[0]
+
+#define P_SWAP16( a , b ) \
+ ((char *)a)[0] = ((char *)b)[1]; \
+ ((char *)a)[1] = ((char *)b)[0]; \
+ ((char *)a)[2] = ((char *)b)[3]; \
+ ((char *)a)[3] = ((char *)b)[2]
#endif
@@ -118,23 +123,50 @@ static void R128LoadCursorImage(ScrnInfoPtr pScrn, unsigned char *image)
save = INREG(R128_CRTC_GEN_CNTL);
OUTREG(R128_CRTC_GEN_CNTL, save & ~R128_CRTC_CUR_EN);
- for (y = 0; y < 64; y++) {
+
#if X_BYTE_ORDER == X_BIG_ENDIAN
- P_SWAP(d,s);
- d++; s++;
- P_SWAP(d,s);
- d++; s++;
- P_SWAP(d,s);
- d++; s++;
- P_SWAP(d,s);
- d++; s++;
+ switch(info->pixel_bytes) {
+ case 4:
+ case 3:
+ for (y = 0; y < 64; y++) {
+ P_SWAP32(d,s);
+ d++; s++;
+ P_SWAP32(d,s);
+ d++; s++;
+ P_SWAP32(d,s);
+ d++; s++;
+ P_SWAP32(d,s);
+ d++; s++;
+ }
+ break;
+ case 2:
+ for (y = 0; y < 64; y++) {
+ P_SWAP16(d,s);
+ d++; s++;
+ P_SWAP16(d,s);
+ d++; s++;
+ P_SWAP16(d,s);
+ d++; s++;
+ P_SWAP16(d,s);
+ d++; s++;
+ }
+ break;
+ default:
+ for (y = 0; y < 64; y++) {
+ *d++ = *s++;
+ *d++ = *s++;
+ *d++ = *s++;
+ *d++ = *s++;
+ }
+ }
#else
+ for (y = 0; y < 64; y++) {
*d++ = *s++;
*d++ = *s++;
*d++ = *s++;
*d++ = *s++;
-#endif
}
+#endif
OUTREG(R128_CRTC_GEN_CNTL, save);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c
index 11fdc40b1..b5da4cb6e 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c,v 1.18 2000/02/21 19:23:07 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c,v 1.26 2000/03/06 23:17:44 martin Exp $ */
/**************************************************************************
Copyright 1999 ATI Technologies Inc. and Precision Insight, Inc.,
@@ -52,7 +52,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
* overlay planes
* DGA
*
- * $PI$
*/
@@ -105,6 +104,9 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
/* DDC support */
#include "xf86DDC.h"
+ /* VESA support */
+#include "vbe.h"
+
/* Driver data structures */
#include "r128.h"
#include "r128_reg.h"
@@ -235,6 +237,12 @@ static const char *fbdevHWSymbols[] = {
NULL
};
+static const char *vbeSymbols[] = {
+ "VBEInit",
+ "vbeDoEDID",
+ NULL
+};
+
#if 0
/* Not used until DDC is supported. */
static const char *ddcSymbols[] = {
@@ -340,6 +348,7 @@ static pointer R128Setup(pointer module, pointer opts, int *errmaj,
xf8_32bppSymbols,
ramdacSymbols,
fbdevHWSymbols,
+ vbeSymbols,
0 /* ddcsymbols */,
0 /* i2csymbols */,
0 /* shadowSymbols */,
@@ -624,9 +633,6 @@ static Bool R128Probe(DriverPtr drv, int flags)
Bool foundScreen = FALSE;
int i;
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
if ((numDevSections = xf86MatchDevice(R128_NAME, &devSections)) <= 0)
return FALSE;
@@ -643,10 +649,9 @@ static Bool R128Probe(DriverPtr drv, int flags)
if (numUsed<=0) return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
pEnt = xf86GetEntityInfo(usedChips[i]);
if (pEnt->active) {
@@ -1048,6 +1053,18 @@ static Bool R128PreInitInt10(ScrnInfoPtr pScrn)
return TRUE;
}
+extern xf86MonPtr ConfiguredMonitor;
+
+static void
+R128ProbeDDC(ScrnInfoPtr pScrn, int index)
+{
+ vbeInfoPtr pVbe;
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ pVbe = VBEInit(NULL,index);
+ ConfiguredMonitor = vbeDoEDID(pVbe);
+ }
+}
+
/* R128PreInit is called once at server startup. */
static Bool R128PreInit(ScrnInfoPtr pScrn, int flags)
{
@@ -1056,19 +1073,25 @@ static Bool R128PreInit(ScrnInfoPtr pScrn, int flags)
R128TRACE(("R128PreInit\n"));
if (pScrn->numEntities != 1) return FALSE;
- if (!xf86LoadSubModule(pScrn, "vgahw")) return FALSE;
- xf86LoaderReqSymLists(vgahwSymbols, NULL);
- if (!vgaHWGetHWRec(pScrn)) return FALSE;
- if (!R128GetRec(pScrn)) {
- vgaHWFreeHWRec(pScrn);
- return FALSE;
- }
+ if (!R128GetRec(pScrn)) return FALSE;
info = R128PTR(pScrn);
info->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
if (info->pEnt->location.type != BUS_PCI) goto fail;
+ if (flags & PROBE_DETECT) {
+ R128ProbeDDC(pScrn, info->pEnt->index);
+ return TRUE;
+ }
+
+ if (!xf86LoadSubModule(pScrn, "vgahw")) return FALSE;
+ xf86LoaderReqSymLists(vgahwSymbols, NULL);
+ if (!vgaHWGetHWRec(pScrn)) {
+ R128FreeRec(pScrn);
+ return FALSE;
+ }
+
info->PciInfo = xf86GetPciInfoForEntity(info->pEnt->index);
info->PciTag = pciTag(info->PciInfo->bus,
info->PciInfo->device,
@@ -1414,7 +1437,7 @@ static Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen,
XF86VideoAdaptorPtr *ptr;
int n;
- if ((n = xf86XVListGenericAdaptors(&ptr)))
+ if ((n = xf86XVListGenericAdaptors(pScrn, &ptr)))
xf86XVScreenInit(pScreen, ptr, n);
}
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h
index e7b5e2b3d..86652affa 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h,v 1.5 2000/02/18 16:23:23 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h,v 1.6 2000/02/23 04:47:19 martin Exp $ */
/**************************************************************************
Copyright 1999 ATI Technologies Inc. and Precision Insight, Inc.,
@@ -40,7 +40,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
* RAGE 128 Software Development Manual (Technical Reference Manual P/N
* SDK-G04000 Rev. 0.01), ATI Technologies: June 1999.
*
- * $PI$
*/
#ifndef _R128_REG_H_
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile
index 17e683ecb..1e9ddad3e 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile,v 1.13 2000/01/23 04:44:30 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile,v 1.15 2000/03/03 01:05:41 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the Rendition driver.
@@ -8,10 +8,10 @@ XCOMM
#include <Server.tmpl>
SRCS = rendition.c vboard.c vmodes.c vramdac.c v1krisc.c vvga.c \
- vmisc.c hwcursor.c vloaduc.c accel.c
+ vmisc.c hwcursor.c vloaduc.c accel.c rendition_shadow.c
OBJS = rendition.o vboard.o vmodes.o vramdac.o v1krisc.o vvga.o \
- vmisc.o hwcursor.o vloaduc.o accel.o
+ vmisc.o hwcursor.o vloaduc.o accel.o rendition_shadow.o
#if defined(XF86DriverSDK)
INCLUDES = -I. -I../../include
@@ -48,6 +48,11 @@ InstallObjectModule(rendition,$(MODULEDIR),drivers)
InstallNonExecFile(v10002d.uc,$(MODULEDIR))
InstallNonExecFile(v20002d.uc,$(MODULEDIR))
+#if !defined(XF86DriverSDK)
+CppManTarget(rendition,)
+InstallModuleManPage(rendition)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/rendition)
@@ -55,6 +60,8 @@ InstallDriverSDKNonExecFile(cscode.h,$(DRIVERSDKDIR)/drivers/rendition)
InstallDriverSDKNonExecFile(rendition.c,$(DRIVERSDKDIR)/drivers/rendition)
InstallDriverSDKNonExecFile(rendition.h,$(DRIVERSDKDIR)/drivers/rendition)
InstallDriverSDKNonExecFile(rendition_options.h,$(DRIVERSDKDIR)/drivers/rendition)
+InstallDriverSDKNonExecFile(rendition_shadow.c,$(DRIVERSDKDIR)/drivers/rendition)
+InstallDriverSDKNonExecFile(rendition_shadow.h,$(DRIVERSDKDIR)/drivers/rendition)
InstallDriverSDKNonExecFile(commonregs.h,$(DRIVERSDKDIR)/drivers/rendition)
InstallDriverSDKNonExecFile(vmisc.h,$(DRIVERSDKDIR)/drivers/rendition)
InstallDriverSDKNonExecFile(vmisc.c,$(DRIVERSDKDIR)/drivers/rendition)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c
index d2b3b8426..4678c192c 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c
@@ -3,7 +3,8 @@
*
* accelerator functions for X
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c,v 1.5 2000/01/18 16:35:51 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c,v 1.6 2000/02/25 21:02:59 dawes Exp $ */
+
@@ -28,19 +29,21 @@
/*
* defines
*/
+#if 1
/* Global imported during compile-time */
char MICROCODE_DIR [PATH_MAX] = MODULEDIR;
+#endif
-#define waitfifo(size) { int c=0; \
+#define waitfifo(size) do { int c=0; \
while ((c++<0xfffff)&&((v_in8(iob+FIFOINFREE)&0x1f)<size)) /* if(!(c%0xffff))ErrorF("#1# !0x%x! -- ",v_in8(iob+FIFOINFREE)) */; \
if (c >= 0xfffff) { \
ErrorF("RENDITION: Input fifo full (1) FIFO in == %d\n",v_in8(iob+FIFOINFREE)&0x1f); \
- /* return; */\
+ return; \
} \
- }
+ } while (0)
-#define waitfifo2(size, rv) { int c=0; \
+#define waitfifo2(size, rv) do { int c=0; \
while ((c++<0xfffff)&&((v_in8(iob+FIFOINFREE)&0x1f)<size)) /* if(!(c%0xffff))ErrorF("#2# !0x%x! -- ",v_in8(iob+FIFOINFREE)) */; \
if (c >= 0xfffff) { \
ErrorF("RENDITION: Input fifo full (2) FIFO in ==%d\n",v_in8(iob+FIFOINFREE)&0x1f); \
@@ -48,7 +51,7 @@ char MICROCODE_DIR [PATH_MAX] = MODULEDIR;
pRendition->board.accel=0; \
return rv; \
} \
- }
+ } while (0)
#define P1(x) ((vu32)x)
#define P2(x, y) ((((vu16)x)<<16)+((vu16)y))
@@ -110,7 +113,8 @@ static int Rop2Rop[]={
* functions
*/
-void RENDITIONAccelPreInit(ScrnInfoPtr pScreenInfo)
+void
+RENDITIONAccelPreInit(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
int c;
@@ -125,6 +129,13 @@ void RENDITIONAccelPreInit(ScrnInfoPtr pScreenInfo)
memset (pRendition->board.vmem_base,0,MC_SIZE);
#endif
+#if 0
+ if (RENDITIONLoadUcode(pScreenInfo)){
+ ErrorF ("RENDITION: AccelPreInit - Warning. Loading of microcode failed!!\n");
+ }
+#endif
+
+#if 1 /* Test */
if (V1000_DEVICE == pRendition->board.chip){
c=v_load_ucfile(pScreenInfo, strcat ((char *)MICROCODE_DIR,"v10002d.uc"));
}
@@ -139,25 +150,27 @@ void RENDITIONAccelPreInit(ScrnInfoPtr pScreenInfo)
}
pRendition->board.ucode_entry=c;
- RENDITIONSaveUcode(pScreenInfo);
- pRendition->board.fbOffset += MC_SIZE;
+ ErrorF("UCode_Entry == 0x%x\n",pRendition->board.ucode_entry);
+#endif
#ifdef DEBUG
+ pRendition->board.fbOffset += MC_SIZE;
ErrorF("RENDITION: Offset is now %d\n",pRendition->board.fbOffset);
- ErrorF("RENDITION: RENDITIONAccelPreInit End \n");
sleep(2);
#endif
}
-void RENDITIONAccelXAAInit(ScreenPtr pScreen)
+void
+RENDITIONAccelXAAInit(ScreenPtr pScreen)
{
ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
XAAInfoRecPtr pXAAinfo;
BoxRec AvailFBArea;
+ int c;
#ifdef DEBUG
ErrorF("RENDITION: RENDITIONAccelInit called\n");
@@ -197,28 +210,32 @@ void RENDITIONAccelXAAInit(ScreenPtr pScreen)
RENDITIONSetupForSolidFill;
pXAAinfo->SubsequentSolidFillRect=
RENDITIONSubsequentSolidFillRect;
-#endif
-#if 0
/* line */
xf86AccelInfoRec.SubsequentTwoPointLine =
RENDITIONSubsequentTwoPointLine;
#endif /* #if 0 */
-#ifdef DEBUG
- ErrorF("RENDITION: RENDITIONAccelInit restore\n");
- sleep(2);
-#endif
+ if (RENDITIONLoadUcode(pScreenInfo)) return;
- /* Restore u-code previously loaded in PreInit-stage */
- RENDITIONRestoreUcode(pScreenInfo);
+#if 1 /* Testingcode */
+ if (V1000_DEVICE == pRendition->board.chip){
+ c=v_load_ucfile(pScreenInfo, MICROCODE_DIR);
+ }
+ else {
+ /* V2x00 chip */
+ c=v_load_ucfile(pScreenInfo, MICROCODE_DIR);
+ }
- if (RENDITIONLoadUcode(pScreenInfo)) return;
+ if (c == -1) {
+ ErrorF( "RENDITION: Microcode loading failed !!!\n");
+ return;
+ }
+ pRendition->board.ucode_entry=c;
+#endif
if (RENDITIONInitUcode(pScreenInfo)) return;
- RENDITIONSaveUcode(pScreenInfo);
-
v_check_csucode(pScreenInfo);
/* the remaining code was copied from s3v_accel.c.
* we need to check it if it is suitable <ml> */
@@ -257,7 +274,8 @@ void RENDITIONAccelXAAInit(ScreenPtr pScreen)
-void RENDITIONAccelNone(ScrnInfoPtr pScreenInfo)
+void
+RENDITIONAccelNone(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
XAAInfoRecPtr pXAAinfo=pRendition->AccelInfoRec;
@@ -282,7 +300,8 @@ void RENDITIONAccelNone(ScrnInfoPtr pScreenInfo)
-int RENDITIONLoadUcode(ScrnInfoPtr pScreenInfo)
+int
+RENDITIONLoadUcode(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -312,7 +331,8 @@ int RENDITIONLoadUcode(ScrnInfoPtr pScreenInfo)
}
-int RENDITIONInitUcode(ScrnInfoPtr pScreenInfo)
+int
+RENDITIONInitUcode(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob = pRendition->board.io_base;
@@ -335,19 +355,27 @@ int RENDITIONInitUcode(ScrnInfoPtr pScreenInfo)
stride1=1;
*/
+ ErrorF("#InitUcode(1)# FIFOIN_FREE 0x%x -- \n",v_in8(iob+FIFOINFREE));
+
/* init the ucode */
/* ... and start accelerator */
v1k_flushicache(pScreenInfo);
v1k_start(pScreenInfo, pRendition->board.csucode_base);
+ ErrorF("#InitUcode(2)# FIFOIN_FREE 0x%x -- \n",v_in8(iob+FIFOINFREE));
+
v_out32(iob, 0); /* a0 - ucode init command */
v_out32(iob, 0); /* a1 - 1024 byte context store area */
v_out32(iob, 0); /* a2 */
v_out32(iob, pRendition->board.ucode_entry);
+ ErrorF("#InitUcode(3)# FIFOIN_FREE 0x%x -- \n",v_in8(iob+FIFOINFREE));
+
waitfifo2(6, 1);
+ ErrorF("#InitUcode(4)# FIFOIN_FREE 0x%x -- \n",v_in8(iob+FIFOINFREE));
+
v_out32(iob, CMD_SETUP);
v_out32(iob, P2(pRendition->board.mode.virtualwidth,
pRendition->board.mode.virtualheight));
@@ -360,6 +388,8 @@ int RENDITIONInitUcode(ScrnInfoPtr pScreenInfo)
v_out32(iob, (pRendition->board.mode.stride1<<12)|
(pRendition->board.mode.stride0<<8));
+ ErrorF("#InitUcode(5)# FIFOIN_FREE 0x%x -- \n",v_in8(iob+FIFOINFREE));
+
#if 0
v_out32(iob+0x60, 129);
ErrorF("RENDITION: PC at %x\n", v_in32(iob+0x64));
@@ -368,7 +398,8 @@ int RENDITIONInitUcode(ScrnInfoPtr pScreenInfo)
return 0;
}
-void RENDITIONRestoreUcode(ScrnInfoPtr pScreenInfo)
+void
+RENDITIONRestoreUcode(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob = pRendition->board.io_base;
@@ -377,6 +408,10 @@ void RENDITIONRestoreUcode(ScrnInfoPtr pScreenInfo)
#ifdef DEBUG
ErrorF("RENDITION: RENDITIONRestoreUcode called\n");
+#endif
+
+#ifdef DEBUG
+ ErrorF("Restore...1\n");
sleep(2);
#endif
@@ -406,13 +441,14 @@ void RENDITIONRestoreUcode(ScrnInfoPtr pScreenInfo)
-void RENDITIONSaveUcode(ScrnInfoPtr pScreenInfo)
+void
+RENDITIONSaveUcode(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob = pRendition->board.io_base;
vu8 memend;
-#if 1
+#ifdef DEBUG
ErrorF("RENDITION: RENDITIONSaveUcode called\n");
sleep(2);
#endif
@@ -440,7 +476,8 @@ void RENDITIONSaveUcode(ScrnInfoPtr pScreenInfo)
/*
* synchronization -- wait for RISC and pixel engine to become idle
*/
-void RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
+void
+RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob = pRendition->board.io_base;
@@ -458,10 +495,11 @@ void RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
c=0;
/* empty output fifo,
i.e. if there is any valid data in the output fifo then read it */
+
while ((c++<0xfffff) && ((v_in8(iob+FIFOOUTVALID)&0x7)>0))
- (void)v_in32(iob);
+ (void)v_in32(iob);
-/* if(!(c%10000))ErrorF("#F1# !0x%x! -- ",v_in8(iob+FIFOOUTVALID)); */
+/* if(!(c%0xffff))ErrorF("#F1# !0x%x! -- ",v_in8(iob+FIFOOUTVALID)); */
if (c >= 0xfffff) {
ErrorF("RENDITION: RISC synchronization failed (1) FIFO out == %d!\n",
@@ -478,7 +516,8 @@ void RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
while ((c++<0xfffff) && ((v_in8(iob+FIFOOUTVALID)&0x7)>0))
(void)v_in32(iob);
-/* if(!(c%10000))ErrorF("#F2# !0x%x! -- ",v_in8(iob+FIFOOUTVALID)); */
+/* if(!(c%0xffff))ErrorF("#F2# !0x%x! -- ",v_in8(iob+FIFOOUTVALID)); */
+
if (c >= 0xfffff) {
ErrorF("RENDITION: RISC synchronization failed (2) FIFO out == %d!\n",
@@ -486,10 +525,6 @@ void RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
return;
}
- /* This assumes that there are data to read out! Check if correct */
- if (c < 0xffffff)
- (void)v_in32(iob);
-
/* sync pixel engine using csucode -- I suppose this is quite slow <ml> */
v1k_stop(pScreenInfo);
v1k_start(pScreenInfo, pRendition->board.csucode_base);
@@ -499,7 +534,7 @@ void RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
while ((c++<0xfffff) && ((v_in8(iob+FIFOOUTVALID)&0x7)>0))
(void)v_in32(iob);
-/* if(!(c%10000))ErrorF("#F3# !0x%x! -- ",v_in8(iob+FIFOOUTVALID)); */
+/* if(!(c%0xffff))ErrorF("#F3# !0x%x! -- ",v_in8(iob+FIFOOUTVALID)); */
if (c == 0xfffff) {
ErrorF("RENDITION: Pixel engine synchronization failed FIFO out == %d!\n",
@@ -533,7 +568,8 @@ void RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
/*
* screen to screen copy
*/
-void RENDITIONSetupForScreenToScreenCopy(ScrnInfoPtr pScreenInfo,
+void
+RENDITIONSetupForScreenToScreenCopy(ScrnInfoPtr pScreenInfo,
int xdir, int ydir, int rop,
unsigned planemask, int trans_color)
{
@@ -548,7 +584,8 @@ void RENDITIONSetupForScreenToScreenCopy(ScrnInfoPtr pScreenInfo,
pRendition->board.Rop=Rop2Rop[rop];
}
-void RENDITIONSubsequentScreenToScreenCopy(ScrnInfoPtr pScreenInfo,
+void
+RENDITIONSubsequentScreenToScreenCopy(ScrnInfoPtr pScreenInfo,
int srcX, int srcY,
int dstX, int dstY,
int w, int h)
@@ -581,13 +618,14 @@ void RENDITIONSubsequentScreenToScreenCopy(ScrnInfoPtr pScreenInfo,
/*
* solid filled rectangles
*/
-void RENDITIONSetupForSolidFill(ScrnInfoPtr pScreenInfo,
+void
+RENDITIONSetupForSolidFill(ScrnInfoPtr pScreenInfo,
int color, int rop,
unsigned planemask)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
-#if 1 /* def DEBUG */
+#ifdef DEBUG
ErrorF("RENDITION: RENDITIONSetupForSolidFill called\n");
ErrorF("RENDITION: Rop is %x/%x\n", rop, Rop2Rop[rop]);
#endif
@@ -600,7 +638,8 @@ void RENDITIONSetupForSolidFill(ScrnInfoPtr pScreenInfo,
pRendition->board.Color|=(pRendition->board.Color<<8);
}
-void RENDITIONSubsequentSolidFillRect(ScrnInfoPtr pScreenInfo,
+void
+RENDITIONSubsequentSolidFillRect(ScrnInfoPtr pScreenInfo,
int x, int y, int w, int h)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -629,7 +668,8 @@ void RENDITIONSubsequentSolidFillRect(ScrnInfoPtr pScreenInfo,
* line
*/
-void RENDITIONSubsequentTwoPointLine(ScrnInfoPtr pScreenInfo,
+void
+RENDITIONSubsequentTwoPointLine(ScrnInfoPtr pScreenInfo,
int x1, int y1,
int x2, int y2,
int bias)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c
index 9ae2f17b3..808e393cc 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c,v 1.5 1999/12/30 03:38:34 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c,v 1.6 2000/02/25 21:03:00 dawes Exp $ */
/*
* includes
*/
@@ -13,9 +13,7 @@
* defines
*/
-#ifdef DEBUG
#undef DEBUG
-#endif
/* use a 64x64 cursor, 32x32 otherwise */
/* note that V2K supports only 64x64 size */
@@ -26,7 +24,7 @@
*/
static Bool RENDITIONUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs);
-static void RENDITIONSetCursorColors(ScrnInfoPtr pScreenInfo, int fg, int bg);
+static void RENDITIONSetCursorColors(ScrnInfoPtr pScreenInfo, int bg, int fg);
static void RENDITIONSetCursorPosition(ScrnInfoPtr pScreenInfo, int x, int y);
static void RENDITIONHideCursor(ScrnInfoPtr pScreenInfo);
static void RENDITIONShowCursor(ScrnInfoPtr pScreenInfo);
@@ -41,6 +39,10 @@ RenditionHWCursorPreInit (ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug RenditionHWCursorPreInit called\n");
+#endif
+
pRendition->board.hwcursor_used = TRUE;
if (pRendition->board.chip==V1000_DEVICE){
/* V1K uses special space on BT-485 RAMDAC */
@@ -60,6 +62,10 @@ RenditionHWCursorRelease (ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug RenditionHWCursorRelease called\n");
+#endif
+
xf86DestroyCursorInfoRec(pRendition->CursorInfoRec);
pRendition->CursorInfoRec=NULL;
}
@@ -72,15 +78,15 @@ RenditionHWCursorInit(int scrnIndex, ScreenPtr pScreen)
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
xf86CursorInfoPtr infoPtr;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug RenditionHWCursorInit called\n");
+#endif
+
infoPtr = xf86CreateCursorInfoRec();
if(!infoPtr) return FALSE;
pRendition->CursorInfoRec = infoPtr;
-#ifdef DEBUG
- ErrorF( "RENDITION: RENDITIONHwCursorInit called\n");
-#endif
-
#ifdef BIGCURSOR
infoPtr->MaxWidth=64;
infoPtr->MaxHeight=64;
@@ -113,6 +119,10 @@ RenditionHWCursorInit(int scrnIndex, ScreenPtr pScreen)
static Bool
RENDITIONUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
{
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug RENDITIONUseHWCursor called\n");
+#endif
+
/* have this return false for DoubleScan and Interlaced ? */
return TRUE;
}
@@ -128,7 +138,7 @@ RENDITIONShowCursor(ScrnInfoPtr pScreenInfo)
#endif
/* enable cursor - X11 mode */
- v_enablecursor(pScreenInfo, V_3COLORS,
+ v_enablecursor(pScreenInfo, V_3COLORS,
#ifdef BIGCURSOR
V_CURSOR64
#else
@@ -171,7 +181,7 @@ RENDITIONSetCursorColors(ScrnInfoPtr pScreenInfo, int bg, int fg)
ErrorF( "RENDITION: SetCursorColors(%x, %x) called\n", fg, bg);
#endif
- v_setcursorcolor(pScreenInfo, fg, bg);
+ v_setcursorcolor(pScreenInfo, bg, fg);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c
index 615e71849..95122b137 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c,v 1.24 2000/02/21 19:23:07 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c,v 1.30 2000/03/06 23:54:12 dawes Exp $ */
/*
* Copyright (C) 1998 The XFree86 Project, Inc. All Rights Reserved.
*
@@ -59,6 +59,8 @@
#include "vmodes.h"
#include "vvga.h"
#include "accel.h"
+#include "vramdac.h"
+#include "rendition_shadow.h"
/*
* defines
@@ -97,6 +99,7 @@ static Bool renditionUnmapMem(ScrnInfoPtr pScreenInfo);
static xf86MonPtr renditionDDC(ScrnInfoPtr pScreenInfo);
static unsigned int renditionDDC1Read (ScrnInfoPtr pScreenInfo);
+static void renditionLoadPalette(ScrnInfoPtr, int, int *, LOCO *, VisualPtr);
/*
* global data
@@ -107,7 +110,9 @@ OptionInfoRec renditionOptions[]={
{ OPTION_SW_CURSOR, "SW_Cursor", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_OVERCLOCK_MEM,"Overclock_Mem", OPTV_BOOLEAN, {0}, FALSE },
- { OPTION_NO_DDC, "NoDDC", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_NO_DDC, "NoDDC", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_SHADOW_FB, "ShadowFB", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_ROTATE, "Rotate", OPTV_ANYSTR, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
@@ -185,6 +190,13 @@ static const char *fbSymbols[]={
NULL
};
+static const char *shadowfbSymbols[] = {
+ "ShadowFBInit",
+ NULL
+};
+
+
+
#ifdef XFree86LOADER
/* Module loader interface */
@@ -218,7 +230,7 @@ renditionSetup(pointer Module, pointer Options, int *ErrorMajor,
xf86AddDriver(&RENDITION, Module, 0);
LoaderRefSymLists(vgahwSymbols, ramdacSymbols, fbSymbols,
xaaSymbols, ddcSymbols, int10Symbols,
- NULL);
+ shadowfbSymbols, NULL);
return (pointer)TRUE;
}
@@ -253,8 +265,7 @@ static PciChipsets renditionPCIchipsets[] = {
* functions
*/
-static
-OptionInfoPtr
+static OptionInfoPtr
renditionAvailableOptions(int chipid, int busid)
{
return renditionOptions;
@@ -283,9 +294,6 @@ renditionProbe(DriverPtr drv, int flags)
int *usedChips;
int c;
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
/* Find the config file Device sections that match this
* driver, and return if there are none. */
if ((numDevSections=xf86MatchDevice(RENDITION_NAME, &devSections)) <= 0)
@@ -297,10 +305,15 @@ renditionProbe(DriverPtr drv, int flags)
renditionChipsets, renditionPCIchipsets,
devSections, numDevSections, drv, &usedChips);
- if (numUsed > 0 && (flags & PROBE_DETECTPCI))
- return TRUE;
+ if (devSections)
+ xfree(devSections);
+ devSections = NULL;
+ if (numUsed <= 0)
+ return FALSE;
- for (c=0; c<numUsed; c++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (c=0; c<numUsed; c++) {
ScrnInfoPtr pScrn;
/* Allocate a ScrnInfoRec and claim the slot */
pScrn=xf86AllocateScreen(drv, 0);
@@ -320,10 +333,8 @@ renditionProbe(DriverPtr drv, int flags)
xf86ConfigActivePciEntity(pScrn, usedChips[c],
renditionPCIchipsets, NULL, NULL, NULL, NULL, NULL);
}
- if (numUsed > 0)
- xfree(usedChips);
}
- xfree(devSections);
+ xfree(usedChips);
return foundScreen;
}
@@ -451,7 +462,9 @@ renditionPreInit(ScrnInfoPtr pScreenInfo, int flags)
const char *Sym;
vgaHWPtr pvgaHW;
renditionPtr pRendition;
+ char *in_string;
+ if (flags & PROBE_DETECT) return FALSE;
#ifdef DEBUG
ErrorF("Rendition: renditionPreInit() called\n");
@@ -550,7 +563,7 @@ renditionPreInit(ScrnInfoPtr pScreenInfo, int flags)
/* determine colour weights */
pScreenInfo->rgbBits=8;
-
+
if (pScreenInfo->depth > 8) {
rgb defaultWeight = {0, 0, 0};
rgb defaultMask = {0, 0, 0};
@@ -654,8 +667,54 @@ renditionPreInit(ScrnInfoPtr pScreenInfo, int flags)
}
xf86LoaderReqSymLists(vgahwSymbols, NULL);
+
+ pRendition->board.shadowfb=TRUE;
+
+ if ((in_string = xf86GetOptValString(renditionOptions, OPTION_ROTATE))) {
+ if(!xf86NameCmp(in_string, "CW")) {
+ /* accel is disabled below for shadowFB */
+ pRendition->board.shadowfb = TRUE;
+ pRendition->board.rotate = 1;
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_CONFIG,
+ "Rotating screen clockwise - acceleration disabled\n");
+ } else if(!xf86NameCmp(in_string, "CCW")) {
+ pRendition->board.shadowfb = TRUE;
+ pRendition->board.rotate = -1;
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_CONFIG, "Rotating screen "
+ "counter clockwise - acceleration disabled\n");
+ } else {
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_CONFIG, "\"%s\" is not a valid"
+ "value for Option \"Rotate\"\n", in_string);
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
+ "Valid options are \"CW\" or \"CCW\"\n");
+ }
+ }
+ xf86MarkOptionUsedByName(renditionOptions,"Rotate");
+
+ if (xf86ReturnOptValBool(renditionOptions, OPTION_SHADOW_FB,1)||
+ pRendition->board.rotate) {
+ if (!xf86LoadSubModule(pScreenInfo, "shadowfb")) {
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
+ "Oops, \"ShadowFB\" module loading failed, disabling ShadowFB!\n");
+ }
+ else{
+ xf86LoaderReqSymLists(shadowfbSymbols, NULL);
+ pRendition->board.shadowfb=TRUE;
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
+ "Using \"Shadow Framebuffer\"\n");
+ }
+ }
+ else {
+ pRendition->board.shadowfb=FALSE;
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_CONFIG,
+ "\"Shadow Framebuffer\" disabled\n");
+ }
+ xf86MarkOptionUsedByName(renditionOptions,"ShadowFB");
+
+
/* Load Ramdac module if needed */
- if (!xf86ReturnOptValBool(renditionOptions, OPTION_SW_CURSOR,0)){
+ if (!xf86ReturnOptValBool(renditionOptions, OPTION_SW_CURSOR,0) &&
+ !pRendition->board.rotate){
if (!xf86LoadSubModule(pScreenInfo, "ramdac")) {
return FALSE;
}
@@ -665,9 +724,10 @@ renditionPreInit(ScrnInfoPtr pScreenInfo, int flags)
#if USE_ACCEL
/* Load XAA if needed */
- if (!xf86ReturnOptValBool(renditionOptions, OPTION_NOACCEL,0)) {
+ if (!xf86ReturnOptValBool(renditionOptions, OPTION_NOACCEL,0) &&
+ !pRendition->board.rotate) {
if (!xf86LoadSubModule(pScreenInfo, "xaa")) {
- return FALSE;
+ return FALSE;
}
xf86LoaderReqSymLists(xaaSymbols, NULL);
}
@@ -763,16 +823,23 @@ renditionPreInit(ScrnInfoPtr pScreenInfo, int flags)
pScreenInfo->chipset = (char *)renditionChipsets[0].name;
if(!xf86ReturnOptValBool(renditionOptions, OPTION_SW_CURSOR,0)){
- /* Do preemtive things for HW cursor */
- RenditionHWCursorPreInit(pScreenInfo);
- }
- else {
- ErrorF("RENDITION: Software cursor selected\n");
+ if(!pRendition->board.rotate)
+ /* Do preemtive things for HW cursor */
+ RenditionHWCursorPreInit(pScreenInfo);
+ else{
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
+ "Hardware cursor not supported on rotated screen\n");
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
+ "Software cursor activated\n");
+ }
}
+ else
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_CONFIG,
+ "Software cursor selected\n");
renditionUnmapMem(pScreenInfo);
-#if USE_ACCEL
+#ifdef DEBUG
ErrorF("PreInit OK...!!!!\n");
sleep(2);
#endif
@@ -785,13 +852,13 @@ renditionPreInit(ScrnInfoPtr pScreenInfo, int flags)
static void
renditionSave(ScrnInfoPtr pScreenInfo)
{
-#if USE_ACCEL
+#ifdef DEBUG
ErrorF("Save...!!!!\n");
sleep(1);
#endif
vgaHWSave(pScreenInfo, &VGAHWPTR(pScreenInfo)->SavedReg,VGA_SR_ALL);
-#if USE_ACCEL
+#ifdef DEBUG
ErrorF("Save OK...!!!!\n");
sleep(1);
#endif
@@ -812,7 +879,6 @@ renditionRestore(ScrnInfoPtr pScreenInfo)
vgaHWProtect(pScreenInfo, FALSE);
v_setmode(pScreenInfo, &RENDITIONPTR(pScreenInfo)->mode);
-
#ifdef DEBUG
ErrorF("Restore OK...!!!!\n");
sleep(1);
@@ -922,9 +988,7 @@ renditionEnterGraphics(ScreenPtr pScreen, ScrnInfoPtr pScreenInfo)
#ifdef DEBUG
ErrorF("RENDITION: renditionEnterGraphics() called\n");
-
- ErrorF("Entergraphics...!!!!\n");
- sleep(1);
+ sleep(2);
#endif
/* Map VGA aperture */
@@ -1031,11 +1095,12 @@ static Bool
renditionScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
{
ScrnInfoPtr pScreenInfo = xf86Screens[scrnIndex];
-
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
renditionPtr prenditionPriv;
Bool Inited = FALSE;
- unsigned char *FBBase=RENDITIONPTR(pScreenInfo)->board.vmem_base;
+ unsigned char *FBBase;
VisualPtr visual;
+ int displayWidth,width,height;
vgaHWPtr pvgaHW;
@@ -1061,29 +1126,50 @@ renditionScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
if (!miSetVisualTypes(pScreenInfo->depth,
miGetDefaultVisualMask(pScreenInfo->depth),
pScreenInfo->rgbBits, pScreenInfo->defaultVisual))
- return FALSE;
+ return FALSE;
+
+ if (pRendition->board.rotate) {
+ height = pScreenInfo->virtualX;
+ width = pScreenInfo->virtualY;
+ } else {
+ width = pScreenInfo->virtualX;
+ height = pScreenInfo->virtualY;
+ }
+
+ if(pRendition->board.shadowfb) {
+ pRendition->board.shadowPitch = BitmapBytePad(pScreenInfo->bitsPerPixel * width);
+ pRendition->board.shadowPtr = xalloc(pRendition->board.shadowPitch * height);
+ displayWidth = pRendition->board.shadowPitch /
+ (pScreenInfo->bitsPerPixel >> 3);
+ FBBase = pRendition->board.shadowPtr;
+ } else {
+ pRendition->board.shadowPtr = NULL;
+ FBBase = pRendition->board.vmem_base+prenditionPriv->board.fbOffset;
+ displayWidth=pScreenInfo->displayWidth;
+ }
+
/* initialise the framebuffer */
switch (pScreenInfo->bitsPerPixel)
{
case 8:
- Inited = cfbScreenInit(pScreen, FBBase+prenditionPriv->board.fbOffset,
- pScreenInfo->virtualX, pScreenInfo->virtualY,
- pScreenInfo->xDpi, pScreenInfo->yDpi,
- pScreenInfo->displayWidth);
+ Inited = cfbScreenInit(pScreen, FBBase,
+ width, height,
+ pScreenInfo->xDpi, pScreenInfo->yDpi,
+ displayWidth);
break;
case 16:
- Inited = cfb16ScreenInit(pScreen, FBBase+prenditionPriv->board.fbOffset,
- pScreenInfo->virtualX, pScreenInfo->virtualY,
- pScreenInfo->xDpi, pScreenInfo->yDpi,
- pScreenInfo->displayWidth);
- break;
+ Inited = cfb16ScreenInit(pScreen, FBBase,
+ width, height,
+ pScreenInfo->xDpi, pScreenInfo->yDpi,
+ displayWidth);
+ break;
case 32:
- Inited = cfb32ScreenInit(pScreen, FBBase+prenditionPriv->board.fbOffset,
- pScreenInfo->virtualX, pScreenInfo->virtualY,
- pScreenInfo->xDpi, pScreenInfo->yDpi,
- pScreenInfo->displayWidth);
- break;
+ Inited = cfb32ScreenInit(pScreen, FBBase,
+ width, height,
+ pScreenInfo->xDpi, pScreenInfo->yDpi,
+ displayWidth);
+ break;
default:
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: invalid bpp (%d) in renditionScreenInit\n",
@@ -1125,16 +1211,8 @@ renditionScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
visual->greenMask=0x7e0;
visual->blueMask=0x1f;
}
-/*
- visual->offsetRed=0;
- visual->offsetGreen=5;
- visual->offsetBlue=11;
- visual->redMask=0x1f;
- visual->greenMask=0x7e0;
- visual->blueMask=0xf800;
-*/
}
- }
+ }
}
xf86SetBlackWhitePixels(pScreen);
@@ -1151,23 +1229,49 @@ renditionScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
/* Initialise cursor functions */
miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
- if(!xf86ReturnOptValBool(renditionOptions, OPTION_SW_CURSOR,0)){
+ if(!xf86ReturnOptValBool(renditionOptions, OPTION_SW_CURSOR,0)&&
+ !pRendition->board.rotate){
/* Initialise HW cursor */
- ErrorF("RENDITION: Hardware cursor used\n");
if(!RenditionHWCursorInit(scrnIndex, pScreen)){
- ErrorF("Hardware Cursor initalization failed!!\n");
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_ERROR,
+ "Hardware Cursor initalization failed!!\n");
}
}
- else {
- ErrorF("RENDITION: Software cursor selected\n");
+
+ if (pRendition->board.shadowfb) {
+ RefreshAreaFuncPtr refreshArea = renditionRefreshArea;
+
+ if(pRendition->board.rotate) {
+ if (!pRendition->board.PointerMoved) {
+ pRendition->board.PointerMoved = pScreenInfo->PointerMoved;
+ pScreenInfo->PointerMoved = renditionPointerMoved;
+ }
+
+ switch(pScreenInfo->bitsPerPixel) {
+ case 8: refreshArea = renditionRefreshArea8; break;
+ case 16: refreshArea = renditionRefreshArea16; break;
+ case 24: refreshArea = renditionRefreshArea24; break;
+ case 32: refreshArea = renditionRefreshArea32; break;
+ }
+ }
+
+ ShadowFBInit(pScreen, refreshArea);
}
/* Setup default colourmap */
- Inited = miCreateDefColormap(pScreen);
+ if (!miCreateDefColormap(pScreen))
+ return FALSE;
/* Try the new code based on the new colormap layer */
if (pScreenInfo->depth > 1)
- vgaHWHandleColormaps(pScreen);
+ if (!xf86HandleColormaps(pScreen, 256, pScreenInfo->rgbBits,
+ renditionLoadPalette, NULL,
+ CMAP_LOAD_EVEN_IF_OFFSCREEN|
+ CMAP_RELOAD_ON_MODE_SWITCH)) {
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_ERROR, "Colormap initialization failed\n");
+ return FALSE;
+ }
+
#ifdef DPMSExtension
xf86DPMSInit(pScreen, renditionDPMSSet, 0);
@@ -1268,12 +1372,13 @@ renditionValidMode(int scrnIndex, DisplayModePtr pMode, Bool Verbose, int flags)
return MODE_OK;
}
-static Bool renditionMapMem(ScrnInfoPtr pScreenInfo)
+static Bool
+renditionMapMem(ScrnInfoPtr pScreenInfo)
{
Bool WriteCombine;
int mapOption;
-#ifdef DEBUG0
+#ifdef DEBUG
ErrorF("Mapping ...\n");
ErrorF("%d %d %d %x %d\n", pScreenInfo->scrnIndex, VIDMEM_FRAMEBUFFER,
RENDITIONPTR(pScreenInfo)->pcitag,
@@ -1314,9 +1419,10 @@ static Bool renditionMapMem(ScrnInfoPtr pScreenInfo)
#endif
}
-static Bool renditionUnmapMem(ScrnInfoPtr pScreenInfo)
+static Bool
+renditionUnmapMem(ScrnInfoPtr pScreenInfo)
{
-#ifdef DEBUG0
+#ifdef DEBUG
ErrorF("Unmapping ...\n");
#endif
xf86UnMapVidMem(pScreenInfo->scrnIndex,
@@ -1327,7 +1433,17 @@ static Bool renditionUnmapMem(ScrnInfoPtr pScreenInfo)
#endif
}
-static xf86MonPtr renditionDDC (ScrnInfoPtr pScreenInfo)
+static void
+renditionLoadPalette(ScrnInfoPtr pScreenInfo, int numColors,
+ int *indices, LOCO *colors,
+ VisualPtr pVisual)
+{
+ v_setpalette(pScreenInfo, numColors, indices, colors, pVisual);
+}
+
+
+static xf86MonPtr
+renditionDDC (ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob=pRendition->board.io_base;
@@ -1359,7 +1475,8 @@ static xf86MonPtr renditionDDC (ScrnInfoPtr pScreenInfo)
return MonInfo;
}
-static unsigned int renditionDDC1Read (ScrnInfoPtr pScreenInfo)
+static unsigned int
+renditionDDC1Read (ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob=pRendition->board.io_base;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.cpp b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.cpp
new file mode 100644
index 000000000..644cbc732
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.cpp
@@ -0,0 +1,112 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.cpp,v 1.2 2000/03/05 16:59:14 dawes Exp $
+.TH RENDITION __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+rendition \- Rendition video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""rendition"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B rendition
+is an XFree86 driver for Rendition/Micron based video cards. The driver
+supports following framebuffer depths: 8, 15 (Verite V1000 only), 16
+and 24. Acceleration and multi-head configurations are
+not supported yet, but are work in progress.
+.SH SUPPORTED HARDWARE
+The
+.B rendition
+driver supports PCI and AGP video cards based on the following Rendition/Micron chips:
+.TP 12
+.B V1000
+Verite V1000 based cards.
+.TP 12
+.B V2100
+Verite V2100 based cards. Diamond Stealth II S220 is the only known such card.
+.TP 12
+.B V2200
+Verite V2200 based cards.
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.PP
+The driver auto-detects the chipset type, but the following
+.B ChipSet
+names may optionally be specified in the config file
+.B """Device"""
+section, and will override the auto-detection:
+.PP
+.RS 4
+"v1000", "v2100", "v2200".
+.RE
+.PP
+The driver will auto-detect the amount of video memory present for all
+chips. If the amount of memory is detected incorrectly, the actual amount
+of video memory should be specified with a
+.B VideoRam
+entry in the config file
+.B """Device"""
+section.
+.PP
+The following driver
+.B Options
+are supported:
+.TP
+.BI "Option ""SWCursor"" """ boolean """
+Disables use of the hardware cursor. Default: use HW-cursor.
+.TP
+.BI "Option ""OverclockMem"" """ boolean """
+Increases the Mem/Sys clock to 125MHz/60MHz from standard 110MHz/50MHz.
+Default: Not overclocked.
+.TP
+.BI "Option ""DacSpeed"" """ MHz """
+Run the memory at a higher clock. Useful on some cards with display glitches
+at higher resolutions. But adds the risk to damage the hardware. Use with
+caution.
+.TP
+.BI "Option ""FramebufferWC"" """ boolean """
+If writecombine is disabled in BIOS, and you add this option in configuration
+file, then the driver will try to request writecombined access to the
+framebuffer. This can drastically increase the performance on unaccelerated
+server. Requires that "MTRR"-support is compiled into the OS-kernel.
+Default: Disabled for V1000, enabled for V2100/V2200.
+.TP
+.BI "Option ""NoDDC"" """ boolean """
+Disable probing of DDC-information from your monitor. This information is not
+used yet and is only there for informational purposes. This might change
+before final XFree86 4.0 release. Safe to disable if you experience problems
+during startup of X-server.
+Default: Probe DDC.
+.TP
+.BI "Option ""ShadowFB"" """ boolean """
+If this option is enabled, the driver will cause the CPU to do each drawing
+operation first into a shadow frame buffer in system virtual memory and then
+copy the result into video memory. If this option is not active, the CPU will
+draw directly into video memory. Enabling this option is beneficial for those
+systems where reading from video memory is, on average, slower than the
+corresponding read/modify/write operation in system virtual memory. This is
+normally the case for PCI or AGP adapters, and, so, this option is enabled by
+default unless acceleration is enabled.
+Default: Enabled unless acceleration is used.
+.TP
+.BI "Option ""Rotate"" ""CW""
+.TP
+.BI "Option ""Rotate"" ""CCW""
+Rotate the display clockwise or counterclockwise. This mode is unaccelerated.
+Default: no rotation.
+.TP
+.SH "Notes"
+For the moment the driver defaults to not request write-combine for any chipset
+as there has been indications of problems with it. Use
+.B "Option ""MTRR"""
+to let the driver request write-combining of memory access on the videoboard.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: Marc Langenbach, Dejan Ilic
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h
index ca8df2861..a9f73bb01 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h,v 1.4 1999/12/14 03:12:09 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h,v 1.5 2000/02/25 21:03:02 dawes Exp $ */
#ifndef __RENDITION_H__
#define __RENDITION_H__
@@ -77,6 +77,7 @@
/* DDC support */
#include "xf86DDC.h"
+
#include "commonregs.h"
/* end of __RENDITION_H__ */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h
index b45eb580d..89eb3d1df 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h,v 1.3 1999/11/02 16:16:42 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h,v 1.4 2000/03/01 00:25:24 dawes Exp $ */
#ifndef __RENDITION_OPTION_H__
#define __RENDITION_OPTION_H__
@@ -9,7 +9,9 @@ typedef enum {
OPTION_SW_CURSOR,
OPTION_NOACCEL,
OPTION_OVERCLOCK_MEM,
- OPTION_NO_DDC
+ OPTION_NO_DDC,
+ OPTION_SHADOW_FB,
+ OPTION_ROTATE
} renditionOpts;
@@ -24,6 +26,8 @@ static OptionInfoRec renditionOptions[]={
{ OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_OVERCLOCK_MEM,"Overclock_Mem", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_NO_DDC, "NoDDC", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_SHADOW_FB, "ShadowFB", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_ROTATE, "Rotate", OPTV_ANYSTR, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
/*********************************/
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.c
new file mode 100644
index 000000000..cf93af56b
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.c
@@ -0,0 +1,256 @@
+/*
+ * file rendition_shadow.h
+ *
+ * The functions used by ShadowFB
+ * Based on code written by Mark Vojkovich <markv@valinux.com>
+ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.c,v 1.1 2000/03/01 00:25:25 dawes Exp $ */
+
+#include "rendition.h"
+#include "vtypes.h"
+#include "rendition_shadow.h"
+#include "shadowfb.h"
+#include "servermd.h"
+
+
+
+void
+renditionRefreshArea(ScrnInfoPtr pScreenInfo, int num, BoxPtr pbox)
+{
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+ int width, height, Bpp, FBPitch;
+ unsigned char *src, *dst;
+
+ Bpp = pScreenInfo->bitsPerPixel >> 3;
+ FBPitch = BitmapBytePad(pScreenInfo->displayWidth *
+ pScreenInfo->bitsPerPixel);
+
+ while(num--) {
+ width = (pbox->x2 - pbox->x1) * Bpp;
+ height = pbox->y2 - pbox->y1;
+ src = pRendition->board.shadowPtr +
+ (pbox->y1 * pRendition->board.shadowPitch) + (pbox->x1 * Bpp);
+
+ dst = pRendition->board.vmem_base+pRendition->board.fbOffset +
+ (pbox->y1 * FBPitch) + (pbox->x1 * Bpp);
+
+ while(height--) {
+ memcpy(dst, src, width);
+ dst += FBPitch;
+ src += pRendition->board.shadowPitch;
+ }
+
+ pbox++;
+ }
+}
+
+void
+renditionPointerMoved(int index, int x, int y)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[index];
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+ int newX, newY;
+
+ if(pRendition->board.rotate == 1) {
+ newX = pScreenInfo->pScreen->height - y - 1;
+ newY = x;
+ } else {
+ newX = y;
+ newY = pScreenInfo->pScreen->width - x - 1;
+ }
+
+ (*pRendition->board.PointerMoved)(index, newX, newY);
+}
+
+void
+renditionRefreshArea8(ScrnInfoPtr pScreenInfo, int num, BoxPtr pbox)
+{
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+ int count, width, height, y1, y2, dstPitch, srcPitch;
+ CARD8 *dstPtr, *srcPtr, *src;
+ CARD32 *dst;
+
+ dstPitch = pScreenInfo->displayWidth;
+ srcPitch = -pRendition->board.rotate * pRendition->board.shadowPitch;
+
+ while(num--) {
+ width = pbox->x2 - pbox->x1;
+ y1 = pbox->y1 & ~3;
+ y2 = (pbox->y2 + 3) & ~3;
+ height = (y2 - y1) >> 2; /* in dwords */
+
+ if(pRendition->board.rotate == 1) {
+ dstPtr = pRendition->board.vmem_base+pRendition->board.fbOffset +
+ (pbox->x1 * dstPitch) + pScreenInfo->virtualX - y2;
+ srcPtr = pRendition->board.shadowPtr + ((1 - y2) * srcPitch) + pbox->x1;
+ } else {
+ dstPtr = pRendition->board.vmem_base+pRendition->board.fbOffset +
+ ((pScreenInfo->virtualY - pbox->x2) * dstPitch) + y1;
+ srcPtr = pRendition->board.shadowPtr + (y1 * srcPitch) + pbox->x2 - 1;
+ }
+
+ while(width--) {
+ src = srcPtr;
+ dst = (CARD32*)dstPtr;
+ count = height;
+ while(count--) {
+ *(dst++) = src[0] | (src[srcPitch] << 8) |
+ (src[srcPitch * 2] << 16) |
+ (src[srcPitch * 3] << 24);
+ src += srcPitch * 4;
+ }
+ srcPtr += pRendition->board.rotate;
+ dstPtr += dstPitch;
+ }
+
+ pbox++;
+ }
+}
+
+
+void
+renditionRefreshArea16(ScrnInfoPtr pScreenInfo, int num, BoxPtr pbox)
+{
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+ int count, width, height, y1, y2, dstPitch, srcPitch;
+ CARD16 *dstPtr, *srcPtr, *src;
+ CARD32 *dst;
+
+ dstPitch = pScreenInfo->displayWidth;
+ srcPitch = -pRendition->board.rotate * pRendition->board.shadowPitch >> 1;
+
+ while(num--) {
+ width = pbox->x2 - pbox->x1;
+ y1 = pbox->y1 & ~1;
+ y2 = (pbox->y2 + 1) & ~1;
+ height = (y2 - y1) >> 1; /* in dwords */
+
+ if(pRendition->board.rotate == 1) {
+ dstPtr = (CARD16*)(pRendition->board.vmem_base+
+ pRendition->board.fbOffset) +
+ (pbox->x1 * dstPitch) + pScreenInfo->virtualX - y2;
+ srcPtr = (CARD16*)pRendition->board.shadowPtr +
+ ((1 - y2) * srcPitch) + pbox->x1;
+ } else {
+ dstPtr = (CARD16*)(pRendition->board.vmem_base+
+ pRendition->board.fbOffset) +
+ ((pScreenInfo->virtualY - pbox->x2) * dstPitch) + y1;
+ srcPtr = (CARD16*)pRendition->board.shadowPtr +
+ (y1 * srcPitch) + pbox->x2 - 1;
+ }
+
+ while(width--) {
+ src = srcPtr;
+ dst = (CARD32*)dstPtr;
+ count = height;
+ while(count--) {
+ *(dst++) = src[0] | (src[srcPitch] << 16);
+ src += srcPitch * 2;
+ }
+ srcPtr += pRendition->board.rotate;
+ dstPtr += dstPitch;
+ }
+
+ pbox++;
+ }
+}
+
+
+/* this one could be faster */
+void
+renditionRefreshArea24(ScrnInfoPtr pScreenInfo, int num, BoxPtr pbox)
+{
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+ int count, width, height, y1, y2, dstPitch, srcPitch;
+ CARD8 *dstPtr, *srcPtr, *src;
+ CARD32 *dst;
+
+ dstPitch = BitmapBytePad(pScreenInfo->displayWidth * 24);
+ srcPitch = -pRendition->board.rotate * pRendition->board.shadowPitch;
+
+ while(num--) {
+ width = pbox->x2 - pbox->x1;
+ y1 = pbox->y1 & ~3;
+ y2 = (pbox->y2 + 3) & ~3;
+ height = (y2 - y1) >> 2; /* blocks of 3 dwords */
+
+ if(pRendition->board.rotate == 1) {
+ dstPtr = pRendition->board.vmem_base+pRendition->board.fbOffset+
+ (pbox->x1 * dstPitch) + ((pScreenInfo->virtualX - y2) * 3);
+ srcPtr = pRendition->board.shadowPtr + ((1 - y2) * srcPitch) +
+ (pbox->x1 * 3);
+ } else {
+ dstPtr = pRendition->board.vmem_base+pRendition->board.fbOffset +
+ ((pScreenInfo->virtualY - pbox->x2) * dstPitch) + (y1 * 3);
+ srcPtr = pRendition->board.shadowPtr + (y1 * srcPitch) +
+ (pbox->x2 * 3) - 3;
+ }
+
+ while(width--) {
+ src = srcPtr;
+ dst = (CARD32*)dstPtr;
+ count = height;
+ while(count--) {
+ dst[0] = src[0] | (src[1] << 8) | (src[2] << 16) |
+ (src[srcPitch] << 24);
+ dst[1] = src[srcPitch + 1] | (src[srcPitch + 2] << 8) |
+ (src[srcPitch * 2] << 16) |
+ (src[(srcPitch * 2) + 1] << 24);
+ dst[2] = src[(srcPitch * 2) + 2] | (src[srcPitch * 3] << 8) |
+ (src[(srcPitch * 3) + 1] << 16) |
+ (src[(srcPitch * 3) + 2] << 24);
+ dst += 3;
+ src += srcPitch * 4;
+ }
+ srcPtr += pRendition->board.rotate * 3;
+ dstPtr += dstPitch;
+ }
+
+ pbox++;
+ }
+}
+
+void
+renditionRefreshArea32(ScrnInfoPtr pScreenInfo, int num, BoxPtr pbox)
+{
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+ int count, width, height, dstPitch, srcPitch;
+ CARD32 *dstPtr, *srcPtr, *src, *dst;
+
+ dstPitch = pScreenInfo->displayWidth;
+ srcPitch = -pRendition->board.rotate * pRendition->board.shadowPitch >> 2;
+
+ while(num--) {
+ width = pbox->x2 - pbox->x1;
+ height = pbox->y2 - pbox->y1;
+
+ if(pRendition->board.rotate == 1) {
+ dstPtr = (CARD32*)(pRendition->board.vmem_base+
+ pRendition->board.fbOffset) +
+ (pbox->x1 * dstPitch) + pScreenInfo->virtualX - pbox->y2;
+ srcPtr = (CARD32*)pRendition->board.shadowPtr +
+ ((1 - pbox->y2) * srcPitch) + pbox->x1;
+ } else {
+ dstPtr = (CARD32*)(pRendition->board.vmem_base+
+ pRendition->board.fbOffset) +
+ ((pScreenInfo->virtualY - pbox->x2) * dstPitch) + pbox->y1;
+ srcPtr = (CARD32*)pRendition->board.shadowPtr +
+ (pbox->y1 * srcPitch) + pbox->x2 - 1;
+ }
+
+ while(width--) {
+ src = srcPtr;
+ dst = dstPtr;
+ count = height;
+ while(count--) {
+ *(dst++) = *src;
+ src += srcPitch;
+ }
+ srcPtr += pRendition->board.rotate;
+ dstPtr += dstPitch;
+ }
+
+ pbox++;
+ }
+}
+
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.h
new file mode 100644
index 000000000..ec744639f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.h
@@ -0,0 +1,23 @@
+/*
+ * file rendition_shadow.h
+ *
+ * headfile for rendition_shadow.c
+ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.h,v 1.1 2000/03/01 00:25:25 dawes Exp $ */
+
+#ifndef __RENDITION_SHADOW_H__
+#define __RENDITION_SHADOW_H__
+
+void renditionRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+void renditionRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+void renditionRefreshArea16(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+void renditionRefreshArea24(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+void renditionRefreshArea32(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+void renditionPointerMoved(int index, int x, int y);
+
+
+#endif
+
+/*
+ * end of file rendition_shadow.h
+ */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c
index dc34bfa89..516268691 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c,v 1.4 1999/11/19 13:54:45 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c,v 1.5 2000/02/25 21:03:03 dawes Exp $ */
/*
*
*/
@@ -104,7 +104,8 @@ static void risc_continue(vu16 io_base);
*
* Start the RISC with its PC set to |pc|.
*/
-void v1k_start(ScrnInfoPtr pScreenInfo, vu32 pc)
+void
+v1k_start(ScrnInfoPtr pScreenInfo, vu32 pc)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 io_base=pRendition->board.io_base;
@@ -126,7 +127,8 @@ void v1k_start(ScrnInfoPtr pScreenInfo, vu32 pc)
*
* Let the RISC do its work.
*/
-void v1k_continue(ScrnInfoPtr pScreenInfo)
+void
+v1k_continue(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -140,7 +142,8 @@ void v1k_continue(ScrnInfoPtr pScreenInfo)
*
* Stop the RISC.
*/
-void v1k_stop(ScrnInfoPtr pScreenInfo)
+void
+v1k_stop(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu8 debugreg, statusreg;
@@ -192,7 +195,8 @@ void v1k_stop(ScrnInfoPtr pScreenInfo)
* Returns with Icache on, also flushes Pixel engine line buffers
* in the Dcache.
*/
-void v1k_flushicache(ScrnInfoPtr pScreenInfo)
+void
+v1k_flushicache(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu32 c, p1, p2;
@@ -240,7 +244,8 @@ void v1k_flushicache(ScrnInfoPtr pScreenInfo)
*
* Soft Reset RISC.
*/
-void v1k_softreset(ScrnInfoPtr pScreenInfo)
+void
+v1k_softreset(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 io_base=pRendition->board.io_base;
@@ -292,7 +297,8 @@ v1k_getriscprocs(v_board_desc *boardDesc)
*
* Loop on IO read until expected data is read or V_MAX_POLLS is reached.
*/
-static void v_iopoll(vu16 port, vu32 data, vu32 mask)
+static void
+v_iopoll(vu16 port, vu32 data, vu32 mask)
{
vu32 c, d;
@@ -311,7 +317,8 @@ static void v_iopoll(vu16 port, vu32 data, vu32 mask)
*
* Loop on IO read until expected data is read or V_MAX_POLLS is reached.
*/
-static void v_iopoll8(vu16 port, vu8 data, vu8 mask)
+static void
+v_iopoll8(vu16 port, vu8 data, vu8 mask)
{
vu32 c;
vu8 d;
@@ -331,7 +338,8 @@ static void v_iopoll8(vu16 port, vu8 data, vu8 mask)
*
* Reads data from register file.
*/
-static vu32 readRF(vu16 io_base, vu8 index)
+static vu32
+readRF(vu16 io_base, vu8 index)
{
vu32 data, instr;
vu8 debug, stateindex;
@@ -368,7 +376,8 @@ static vu32 readRF(vu16 io_base, vu8 index)
*
* Set RF register, being careful on how to set regs below 64.
*/
-static void writeRF(vu16 io_base, vu8 index, vu32 data)
+static void
+writeRF(vu16 io_base, vu8 index, vu32 data)
{
vu8 special=0;
@@ -406,7 +415,8 @@ static void writeRF(vu16 io_base, vu8 index, vu32 data)
*
* NOTE: Assumes RISC is in hold mode.
*/
-static vu32 risc_readmem(vu16 io_base, vu32 addr, vu8 read_type)
+static vu32
+risc_readmem(vu16 io_base, vu32 addr, vu8 read_type)
{
vu32 data;
@@ -433,7 +443,8 @@ static vu32 risc_readmem(vu16 io_base, vu32 addr, vu8 read_type)
*
* NOTE: Assumes RISC is in hold mode.
*/
-static void risc_writemem(vu16 io_base, vu32 addr, vu32 data, vu8 write_type)
+static void
+risc_writemem(vu16 io_base, vu32 addr, vu32 data, vu8 write_type)
{
writeRF(io_base, RISC_RA, addr); /* point to memory */
writeRF(io_base, RISC_FP, data); /* set data */
@@ -452,7 +463,8 @@ static void risc_writemem(vu16 io_base, vu32 addr, vu32 data, vu8 write_type)
*
* Single step the RISC. NOTE: Do not force instruction into RISCIR!
*/
-static void risc_step(vu16 io_base, vu32 count)
+static void
+risc_step(vu16 io_base, vu32 count)
{
vu32 c, d;
vu8 debugreg;
@@ -479,7 +491,8 @@ static void risc_step(vu16 io_base, vu32 count)
*
* Single step RISC; force instruction; assumes RISC held.
*/
-static void risc_forcestep(vu16 io_base, vu32 instruction)
+static void
+risc_forcestep(vu16 io_base, vu32 instruction)
{
vu32 c;
vu8 debugreg, stateindex;
@@ -509,7 +522,8 @@ static void risc_forcestep(vu16 io_base, vu32 instruction)
*
* Turn off hold bit.
*/
-static void risc_continue(vu16 io_base)
+static void
+risc_continue(vu16 io_base)
{
vu8 debugreg;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c
index 6b08f6e60..94676049f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c,v 1.8 1999/12/14 03:12:10 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c,v 1.9 2000/02/25 21:03:03 dawes Exp $ */
/*
* includes
*/
@@ -17,6 +17,12 @@
#include "cscode.h"
+#if 0
+/* Global imported during compile-time */
+char MICROCODE_DIR [PATH_MAX] = MODULEDIR;
+#endif
+
+
/*
* local function prototypes
*/
@@ -25,7 +31,8 @@
/*
* functions
*/
-int v_initboard(ScrnInfoPtr pScreenInfo)
+int
+v_initboard(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -34,13 +41,13 @@ int v_initboard(ScrnInfoPtr pScreenInfo)
vu32 offset;
vu8 memendian;
int c,pc;
-
+
/* write "monitor" program to memory */
v1k_stop(pScreenInfo);
pRendition->board.csucode_base=0x800;
memendian=v_in8(iob+MEMENDIAN);
v_out8(iob+MEMENDIAN, MEMENDIAN_NO);
-
+
/* Note that CS ucode must wait on address in csucode_base
* when initialized for later context switch code to work. */
@@ -76,18 +83,35 @@ int v_initboard(ScrnInfoPtr pScreenInfo)
ErrorF ("RENDITION: V_INITBOARD -- PC != CSUCODEBASE\n");
ErrorF ("RENDITION: PC == 0x%x -- CSU == 0x%x\n",pc,pRendition->board.csucode_base);
}
-
+
/* reset memory endian */
v_out8(iob+MEMENDIAN, memendian);
- /* upload the u-code here */
+#if 0
+ if (V1000_DEVICE == pRendition->board.chip){
+ c=v_load_ucfile(pScreenInfo, xf86strcat ((char *)MICROCODE_DIR,"v10002d.uc"));
+ }
+ else {
+ /* V2x00 chip */
+ c=v_load_ucfile(pScreenInfo, xf86strcat ((char *)MICROCODE_DIR,"v20002d.uc"));
+ }
+
+ if (c == -1) {
+ ErrorF( "RENDITION: Microcode loading failed !!!\n");
+ return 1;
+ }
+
+ pRendition->board.ucode_entry=c;
+ ErrorF("UCode_Entry == 0x%x\n",pRendition->board.ucode_entry);
+#endif
/* Everything's OK */
return 0;
}
-int v_resetboard(ScrnInfoPtr pScreenInfo)
+int
+v_resetboard(ScrnInfoPtr pScreenInfo)
{
/*
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -98,7 +122,8 @@ int v_resetboard(ScrnInfoPtr pScreenInfo)
-int v_getmemorysize(ScrnInfoPtr pScreenInfo)
+int
+v_getmemorysize(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h
index 4788e70a2..ea880fe6b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h
@@ -1,4 +1,5 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h,v 1.4 1999/12/14 03:12:10 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h,v 1.5 2000/02/25 21:03:04 dawes Exp $ */
+
/*
* vboard.h
*
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c
index a95cd8770..ec03fa1d0 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c,v 1.9 2000/01/18 16:35:52 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c,v 1.10 2000/02/25 21:03:04 dawes Exp $ */
/*
* includes
*/
@@ -10,6 +10,7 @@
#include "vos.h"
#include "elf.h"
+
/*
* defines
*/
@@ -29,8 +30,10 @@
/*
* local function prototypes
*/
-void loadSection2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Shdr *shdr);
-void loadSegment2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Phdr *phdr);
+static void loadSection2board(ScrnInfoPtr pScreenInfo, int fd,
+ Elf32_Shdr *shdr);
+static void loadSegment2board(ScrnInfoPtr pScreenInfo, int fd,
+ Elf32_Phdr *phdr);
static int seek_and_read_hdr(int fd, void *ptr, long int offset,
int size, int cnt);
static void mmve(ScrnInfoPtr pScreenInfo, vu32 size, vu8 *data, vu32 phys_addr);
@@ -49,7 +52,8 @@ static void mmve(ScrnInfoPtr pScreenInfo, vu32 size, vu8 *data, vu32 phys_addr);
*
* Returns the program's entry point, on error -1;
*/
-int v_load_ucfile(ScrnInfoPtr pScreenInfo, char *file_name)
+int
+v_load_ucfile(ScrnInfoPtr pScreenInfo, char *file_name)
{
/* renditionPtr pRendition = RENDITIONPTR(pScreenInfo); */
@@ -60,7 +64,7 @@ int v_load_ucfile(ScrnInfoPtr pScreenInfo, char *file_name)
Elf32_Shdr *pshdr, *orig_pshdr=NULL;
Elf32_Ehdr ehdr ;
-#ifdef DEBUG
+#if 1 /* DEBUG */
ErrorF("RENDITION: Loading microcode %s\n", file_name);
#endif
@@ -85,7 +89,6 @@ int v_load_ucfile(ScrnInfoPtr pScreenInfo, char *file_name)
/* read in the program header(s) */
sz=SW16(ehdr.e_phentsize);
num=SW16(ehdr.e_phnum);
-
if (0!=sz && 0!=num) {
orig_pphdr=pphdr=(Elf32_Phdr *)xalloc(sz*num);
if (!pphdr) {
@@ -155,7 +158,8 @@ int v_load_ucfile(ScrnInfoPtr pScreenInfo, char *file_name)
* local functions
*/
-void loadSection2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Shdr *shdr)
+static void
+loadSection2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Shdr *shdr)
{
/* renditionPtr pRendition = RENDITIONPTR(pScreenInfo); */
ErrorF("vlib: loadSection2board not implemented yet!\n");
@@ -163,7 +167,8 @@ void loadSection2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Shdr *shdr)
-void loadSegment2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Phdr *phdr)
+static void
+loadSegment2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Phdr *phdr)
{
/* renditionPtr pRendition = RENDITIONPTR(pScreenInfo); */
vu8 *data;
@@ -194,7 +199,8 @@ void loadSegment2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Phdr *phdr)
-static int seek_and_read_hdr(int fd, void *ptr, long int offset, int size,
+static int
+seek_and_read_hdr(int fd, void *ptr, long int offset, int size,
int cnt)
{
if (lseek(fd, offset, SEEK_SET) != offset)
@@ -208,7 +214,8 @@ static int seek_and_read_hdr(int fd, void *ptr, long int offset, int size,
-static void mmve(ScrnInfoPtr pScreenInfo, vu32 size, vu8 *data, vu32 phys_addr)
+static void
+mmve(ScrnInfoPtr pScreenInfo, vu32 size, vu8 *data, vu32 phys_addr)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu8 memend;
@@ -226,8 +233,8 @@ static void mmve(ScrnInfoPtr pScreenInfo, vu32 size, vu8 *data, vu32 phys_addr)
while (size > 0) {
v_write_memory32(vmb, phys_addr, *dataout);
- phys_addr+=4;
- dataout++;
+ phys_addr+=4;
+ dataout++;
size-=4;
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c
index 774200b9e..ffc3861e7 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c
@@ -1,22 +1,35 @@
/* Misc routines used elsewhere in driver */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c,v 1.2 1999/11/19 14:59:18 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c,v 1.3 2000/02/25 21:03:05 dawes Exp $ */
#include "rendition.h"
#include "vtypes.h"
#include "vos.h"
#include "vmisc.h"
+#undef DEBUG
+
/* block copy from and to the card */
-void v_bustomem_cpy(vu8 *dst, vu8 *src, vu32 num)
+void
+v_bustomem_cpy(vu8 *dst, vu8 *src, vu32 num)
{
int i;
+
+#ifdef DEBUG
+ ErrorF ("Rendition: DEBUG v_bustomem_cpy called\n");
+#endif
for (i=0; i<num; i++)
dst[i] = v_read_memory8(src, i);
}
-void v_memtobus_cpy(vu8 *dst, vu8 *src, vu32 num)
+void
+v_memtobus_cpy(vu8 *dst, vu8 *src, vu32 num)
{
int i;
+
+#ifdef DEBUG
+ ErrorF ("Rendition: DEBUG v_memtobus_cpy called\n");
+#endif
+
for (i=0; i<num; i++)
v_write_memory8(dst, i, src[i]);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c
index 9b39ac0af..2e4e8dded 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c
@@ -1,12 +1,10 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c,v 1.6 1999/11/19 13:54:47 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c,v 1.7 2000/02/25 21:03:05 dawes Exp $ */
/*
* file vmodes.c
*
* Routines that handle mode setting.
*/
-
-
/*
* includes
*/
@@ -20,6 +18,10 @@
#include "v2kregs.h"
#include "vvga.h"
+
+#undef DEBUG
+
+
/* Options data */
#include "rendition_options.h"
extern OptionInfoRec renditionOptions[];
@@ -202,13 +204,18 @@ static double V2200CalcClock(double target, int *m, int *n, int *p);
* functions
*/
-int v_setmodefixed(ScrnInfoPtr pScreenInfo)
+int
+v_setmodefixed(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
int iob=pRendition->board.io_base;
int tmp;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_setmodefixed called\n");
+#endif
+
#ifdef SAVEVGA
v_savetextmode(pRendition->board);
#endif
@@ -247,7 +254,8 @@ int v_setmodefixed(ScrnInfoPtr pScreenInfo)
pRendition->board.mode.fifosize=128;
pRendition->board.init=1;
- v_setframebase(pScreenInfo, 0);
+ (*pScreenInfo->AdjustFrame)(pScreenInfo->scrnIndex,
+ pScreenInfo->frameX0, pScreenInfo->frameY0, 0);
v_out32(iob+CRTCCTL, CTL(0, 0, 0)
|V_PIXFMT_565
@@ -261,7 +269,8 @@ int v_setmodefixed(ScrnInfoPtr pScreenInfo)
-int v_setmode(ScrnInfoPtr pScreenInfo, struct v_modeinfo_t *mode)
+int
+v_setmode(ScrnInfoPtr pScreenInfo, struct v_modeinfo_t *mode)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -269,6 +278,10 @@ int v_setmode(ScrnInfoPtr pScreenInfo, struct v_modeinfo_t *mode)
int doubleclock=0;
int M, N, P;
int iob=pRendition->board.io_base;
+
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_setmode called\n");
+#endif
/* switching to native mode */
v_out8(iob+MODEREG, NATIVE_MODE|VESA_MODE);
@@ -344,7 +357,8 @@ int v_setmode(ScrnInfoPtr pScreenInfo, struct v_modeinfo_t *mode)
pRendition->board.mode.virtualwidth=pRendition->board.mode.screenwidth;
pRendition->board.init=1;
- v_setframebase(pScreenInfo, 0);
+ (*pScreenInfo->AdjustFrame)(pScreenInfo->scrnIndex,
+ pScreenInfo->frameX0, pScreenInfo->frameY0, 0);
/* Need to fix up syncs */
@@ -356,14 +370,18 @@ int v_setmode(ScrnInfoPtr pScreenInfo, struct v_modeinfo_t *mode)
|CRTCCTL_VSYNCENABLE
|CRTCCTL_VIDEOENABLE);
+#ifdef DEBUG
ErrorF ("Interlace mode -> %d\n", mode->flags);
+ xf86sleep(10);ErrorF ("...Exit SetMode...\n");
+#endif
return 0;
}
-void v_setframebase(ScrnInfoPtr pScreenInfo, vu32 framebase)
+void
+v_setframebase(ScrnInfoPtr pScreenInfo, vu32 framebase)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -376,7 +394,7 @@ void v_setframebase(ScrnInfoPtr pScreenInfo, vu32 framebase)
int fifo_size=pRendition->board.mode.fifosize;
#ifdef DEBUG
- ErrorF( "w=%d v=%d b=%d f=%d\n",
+ ErrorF( "Rendition: Debug v_setframebase w=%d v=%d b=%d f=%d\n",
swidth, vwidth, bytespp, fifo_size);
#endif
@@ -412,7 +430,8 @@ void v_setframebase(ScrnInfoPtr pScreenInfo, vu32 framebase)
-int v_getstride(ScrnInfoPtr pScreenInfo, int *width, vu16 *stride0, vu16 *stride1)
+int
+v_getstride(ScrnInfoPtr pScreenInfo, int *width, vu16 *stride0, vu16 *stride1)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
int bytesperline;
@@ -449,7 +468,8 @@ int v_getstride(ScrnInfoPtr pScreenInfo, int *width, vu16 *stride0, vu16 *stride
*
* Set PLL clock to desired frequency for the V1000.
*/
-void set_PLL(vu16 iob, vu32 value)
+void
+set_PLL(vu16 iob, vu32 value)
{
vu32 ulD;
int b;
@@ -474,7 +494,8 @@ void set_PLL(vu16 iob, vu32 value)
* of a second and the function is only called
* O(1) times during program execution.
*/
-static double V1000CalcClock(double target, int *M, int *N, int *P)
+static double
+V1000CalcClock(double target, int *M, int *N, int *P)
{
double mindiff = 1e10;
double vco, pcf, diff, freq;
@@ -514,7 +535,8 @@ static double V1000CalcClock(double target, int *M, int *N, int *P)
-static double V2200CalcClock(double target, int *m, int *n, int *p)
+static double
+V2200CalcClock(double target, int *m, int *n, int *p)
{
double mindiff = 1e10;
double vco, pcf, diff, freq;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h
index 7f4002a19..54ecfc12f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h,v 1.6 1999/12/03 19:17:34 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h,v 1.7 2000/02/25 21:03:06 dawes Exp $ */
/*
* file vos.h
*
@@ -46,7 +46,6 @@
#define v_write_memory8(base, offset, data) MMIO_OUT8(base, offset, data)
/* the rest of it */
-
void v_enableio(void);
void v_disableio(void);
vu8 *v_mapmemory(vu8 *membase, vu32 size);
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c
index fcb18240c..57016e5f6 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c,v 1.8 2000/01/18 16:35:53 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c,v 1.9 2000/02/25 21:03:06 dawes Exp $ */
/*
* includes
*/
@@ -13,6 +13,8 @@
* defines
*/
+#undef DEBUG
+
/* directly accessable RAMDAC registers */
#define BT485_WRITE_ADDR 0x00
#define BT485_RAMDAC_DATA 0x01
@@ -115,12 +117,17 @@ int Cursor_size=0;
* the corresponding field in the v_board_t struct is set), the clock doubling
* is turned on.
*/
-int v_initdac(ScrnInfoPtr pScreenInfo, vu8 bpp, vu8 doubleclock)
+int
+v_initdac(ScrnInfoPtr pScreenInfo, vu8 bpp, vu8 doubleclock)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob=pRendition->board.io_base+RAMDACBASEADDR;
vu8 cmd3_data=0;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_initdac called\n");
+#endif
+
if (doubleclock)
cmd3_data|=BT485_CLOCK_DOUBLER;
@@ -133,8 +140,7 @@ int v_initdac(ScrnInfoPtr pScreenInfo, vu8 bpp, vu8 doubleclock)
case 8:
v_out8(iob+BT485_COMMAND_REG_0, BT485_CR0_EXTENDED_REG_ACCESS |
- BT485_CR0_8_BIT_DAC);
-
+ BT485_CR0_8_BIT_DAC);
v_out8(iob+BT485_COMMAND_REG_1, BT485_CR1_8BPP |
BT485_CR1_PIXEL_PORT_AB);
v_out8(iob+BT485_COMMAND_REG_2, BT485_PIXEL_INPUT_GATE |
@@ -202,7 +208,8 @@ int v_initdac(ScrnInfoPtr pScreenInfo, vu8 bpp, vu8 doubleclock)
* or X-window-like cursor. Valid values are defined in vramdac.h.
*
*/
-void v_enablecursor(ScrnInfoPtr pScreenInfo, int type, int size)
+void
+v_enablecursor(ScrnInfoPtr pScreenInfo, int type, int size)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -213,6 +220,10 @@ void v_enablecursor(ScrnInfoPtr pScreenInfo, int type, int size)
vu16 iob=pRendition->board.io_base+RAMDACBASEADDR;
#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_enablecursor called type=0x%x\n",type);
+#endif
+
+#if 0
/* ensure proper ranges */
size=1; /* Enforce 64x64 Cursor */
#endif
@@ -226,6 +237,11 @@ void v_enablecursor(ScrnInfoPtr pScreenInfo, int type, int size)
if (type)
Cursor_size=(size ? 64 : 32);
+
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_enablecursor Exit\n");
+#endif
+
}
@@ -238,7 +254,8 @@ void v_enablecursor(ScrnInfoPtr pScreenInfo, int type, int size)
* this routine with x=0x0 and y=0x0.
*
*/
-void v_movecursor(ScrnInfoPtr pScreenInfo, vu16 x, vu16 y, vu8 xo, vu8 yo)
+void
+v_movecursor(ScrnInfoPtr pScreenInfo, vu16 x, vu16 y, vu8 xo, vu8 yo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob=pRendition->board.io_base+RAMDACBASEADDR;
@@ -255,32 +272,43 @@ void v_movecursor(ScrnInfoPtr pScreenInfo, vu16 x, vu16 y, vu8 xo, vu8 yo)
/*
- * void v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 fg, vu32 bg)
+ * void v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 bg, vu32 fg)
*
* Sets the color of the cursor -- should be revised for use with 3 colors!
*
*/
-void v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 fg, vu32 bg)
+void
+v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 fg, vu32 bg)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob=pRendition->board.io_base+RAMDACBASEADDR;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_setcursorcolor called FG=0x%x BG=0x%x\n",
+ fg,bg);
+#endif
+
v_out8(iob+BT485_CURS_WR_ADDR, 0x00);
+
/* load the cursor color 0 */
- v_out8(iob+BT485_CURS_DATA, bg&0xff);
- v_out8(iob+BT485_CURS_DATA, (bg>>8)&0xff);
- v_out8(iob+BT485_CURS_DATA, (bg>>16)&0xff);
+ v_out8(iob+BT485_CURS_DATA, 0x00);
+ v_out8(iob+BT485_CURS_DATA, 0x00);
+ v_out8(iob+BT485_CURS_DATA, 0x00);
/* load the cursor color 1 */
- v_out8(iob+BT485_CURS_DATA, fg&0xff);
- v_out8(iob+BT485_CURS_DATA, (fg>>8)&0xff);
v_out8(iob+BT485_CURS_DATA, (fg>>16)&0xff);
+ v_out8(iob+BT485_CURS_DATA, (fg>>8)&0xff);
+ v_out8(iob+BT485_CURS_DATA, fg&0xff);
- /* load the cursor color 2 (not used) */
+ /* load the cursor color 2 */
v_out8(iob+BT485_CURS_DATA, 0x00);
v_out8(iob+BT485_CURS_DATA, 0x00);
v_out8(iob+BT485_CURS_DATA, 0x00);
+ /* load the cursor color 3 */
+ v_out8(iob+BT485_CURS_DATA, (bg>>16)&0xff);
+ v_out8(iob+BT485_CURS_DATA, (bg>>8)&0xff);
+ v_out8(iob+BT485_CURS_DATA, bg&0xff);
}
@@ -290,7 +318,8 @@ void v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 fg, vu32 bg)
* But for now I'm happy it works ;) <ml>
*
*/
-void v_loadcursor(ScrnInfoPtr pScreenInfo, vu8 size, vu8 *cursorimage)
+void
+v_loadcursor(ScrnInfoPtr pScreenInfo, vu8 size, vu8 *cursorimage)
{
int c, bytes, row;
vu8 *src = cursorimage;
@@ -299,6 +328,10 @@ void v_loadcursor(ScrnInfoPtr pScreenInfo, vu8 size, vu8 *cursorimage)
vu8 tmp;
vu8 memend; /* Added for byte-swap fix */
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_loadcursor called\n");
+#endif
+
if (NULL == cursorimage)
return;
@@ -311,7 +344,7 @@ void v_loadcursor(ScrnInfoPtr pScreenInfo, vu8 size, vu8 *cursorimage)
bytes=64;
else
bytes=32;
- bytes=(bytes*bytes)/8;
+ bytes=(bytes*bytes)>>3;
if (pRendition->board.chip == V1000_DEVICE) {
/* now load the cursor data into the cursor ram */
@@ -358,23 +391,28 @@ void v_loadcursor(ScrnInfoPtr pScreenInfo, vu8 size, vu8 *cursorimage)
(c&1)?(*(src-2)):(*(src+2)));
}
-#ifdef DEBUG
/* Following line added for the byte-swap fix */
v_out8(pRendition->board.io_base + MEMENDIAN, memend);
-#endif
}
/* NOTE: count is the actual number of colors decremented by 1 */
-void v_setpalette(ScrnInfoPtr pScreenInfo, vu8 start, vu8 count, vu8 *table)
+void
+v_setpalette(ScrnInfoPtr pScreenInfo, int numColors, int *indices,
+ LOCO *colors, VisualPtr pVisual)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob=pRendition->board.io_base;
vu32 crtc_status;
+ int i, index;
int c;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_setpalette called\n");
+#endif
+
while (1) {
crtc_status=v_in32(iob+CRTCSTATUS);
if (crtc_status & CRTCSTATUS_VERT_SYNC)
@@ -383,16 +421,17 @@ void v_setpalette(ScrnInfoPtr pScreenInfo, vu8 start, vu8 count, vu8 *table)
iob+=RAMDACBASEADDR;
- if (((int)start+count) > 255)
- count=255-start;
-
- v_out8(iob+BT485_WRITE_ADDR, start);
+ for (i = 0; i < numColors; i++) {
+ index = indices[i];
+ v_out8(iob+BT485_WRITE_ADDR, index);
- for (c=0; c<=count; c++) {
- v_out8(iob+BT485_RAMDAC_DATA, *table++);
- v_out8(iob+BT485_RAMDAC_DATA, *table++);
- v_out8(iob+BT485_RAMDAC_DATA, *table++);
+ v_out8(iob+BT485_RAMDAC_DATA, colors[index].red);
+ v_out8(iob+BT485_RAMDAC_DATA, colors[index].green);
+ v_out8(iob+BT485_RAMDAC_DATA, colors[index].blue);
}
+
+
+
}
@@ -407,7 +446,8 @@ void v_setpalette(ScrnInfoPtr pScreenInfo, vu8 start, vu8 count, vu8 *table)
*
*
*/
-static void Bt485_write_masked(vu16 port, vu8 reg, vu8 mask, vu8 data)
+static void
+Bt485_write_masked(vu16 port, vu8 reg, vu8 mask, vu8 data)
{
vu8 tmp;
@@ -422,7 +462,8 @@ static void Bt485_write_masked(vu16 port, vu8 reg, vu8 mask, vu8 data)
*
*
*/
-static void Bt485_write_cmd3_masked(vu16 port, vu8 mask, vu8 data)
+static void
+Bt485_write_cmd3_masked(vu16 port, vu8 mask, vu8 data)
{
/*
Bt485_write_masked(port, BT485_COMMAND_REG_0, 0x7f, 0x80);
@@ -441,7 +482,8 @@ static void Bt485_write_cmd3_masked(vu16 port, vu8 mask, vu8 data)
*
*
*/
-static vu8 Bt485_read_masked(vu16 port, vu8 reg, vu8 mask)
+static vu8
+Bt485_read_masked(vu16 port, vu8 reg, vu8 mask)
{
return v_in8(port+reg)&mask;
}
@@ -453,7 +495,8 @@ static vu8 Bt485_read_masked(vu16 port, vu8 reg, vu8 mask)
*
*
*/
-static vu8 Bt485_read_cmd3_masked(vu16 port, vu8 mask)
+static vu8
+Bt485_read_cmd3_masked(vu16 port, vu8 mask)
{
vu8 value;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h
index ce47c02d0..2bcc91d91 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h,v 1.3 1999/10/13 04:21:24 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h,v 1.4 2000/02/25 21:03:07 dawes Exp $ */
/*
* file vramdac.h
*
@@ -39,9 +39,10 @@
int v_initdac(ScrnInfoPtr pScreenInfo, vu8 bpp, vu8 doubleclock);
void v_enablecursor(ScrnInfoPtr pScreenInfo, int type, int size);
void v_movecursor(ScrnInfoPtr pScreenInfo, vu16 x, vu16 y, vu8 xo, vu8 yo);
-void v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 fg, vu32 bg);
+void v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 bg, vu32 fg);
void v_loadcursor(ScrnInfoPtr pScreenInfo, vu8 type, vu8 *cursorimage);
-void v_setpalette(ScrnInfoPtr pScreenInfo, vu8 start, vu8 count, vu8 *table);
+void v_setpalette(ScrnInfoPtr pScreenInfo, int numColors, int *indices,
+ LOCO *colors, VisualPtr pVisual);
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h
index 4ffe43091..ec47a4a27 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h,v 1.4 1999/11/19 13:54:47 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h,v 1.5 2000/03/01 00:25:25 dawes Exp $ */
#ifndef _VTYPES_H_
#define _VTYPES_H_
@@ -142,6 +142,13 @@ struct v_board_t {
vu32 fbOffset; /* Currently busy fb-memory marker */
Bool overclock_mem; /* Memory overclock ? */
+ Bool shadowfb; /* Use ShadowFB ? */
+ vu8 *shadowPtr;
+ vu32 shadowPitch;
+ void (*PointerMoved)(int index, int x, int y);
+
+ int rotate; /* Rotate clockwise or counterclockwise */
+
vu8 ucode_buffer[MC_SIZE]; /* Space for microcode, when not needed */
};
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c
index f358cf401..b3368c158 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c
@@ -1,12 +1,10 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c,v 1.7 1999/11/19 13:54:48 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c,v 1.8 2000/02/25 21:03:07 dawes Exp $ */
/*
* file vvga.c
*
* Functions that handle the generic vga part of the Verite chips.
*/
-
-
/*
* includes
*/
@@ -18,6 +16,8 @@
#include "v1kregs.h"
#include "v2kregs.h"
+#undef DEBUG
+
void set_PLL(vu16, vu32);
/*
@@ -45,7 +45,8 @@ static void updattr(vu8 index, vu8 value);
* functions
*/
-void v_resetvga(void)
+void
+v_resetvga(void)
{
static struct VIDEO_REGS {
vu8 seq[8]; /* sequencer regs */
@@ -72,6 +73,10 @@ void v_resetvga(void)
};
int c;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_resetvga called\n");
+#endif
+
/* set attribute controller */
for (c=0; c<0x15; c++)
updattr(c, mode3.attr[c]);
@@ -92,7 +97,8 @@ void v_resetvga(void)
-void v_loadvgafont(void)
+void
+v_loadvgafont(void)
{
int c;
vu8 b;
@@ -101,6 +107,10 @@ void v_loadvgafont(void)
vu8 *vbase;
int fbFlags;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_loadvgafont called\n");
+#endif
+
/* Assert synchroneous reset while setting the clock mode */
setvgareg(0x3c4, 0, 1); /* assert synchronous reset */
v_out8(0x3c2, 0x67); /* select clock */
@@ -142,11 +152,16 @@ void v_loadvgafont(void)
-void v_textmode(struct v_board_t *board)
+void
+v_textmode(struct v_board_t *board)
{
vu16 iob=board->io_base;
int tmp;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_textmode called\n");
+#endif
+
/* dac */
v_out8(iob+DACCOMMAND0, 0x80); /* 6 bit op, enable extended */
v_out8(iob+DACCOMMAND1, 0x68); /* disable palette bypass */
@@ -207,11 +222,16 @@ void v_textmode(struct v_board_t *board)
-void v_savetextmode(struct v_board_t *board)
+void
+v_savetextmode(struct v_board_t *board)
{
vu8 *vbase;
int fbFlags;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_savetextmode called\n");
+#endif
+
/* save the cursor position */
board->cursor_hi=getvgareg(0x3d4, 0xe);
board->cursor_low=getvgareg(0x3d4, 0xf);
@@ -231,11 +251,16 @@ void v_savetextmode(struct v_board_t *board)
-void v_restoretextmode(struct v_board_t *board)
+void
+v_restoretextmode(struct v_board_t *board)
{
vu8 *vbase;
int fbFlags;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_restoretextmode called\n");
+#endif
+
/* restore the cursor position */
setvgareg(0x3d4, 0xe, board->cursor_hi);
setvgareg(0x3d4, 0xf, board->cursor_low);
@@ -255,11 +280,16 @@ void v_restoretextmode(struct v_board_t *board)
-void v_restorepalette(void)
+void
+v_restorepalette(void)
{
int c;
vu8 *pal=vga_pal;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_restorepalette called\n");
+#endif
+
v_out8(0x3c8, 0);
for (c=0; c<768; c++)
v_out8(0x3c9, *pal++);
@@ -276,7 +306,8 @@ void v_restorepalette(void)
*
* Reads in a vga register.
*/
-static vu8 getvgareg(vu16 port, vu8 index)
+static vu8
+getvgareg(vu16 port, vu8 index)
{
v_out8(port, index);
return v_in8(port+1);
@@ -289,7 +320,8 @@ static vu8 getvgareg(vu16 port, vu8 index)
*
* Sets a vga register.
*/
-static void setvgareg(vu16 port, vu8 index, vu8 value)
+static void
+setvgareg(vu16 port, vu8 index, vu8 value)
{
v_out8(port, index);
v_out8(port+1, value);
@@ -302,7 +334,8 @@ static void setvgareg(vu16 port, vu8 index, vu8 value)
*
* Used to write the attribute controller registers.
*/
-static void updattr(vu8 index, vu8 value)
+static void
+updattr(vu8 index, vu8 value)
{
v_in8(0x3da); /* points to index register for color adapter */
v_in8(0x3ba); /* points to index register for mono */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/README b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/README
index ae754b4e6..7ef54b4fb 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/README
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/README
@@ -1,6 +1,7 @@
What works:
-- Supports 8bpp, 15/16bpp, 24bpp and 32bpp. Tested on ViRGE DX
+- Supports 8bpp, 15/16bpp, 24bpp and 32bpp. Heavy testing on ViRGE DX.
+- There is some known instability in ViRGE GX2, please report problems.
XCONFIG options:
@@ -16,12 +17,20 @@ Cursor:
- "swcursor" will disable the HW Cursor. HW Cursor is used by default and
no option is needed to enable it.
+Display:
+- "ShadowFB" Use shadow framebuffer. Disables HW acceleration. Default: off.
+- "Rotate" " cw "|" ccw " Rotate the screen CW - clockwise or CCW - counter
+ clockwise. Disables HW Acceleration and HW Cursor, uses ShadowFB.
+ Default: no rotation.
+
Video memory:
- "slow_edodram" will switch the standard ViRGE to 2-cycle edo mode. Try this
if you encounter pixel corruption on the ViRGE. Using this option will
cause a large decrease in performance.
- "fpm_vram" will switch the ViRGE/VX to fast page mode vram mode
+- "slow_dram " | " fast_dram" Change Trio 3D and 3D/2X memory options.
+ Default: Use BIOS defaults.
- "early_ras_precharge", "late_ras_precharge" adjust memory parameters. One
of these will us the same settings as your video card defaults, and
using neither in the config file does the same.
@@ -29,6 +38,8 @@ Video memory:
Option "set_mclk" "50000"
in the XF86Config file. Valid values are any
integer <= 100000, where 100000 == 100 MHz.
+- "set_refclk" sets the ref clock for ViRGE MX, format is:
+ Option "set_refclk" "50000"
Acceleration and graphic engine:
@@ -66,5 +77,9 @@ ViRGE MX LCD options:
Option "set_lcdclk" "30000"
in the config file. Valid values are ?
+Debug:
+- "ShowCache" Enable or disable viewing offscreen cache memory. A
+ development debug option. Default: off.
+
-$XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/README,v 1.7 1999/04/04 08:46:16 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/README,v 1.8 2000/03/05 16:59:15 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c
index 2a99b9ea2..09fa19ea0 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c,v 1.17 2000/02/14 19:20:50 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c,v 1.18 2000/03/06 22:59:27 dawes Exp $ */
/*
Copyright (C) 1994-1999 The XFree86 Project, Inc. All Rights Reserved.
@@ -146,8 +146,9 @@ S3VAccelInit(ScreenPtr pScreen)
infoPtr->ImageWriteFlags = ROP_NEEDS_SOURCE |
NO_TRANSPARENCY |
CPU_TRANSFER_PAD_DWORD |
- SCANLINE_PAD_DWORD |
- LEFT_EDGE_CLIPPING;
+ SCANLINE_PAD_DWORD |
+ NO_GXCOPY | /* added - kjb */
+ LEFT_EDGE_CLIPPING;
infoPtr->ImageWriteRange = 0x8000;
infoPtr->ImageWriteBase = ps3v->MapBaseDense;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c
index cd0bbc55f..59589c176 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c
@@ -1,4 +1,29 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c,v 1.4 1999/07/18 08:14:33 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c,v 1.5 2000/03/06 22:59:27 dawes Exp $ */
+
+/*
+Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
+*/
/*
* file: s3v_dga.c
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c
index 2dad3bea4..e13f4e0c6 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c,v 1.49 2000/02/15 18:01:13 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c,v 1.54 2000/03/06 22:59:29 dawes Exp $ */
/*
Copyright (C) 1994-1999 The XFree86 Project, Inc. All Rights Reserved.
@@ -121,9 +121,9 @@ static int pix24bpp = 0;
#define S3VIRGE_NAME "S3VIRGE"
#define S3VIRGE_DRIVER_NAME "s3virge"
-#define S3VIRGE_VERSION_NAME "0.11.0"
-#define S3VIRGE_VERSION_MAJOR 0
-#define S3VIRGE_VERSION_MINOR 11
+#define S3VIRGE_VERSION_NAME "1.0.0"
+#define S3VIRGE_VERSION_MAJOR 1
+#define S3VIRGE_VERSION_MINOR 0
#define S3VIRGE_PATCHLEVEL 0
#define S3VIRGE_DRIVER_VERSION ((S3VIRGE_VERSION_MAJOR << 24) | \
(S3VIRGE_VERSION_MINOR << 16) | \
@@ -501,9 +501,6 @@ S3VProbe(DriverPtr drv, int flags)
PVERB5(" S3VProbe begin\n");
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
if ((numDevSections = xf86MatchDevice(S3VIRGE_DRIVER_NAME,
&devSections)) <= 0) {
/*
@@ -527,10 +524,9 @@ S3VProbe(DriverPtr drv, int flags)
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
/* Allocate a ScrnInfoRec and claim the slot */
ScrnInfoPtr pScrn = xf86AllocateScreen(drv, 0);
@@ -577,6 +573,8 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags)
vgaHWPtr hwp;
int vgaCRIndex, vgaCRReg, vgaIOBase;
+
+ if (flags & PROBE_DETECT) return FALSE;
PVERB5(" S3VPreInit 1\n");
@@ -803,7 +801,7 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags)
if (xf86GetOptValFreq(S3VOptions, OPTION_REFCLK, OPTUNITS_MHZ, &real)) {
ps3v->REFCLK = (int)(real * 1000.0);
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Option: set_mclk set to %1.3f Mhz\n",
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Option: set_refclk set to %1.3f Mhz\n",
ps3v->REFCLK / 1000.0 );
} else
ps3v->REFCLK = 0;
@@ -2452,7 +2450,7 @@ S3VScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n) {
xf86XVScreenInit(pScreen, ptr, n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c
index 2d91e65e0..e039c6ecf 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c
@@ -1,4 +1,29 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c,v 1.2 2000/01/21 02:30:01 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c,v 1.3 2000/03/06 22:59:29 dawes Exp $ */
+
+/*
+Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
+*/
#include "xf86.h"
#include "xf86_OSproc.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c
index 6aeb4ddbb..82324ed88 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c
@@ -1,4 +1,29 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c,v 1.1 2000/02/08 13:13:20 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c,v 1.2 2000/03/06 22:59:30 dawes Exp $ */
+
+/*
+Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
+*/
/*
Copyright (c) 1999,2000 The XFree86 Project Inc.
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp
index 44ba44e9f..4e801b592 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp,v 1.4 1999/08/22 13:04:27 dawes Exp $
-.TH s3virge __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp,v 1.6 2000/03/05 16:59:16 dawes Exp $
+.TH s3virge __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
s3virge \- S3 ViRGE video driver
.SH SYNOPSIS
@@ -26,7 +26,7 @@ visuals are supported for the other depths.
.SH SUPPORTED HARDWARE
The
.B s3virge
-driver supports PCI video cards based on the following S3 chips:
+driver supports PCI and AGP video cards based on the following S3 chips:
.TP 12
.B ViRGE
86C325
@@ -48,10 +48,17 @@ driver supports PCI video cards based on the following S3 chips:
.TP 12
.B ViRGE MX+
86C280
+.TP 12
+.B Trio 3D
+86C365
+.TP 12
+.B Trio 3D/2X
+86C362, 86C368
.SH CONFIGURATION DETAILS
Please refer to XF86Config(__filemansuffix__) for general configuration
details. This section only covers configuration details specific to this
-driver.
+driver. All options names are case and white space insensitive when
+parsed by the server, for exmaple, "virge vx" and "VIRGEvx" are equivalent.
.PP
The driver auto-detects the chipset type, but the following
.B ChipSet
@@ -62,18 +69,34 @@ section, and will override the auto-detection:
.RS 4
"virge", "86c325", "virge vx", "86c988", "virge dx", "86c375",
"virge gx", "86c385", "virge gx2", "86c357", "virge mx", "86c260",
-"virge mx+", "86c280".
+"virge mx+", "86c280", "trio 3d", "86c365", "trio 3d/2x", "86c362",
+"86c368".
.RE
+
.PP
The following Cursor
.B Options
are supported:
.TP
-.BI "Option ""HWCursor"" """ boolean """
+.BI "Option ""HWCursor"" [""" boolean """]
Enable or disable the HW cursor. Default: on.
.TP
-.BI "Option ""SWCursor"" """ boolean """
+.BI "Option ""SWCursor"" [""" boolean """]
Inverse of "HWCursor". Default: off.
+
+.PP
+The following display
+.B Options
+are supported:
+.TP
+.BI "Option ""ShadowFB"" [""" boolean """]
+Use shadow framebuffer. Disables HW acceleration. Default: off.
+.TP
+.BR "Option ""Rotate"" """ cw " | " ccw """
+Rotate the screen CW - clockwise or CCW - counter clockwise.
+Disables HW Acceleration and HW Cursor, uses ShadowFB.
+Default: no rotation.
+
.PP
The following video memory
.B Options
@@ -82,11 +105,14 @@ are supported:
.BI "Option ""slow_edodram"""
Switch the standard ViRGE to 2-cycle edo mode. Try this
if you encounter pixel corruption on the ViRGE. Using this option will
-cause a large decrease in performance. Default: off
+cause a large decrease in performance. Default: off.
.TP
.BI "Option ""fpm_vram"""
Switch the ViRGE/VX to fast page mode vram mode. Default: off.
.TP
+.BR "Option ""slow_dram " | " fast_dram"""
+Change Trio 3D and 3D/2X memory options. Default: Use BIOS defaults.
+.TP
.BR "Option ""early_ras_precharge " | " late_ras_precharge"""
adjust memory parameters. One
of these will us the same settings as your video card defaults, and
@@ -99,8 +125,16 @@ is in kHz, and
.I integer
<= 100000. Default: probe the memory clock value,
and use it at server start.
+.TP
+.BI "Option ""set_refclk"" """ integer """
+sets the ref clock for ViRGE MX, where
+.I integer
+is in kHz. Default: probe the memory clock value,
+and use it at server start.
+
+
.PP
-The following acceleration and graphic engine
+The following acceleration and graphics engine
.B Options
are supported:
.TP
@@ -133,11 +167,11 @@ The following PCI bus
.B Options
are supported:
.TP
-.BI "Option ""pci_burst"" """ boolean """
+.BI "Option ""pci_burst"" [""" boolean """]
will enable PCI burst mode. This should work on all but a
few broken PCI chipsets, and will increase performance. Default: off.
.TP
-.BI "Option ""pci_retry"" """ boolean """
+.BI "Option ""pci_retry"" [""" boolean """]
will allow the driver to rely on PCI Retry to program the
ViRGE registers.
.B "pci_burst"
@@ -163,8 +197,9 @@ The following additional
.B Options
are supported:
.TP
-.BI "Option ""ShowCache"" """ boolean """
-Enable or disable viewing offscreen memory. Default: off.
+.BI "Option ""ShowCache"" [""" boolean """]
+Enable or disable viewing offscreen cache memory. A
+development debug option. Default: off.
.SH SEE ALSO
XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile
index 83c6c15cb..3ff10e1a5 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile,v 1.10 2000/02/12 20:45:32 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile,v 1.11 2000/03/03 01:05:42 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the SIS driver.
XCOMM
@@ -34,5 +34,10 @@ ObjectModuleTarget(sis,$(OBJS))
InstallObjectModule(sis,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(sis,)
+InstallModuleManPage(sis)
+#endif
+
DependTarget()
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/sis/sis.cpp b/xc/programs/Xserver/hw/xfree86/drivers/sis/sis.cpp
new file mode 100644
index 000000000..dfe733bb2
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/sis/sis.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis.cpp,v 1.1 2000/03/03 01:05:42 dawes Exp $
+.TH SIS __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+sis \- SiS video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""sis"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B sis
+is an XFree86 driver for SiS video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B sis
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c
index b891b0249..7da2f85ca 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c
@@ -25,7 +25,7 @@
* Mitani Hiroshi <hmitani@drl.mei.co.jp>
* David Thomas <davtom@dream.org.uk>.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c,v 1.40 2000/02/21 19:23:08 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c,v 1.43 2000/03/03 21:26:18 dawes Exp $ */
#define PSZ 8
@@ -126,11 +126,13 @@ DriverRec SIS = {
};
static SymTabRec SISChipsets[] = {
+#if 0
{ PCI_CHIP_SG86C201, "SIS86c201" },
{ PCI_CHIP_SG86C202, "SIS86c202" },
{ PCI_CHIP_SG86C205, "SIS86c205" },
{ PCI_CHIP_SG86C215, "SIS86c215" },
{ PCI_CHIP_SG86C225, "SIS86c225" },
+#endif
{ PCI_CHIP_SIS5597, "SIS5597" },
{ PCI_CHIP_SIS5597, "SIS5598" },
{ PCI_CHIP_SIS530, "SIS530" },
@@ -142,10 +144,12 @@ static SymTabRec SISChipsets[] = {
};
static PciChipsets SISPciChipsets[] = {
+#if 0
{ PCI_CHIP_SG86C201, PCI_CHIP_SG86C201, RES_SHARED_VGA },
{ PCI_CHIP_SG86C202, PCI_CHIP_SG86C202, RES_SHARED_VGA },
{ PCI_CHIP_SG86C205, PCI_CHIP_SG86C205, RES_SHARED_VGA },
{ PCI_CHIP_SG86C205, PCI_CHIP_SG86C205, RES_SHARED_VGA },
+#endif
{ PCI_CHIP_SIS5597, PCI_CHIP_SIS5597, RES_SHARED_VGA },
{ PCI_CHIP_SIS530, PCI_CHIP_SIS530, RES_SHARED_VGA },
{ PCI_CHIP_SIS6326, PCI_CHIP_SIS6326, RES_SHARED_VGA },
@@ -398,8 +402,6 @@ SISProbe(DriverPtr drv, int flags)
* we'll ignore that.
*/
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* We need to probe the hardware first. We then need to see how this
* fits in with what is given in the config file, and allow the config
@@ -429,10 +431,9 @@ SISProbe(DriverPtr drv, int flags)
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
/* Allocate a ScrnInfoRec and claim the slot */
@@ -488,6 +489,8 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
const char *Sym = NULL;
int pix24flags;
+ if (flags & PROBE_DETECT) return FALSE;
+
/*
* Note: This function is only called once at server startup, and
* not at the start of each server generation. This means that
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile
index fe93a600f..4fe4392cb 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile,v 1.10 2000/02/15 19:19:21 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile,v 1.12 2000/03/03 01:05:43 dawes Exp $
XCOMM
XCOMM This is the Imakefile for the TDFX driver.
XCOMM
@@ -37,7 +37,7 @@ INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(XF86SRC)/xaa -I$(XF86SRC)/rac -I$(XF86SRC)/int10 \
-I$(SERVERSRC)/cfb -I$(XF86SRC)/xaa -I$(XF86SRC)/ramdac \
-I$(XF86SRC)/vgahw -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
- -I$(SERVERSRC)/Xext \
+ -I$(XF86SRC)/ddc -I$(XF86OSSRC)/vbe -I$(SERVERSRC)/Xext \
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
-I$(EXTINCSRC) \
$(DRIINCLUDES)
@@ -55,9 +55,10 @@ ObjectModuleTarget(tdfx,$(OBJS))
InstallObjectModule(tdfx,$(MODULEDIR),drivers)
-XCOMM To install a man page remove the x and add these lines
-XCOMM xCppManTarget(tdfx,)
-XCOMM xInstallModuleManPage(tdfx)
+#if !defined(XF86DriverSDK)
+CppManTarget(tdfx,)
+InstallModuleManPage(tdfx)
+#endif
DependTarget()
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.cpp b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.cpp
new file mode 100644
index 000000000..1a7c2dad2
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.cpp,v 1.1 2000/03/03 01:05:43 dawes Exp $
+.TH TDFX __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+tdfx \- 3Dfx video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""tdfx"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B tdfx
+is an XFree86 driver for 3Dfx video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B tdfx
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c
index 022732025..14365b441 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c,v 1.8 2000/02/20 04:12:40 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c,v 1.9 2000/03/02 16:07:52 martin Exp $ */
/* All drivers should typically include these */
#include "xf86.h"
@@ -622,6 +622,7 @@ TDFXNonTEGlyphRenderer(ScrnInfoPtr pScrn, int x, int y, int n,
int w = glyph->end - glyph->start;
int *glyph_data = (int*)glyph->bits;
+ if (!glyph->srcwidth) continue;
ndwords = (glyph->srcwidth+3)>>2;
ndwords *= glyph->height;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c
index 658e1f541..ec2729055 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c,v 1.21 2000/02/21 19:23:09 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c,v 1.30 2000/03/06 23:54:13 dawes Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
/*
@@ -50,7 +49,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "xf86_OSproc.h"
#include "xf86Resources.h"
#include "xf86RAC.h"
-#include "xf86int10.h"
+#include "vbe.h"
#include "xf86cmap.h"
/* If the driver uses port I/O directly, it needs: */
@@ -249,6 +248,18 @@ static const char *ramdacSymbols[] = {
NULL
};
+static const char *ddcSymbols[] = {
+ "xf86PrintEDID",
+ "xf86DoEDID_DDC1",
+ NULL
+};
+
+static const char *vbeSymbols[] = {
+ "VBEInit",
+ "vbeDoEDID",
+ NULL
+};
+
#ifdef XF86DRI
static const char *drmSymbols[] = {
"drmAddBufs",
@@ -323,7 +334,7 @@ tdfxSetup(pointer module, pointer opts, int *errmaj, int *errmin)
* might refer to.
*/
LoaderRefSymLists(vgahwSymbols, cfbSymbols, xaaSymbols,
- xf8_32bppSymbols, ramdacSymbols,
+ xf8_32bppSymbols, ramdacSymbols, vbeSymbols,
#ifdef XF86DRI
drmSymbols, driSymbols,
#endif
@@ -415,9 +426,8 @@ TDFXProbe(DriverPtr drv, int flags) {
if (numUsed<=0) return FALSE;
if (flags & PROBE_DETECT)
- return TRUE;
-
- for (i=0; i<numUsed; i++) {
+ foundScreen = TRUE;
+ else for (i=0; i<numUsed; i++) {
ScrnInfoPtr pScrn;
/* Allocate new ScrnInfoRec and claim the slot */
@@ -518,6 +528,19 @@ TDFXCountRam(ScrnInfoPtr pScrn) {
return memSize*1024;
}
+extern xf86MonPtr ConfiguredMonitor;
+
+void
+TDFXProbeDDC(ScrnInfoPtr pScrn, int index)
+{
+ vbeInfoPtr pVbe;
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ pVbe = VBEInit(NULL,index);
+ ConfiguredMonitor = vbeDoEDID(pVbe);
+ }
+}
+
+
/*
* TDFXPreInit --
*
@@ -539,14 +562,6 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) {
TDFXTRACE("TDFXPreInit start\n");
if (pScrn->numEntities != 1) return FALSE;
- /* The vgahw module should be loaded here when needed */
- if (!xf86LoadSubModule(pScrn, "vgahw")) return FALSE;
-
- xf86LoaderReqSymLists(vgahwSymbols, NULL);
-
- /* Allocate a vgaHWRec */
- if (!vgaHWGetHWRec(pScrn)) return FALSE;
-
/* Allocate driverPrivate */
if (!TDFXGetRec(pScrn)) {
return FALSE;
@@ -587,6 +602,11 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) {
else
pScrn->racMemFlags = RAC_FB | RAC_COLORMAP | RAC_CURSOR | RAC_VIEWPORT;
+ if (flags & PROBE_DETECT) {
+ TDFXProbeDDC(pScrn, pTDFX->pEnt->index);
+ return FALSE;
+ }
+
/* Set pScrn->monitor */
pScrn->monitor = pScrn->confScreen->monitor;
@@ -627,6 +647,14 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) {
}
}
+ /* The vgahw module should be loaded here when needed */
+ if (!xf86LoadSubModule(pScrn, "vgahw")) return FALSE;
+
+ xf86LoaderReqSymLists(vgahwSymbols, NULL);
+
+ /* Allocate a vgaHWRec */
+ if (!vgaHWGetHWRec(pScrn)) return FALSE;
+
/* We use a programamble clock */
pScrn->progClock = TRUE;
@@ -775,7 +803,7 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) {
clockRanges->maxClock=pTDFX->MaxClock;
clockRanges->clockIndex = -1;
clockRanges->interlaceAllowed = TRUE;
- clockRanges->doubleScanAllowed = FALSE;
+ clockRanges->doubleScanAllowed = TRUE;
i = xf86ValidateModes(pScrn, pScrn->monitor->Modes,
pScrn->display->modes, clockRanges,
@@ -844,6 +872,22 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) {
xf86LoaderReqSymLists(ramdacSymbols, NULL);
}
+ /* Load DDC if needed */
+ /* This gives us DDC1 - we should be able to get DDC2B using i2c */
+ if (!xf86LoadSubModule(pScrn, "ddc")) {
+ TDFXFreeRec(pScrn);
+ return FALSE;
+ }
+ xf86LoaderReqSymLists(ddcSymbols, NULL);
+
+ /* Initialize DDC1 if possible */
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ xf86MonPtr pMon;
+ pMon = vbeDoEDID(VBEInit(NULL,pTDFX->pEnt->index));
+ xf86SetDDCproperties(pScrn,xf86PrintEDID(pMon));
+ }
+
+
/* We wont be using the VGA access after the probe */
if (!xf86ReturnOptValBool(TDFXOptions, OPTION_USE_PIO, FALSE)) {
resRange vgaio[] = { {ResShrIoBlock,0x3B0,0x3BB},
@@ -1327,7 +1371,7 @@ TDFXModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
#ifdef XF86DRI
if (pTDFX->directRenderingEnabled) {
- DRILock(screenInfo.screens[pScrn->scrnIndex]);
+ DRILock(screenInfo.screens[pScrn->scrnIndex], 0);
TDFXSwapContextPrivate(screenInfo.screens[pScrn->scrnIndex]);
}
#endif
@@ -1706,7 +1750,7 @@ TDFXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n) {
xf86XVScreenInit(pScreen, ptr, n);
}
@@ -1787,7 +1831,7 @@ TDFXLeaveVT(int scrnIndex, int flags) {
#ifdef XF86DRI
pTDFX = TDFXPTR(pScrn);
if (pTDFX->directRenderingEnabled) {
- DRILock(pScreen);
+ DRILock(pScreen, 0);
}
#endif
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c
index fb0efcbf2..62b883a16 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c
@@ -24,13 +24,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c,v 1.3 1999/12/03 19:17:36 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c,v 1.4 2000/02/23 04:47:21 martin Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
#include "xf86.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h
index 6fe52a44c..b23abb98c 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h
@@ -21,7 +21,7 @@
*
* Authors: Alan Hourihane, <alanh@fairlite.demon.co.uk>
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h,v 1.13 1999/12/13 23:48:20 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h,v 1.14 2000/03/06 22:59:31 dawes Exp $ */
#ifndef _TGA_H_
#define _TGA_H_
@@ -52,6 +52,7 @@ typedef struct {
long FbMapSize;
unsigned long regOffset;
Bool NoAccel;
+ Bool NoXaaPolySegment;
Bool Dac6Bit;
Bool SyncOnGreen;
Bool HWCursor;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c
index d392a4297..d875edefc 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c,v 1.9 1999/12/16 02:26:30 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c,v 1.10 2000/03/06 22:59:31 dawes Exp $ */
/*
* Copyright 1996,1997 by Alan Hourihane, Wigan, England.
@@ -115,12 +115,14 @@ DEC21030AccelInit(ScreenPtr pScreen)
/* ErrorF("XAACreateInfoRec called"); */
- pTga->Bpp = pScrn->depth / 8; /* Bytes per pixel */
- if(pScrn->depth == 8)
+ if(pScrn->depth == 8) {
pTga->depthflag = BPP8PACKED;
- else
+ pTga->Bpp = 1;
+ } else {
pTga->depthflag = BPP24;
-
+ pTga->Bpp = 4;
+ }
+
TGA_AccelInfoRec->Flags = PIXMAP_CACHE | LINEAR_FRAMEBUFFER |
OFFSCREEN_PIXMAPS;
@@ -133,8 +135,8 @@ DEC21030AccelInit(ScreenPtr pScreen)
TGA_AccelInfoRec->SubsequentSolidFillRect = TGASubsequentSolidFillRect;
/* screen to screen copy */
- if(pScrn->depth == 8) { /* screen to screen copy apparently doesn't work
- for 32bpp tga */
+ if(pTga->depthflag == BPP8PACKED) { /* screen to screen copy apparently doesn't work
+ for 32bpp tga */
TGA_AccelInfoRec->ScreenToScreenCopyFlags = NO_TRANSPARENCY;
TGA_AccelInfoRec->SetupForScreenToScreenCopy =
TGASetupForScreenToScreenCopy;
@@ -152,30 +154,34 @@ DEC21030AccelInit(ScreenPtr pScreen)
TGASubsequentMono8x8PatternFillRect;
/* color expand */
- /* does this work for 32bpp? */
- TGA_AccelInfoRec->ScanlineCPUToScreenColorExpandFillFlags =
- BIT_ORDER_IN_BYTE_LSBFIRST;
+ /* does not work for 32bpp (yet) */
+ if(pTga->depthflag == BPP8PACKED) {
+ TGA_AccelInfoRec->ScanlineCPUToScreenColorExpandFillFlags =
+ BIT_ORDER_IN_BYTE_LSBFIRST;
- TGA_AccelInfoRec->NumScanlineColorExpandBuffers = 1;
- pTga->buffers[0] = (CARD32 *)malloc(CE_BUFSIZE);
- TGA_AccelInfoRec->ScanlineColorExpandBuffers =
- (unsigned char **)pTga->buffers;
- TGA_AccelInfoRec->SetupForScanlineCPUToScreenColorExpandFill =
- TGASetupForScanlineCPUToScreenColorExpandFill;
- TGA_AccelInfoRec->SubsequentScanlineCPUToScreenColorExpandFill =
- TGASubsequentScanlineCPUToScreenColorExpandFill;
- TGA_AccelInfoRec->SubsequentColorExpandScanline =
- TGASubsequentColorExpandScanline;
+ TGA_AccelInfoRec->NumScanlineColorExpandBuffers = 1;
+ pTga->buffers[0] = (CARD32 *)malloc(CE_BUFSIZE);
+ TGA_AccelInfoRec->ScanlineColorExpandBuffers =
+ (unsigned char **)pTga->buffers;
+ TGA_AccelInfoRec->SetupForScanlineCPUToScreenColorExpandFill =
+ TGASetupForScanlineCPUToScreenColorExpandFill;
+ TGA_AccelInfoRec->SubsequentScanlineCPUToScreenColorExpandFill =
+ TGASubsequentScanlineCPUToScreenColorExpandFill;
+ TGA_AccelInfoRec->SubsequentColorExpandScanline =
+ TGASubsequentColorExpandScanline;
+ }
/* lines */
TGA_AccelInfoRec->PolylinesThinSolid = TGAPolyLines;
- TGA_AccelInfoRec->PolySegmentThinSolid = TGAPolySegment;
+ if(pTga->NoXaaPolySegment == FALSE)
+ TGA_AccelInfoRec->PolySegmentThinSolid = TGAPolySegment;
TGA_AccelInfoRec->PolylinesThinSolidFlags = 0x0;
TGA_AccelInfoRec->PolySegmentThinSolidFlags = 0x0;
TGA_AccelInfoRec->PolylinesThinDashed = TGAPolyLinesDashed;
- TGA_AccelInfoRec->PolySegmentThinDashed = TGAPolySegmentDashed;
+ if(pTga->NoXaaPolySegment == FALSE)
+ TGA_AccelInfoRec->PolySegmentThinDashed = TGAPolySegmentDashed;
TGA_AccelInfoRec->PolylinesThinDashedFlags = 0x0;
TGA_AccelInfoRec->PolySegmentThinDashedFlags = 0x0;
TGA_AccelInfoRec->DashedLineFlags = LINE_PATTERN_LSBFIRST_LSBJUSTIFIED;
@@ -213,7 +219,7 @@ TGASetupForScanlineCPUToScreenColorExpandFill(ScrnInfoPtr pScrn,
TGA_GET_OFFSET();
/* ErrorF("TGASetupForScanlineCPUToScreenColorExpandFill called\n"); */
- if(pScrn->depth == 8) {
+ if(pTga->depthflag == BPP8PACKED) {
fgcolor = (fg | (fg << 8) | (fg << 16) | (fg << 24));
bgcolor = bg | (bg << 8) | (bg << 16) | (bg << 24);
pmask = planemask | (planemask << 8) | (planemask << 16)
@@ -232,7 +238,7 @@ TGASetupForScanlineCPUToScreenColorExpandFill(ScrnInfoPtr pScrn,
pTga->block_or_opaque_p = USE_BLOCK_FILL;
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR0_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR1_REG);
- if(pScrn->depth == 32) {
+ if(pTga->depthflag == BPP24) {
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR2_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR3_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR4_REG);
@@ -433,7 +439,7 @@ TGASetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop,
TGA_GET_OFFSET();
/* ErrorF("TGASetupForSolidFill called"); */
- if(pScrn->depth == 8) {
+ if(pTga->depthflag == BPP8PACKED) {
fgcolor = color | (color << 8) | (color << 16) | (color << 24);
pmask = planemask | (planemask << 8) | (planemask << 16) |
(planemask << 24);
@@ -448,7 +454,7 @@ TGASetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop,
pTga->block_or_opaque_p = USE_BLOCK_FILL;
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR0_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR1_REG);
- if(pScrn->depth == 32) {
+ if(pTga->depthflag == BPP24) {
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR2_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR3_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR4_REG);
@@ -867,7 +873,7 @@ TGASetupForMono8x8PatternFill(ScrnInfoPtr pScrn, int patx, int paty,
else
pTga->block_or_opaque_p = USE_OPAQUE_FILL;
- if(pScrn->depth == 8) {
+ if(pTga->depthflag == BPP8PACKED) {
fgcolor = fg | (fg << 8) | (fg << 16) | (fg << 24);
bgcolor = bg | (bg << 8) | (bg << 16) | (bg << 24);
pmask = planemask | (planemask << 8) | (planemask << 16) |
@@ -885,7 +891,7 @@ TGASetupForMono8x8PatternFill(ScrnInfoPtr pScrn, int patx, int paty,
/* we can use block fill mode to draw a transparent stipple */
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR0_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR1_REG);
- if(pScrn->depth == 32) {
+ if(pTga->depthflag == BPP24) {
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR2_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR3_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR4_REG);
@@ -934,7 +940,7 @@ TGASubsequentMono8x8PatternFillRect(ScrnInfoPtr pScrn, int patx, int paty,
TGA_FAST_WRITE_REG(pTga->current_rop, TGA_RASTEROP_REG);
TGA_FAST_WRITE_REG(pTga->current_planemask, TGA_PLANEMASK_REG);
- if(pScrn->depth == 8)
+ if(pTga->depthflag == BPP8PACKED)
align = FB_OFFSET(x, y) % 4;
else
align = x % 4;
@@ -1249,7 +1255,7 @@ TGASetupForDashedLine(ScrnInfoPtr pScrn, int fg, int bg, int rop,
TGA_GET_OFFSET();
/* ErrorF("TGASetupForDashedLine called\n"); */
- if(pScrn->depth == 8) {
+ if(pTga->depthflag == BPP8PACKED) {
color1 = fg | (fg << 8) | (fg << 16) | (fg << 24);
color2 = bg | (bg << 8) | (bg << 16) | (bg << 24);
pmask = planemask | (planemask << 8) | (planemask << 16)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c
index 17c08ba4b..5a89a10c8 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c
@@ -21,7 +21,7 @@
*
* Authors: Alan Hourihane, <alanh@fairlite.demon.co.uk>
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c,v 1.9 1999/11/19 13:54:52 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c,v 1.10 2000/03/06 22:59:31 dawes Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
@@ -136,7 +136,7 @@ DEC21030Init(ScrnInfoPtr pScrn, DisplayModePtr mode)
(pReg->tgaRegs[0x07] << 22) |
(pReg->tgaRegs[0x09] << 30);
- pReg->tgaRegs[0x12] = 0x05;
+ pReg->tgaRegs[0x12] = 0x01;
pReg->tgaRegs[0x13] = 0x0000;
return TRUE;
@@ -150,6 +150,7 @@ DEC21030Save(ScrnInfoPtr pScrn, TGARegPtr tgaReg)
tgaReg->tgaRegs[0x10] = TGA_READ_REG(TGA_HORIZ_REG);
tgaReg->tgaRegs[0x11] = TGA_READ_REG(TGA_VERT_REG);
tgaReg->tgaRegs[0x12] = TGA_READ_REG(TGA_VALID_REG);
+ tgaReg->tgaRegs[0x13] = TGA_READ_REG(TGA_BASE_ADDR_REG);
return;
}
@@ -165,6 +166,7 @@ DEC21030Restore(ScrnInfoPtr pScrn, TGARegPtr tgaReg)
TGA_WRITE_REG(tgaReg->tgaRegs[0x10], TGA_HORIZ_REG);
TGA_WRITE_REG(tgaReg->tgaRegs[0x11], TGA_VERT_REG);
+ TGA_WRITE_REG(tgaReg->tgaRegs[0x13], TGA_BASE_ADDR_REG);
TGA_WRITE_REG(tgaReg->tgaRegs[0x12], TGA_VALID_REG); /* Re-enable Video */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c
index b7b496a30..9afad6faf 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c
@@ -22,7 +22,7 @@
* Authors: Alan Hourihane, <alanh@fairlite.demon.co.uk>
* Matthew Grossman, <mattg@oz.net> - acceleration and misc fixes
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c,v 1.38 2000/02/15 18:01:16 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c,v 1.42 2000/03/06 22:59:32 dawes Exp $ */
/* #include "compiler.h" */
/* everybody includes these */
@@ -167,7 +167,8 @@ typedef enum {
OPTION_RGB_BITS,
OPTION_NOACCEL,
OPTION_SYNC_ON_GREEN,
- OPTION_DAC_6_BIT
+ OPTION_DAC_6_BIT,
+ OPTION_NOXAAPOLYSEGMENT
} TGAOpts;
static OptionInfoRec TGAOptions[] = {
@@ -177,7 +178,8 @@ static OptionInfoRec TGAOptions[] = {
{ OPTION_RGB_BITS, "RGBbits", OPTV_INTEGER, {0}, FALSE },
{ OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_SYNC_ON_GREEN, "SyncOnGreen", OPTV_BOOLEAN, {0}, FALSE },
- { OPTION_DAC_6_BIT, "Dac6Bit", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_DAC_6_BIT, "Dac6Bit", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_NOXAAPOLYSEGMENT, "NoXaaPolySegment",OPTV_BOOLEAN,{0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
@@ -314,8 +316,6 @@ TGAProbe(DriverPtr drv, int flags)
Bool foundScreen = FALSE;
EntityInfoPtr pEnt;
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* The aim here is to find all cards that this driver can handle,
* and for the ones not already claimed by another driver, claim the
@@ -372,10 +372,9 @@ TGAProbe(DriverPtr drv, int flags)
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
pEnt = xf86GetEntityInfo(usedChips[i]);
/*
@@ -458,6 +457,8 @@ TGAPreInit(ScrnInfoPtr pScrn, int flags)
char *mod = NULL;
pointer Base;
+ if (flags & PROBE_DETECT) return FALSE;
+
/*
* Note: This function is only called once at server startup, and
* not at the start of each server generation. This means that
@@ -577,6 +578,11 @@ TGAPreInit(ScrnInfoPtr pScrn, int flags)
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "6 bit DAC enabled\n");
}
+ if(xf86ReturnOptValBool(TGAOptions, OPTION_NOXAAPOLYSEGMENT, FALSE)) {
+ pTga->NoXaaPolySegment = TRUE;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "XAA PolySegment() disabled\n");
+ }
+
/* end option processing */
/*
@@ -1278,7 +1284,7 @@ TGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
pScrn->memPhysBase = pTga->FbAddress;
pScrn->fbOffset = 0;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if(n) {
xf86XVScreenInit(pScreen, ptr, n);
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile
index 562a05767..2dc280363 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile,v 1.21 2000/01/26 22:05:56 tsi Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile,v 1.23 2000/03/03 01:05:44 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the TRIDENT driver.
XCOMM
@@ -23,7 +23,7 @@ INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) -I$(SERVERSRC)/Xext \
-I$(XF86SRC)/rac -I$(XF86SRC)/int10 \
-I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
- -I$(XTOP)/include/extensions
+ -I$(XTOP)/include/extensions -I$(XF86OSSRC)/vbe
#endif
#if MakeHasPosixVariableSubstitutions
@@ -36,6 +36,11 @@ ObjectModuleTarget(trident,$(OBJS))
InstallObjectModule(trident,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(trident,)
+InstallModuleManPage(trident)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/trident)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/trident/trident.cpp b/xc/programs/Xserver/hw/xfree86/drivers/trident/trident.cpp
new file mode 100644
index 000000000..0db87b93a
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/trident/trident.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident.cpp,v 1.1 2000/03/03 01:05:44 dawes Exp $
+.TH TRIDENT __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+trident \- Trident video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""trident"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B trident
+is an XFree86 driver for Trident video chips.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B trident
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c
index 319a869ee..877b0b4d1 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c
@@ -28,7 +28,7 @@
* Massimiliano Ghilardi, max@Linuz.sns.it, some fixes to the
* clockchip programming code.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c,v 1.85 2000/02/21 19:23:10 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c,v 1.90 2000/03/06 23:54:13 dawes Exp $ */
#include "cfb24_32.h"
@@ -46,7 +46,7 @@
#include "xf86cmap.h"
#include "vgaHW.h"
#include "xf86RAC.h"
-#include "xf86int10.h"
+#include "vbe.h"
#include "mipointer.h"
@@ -431,6 +431,12 @@ static const char *shadowSymbols[] = {
NULL
};
+static const char *vbeSymbols[] = {
+ "VBEInit",
+ "vbeDoEDID",
+ NULL
+};
+
#ifdef XFree86LOADER
static MODULESETUPPROTO(tridentSetup);
@@ -459,7 +465,7 @@ tridentSetup(pointer module, pointer opts, int *errmaj, int *errmin)
if (!setupDone) {
setupDone = TRUE;
xf86AddDriver(&TRIDENT, module, 0);
- LoaderRefSymLists(vgahwSymbols, fbSymbols, i2cSymbols,
+ LoaderRefSymLists(vgahwSymbols, fbSymbols, i2cSymbols, vbeSymbols,
xaaSymbols, shadowSymbols, NULL);
return (pointer)TRUE;
}
@@ -769,8 +775,6 @@ TRIDENTProbe(DriverPtr drv, int flags)
int numUsed;
Bool foundScreen = FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
if ((numDevSections = xf86MatchDevice(TRIDENT_DRIVER_NAME,
&devSections)) <= 0) {
/*
@@ -800,12 +804,10 @@ TRIDENTProbe(DriverPtr drv, int flags)
TRIDENTChipsets, TRIDENTPciChipsets, devSections,
numDevSections, drv, &usedChips);
- if (numUsed > 0 && (flags & PROBE_DETECTPCI))
- return TRUE;
- if (numUsed <= 0 && (flags & PROBE_DETECTPCI))
- return FALSE;
-
- for (i = 0; i < numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
/* Allocate a ScrnInfoRec and claim the slot */
@@ -827,6 +829,8 @@ TRIDENTProbe(DriverPtr drv, int flags)
foundScreen = TRUE;
xf86ConfigActivePciEntity(pScrn, usedChips[i], TRIDENTPciChipsets,
NULL, NULL, NULL, NULL, NULL);
+ }
+ xfree(usedChips);
}
}
@@ -836,11 +840,9 @@ TRIDENTProbe(DriverPtr drv, int flags)
drv,TridentFindIsaDevice,devSections,
numDevSections,&usedChips);
if (numUsed > 0) {
-
- if (flags & PROBE_DETECTISA)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
pScrn->driverVersion = VERSION;
@@ -859,12 +861,10 @@ TRIDENTProbe(DriverPtr drv, int flags)
xf86ConfigActiveIsaEntity(pScrn,usedChips[i],TRIDENTISAchipsets,
NULL,NULL,NULL,NULL,NULL);
}
+ xfree(usedChips);
}
if (devSections)
xfree(devSections);
- devSections = NULL;
- xfree(usedChips);
- usedChips = NULL;
return foundScreen;
}
@@ -929,6 +929,18 @@ TRIDENTRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
}
}
+extern xf86MonPtr ConfiguredMonitor;
+
+void
+TRIDENTProbeDDC(ScrnInfoPtr pScrn, int index)
+{
+ vbeInfoPtr pVbe;
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ pVbe = VBEInit(NULL,index);
+ ConfiguredMonitor = vbeDoEDID(pVbe);
+ }
+}
+
/* Mandatory */
static Bool
TRIDENTPreInit(ScrnInfoPtr pScrn, int flags)
@@ -947,6 +959,39 @@ TRIDENTPreInit(ScrnInfoPtr pScrn, int flags)
char *mod = NULL;
const char *Sym = "";
+ /* Allocate the TRIDENTRec driverPrivate */
+ if (!TRIDENTGetRec(pScrn)) {
+ return FALSE;
+ }
+ pTrident = TRIDENTPTR(pScrn);
+ pTrident->pScrn = pScrn;
+
+ if (pScrn->numEntities > 1)
+ return FALSE;
+ /* This is the general case */
+ for (i = 0; i<pScrn->numEntities; i++) {
+ pTrident->pEnt = xf86GetEntityInfo(pScrn->entityList[i]);
+ if (pTrident->pEnt->resources) return FALSE;
+ pTrident->Chipset = pTrident->pEnt->chipset;
+ pScrn->chipset = (char *)xf86TokenToString(TRIDENTChipsets,
+ pTrident->pEnt->chipset);
+ /* This driver can handle ISA and PCI buses */
+ if (pTrident->pEnt->location.type == BUS_PCI) {
+ pTrident->PciInfo = xf86GetPciInfoForEntity(pTrident->pEnt->index);
+ pTrident->PciTag = pciTag(pTrident->PciInfo->bus,
+ pTrident->PciInfo->device,
+ pTrident->PciInfo->func);
+ pTrident->Linear = TRUE;
+ } else {
+ pTrident->Linear = FALSE;
+ }
+ }
+
+ if (flags & PROBE_DETECT) {
+ TRIDENTProbeDDC(pScrn, pTrident->pEnt->index);
+ return TRUE;
+ }
+
/* Set pScrn->monitor */
pScrn->monitor = pScrn->confScreen->monitor;
@@ -998,34 +1043,6 @@ TRIDENTPreInit(ScrnInfoPtr pScrn, int flags)
vgaHWGetIOBase(VGAHWPTR(pScrn));
vgaIOBase = VGAHWPTR(pScrn)->IOBase;
- /* Allocate the TRIDENTRec driverPrivate */
- if (!TRIDENTGetRec(pScrn)) {
- return FALSE;
- }
- pTrident = TRIDENTPTR(pScrn);
- pTrident->pScrn = pScrn;
-
- if (pScrn->numEntities > 1)
- return FALSE;
- /* This is the general case */
- for (i = 0; i<pScrn->numEntities; i++) {
- pTrident->pEnt = xf86GetEntityInfo(pScrn->entityList[i]);
- if (pTrident->pEnt->resources) return FALSE;
- pTrident->Chipset = pTrident->pEnt->chipset;
- pScrn->chipset = (char *)xf86TokenToString(TRIDENTChipsets,
- pTrident->pEnt->chipset);
- /* This driver can handle ISA and PCI buses */
- if (pTrident->pEnt->location.type == BUS_PCI) {
- pTrident->PciInfo = xf86GetPciInfoForEntity(pTrident->pEnt->index);
- pTrident->PciTag = pciTag(pTrident->PciInfo->bus,
- pTrident->PciInfo->device,
- pTrident->PciInfo->func);
- pTrident->Linear = TRUE;
- } else {
- pTrident->Linear = FALSE;
- }
- }
-
if (xf86LoadSubModule(pScrn, "int10")) {
xf86DrvMsg(pScrn->scrnIndex,X_INFO,"Initializing int10\n");
pTrident->Int10 = xf86InitInt10(pTrident->pEnt->index);
@@ -1873,8 +1890,13 @@ TRIDENTPreInit(ScrnInfoPtr pScrn, int flags)
/* Initialize DDC1 if possible */
if (IsPrimaryCard) {
- if (pTrident->ddc1Read)
- xf86PrintEDID(xf86DoEDID_DDC1(pScrn->scrnIndex,vgaHWddc1SetSpeed,pTrident->ddc1Read ) );
+ if (pTrident->ddc1Read) {
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ xf86MonPtr pMon;
+ pMon = vbeDoEDID(VBEInit(NULL,pTrident->pEnt->index));
+ xf86SetDDCproperties(pScrn,xf86PrintEDID(pMon));
+ }
+ }
}
if (IsPciCard && UseMMIO) {
@@ -2330,7 +2352,7 @@ TRIDENTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n) {
xf86XVScreenInit(pScreen, ptr, n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile
index 9b247dc5c..237b5dbd8 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile
@@ -4,7 +4,7 @@ XCOMM $XConsortium: Imakefile /main/10 1996/09/28 17:29:32 rws $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile,v 1.15 2000/01/23 04:44:32 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile,v 1.16 2000/03/03 01:05:44 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -44,6 +44,11 @@ ObjectModuleTarget(tseng, $(OBJS))
InstallObjectModule(tseng,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(tseng,)
+InstallModuleManPage(tseng)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/tseng)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng.cpp b/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng.cpp
new file mode 100644
index 000000000..7ed52b27f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng.cpp,v 1.1 2000/03/03 01:05:44 dawes Exp $
+.TH TSENG __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+tseng \- Tseng Labs video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""tseng"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B tseng
+is an XFree86 driver for Tseng Labs video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B tseng
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c
index 6a860317f..d16ce7819 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c
@@ -1,5 +1,5 @@
/*
- * $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c,v 1.65 2000/02/21 19:23:12 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c,v 1.68 2000/03/06 23:54:15 dawes Exp $
*
* Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
*
@@ -470,7 +470,6 @@ TsengProbe(DriverPtr drv, int flags)
PDEBUG(" TsengProbe\n");
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* The aim here is to find all cards that this driver can handle,
* and for the ones not already claimed by another driver, claim the
@@ -512,19 +511,19 @@ TsengProbe(DriverPtr drv, int flags)
TsengChipsets, TsengPciChipsets,
devSections,numDevSections, drv,
&usedChips);
- if ((numUsed > 0) && (flags & PROBE_DETECTPCI))
- return TRUE;
- if ((numUsed <= 0) && (flags & PROBE_DETECTPCI))
- return FALSE;
- for (i = 0; i < numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
/* Allocate a ScrnInfoRec */
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
TsengAssignFPtr(pScrn);
xf86ConfigActivePciEntity(pScrn,usedChips[i],TsengPciChipsets,
NULL,NULL,NULL,NULL,NULL);
foundScreen = TRUE;
+ }
+ xfree(usedChips);
}
- xfree(usedChips);
}
/* Check for non-PCI cards */
@@ -532,9 +531,9 @@ TsengProbe(DriverPtr drv, int flags)
TsengIsaChipsets,drv, TsengFindIsaDevice, devSections,
numDevSections, &usedChips);
if (numUsed > 0) {
- if (flags & PROBE_DETECTISA)
- return TRUE;
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
TsengAssignFPtr(pScrn);
foundScreen = TRUE;
@@ -1456,6 +1455,8 @@ TsengPreInit(ScrnInfoPtr pScrn, int flags)
int i;
char *mod = NULL;
+ if (flags & PROBE_DETECT) return FALSE;
+
PDEBUG(" TsengPreInit\n");
/*
* Note: This function is only called once at server startup, and
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile
index c7fa64e82..4a679c003 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile,v 1.3 1999/08/14 10:49:57 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile,v 1.4 2000/03/03 01:05:45 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the v4l Xv driver.
XCOMM
@@ -32,6 +32,11 @@ ModuleObjectRule()
ObjectModuleTarget(v4l,$(OBJS))
InstallObjectModule(v4l,$(MODULEDIR),drivers/linux)
+#if !defined(XF86DriverSDK)
+CppManTarget(v4l,)
+InstallModuleManPage(v4l)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/v4l)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c b/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c
index 859bf8f15..6ef875e7f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c
@@ -2,7 +2,7 @@
* video4linux Xv Driver
* based on Michael Schimek's permedia 2 driver.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c,v 1.15 2000/01/30 01:15:57 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c,v 1.16 2000/02/22 02:00:54 mvojkovi Exp $ */
#include "videodev.h"
#include "xf86.h"
@@ -214,7 +214,7 @@ V4lPutVideo(ScrnInfoPtr pScrn,
int one=1;
DEBUG(xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 2, "Xv/PV\n"));
- /* FIXME: vid-* is ignored for now */
+ /* FIXME: vid-* is ignored for now, not supported by v4l */
V4lQueryBestSize(pScrn, 0, vid_w, vid_h, drw_w, drw_h, &dw, &dh, data);
/* if the window is too big, center the video */
@@ -535,30 +535,27 @@ V4LBuildEncodings(int fd, int *count)
static XF86AttributeRec Attributes[8] = {
- {XvSettable | XvGettable, 0, 255, XV_ENCODING},
- {XvSettable | XvGettable, 0, 255, XV_BRIGHTNESS},
- {XvSettable | XvGettable, 0, 255, XV_CONTRAST},
- {XvSettable | XvGettable, 0, 255, XV_SATURATION},
- {XvSettable | XvGettable, 0, 255, XV_HUE},
- {XvSettable | XvGettable, 0, 255, XV_FREQ},
- {XvSettable | XvGettable, 0, 255, XV_MUTE},
- {XvSettable | XvGettable, 0, 255, XV_VOLUME}
+ {XvSettable | XvGettable, -1000, 1000, XV_ENCODING},
+ {XvSettable | XvGettable, -1000, 1000, XV_BRIGHTNESS},
+ {XvSettable | XvGettable, -1000, 1000, XV_CONTRAST},
+ {XvSettable | XvGettable, -1000, 1000, XV_SATURATION},
+ {XvSettable | XvGettable, -1000, 1000, XV_HUE},
+ {XvSettable | XvGettable, -1000, 1000, XV_VOLUME},
+ {XvSettable | XvGettable, 0, 1, XV_MUTE},
+ {XvSettable | XvGettable, 0, 16*1000, XV_FREQ},
};
-static Bool
-V4LProbe(DriverPtr drv, int flags)
+static int
+V4LInit(ScrnInfoPtr pScrn, XF86VideoAdaptorPtr **adaptors)
{
PortPrivPtr pPPriv;
DevUnion *Private;
- XF86VideoAdaptorPtr VAR[4];
+ XF86VideoAdaptorPtr *VAR = NULL;
XF86VideoEncodingPtr enc;
char dev[16];
int fd,i,nenc;
- if (flags & PROBE_DETECT)
- return FALSE;
-
DEBUG(xf86Msg(X_INFO, "v4l: init start\n"));
for (i = 0; i < 4; i++) {
@@ -583,6 +580,7 @@ V4LProbe(DriverPtr drv, int flags)
pPPriv->nenc = nenc;
/* alloc VideoAdaptorRec */
+ VAR = xrealloc(VAR,sizeof(XF86VideoAdaptorPtr)*(i+1));
VAR[i] = xalloc(sizeof(XF86VideoAdaptorRec));
if (!VAR[i])
return FALSE;
@@ -633,9 +631,17 @@ V4LProbe(DriverPtr drv, int flags)
xvVolume = MAKE_ATOM(XV_VOLUME);
DEBUG(xf86Msg(X_INFO, "v4l: init done, %d found\n",i));
- if (i) {
- xf86XVRegisterGenericAdaptor(VAR, i);
- drv->refCount++;
- }
- return (VAR != NULL);
+
+ *adaptors = VAR;
+ return i;
+}
+
+static Bool
+V4LProbe(DriverPtr drv, int flags)
+{
+ if (flags & PROBE_DETECT)
+ return FALSE;
+
+ xf86XVRegisterGenericAdaptorDriver(V4LInit);
+ return TRUE;
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.cpp b/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.cpp
new file mode 100644
index 000000000..a2bf9f4b3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.cpp,v 1.1 2000/03/03 01:05:45 dawes Exp $
+.TH V4L __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+v4l \- Video 4 Linux driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""v4l"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B v4l
+is an XFree86 driver for Video 4 Linux.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B v4l
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c b/xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c
index d24697e22..45e0a9c45 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c,v 1.39 2000/02/21 19:23:13 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c,v 1.42 2000/03/06 23:54:16 dawes Exp $ */
/*
* Copyright (C) 1998 The XFree86 Project, Inc. All Rights Reserved.
*
@@ -238,7 +238,6 @@ GenericProbe(DriverPtr drv, int flags)
int *usedChips;
int i;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* Find the config file Device sections that match this
* driver, and return if there are none.
@@ -254,15 +253,10 @@ GenericProbe(DriverPtr drv, int flags)
GenericChipsets, GenericPCIchipsets,
devSections,numDevSections,
drv, &usedChips);
- if (numUsed<=0) return FALSE;
-
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- if (flags & PROBE_DETECTISA)
- goto detectisa;
-
if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else {
for (i = 0; i < numUsed; i++) {
/* Allocate a ScrnInfoRec */
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
@@ -282,18 +276,20 @@ GenericProbe(DriverPtr drv, int flags)
xf86ConfigActivePciEntity(pScrn,usedChips[i],GenericPCIchipsets,
NULL,NULL,NULL,NULL,NULL);
}
+ }
+ xfree(usedChips);
}
}
-detectisa:
+
/* Isa Bus */
numUsed = xf86MatchIsaInstances(VGA_NAME,GenericChipsets,
GenericISAchipsets,drv,
VGAFindIsaDevice,devSections,
numDevSections,&usedChips);
- if(numUsed > 0) {
- if (flags & PROBE_DETECTISA)
- return TRUE;
- for (i = 0; i < numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
pScrn->driverVersion = VGA_VERSION_CURRENT;
@@ -312,6 +308,7 @@ detectisa:
xf86ConfigActiveIsaEntity(pScrn,usedChips[i],GenericISAchipsets,
NULL,NULL,NULL,NULL,NULL);
}
+ xfree(usedChips);
}
if (devSections)
xfree(devSections);
@@ -461,6 +458,8 @@ GenericPreInit(ScrnInfoPtr pScreenInfo, int flags)
GenericPtr pGenericPriv;
EntityInfoPtr pEnt;
+ if (flags & PROBE_DETECT) return FALSE;
+
/* Set the monitor */
pScreenInfo->monitor = pScreenInfo->confScreen->monitor;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp b/xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp
index 7eb5749cc..35456d07d 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp,v 1.2 1999/08/28 09:01:08 dawes Exp $
-.TH VGA __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp,v 1.3 2000/03/03 01:05:47 dawes Exp $
+.TH VGA __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
vga \- Generic VGA video driver
.SH SYNOPSIS
diff --git a/xc/programs/Xserver/hw/xfree86/etc/Imakefile b/xc/programs/Xserver/hw/xfree86/etc/Imakefile
index 66617bbc9..07a1477d2 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/etc/Imakefile
@@ -4,7 +4,7 @@ XCOMM $XConsortium: Imakefile /main/24 1996/10/28 04:24:12 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/etc/Imakefile,v 3.35 2000/02/18 12:20:07 tsi Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/etc/Imakefile,v 3.36 2000/02/24 18:50:44 dawes Exp $
#include <Server.tmpl>
#if SystemV
@@ -51,12 +51,11 @@ XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/etc/Imakefile,v 3.35 2000/02/18 1
#endif
#endif
-PREINST = preinst.sh
-POSTINST = postinst.sh
+XINST = Xinstall.sh
FILES = $(CONFIGFILES) $(TERMFILES) \
$(PATCHFILES) $(XDMCONF) \
- et4000clock.c xmodmap.std $(MISCFILES) $(POSTINST) $(PREINST)
+ xmodmap.std $(MISCFILES) $(XINST)
INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(SERVERSRC)/include -I$(XINCLUDESRC) -I$(XF86SRC)/scanpci \
-I$(XF86SRC)/dummylib
diff --git a/xc/programs/Xserver/hw/xfree86/etc/Xinstall.sh b/xc/programs/Xserver/hw/xfree86/etc/Xinstall.sh
new file mode 100644
index 000000000..ed1455f63
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/Xinstall.sh
@@ -0,0 +1,992 @@
+#!/bin/sh
+
+#
+# $XFree86: xc/programs/Xserver/hw/xfree86/etc/Xinstall.sh,v 1.7 2000/02/29 18:01:20 dawes Exp $
+#
+# Copyright © 2000 by Precision Insight, Inc.
+# Portions Copyright © 1996-2000 by The XFree86 Project, Inc.
+#
+# This script should be used to install XFree86 4.0.
+#
+# Parts of this script are based on the old preinst.sh and postinst.sh
+# scripts.
+#
+# Set tabs to 4 spaces to view/edit this file.
+#
+# Authors: David Dawes <dawes@xfree86.org>
+#
+
+VERSION=4.0
+
+RUNDIR=/usr/X11R6
+ETCDIR=/etc/X11
+VARDIR=/var
+
+if [ X"$1" = "X-test" -o X"$XINST_TEST" != X ]; then
+ RUNDIR=/home1/test/X11R6
+ ETCDIR=/home1/test/etcX11
+ VARDIR=/home1/test/var
+ if [ X"$1" = "X-test" ]; then
+ shift
+ fi
+ echo ""
+ echo "Running in test mode"
+fi
+
+OLDFILES=""
+
+OLDDIRS=" \
+ $RUNDIR/lib/X11/xkb/compiled \
+ "
+
+BASEDIST=" \
+ Xbin.tgz \
+ Xlib.tgz \
+ Xman.tgz \
+ Xdoc.tgz \
+ Xfnts.tgz \
+ Xfenc.tgz \
+ "
+
+ETCDIST="Xetc.tgz"
+
+VARDIST="Xvar.tgz"
+
+SERVDIST=" \
+ Xxserv.tgz \
+ Xmod.tgz \
+ "
+OPTDIST=" \
+ Xfsrv.tgz \
+ Xnest.tgz \
+ Xprog.tgz \
+ Xprt.tgz \
+ Xvfb.tgz \
+ Xf100.tgz \
+ Xfcyr.tgz \
+ Xflat2.tgz \
+ Xfnon.tgz \
+ Xfscl.tgz \
+ Xhtml.tgz \
+ Xjdoc.tgz \
+ Xps.tgz \
+ "
+
+ETCLINKS=" \
+ app-defaults \
+ fs \
+ lbxproxy \
+ proxymngr \
+ rstart \
+ twm \
+ xdm \
+ xinit \
+ xsm \
+ xserver \
+ "
+
+FONTDIRS=" \
+ local \
+ misc
+ "
+
+WDIR=`pwd`
+
+# Check how to suppress newlines with echo (from perl's Configure)
+((echo "xxx\c"; echo " ") > .echotmp) 2> /dev/null
+if [ ! -f .echotmp ]; then
+ echo "Can't write to the current directory. Aborting";
+ exit 1
+fi
+if grep c .echotmp >/dev/null 2>&1; then
+ n='-n'
+ c=''
+else
+ n=''
+ c='\c'
+fi
+rm -f .echotmp
+
+Echo()
+{
+ echo $n "$@""$c"
+}
+
+ContinueNo()
+{
+ Echo "Do you wish to continue? (y/n) [n] "
+ read response
+ case "$response" in
+ [yY]*)
+ echo ""
+ ;;
+ *)
+ echo "Aborting the installation."
+ exit 2
+ ;;
+ esac
+}
+
+ContinueYes()
+{
+ Echo "Do you wish to continue? (y/n) [y] "
+ read response
+ case "$response" in
+ [nN]*)
+ echo "Aborting the installation."
+ exit 2
+ ;;
+ *)
+ echo ""
+ ;;
+ esac
+}
+
+Description()
+{
+ case $1 in
+ Xfsrv*)
+ echo "font server";;
+ Xnest*)
+ echo "Nested X server";;
+ Xprog*)
+ echo "programmer support";;
+ Xprt*)
+ echo "X print server";;
+ Xvfb*)
+ echo "Virtual framebuffer X server";;
+ Xf100*)
+ echo "100dpi fonts";;
+ Xfcyr*)
+ echo "Cyrillic fonts";;
+ Xflat2*)
+ echo "Latin-2 fonts";;
+ Xfnon*)
+ echo "Some large fonts";;
+ Xfscl*)
+ echo "Scaled fonts (Speedo and Type1)";;
+ Xhtml*)
+ echo "Docs in HTML";;
+ Xjdoc*)
+ echo "Docs in Japanese";;
+ Xps*)
+ echo "Docs in PostScript";;
+ *)
+ echo "unknown";;
+ esac
+}
+
+ReadLink()
+{
+ rltmp="`ls -l $1`"
+ rl=`expr "$rltmp" : '.*-> \([^ ]*\)'`
+ echo $rl
+}
+
+GetOsInfo()
+{
+ echo "Checking which OS you're running..."
+
+ OsName="`uname`"
+ OsVersion="`uname -r`"
+ case "$OsName" in
+ SunOS) # Assumes SunOS 5.x
+ OsArch="`uname -p`"
+ ;;
+ *)
+ OsArch="`uname -m`"
+ ;;
+ esac
+ # Some SVR4.0 versions have a buggy uname that reports the node name
+ # for the OS name. Try to catch that here. Need to check what is
+ # reported for non-buggy versions.
+ if [ "$OsName" = "`uname -n`" -a -f /stand/unix ]; then
+ OsName=UNIX_SV
+ fi
+ echo "uname reports '$OsName' version '$OsVersion', architecture '$OsArch'."
+
+ # Find the object type, where needed
+
+ case "$OsName" in
+ Linux|FreeBSD|NetBSD)
+ if file -L /bin/sh | grep ELF > /dev/null 2>&1; then
+ OsObjFormat=ELF
+ else
+ OsObjFormat=a.out
+ fi
+ ;;
+ esac
+
+ if [ X"$OsObjFormat" != X ]; then
+ Echo "Object format is '$OsObjFormat'. "
+ needNL=YES
+ fi
+
+ # test's flag for symlinks
+ #
+ # For OSs that don't support symlinks, choose a type that is guaranteed to
+ # return false for regular files and directories.
+
+ case "$OsName" in
+ FreeBSD)
+ case "$OsVersion" in
+ 2.*)
+ L="-h"
+ ;;
+ *)
+ L="-L"
+ esac
+ ;;
+ OS-with-no-symlinks) # Need to set this correctly
+ L="-b"
+ NoSymlinks=YES
+ ;;
+ *)
+ L="-L"
+ ;;
+ esac
+
+ # Find the libc version, where needed
+ case "$OsName" in
+ Linux)
+ tmp="`ldd /bin/sh | grep libc.so 2> /dev/null`"
+ LibcPath=`expr "$tmp" : '[^/]*\(/[^ ]*\)'`
+ tmp="`strings $LibcPath | grep -i 'c library'`"
+ OsLibcMajor=`expr "$tmp" : '.* \([0-9][0-9]*\)'`
+ OsLibcMinor=`expr "$tmp" : '.* [0-9][0-9]*\.\([0-9][0-9]*\)'`
+ case "$OsLibcMajor" in
+ 2)
+ # 2 is the glibc version
+ OsLibcMajor=6
+ ;;
+ esac
+ ;;
+ esac
+
+ if [ X"$OsLibcMajor" != X ]; then
+ Echo "libc version is '$OsLibcMajor"
+ if [ X"$OsLibcMinor" != X ]; then
+ Echo ".$OsLibcMinor'."
+ else
+ Echo "'."
+ fi
+ needNL=YES
+ fi
+ if [ X"$needNL" = XYES ]; then
+ echo ""
+ fi
+ echo ""
+}
+
+DoOsChecks()
+{
+ # Do some OS-specific checks
+
+ case "$OsName" in
+ Linux)
+ case "$OsObjFormat" in
+ ELF)
+ # Check ldconfig
+ LDSO=`/sbin/ldconfig -v -n | awk '{ print $3 }'`
+ LDSOMIN=`echo $LDSO | awk -F[.-] '{ print $3 }'`
+ LDSOMID=`echo $LDSO | awk -F[.-] '{ print $2 }'`
+ LDSOMAJ=`echo $LDSO | awk -F[.-] '{ print $1 }'`
+ if [ "$LDSOMAJ" -gt 1 ]; then
+ : OK
+ else
+ if [ "$LDSOMID" -gt 7 ]; then
+ : OK
+ else
+ if [ "$LDSOMIN" -ge 14 ]; then
+ : OK
+ else
+ echo ""
+ echo "Before continuing, you will need to get a"
+ echo "current version of ld.so. Version 1.7.14 or"
+ echo "newer will do."
+ NEEDSOMETHING=YES
+ fi
+ fi
+ fi
+ ;;
+ esac
+ # The /dev/tty0 check is left out. Presumably nobody has a system where
+ # this is missing any more.
+ ;;
+ esac
+}
+
+FindDistName()
+{
+ case "$OsName" in
+ DGUX) # Check this string
+ case "$OsArch" in
+ i*86)
+ DistName="DGUX-ix86"
+ ;;
+ *)
+ Message="DGUX binaries are only available for ix86 platforms"
+ ;;
+ esac
+ ;;
+ FreeBSD)
+ case "$OsArch" in
+ i386)
+ case "$OsVersion" in
+ 2.2*)
+ DistName="FreeBSD-2.2.x"
+ ;;
+ 3.*)
+ case "$OsObjFormat" in
+ ELF)
+ DistName="FreeBSD-3.x"
+ ;;
+ *)
+ Message="FreeBSD 3.x binaries are only available in ELF format"
+ ;;
+ esac
+ ;;
+ 4.*)
+ DistName="FreeBSD-4.x"
+ ;;
+ *)
+ Message="FreeBSD/i386 binaries are not available for this version"
+ ;;
+ esac
+ ;;
+ alpha)
+ case "$OsVersion" in
+ 3.*)
+ DistName="FreeBSD-alpha-3.x"
+ ;;
+ 4.*)
+ DistName="FreeBSD-alpha-4.x"
+ ;;
+ *)
+ Message="FreeBSD/alpha binaries are not available for this version"
+ ;;
+ esac
+ ;;
+ *)
+ Message="FreeBSD binaries are not available for this architecture"
+ ;;
+ esac
+ ;;
+ Linux)
+ case "$OsArch" in
+ i*86)
+ case "$OsLibcMajor" in
+ 5)
+ DistName="Linux-ix86-libc5"
+ ;;
+ 6)
+ case "$OsLibcMinor" in
+ 0)
+ DistName="Linux-ix86-glibc20"
+ ;;
+ 1)
+ DistName="Linux-ix86-glibc21"
+ ;;
+ *)
+ Message="No dist available for glibc 2.$OsLibcMinor. Try Linux-ix86-glibc21"
+ ;;
+ esac
+ ;;
+ *)
+ case "$OsObjFormat" in
+ a.out)
+ Message="Linux a.out is no longer supported"
+ ;;
+ *)
+ Message="No Linux/ix86 binaries for this libc version"
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ alpha)
+ case "$OsLibcMajor.$OsLibcMinor" in
+ 6.1)
+ DistName="Linux-alpha-glibc21"
+ ;;
+ 6.*)
+ Message="No Linux/alpha binaries for glibc 2.$OsLibcMinor. Try Linux-alpha-glibc21"
+ ;;
+ *)
+ Message="No Linux/alpha binaries for this libc version"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No Linux binaries available for this architecture"
+ ;;
+ esac
+ ;;
+ LynxOS) # Check this
+ DistName="LynxOS"
+ ;;
+ NetBSD)
+ case "$OsArch" in
+ i386)
+ case "$OsVersion" in
+ 1.[3-9]*) # Check this
+ case "$OsObjFormat" in
+ a.out)
+ DistName="NetBSD-1.4.1"
+ ;;
+ *)
+ DistName="NetBSD-current-ELF"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No NetBSD/i386 binaries available for this version"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No NetBSD binaries available for this architecture"
+ ;;
+ esac
+ ;;
+ OpenBSD)
+ case "$OsArch" in
+ i386)
+ case "$OsVersion" in
+ 2.[6-9]*) # Check this
+ DistName="OpenBSD-2.6"
+ ;;
+ *)
+ Message="No OpenBSD/i386 binaries available for this version"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No OpenBSD binaries available for this architecture"
+ ;;
+ esac
+ ;;
+ SunOS)
+ case "$OsArch" in
+ i386)
+ case "$OsVersion" in
+ 5.[67]*)
+ DistName="Solaris"
+ ;;
+ 5.8*)
+ DistName="Solaris-8"
+ ;;
+ *)
+ Message="No Solaris/x86 binaries available for this version"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No SunOS/Solaris binaries available for this architecture"
+ ;;
+ esac
+ ;;
+ UNIX_SV)
+ case "$OsArch" in
+ i386)
+ case "$OsVersion" in
+ 4.0*)
+ DistName="SVR4.0"
+ ;;
+ *)
+ # More detailed version check??
+ DistName="UnixWare"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No SYSV binaries available for this architecture"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No binaries available for this OS"
+ ;;
+ esac
+
+ if [ X"$DistName" != X ]; then
+ echo "Binary distribution name is '$DistName'"
+ echo ""
+ else
+ if [ X"$Message" = X ]; then
+ echo "Can't find which binary distribution you should use."
+ echo "Please send the output of this script to XFree86@XFree86.org"
+ echo ""
+ else
+ echo "$Message"
+ echo ""
+ fi
+ fi
+}
+
+if [ X"$1" = "X-check" ]; then
+ GetOsInfo
+ FindDistName
+ exit 0
+fi
+
+echo ""
+echo " Welcome to the XFree86 $VERSION installer"
+echo ""
+echo "You are strongly advised to backup your existing XFree86 installation"
+echo "before proceeding. This includes the /usr/X11R6 and /etc/X11"
+echo "directories. The installation process will overwrite existing files"
+echo "in those directories, and this may include some configuration files"
+echo "that may have been customised."
+echo ""
+ContinueNo
+
+# Should check if uid is zero
+
+# Check if $DISPLAY is set, and warn
+
+if [ X"$DISPLAY" != X ]; then
+ echo "\$DISPLAY is set, which may indicate that you are running this"
+ echo "installation from an X session. It is recommended that X not be"
+ echo "running while doing the installation."
+ echo ""
+ ContinueNo
+fi
+
+# First, do some preliminary checks
+
+GetOsInfo
+
+# Make OS-specific adjustments to the distribution file lists
+
+case "$OsName" in
+Interactive) # Need the correct name for this
+ VARDIST=""
+ EXTRADIST="Xbin1.tgz"
+ EXTRAOPTDIST="Xxdm.tgz"
+ ;;
+LynxOS)
+ VARDIST=""
+ ;;
+esac
+
+REQUIREDFILES=" \
+ extract \
+ $BASEDIST \
+ $ETCDIST \
+ $VARDIST \
+ $SERVDIST \
+ $EXTRADIST \
+ "
+
+echo "Checking for required files ..."
+Needed=""
+
+# Check for extract and extract.exe, and check that they are usable.
+#
+# This test may not be fool-proof. A FreeBSD/ELF binary downloaded in
+# ASCII mode passed it :-(.
+#
+if [ -f extract ]; then
+ ExtractExists=YES
+ chmod +x extract
+ if ./extract --version | head -1 | \
+ fgrep "extract (XFree86 version" > /dev/null 2>&1; then
+ ExtractOK=YES
+ else
+ echo "extract doesn't work properly, renaming it to 'extract.bad'"
+ rm -f extract.bad
+ mv extract extract.bad
+ fi
+fi
+if [ X"$ExtractOK" != XYES ]; then
+ if [ -f extract.exe ]; then
+ ExtractExeExists=YES
+ rm -f extract
+ ln extract.exe extract
+ chmod +x extract
+ if ./extract --version | head -1 | \
+ fgrep "extract (XFree86 version" > /dev/null 2>&1; then
+ ExtractOK=YES
+ else
+ echo "extract.exe doesn't work properly, renaming it to"
+ echo "'extract.exe.bad'"
+ rm -f extract.exe.bad
+ mv extract.exe extract.exe.bad
+ rm -f extract
+ fi
+ fi
+fi
+if [ X"$ExtractOK" != XYES ]; then
+ echo ""
+ if [ X"$ExtractExists" = XYES -a X"$ExtractExeExists" = XYES ]; then
+ echo "The versions of 'extract' and 'extract.exe' you have do not run'"
+ echo "correctly. Make sure that you have downloaded the correct"
+ echo "binaries for your system. To find out which is correct,"
+ echo "run 'sh $0 -check'."
+ fi
+ if [ X"$ExtractExists" = XYES -a X"$ExtractExeExists" != XYES ]; then
+ echo "The version of 'extract' you have does not run correctly."
+ echo "This is most commonly due to problems downloading this file"
+ echo "with some web browsers. You may get better results if you"
+ echo "download the version called 'extract.exe' and try again."
+ fi
+ if [ X"$ExtractExists" != XYES -a X"$ExtractExeExists" = XYES ]; then
+ echo "The version of 'extract.exe' you have does not run correctly."
+ echo "Make sure that you have downloaded the correct binaries for your"
+ echo "system. To find out which is correct, run 'sh $0 -check'."
+ fi
+ if [ X"$ExtractExists" != XYES -a X"$ExtractExeExists" != XYES ]; then
+ echo "You need to download the 'extract' (or 'extract.exe') utility"
+ echo "and put it in this directory."
+ fi
+ echo ""
+ echo "When you have corrected the problem, please re-run 'sh $0'"
+ echo "to proceed with the installation."
+ echo ""
+ exit 1
+fi
+
+for i in $REQUIREDFILES; do
+ if [ ! -f $i ]; then
+ Needed="$Needed $i"
+ fi
+done
+if [ X"$Needed" != X ]; then
+ echo ""
+ echo "The files:"
+ echo ""
+ echo "$Needed"
+ echo ""
+ echo "must be present in the current directory to proceed with the"
+ echo "installation. You should be able to find it at the same place"
+ echo "you picked up the rest of the XFree86 binary distribution."
+ echo "Please re-run 'sh $0' to proceed with the installation when"
+ echo "you have them."
+ echo ""
+ exit 1
+fi
+
+DoOsChecks
+
+if [ X"$NEEDSOMETHING" != X ]; then
+ echo ""
+ echo "Please re-run 'sh $0' to proceed with the installation after you"
+ echo "have made the required updates."
+ echo ""
+ exit 1
+fi
+
+# Link extract to gnu-tar so it can also be used as a regular tar
+rm -f gnu-tar
+ln extract gnu-tar
+
+EXTRACT=$WDIR/extract
+TAR=$WDIR/gnu-tar
+
+# Create $RUNDIR and $ETCDIR if they don't already exist
+
+if [ ! -d $RUNDIR ]; then
+ NewRunDir=YES
+ echo "Creating $RUNDIR"
+ mkdir $RUNDIR
+fi
+if [ ! -d $RUNDIR/lib ]; then
+ echo "Creating $RUNDIR/lib"
+ mkdir $RUNDIR/lib
+fi
+if [ ! -d $RUNDIR/lib/X11 ]; then
+ echo "Creating $RUNDIR/lib/X11"
+ mkdir $RUNDIR/lib/X11
+fi
+if [ ! -d $ETCDIR ]; then
+ NewEtcDir=YES
+ echo "Creating $ETCDIR"
+ mkdir $ETCDIR
+fi
+
+if [ -d $RUNDIR -a -d $RUNDIR/bin -a -d $RUNDIR/lib ]; then
+ echo ""
+ echo "You appear to have an existing installation of X. Continuing will"
+ echo "overwrite it. You will, however, have the option of being prompted"
+ echo "before most configuration files are overwritten."
+ ContinueYes
+fi
+
+if [ X"$OLDFILES" != X ]; then
+ echo ""
+ echo "Removing some old files that are no longer required..."
+ for i in $OLDFILES; do
+ if [ -f $i ]; then
+ echo " removing old file $i"
+ rm -f $i
+ fi
+ done
+ echo ""
+fi
+
+if [ X"$OLDDIRS" != X ]; then
+ echo ""
+ echo "Removing some old directories that are no longer required..."
+ for i in $OLDDIRS; do
+ if [ -d $i ]; then
+ echo " removing old directory $i"
+ rm -fr $i
+ fi
+ done
+ echo ""
+fi
+
+# Check for config file directories that may need to be moved.
+
+EtcToMove=
+if [ X"$NoSymLinks" != XYES ]; then
+ for i in $ETCLINKS; do
+ if [ -d $RUNDIR/lib/X11/$i -a ! $L $RUNDIR/lib/X11/$i ]; then
+ EtcToMove="$EtcToMove $i"
+ fi
+ done
+fi
+
+if [ X"$EtcToMove" != X ]; then
+ echo "XFree86 now installs most customisable configuration files under"
+ echo "$ETCDIR instead of under $RUNDIR/lib/X11, and has symbolic links"
+ echo "under $RUNDIR/lib/X11 that point to $ETCDIR. You currently have"
+ echo "files under the following subdirectories of $RUNDIR/lib/X11:"
+ echo ""
+ echo "$EtcToMove"
+ echo ""
+ echo "Do you want to move them to $ETCDIR and create the necessary"
+ Echo "links? (y/n) [y] "
+ read response
+ case "$response" in
+ [nN]*)
+ echo ""
+ echo "Note: this means that your run-time config files will remain"
+ echo "in the old $RUNDIR/lib/X11 location."
+ NoSymLinks=YES;
+ ;;
+ esac
+ echo ""
+ if [ X"NoSymlinks" != XYES ]; then
+ for i in $EtcToMove; do
+ echo "Moving $RUNDIR/lib/X11/$i to $ETCDIR/$i ..."
+ if [ ! -d $ETCDIR/$i ]; then
+ mkdir $ETCDIR/$i
+ fi
+ $TAR -C $RUNDIR/lib/X11/$i -c -f - . | \
+ $TAR -C $ETCDIR/$i -v -x -p -U -f - && \
+ rm -fr $RUNDIR/lib/X11/$i && \
+ ln -s $ETCDIR/$i $RUNDIR/lib/X11/$i
+ done
+ fi
+fi
+
+# Maybe allow a backup of the config files to be made?
+
+# Extract Xetc.tgz into a temporary location, and prompt for moving the
+# files.
+
+echo "Extracting $ETCDIST into a temporary location ..."
+rm -fr .etctmp
+mkdir .etctmp
+(cd .etctmp; $EXTRACT $WDIR/$ETCDIST)
+for i in $ETCLINKS; do
+ DoCopy=YES
+ if [ -d $RUNDIR/lib/X11/$i ]; then
+ Echo "Do you want to overwrite the $i config files? (y/n) [n] "
+ read response
+ case "$response" in
+ [yY]*)
+ : OK
+ ;;
+ *)
+ DoCopy=NO
+ ;;
+ esac
+ fi
+ if [ $DoCopy = YES ]; then
+ echo "Installing the $i config files ..."
+ if [ X"$NoSymLinks" != XYES ]; then
+ if [ ! -d $ETCDIR/$i ]; then
+ mkdir $ETCDIR/$i
+ fi
+ if [ ! -d $RUNDIR/lib/X11/$i ]; then
+ ln -s $ETCDIR/$i $RUNDIR/lib/X11/$i
+ fi
+ else
+ if [ ! -d $RUNDIR/lib/X11/$i ]; then
+ mkdir $RUNDIR/lib/X11/$i
+ fi
+ fi
+ $TAR -C .etctmp/$i -c -f - . | \
+ $TAR -C $RUNDIR/lib/X11/$i -v -x -p -U -f -
+ fi
+done
+rm -fr .etctmp
+
+echo "Installing the mandatory parts of the binary distribution"
+echo ""
+for i in $BASEDIST $SERVDIST; do
+ (cd $RUNDIR; $EXTRACT $WDIR/$i)
+done
+if [ X"$VARDIST" != X ]; then
+ (cd $VARDIR; $EXTRACT $WDIR/$VARDIST)
+fi
+
+echo "Checking for optional components to install ..."
+for i in $OPTDIST $EXTRAOPTDIST; do
+ if [ -f $i ]; then
+ Echo "Do you want to install $i (`Description $i`)? (y/n) [y] "
+ read response
+ case "$response" in
+ [nN]*)
+ : skip this one
+ ;;
+ *)
+ (cd $RUNDIR; $EXTRACT $WDIR/$i)
+ ;;
+ esac
+ fi
+done
+
+# Need to run ldconfig on some OSs
+case "$OsName" in
+FreeBSD|NetBSD|OpenBSD)
+ echo ""
+ echo "Running ldconfig"
+ /sbin/ldconfig -m $RUNDIR/lib
+ ;;
+Linux)
+ echo ""
+ echo "Running ldconfig"
+ /sbin/ldconfig $RUNDIR/lib
+ ;;
+esac
+
+# Run mkfontdir in the local and misc directories to make sure that
+# the fonts.dir files are up to date after the installation.
+echo ""
+for i in $FONTDIRS $EXTRAFONTDIRS; do
+ if [ -d $RUNDIR/lib/X11/fonts/$i ]; then
+ Echo "Updating the fonts.dir file in $RUNDIR/lib/X11/fonts/$i..."
+ $RUNDIR/bin/mkfontdir $RUNDIR/lib/X11/fonts/$i
+ echo ""
+ fi
+done
+
+# Check if the system has a termcap file
+TERMCAP1DIR=/usr/share
+TERMCAP2=/etc/termcap
+if [ -d $TERMCAP1DIR ]; then
+ TERMCAP1=`find $TERMCAP1DIR -type f -name termcap -print 2> /dev/null`
+ if [ x"$TERMCAP1" != x ]; then
+ TERMCAPFILE="$TERMCAP1"
+ fi
+fi
+if [ x"$TERMCAPFILE" = x ]; then
+ if [ -f $TERMCAP2 ]; then
+ TERMCAPFILE="$TERMCAP2"
+ fi
+fi
+
+# Override this for some OSs
+
+case "$OsName" in
+OpenBSD)
+ TERMCAPFILE=""
+ ;;
+esac
+
+if [ X"$TERMCAPFILE" != X ]; then
+ echo ""
+ echo "You appear to have a termcap file: $TERMCAPFILE"
+ echo "This should be edited manually to replace the xterm entries"
+ echo "with those in $RUNDIR/lib/X11/etc/xterm.termcap"
+ echo ""
+ echo "Note: the new xterm entries are required to take full advantage"
+ echo "of new features, but they may cause problems when used with"
+ echo "older versions of xterm. A terminal type 'xterm-r6' is included"
+ echo "for compatibility with the standard X11R6 version of xterm."
+fi
+
+# Check for terminfo, and update the xterm entry
+TINFODIR=/usr/lib/terminfo
+# Does this list need to be updated?
+OLDTINFO=" \
+ x/xterm \
+ x/xterms \
+ x/xterm-24 \
+ x/xterm-vi \
+ x/xterm-65 \
+ x/xterm-bold \
+ x/xtermm \
+ x/xterm-boldso \
+ x/xterm-ic \
+ x/xterm-r6 \
+ x/xterm-old \
+ x/xterm-r5 \
+ v/vs100"
+
+if [ -d $TINFODIR ]; then
+ echo ""
+ echo "You appear to have a terminfo directory: $TINFODIR"
+ echo "New xterm terminfo entries can be installed now."
+ echo ""
+ echo "Note: the new xterm entries are required to take full advantage"
+ echo "of new features, but they may cause problems when used with"
+ echo "older versions of xterm. A terminal type 'xterm-r6' is included"
+ echo "for compatibility with the standard X11R6 version of xterm."
+ echo ""
+ echo "Do you wish to have the new xterm terminfo entries installed"
+ Echo "now (y/n)? [n] "
+ read response
+ case "$response" in
+ [yY]*)
+ echo ""
+ for t in $OLDTINFO; do
+ if [ -f $TINFODIR/$t ]; then
+ echo "Moving old terminfo file $TINFODIR/$t to $TINFODIR/$t.bak"
+ rm -f $TINFODIR/$t.bak
+ mv -f $TINFODIR/$t $TINFODIR/$t.bak
+ fi
+ done
+ echo ""
+ echo "Installing new terminfo entries for xterm."
+ echo ""
+ echo "On some systems you may get warnings from tic about 'meml'"
+ echo "and 'memu'. These warnings can safely be ignored."
+ echo ""
+ tic $RUNDIR/lib/X11/etc/xterm.terminfo
+ ;;
+ *)
+ echo ""
+ echo "Not installing new terminfo entries for xterm."
+ echo "They can be installed later by running:"
+ echo ""
+ echo " tic $RUNDIR/lib/X11/etc/xterm.terminfo"
+ ;;
+ esac
+fi
+
+if [ -f $RUNDIR/bin/rstartd ]; then
+ echo ""
+ echo "If you are going to use rstart and $RUNDIR/bin isn't in the"
+ echo "default path for commands run remotely via rsh, you will need"
+ echo "a link to rstartd installed in /usr/bin."
+ echo ""
+ Echo "Do you wish to have this link installed (y/n)? [n] "
+ read response
+ case "$response" in
+ [yY]*)
+ echo "Creating link from $RUNDIR/bin/rstartd to /usr/bin/rstartd"
+ rm -f /usr/bin/rstartd
+ ln -s $RUNDIR/bin/rstartd /usr/bin/rstartd
+ ;;
+ esac
+fi
+
+echo ""
+echo "Installation complete."
+
+exit 0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-excl
new file mode 100644
index 000000000..c7f43558f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-excl
@@ -0,0 +1,10 @@
+bin/XF86_*
+bin/XF98_*
+bin/XF86Setup
+bin/Xnest
+bin/Xprt
+bin/Xvfb
+bin/X
+bin/xfs
+bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list
new file mode 100644
index 000000000..40c03194a
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list
@@ -0,0 +1,23 @@
+bin
+lib/libGL.so.1.2
+lib/libICE.so.6.3
+lib/libPEX5.so.6.0
+lib/libSM.so.6.0
+lib/libX11.so.6.1
+lib/libXIE.so.6.0
+lib/libXThrStub.so.6.0
+lib/libXaw.so.6.1
+lib/libXaw.so.7.0
+lib/libXext.so.6.4
+lib/libXfont.so.1.3
+lib/libXi.so.6.0
+lib/libXmu.so.6.1
+lib/libXp.so.6.2
+lib/libXpm.so.4.11
+lib/libXt.so.6.0
+lib/libXtst.so.6.1
+lib/libdps.so.1.0
+lib/libdpstk.so.1.0
+lib/liboldX.so.6.0
+lib/libpsres.so.1.0
+lib/libxrx.so.6.3
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/dir
new file mode 100644
index 000000000..11c5b9da7
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/dir
@@ -0,0 +1 @@
+usr/X11R6
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/fsrv-list
new file mode 100644
index 000000000..86fc799fa
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/fsrv-list
@@ -0,0 +1,2 @@
+bin/xfs
+man/man1/xfs.1.gz
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/host.def
new file mode 100644
index 000000000..0f02f439b
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/host.def
@@ -0,0 +1,8 @@
+/*
+ * Host.def for building FreeBSD/a.out bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/host.def,v 1.3 2000/03/07 14:47:32 dawes Exp $
+ */
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-excl
new file mode 100644
index 000000000..d7fb5cb03
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-excl
@@ -0,0 +1,14 @@
+lib/X11/XF86Setup
+lib/X11/app-defaults
+lib/X11/config
+lib/X11/doc
+lib/X11/fonts
+lib/X11/fs
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
+lib/X11/xinit
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-list
new file mode 100644
index 000000000..9673fea05
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-list
@@ -0,0 +1,2 @@
+lib/X11
+include/X11/bitmaps
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-excl
new file mode 100644
index 000000000..13ac91d5f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-excl
@@ -0,0 +1,3 @@
+man/man1/XF86Setup.1.gz
+man/man1/xfs.1.gz
+man/man1/xmseconfig.1.gz
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-list
new file mode 100644
index 000000000..2a3700c15
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-list
@@ -0,0 +1 @@
+man
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/mod-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/mod-list
new file mode 100644
index 000000000..7054fc153
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/mod-list
@@ -0,0 +1 @@
+lib/modules
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/nest-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/nest-list
new file mode 100644
index 000000000..eff754d76
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/nest-list
@@ -0,0 +1 @@
+bin/Xnest
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-excl
new file mode 100644
index 000000000..113d220ef
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-excl
@@ -0,0 +1,5 @@
+lib/Server
+lib/X11
+lib/lib*.so*
+lib/modules
+include/X11/bitmaps
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-list
new file mode 100644
index 000000000..059b71061
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-list
@@ -0,0 +1,3 @@
+lib
+include
+lib/X11/config
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prt-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prt-list
new file mode 100644
index 000000000..0646e7927
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prt-list
@@ -0,0 +1 @@
+bin/Xprt
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/set-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/set-list
new file mode 100644
index 000000000..3bb030a3f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/set-list
@@ -0,0 +1,5 @@
+bin/XF86Setup
+bin/xmseconfig
+lib/X11/XF86Setup
+man/man1/XF86Setup.1.gz
+man/man1/xmseconfig.1.gz
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/vfb-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/vfb-list
new file mode 100644
index 000000000..e2d161bbc
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/vfb-list
@@ -0,0 +1 @@
+bin/Xvfb
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/xserv-list
new file mode 100644
index 000000000..334bbd1e4
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/xserv-list
@@ -0,0 +1,2 @@
+bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-list
index 01ed1bb8c..ba81399ed 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-list
@@ -1,16 +1,45 @@
bin
-lib/libICE.so.6.3
-lib/libPEX5.so.6.0
-lib/libSM.so.6.0
-lib/libX11.so.6.1
-lib/libXIE.so.6.0
-lib/libXThrStub.so.6.0
-lib/libXaw.so.6.1
-lib/libXext.so.6.3
-lib/libXi.so.6.0
-lib/libXmu.so.6.0
-lib/libXp.so.6.2
-lib/libXt.so.6.0
-lib/libXtst.so.6.1
-lib/liboldX.so.6.0
-lib/X11/app-defaults
+lib/aout
+lib/libGL.so.1
+lib/libGL.so
+lib/libICE.so.6
+lib/libICE.so
+lib/libPEX5.so.6
+lib/libPEX5.so
+lib/libSM.so.6
+lib/libSM.so
+lib/libX11.so.6
+lib/libX11.so
+lib/libXIE.so.6
+lib/libXIE.so
+lib/libXThrStub.so.6
+lib/libXThrStub.so
+lib/libXaw.so.7
+lib/libXaw.so.6
+lib/libXaw.so
+lib/libXext.so.6
+lib/libXext.so
+lib/libXfont.so.1
+lib/libXfont.so
+lib/libXi.so.6
+lib/libXi.so
+lib/libXmu.so.6
+lib/libXmu.so
+lib/libXp.so.6
+lib/libXp.so
+lib/libXpm.so.4
+lib/libXpm.so
+lib/libXt.so.6
+lib/libXt.so
+lib/libXtst.so.6
+lib/libXtst.so
+lib/libdps.so.1
+lib/libdps.so
+lib/libdpstk.so.1
+lib/libdpstk.so
+lib/liboldX.so.6
+lib/liboldX.so
+lib/libpsres.so.1
+lib/libpsres.so
+lib/libxrx.so.6
+lib/libxrx.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/fsrv-list
index c1f479b23..86fc799fa 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1.gz
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/host.def
index ea725aae1..9208cc595 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/host.def
@@ -1,3 +1,8 @@
/*
* Host.def for building FreeBSD bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/host.def,v 1.3 2000/03/07 14:47:31 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin-excl
index 85a119884..5887b2e4d 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin-excl
@@ -10,4 +10,3 @@ bin/xdm
bin/xmseconfig
bin/*.Xaw3d
bin/*.XawXPM
-lib/X11/app-defaults/Chooser
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin1-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin1-excl
index a6d02a6c6..3212813a1 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin1-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin1-excl
@@ -11,4 +11,3 @@ bin/xdm
bin/xmseconfig
bin/*.Xaw3d
bin/*.XawXPM
-lib/X11/app-defaults/Chooser
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/fsrv-list
index 0752dba18..b2ee839db 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x.Z
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/lib-excl
index 8c23da458..f9df15a1c 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/lib-excl
@@ -1,9 +1,14 @@
-lib/X11/XF86Setup
+b/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/prog-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/prog-excl
index d719810ec..113d220ef 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/prog-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/prog-excl
@@ -1,5 +1,5 @@
-lib/X11
lib/Server
+lib/X11
lib/lib*.so*
lib/modules
include/X11/bitmaps
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xdm-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xdm-list
index 8fa75b158..ece10840b 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xdm-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xdm-list
@@ -1,3 +1 @@
bin/xdm
-lib/X11/app-defaults/Chooser
-lib/X11/xdm
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list
index 32ff7414b..071c399e9 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list
@@ -1,4 +1,7 @@
bin
+lib/libGL.so.1.2
+lib/libGL.so.1
+lib/libGL.so
lib/libICE.so.6.3
lib/libICE.so.6
lib/libICE.so
@@ -16,23 +19,42 @@ lib/libXIE.so.6
lib/libXIE.so
lib/libXaw.so.6.1
lib/libXaw.so.6
+lib/libXaw.so.7.0
+lib/libXaw.so.7
lib/libXaw.so
-lib/libXext.so.6.3
+lib/libXext.so.6.4
lib/libXext.so.6
lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so.1
+lib/libXfont.so
lib/libXi.so.6.0
lib/libXi.so.6
lib/libXi.so
-lib/libXmu.so.6.0
+lib/libXmu.so.6.1
lib/libXmu.so.6
lib/libXmu.so
lib/libXp.so.6.2
lib/libXp.so.6
lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so.4
+lib/libXpm.so
lib/libXt.so.6.0
lib/libXt.so.6
lib/libXt.so
lib/libXtst.so.6.1
lib/libXtst.so.6
lib/libXtst.so
-lib/X11/app-defaults
+lib/libdps.so.1.0
+lib/libdps.so.1
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so.1
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so.1
+lib/libpsres.so
+lib/libxrx.so.6.3
+lib/libxrx.so.6
+lib/libxrx.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/fsrv-list
index c70da7456..e18f38dd8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def
index ea725aae1..4d596c623 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def
@@ -1,3 +1,8 @@
/*
- * Host.def for building FreeBSD bindists
+ * Host.def for building Linux/alpha bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def,v 1.4 2000/03/07 14:47:32 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-list
new file mode 100644
index 000000000..ff72b5c73
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-list
@@ -0,0 +1 @@
+state
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-excl
index 4f85588ab..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-excl
@@ -1,4 +1,5 @@
-bin/XFree86
+bin/XF86_*
+bin/XF98_*
bin/XF86Setup
bin/Xnest
bin/Xprt
@@ -6,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list
index f3a45ec7b..071c399e9 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list
@@ -1,4 +1,7 @@
bin
+lib/libGL.so.1.2
+lib/libGL.so.1
+lib/libGL.so
lib/libICE.so.6.3
lib/libICE.so.6
lib/libICE.so
@@ -16,37 +19,42 @@ lib/libXIE.so.6
lib/libXIE.so
lib/libXaw.so.6.1
lib/libXaw.so.6
-lib/libXaw.so
-lib/libXaw.so.7
lib/libXaw.so.7.0
+lib/libXaw.so.7
+lib/libXaw.so
lib/libXext.so.6.4
lib/libXext.so.6
lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so.1
+lib/libXfont.so
lib/libXi.so.6.0
lib/libXi.so.6
lib/libXi.so
-lib/libXmu.so.6.0
+lib/libXmu.so.6.1
lib/libXmu.so.6
lib/libXmu.so
lib/libXp.so.6.2
lib/libXp.so.6
lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so.4
+lib/libXpm.so
lib/libXt.so.6.0
lib/libXt.so.6
lib/libXt.so
lib/libXtst.so.6.1
lib/libXtst.so.6
lib/libXtst.so
-lib/libGL.so
-lib/libGL.so.1
-lib/libGL.so.1.2
-lib/libXfont.so
-lib/libXfont.so.1
-lib/libXfont.so.1.0
-lib/libxrx.so
-lib/libxrx.so.6
+lib/libdps.so.1.0
+lib/libdps.so.1
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so.1
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so.1
+lib/libpsres.so
lib/libxrx.so.6.3
-lib/libXpm.so
-lib/libXpm.so.4
-lib/libXpm.so.4.11
-lib/X11/app-defaults
+lib/libxrx.so.6
+lib/libxrx.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/fsrv-list
index c70da7456..e18f38dd8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def
index ea725aae1..2b7697375 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def
@@ -1,3 +1,14 @@
/*
- * Host.def for building FreeBSD bindists
+ * Host.def for building Linux/ix86 bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def,v 1.5 2000/03/07 14:47:33 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
+
+/* Need to have glide 2 and glide 3 installed */
+
+#define HasGlide2 YES
+#define HasGlide3 YES
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-list
new file mode 100644
index 000000000..ff72b5c73
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-list
@@ -0,0 +1 @@
+state
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-excl
index f1b0e119d..017d014bf 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-excl
@@ -1,6 +1,6 @@
-bin/XF68_*
bin/XF86_*
bin/XF98_*
+bin/XF68_*
bin/XF86Setup
bin/Xnest
bin/Xprt
@@ -8,3 +8,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list
index 46bf7d3d0..071c399e9 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list
@@ -1,4 +1,7 @@
bin
+lib/libGL.so.1.2
+lib/libGL.so.1
+lib/libGL.so
lib/libICE.so.6.3
lib/libICE.so.6
lib/libICE.so
@@ -16,24 +19,42 @@ lib/libXIE.so.6
lib/libXIE.so
lib/libXaw.so.6.1
lib/libXaw.so.6
+lib/libXaw.so.7.0
+lib/libXaw.so.7
lib/libXaw.so
-lib/libXext.so.6.3
+lib/libXext.so.6.4
lib/libXext.so.6
lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so.1
+lib/libXfont.so
lib/libXi.so.6.0
lib/libXi.so.6
lib/libXi.so
-lib/libXmu.so.6.0
+lib/libXmu.so.6.1
lib/libXmu.so.6
lib/libXmu.so
lib/libXp.so.6.2
lib/libXp.so.6
lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so.4
+lib/libXpm.so
lib/libXt.so.6.0
lib/libXt.so.6
lib/libXt.so
lib/libXtst.so.6.1
lib/libXtst.so.6
lib/libXtst.so
-lib/modules
-lib/X11/app-defaults
+lib/libdps.so.1.0
+lib/libdps.so.1
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so.1
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so.1
+lib/libpsres.so
+lib/libxrx.so.6.3
+lib/libxrx.so.6
+lib/libxrx.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/fsrv-list
index c70da7456..e18f38dd8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/host.def
new file mode 100644
index 000000000..d4553c823
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/host.def
@@ -0,0 +1,8 @@
+/*
+ * Host.def for building Linux/m68k bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/host.def,v 1.4 2000/03/07 14:47:34 dawes Exp $
+ */
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/mod-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/mod-list
new file mode 100644
index 000000000..7054fc153
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/mod-list
@@ -0,0 +1 @@
+lib/modules
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/prog-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/prog-excl
index 63d85c02e..113d220ef 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/prog-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/prog-excl
@@ -1,3 +1,4 @@
+lib/Server
lib/X11
lib/lib*.so*
lib/modules
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/set-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/set-list
new file mode 100644
index 000000000..83d032807
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/set-list
@@ -0,0 +1,5 @@
+bin/XF86Setup
+bin/xmseconfig
+lib/X11/XF86Setup
+man/man1/XF86Setup.1x
+man/man1/xmseconfig.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-list
new file mode 100644
index 000000000..ff72b5c73
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-list
@@ -0,0 +1 @@
+state
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/xserv-list
new file mode 100644
index 000000000..334bbd1e4
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/xserv-list
@@ -0,0 +1,2 @@
+bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-excl
new file mode 100644
index 000000000..c7f43558f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-excl
@@ -0,0 +1,10 @@
+bin/XF86_*
+bin/XF98_*
+bin/XF86Setup
+bin/Xnest
+bin/Xprt
+bin/Xvfb
+bin/X
+bin/xfs
+bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list
new file mode 100644
index 000000000..071c399e9
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list
@@ -0,0 +1,60 @@
+bin
+lib/libGL.so.1.2
+lib/libGL.so.1
+lib/libGL.so
+lib/libICE.so.6.3
+lib/libICE.so.6
+lib/libICE.so
+lib/libPEX5.so.6.0
+lib/libPEX5.so.6
+lib/libPEX5.so
+lib/libSM.so.6.0
+lib/libSM.so.6
+lib/libSM.so
+lib/libX11.so.6.1
+lib/libX11.so.6
+lib/libX11.so
+lib/libXIE.so.6.0
+lib/libXIE.so.6
+lib/libXIE.so
+lib/libXaw.so.6.1
+lib/libXaw.so.6
+lib/libXaw.so.7.0
+lib/libXaw.so.7
+lib/libXaw.so
+lib/libXext.so.6.4
+lib/libXext.so.6
+lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so.1
+lib/libXfont.so
+lib/libXi.so.6.0
+lib/libXi.so.6
+lib/libXi.so
+lib/libXmu.so.6.1
+lib/libXmu.so.6
+lib/libXmu.so
+lib/libXp.so.6.2
+lib/libXp.so.6
+lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so.4
+lib/libXpm.so
+lib/libXt.so.6.0
+lib/libXt.so.6
+lib/libXt.so
+lib/libXtst.so.6.1
+lib/libXtst.so.6
+lib/libXtst.so
+lib/libdps.so.1.0
+lib/libdps.so.1
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so.1
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so.1
+lib/libpsres.so
+lib/libxrx.so.6.3
+lib/libxrx.so.6
+lib/libxrx.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/dir
new file mode 100644
index 000000000..11c5b9da7
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/dir
@@ -0,0 +1 @@
+usr/X11R6
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/fsrv-list
new file mode 100644
index 000000000..e18f38dd8
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/fsrv-list
@@ -0,0 +1,2 @@
+bin/xfs
+man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/host.def
new file mode 100644
index 000000000..4e3d78ad3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/host.def
@@ -0,0 +1,8 @@
+/*
+ * Host.def for building Linux/ppc bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/host.def,v 1.3 2000/03/07 14:47:36 dawes Exp $
+ */
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-excl
new file mode 100644
index 000000000..d7fb5cb03
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-excl
@@ -0,0 +1,14 @@
+lib/X11/XF86Setup
+lib/X11/app-defaults
+lib/X11/config
+lib/X11/doc
+lib/X11/fonts
+lib/X11/fs
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
+lib/X11/xinit
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-list
new file mode 100644
index 000000000..9673fea05
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-list
@@ -0,0 +1,2 @@
+lib/X11
+include/X11/bitmaps
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-excl
new file mode 100644
index 000000000..81792cce1
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-excl
@@ -0,0 +1,3 @@
+man/man1/XF86Setup.1x
+man/man1/xfs.1x
+man/man1/xmseconfig.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-list
new file mode 100644
index 000000000..2a3700c15
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-list
@@ -0,0 +1 @@
+man
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/mod-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/mod-list
new file mode 100644
index 000000000..7054fc153
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/mod-list
@@ -0,0 +1 @@
+lib/modules
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/nest-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/nest-list
new file mode 100644
index 000000000..eff754d76
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/nest-list
@@ -0,0 +1 @@
+bin/Xnest
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-excl
new file mode 100644
index 000000000..113d220ef
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-excl
@@ -0,0 +1,5 @@
+lib/Server
+lib/X11
+lib/lib*.so*
+lib/modules
+include/X11/bitmaps
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-list
new file mode 100644
index 000000000..059b71061
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-list
@@ -0,0 +1,3 @@
+lib
+include
+lib/X11/config
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prt-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prt-list
new file mode 100644
index 000000000..0646e7927
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prt-list
@@ -0,0 +1 @@
+bin/Xprt
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/set-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/set-list
new file mode 100644
index 000000000..83d032807
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/set-list
@@ -0,0 +1,5 @@
+bin/XF86Setup
+bin/xmseconfig
+lib/X11/XF86Setup
+man/man1/XF86Setup.1x
+man/man1/xmseconfig.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-list
new file mode 100644
index 000000000..ff72b5c73
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-list
@@ -0,0 +1 @@
+state
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/vfb-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/vfb-list
new file mode 100644
index 000000000..e2d161bbc
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/vfb-list
@@ -0,0 +1 @@
+bin/Xvfb
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/xserv-list
new file mode 100644
index 000000000..334bbd1e4
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/xserv-list
@@ -0,0 +1,2 @@
+bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-excl
index 08f6677d5..cd36988f8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-excl
@@ -6,3 +6,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-list
index 083c3d1b5..ba077a403 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-list
@@ -1,3 +1 @@
bin
-lib/modules
-lib/X11/app-defaults
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/fsrv-list
index 54f143c91..4007dc9fd 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/cat1/xfs.1
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def
index 8ea3f7d55..03c9bc7ca 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def
@@ -1,11 +1,8 @@
/*
* host.def for building LynxOS binary dists
*
- * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def,v 1.2 1997/07/10 08:17:33 hohndel Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def,v 1.3 2000/03/03 20:02:16 dawes Exp $
*/
-#define InstallEmptyHostDef
-
-#define HasTk YES
-#define HasTcl YES
-
+#define HasLibCrypt YES
+#define HasMTRRSupport YES
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/mod-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/mod-list
new file mode 100644
index 000000000..7054fc153
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/mod-list
@@ -0,0 +1 @@
+lib/modules
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/xserv-list
new file mode 100644
index 000000000..334bbd1e4
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/xserv-list
@@ -0,0 +1,2 @@
+bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list
index 1f6cca63c..c7e9bd845 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list
@@ -1,15 +1,21 @@
bin
+lib/libGL.so.1.2
lib/libICE.so.6.3
lib/libPEX5.so.6.0
lib/libSM.so.6.0
lib/libX11.so.6.1
lib/libXIE.so.6.0
lib/libXaw.so.6.1
-lib/libXext.so.6.3
+lib/libXaw.so.7.0
+lib/libXext.so.6.4
+lib/libXfont.so.1.3
lib/libXi.so.6.0
-lib/libXmu.so.6.0
+lib/libXmu.so.6.1
lib/libXp.so.6.2
+lib/libXpm.so.4.11
lib/libXt.so.6.0
lib/libXtst.so.6.1
+lib/libdps.so.1.0
+lib/libdpstk.so.1.0
lib/liboldX.so.6.0
-lib/X11/app-defaults
+lib/libpsres.so.1.0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/fsrv-list
index c1f479b23..e4decc9eb 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
-man/man1/xfs.1.gz
+man/cat1/xfs.0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/host.def
index ea725aae1..a63db92a8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/host.def
@@ -1,3 +1,8 @@
/*
- * Host.def for building FreeBSD bindists
+ * Host.def for building NetBSD bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/host.def,v 1.3 2000/03/07 14:47:36 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/man-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/man-excl
index 13ac91d5f..1ea82551a 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/man-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/man-excl
@@ -1,3 +1,3 @@
-man/man1/XF86Setup.1.gz
-man/man1/xfs.1.gz
-man/man1/xmseconfig.1.gz
+man/cat1/XF86Setup.0
+man/cat1/xfs.0
+man/cat1/xmseconfig.0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/set-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/set-list
index 3bb030a3f..ac2d180b8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/set-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/set-list
@@ -1,5 +1,5 @@
bin/XF86Setup
bin/xmseconfig
lib/X11/XF86Setup
-man/man1/XF86Setup.1.gz
-man/man1/xmseconfig.1.gz
+man/cat1/XF86Setup.0
+man/cat1/xmseconfig.0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list
index e5d1a9397..3adce5d13 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list
@@ -1,16 +1,22 @@
bin
+lib/libGL.so.1.2
lib/libICE.so.6.3
lib/libPEX5.so.6.0
lib/libSM.so.6.0
lib/libX11.so.6.1
lib/libXIE.so.6.0
+lib/libXThrStub.so.6.0
lib/libXaw.so.6.1
-lib/libXext.so.6.3
+lib/libXaw.so.7.0
+lib/libXext.so.6.4
+lib/libXfont.so.1.3
lib/libXi.so.6.0
-lib/libXmu.so.6.0
+lib/libXmu.so.6.1
lib/libXp.so.6.2
+lib/libXpm.so.4.11
lib/libXt.so.6.0
lib/libXtst.so.6.1
+lib/libdps.so.1.0
+lib/libdpstk.so.1.0
lib/liboldX.so.6.0
-lib/modules
-lib/X11/app-defaults
+lib/libpsres.so.1.0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/fsrv-list
index 46aa7cd6a..e4decc9eb 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/cat1/xfs.0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def
index bc6940165..1d3de627c 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def
@@ -1,7 +1,7 @@
/*
- * Host.def for building OpenBSD bindists
+ * Host.def for building OpenBSD/ix86 bindists
*
- * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def,v 1.2 1997/08/26 10:53:22 hohndel Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def,v 1.3 2000/02/27 01:29:03 dawes Exp $
*/
#define InstallEmptyHostDef
@@ -13,4 +13,3 @@
#define TkLibName tk41
#define TclLibName tcl75
-#define JoystickSupport YES
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/mod-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/mod-list
new file mode 100644
index 000000000..7054fc153
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/mod-list
@@ -0,0 +1 @@
+lib/modules
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def
index 9c3edb8c7..11b7963e0 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def
@@ -1,7 +1,7 @@
/*
- * Host.def for building OpenBSD bindists
+ * Host.def for building OpenBSD/sparc bindists
*
- * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def,v 1.1 1997/10/25 13:50:40 hohndel Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def,v 1.2 2000/02/27 01:39:18 dawes Exp $
*/
#define InstallEmptyHostDef
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list
index a25d9c515..10ec8123e 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list
@@ -1,28 +1,38 @@
bin
+lib/libGL.so.1.2
+lib/libGL.so
lib/libICE.so.6.3
-lib/libPEX5.so.6.0
-lib/libSM.so.6.0
-lib/libX11.so.6.1
-lib/libXIE.so.6.0
-lib/libXaw.so.6.1
-lib/libXext.so.6.3
-lib/libXi.so.6.0
-lib/libXmu.so.6.0
-lib/libXp.so.6.2
-lib/libXt.so.6.0
-lib/libXtst.so.6.1
-lib/liboldX.so.6.0
lib/libICE.so
+lib/libPEX5.so.6.0
lib/libPEX5.so
+lib/libSM.so.6.0
lib/libSM.so
+lib/libX11.so.6.1
lib/libX11.so
+lib/libXIE.so.6.0
lib/libXIE.so
+lib/libXaw.so.6.1
+lib/libXaw.so.7.0
lib/libXaw.so
+lib/libXext.so.6.4
lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so
+lib/libXi.so.6.0
lib/libXi.so
+lib/libXmu.so.6.1
lib/libXmu.so
+lib/libXp.so.6.2
lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so
+lib/libXt.so.6.0
lib/libXt.so
+lib/libXtst.so.6.1
lib/libXtst.so
-lib/liboldX.so
-lib/X11/app-defaults
+lib/libdps.so.1.0
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/fsrv-list
index c70da7456..e18f38dd8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/host.def
index ea725aae1..fdeeb09ae 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/host.def
@@ -1,3 +1,8 @@
/*
- * Host.def for building FreeBSD bindists
+ * Host.def for building SVR4.0 bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/host.def,v 1.3 2000/03/07 14:47:37 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list
index a25d9c515..10ec8123e 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list
@@ -1,28 +1,38 @@
bin
+lib/libGL.so.1.2
+lib/libGL.so
lib/libICE.so.6.3
-lib/libPEX5.so.6.0
-lib/libSM.so.6.0
-lib/libX11.so.6.1
-lib/libXIE.so.6.0
-lib/libXaw.so.6.1
-lib/libXext.so.6.3
-lib/libXi.so.6.0
-lib/libXmu.so.6.0
-lib/libXp.so.6.2
-lib/libXt.so.6.0
-lib/libXtst.so.6.1
-lib/liboldX.so.6.0
lib/libICE.so
+lib/libPEX5.so.6.0
lib/libPEX5.so
+lib/libSM.so.6.0
lib/libSM.so
+lib/libX11.so.6.1
lib/libX11.so
+lib/libXIE.so.6.0
lib/libXIE.so
+lib/libXaw.so.6.1
+lib/libXaw.so.7.0
lib/libXaw.so
+lib/libXext.so.6.4
lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so
+lib/libXi.so.6.0
lib/libXi.so
+lib/libXmu.so.6.1
lib/libXmu.so
+lib/libXp.so.6.2
lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so
+lib/libXt.so.6.0
lib/libXt.so
+lib/libXtst.so.6.1
lib/libXtst.so
-lib/liboldX.so
-lib/X11/app-defaults
+lib/libdps.so.1.0
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/fsrv-list
index c70da7456..e18f38dd8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/host.def
index ea725aae1..2392ea639 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/host.def
@@ -1,3 +1,8 @@
/*
- * Host.def for building FreeBSD bindists
+ * Host.def for building Solaris bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/host.def,v 1.3 2000/03/07 14:47:38 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list
index a25d9c515..10ec8123e 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list
@@ -1,28 +1,38 @@
bin
+lib/libGL.so.1.2
+lib/libGL.so
lib/libICE.so.6.3
-lib/libPEX5.so.6.0
-lib/libSM.so.6.0
-lib/libX11.so.6.1
-lib/libXIE.so.6.0
-lib/libXaw.so.6.1
-lib/libXext.so.6.3
-lib/libXi.so.6.0
-lib/libXmu.so.6.0
-lib/libXp.so.6.2
-lib/libXt.so.6.0
-lib/libXtst.so.6.1
-lib/liboldX.so.6.0
lib/libICE.so
+lib/libPEX5.so.6.0
lib/libPEX5.so
+lib/libSM.so.6.0
lib/libSM.so
+lib/libX11.so.6.1
lib/libX11.so
+lib/libXIE.so.6.0
lib/libXIE.so
+lib/libXaw.so.6.1
+lib/libXaw.so.7.0
lib/libXaw.so
+lib/libXext.so.6.4
lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so
+lib/libXi.so.6.0
lib/libXi.so
+lib/libXmu.so.6.1
lib/libXmu.so
+lib/libXp.so.6.2
lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so
+lib/libXt.so.6.0
lib/libXt.so
+lib/libXtst.so.6.1
lib/libXtst.so
-lib/liboldX.so
-lib/X11/app-defaults
+lib/libdps.so.1.0
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/fsrv-list
index c70da7456..e18f38dd8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/host.def
index ea725aae1..647056fc1 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/host.def
@@ -1,3 +1,8 @@
/*
- * Host.def for building FreeBSD bindists
+ * Host.def for building UnixWare bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/host.def,v 1.3 2000/03/07 14:47:39 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist b/xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist
index ab2a24c77..588f5d00c 100755
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist
@@ -1,11 +1,11 @@
#!/bin/sh
#
-# $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist,v 1.1 1997/05/27 03:47:02 dawes Exp $
+# $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist,v 1.3 2000/02/22 17:11:41 dawes Exp $
#
Usage()
{
- echo `basename $0` [-l] version from-dir to-dir
+ echo `basename $0` [-l] [prefix] from-dir to-dir
exit 1
}
@@ -18,13 +18,21 @@ case $1 in
;;
esac
-if [ $# != 3 ]; then
- Usage
-fi
-
-VERS=$1
-FROMDIR=$2
-TODIR=$3
+case $# in
+3)
+ PRE=$1
+ shift
+ ;;
+2)
+ PRE=X
+ ;;
+*)
+ Usage
+ ;;
+esac
+
+FROMDIR=$1
+TODIR=$2
if [ ! -d $FROMDIR ]; then
echo No such dir $FROMDIR
@@ -88,10 +96,10 @@ for d in $SUBDIRS; do
echo No file $DIRFILE in $TODIR/$d
# exit 3
else
- PREFIX=`cat $DIRFILE`
+ DEFPREFIX=`cat $DIRFILE`
for i in *-list; do
name=`basename $i -list`
- tarball=$VERS$name.tgz
+ tarball=$PRE$name.tgz
echo creating $tarball
lfile="-T $TODIR/$d/$i"
if [ -f $name-excl ]; then
@@ -99,6 +107,11 @@ for d in $SUBDIRS; do
else
xfile=""
fi
+ if [ -f $name-dir ]; then
+ PREFIX=`cat $name-dir`
+ else
+ PREFIX=$DEFPREFIX
+ fi
(cd $FROMDIR/$PREFIX
$TAR $TAROPTS -f $TODIR/$BINDIR/$tarball $lfile $xfile
)
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/common/extras b/xc/programs/Xserver/hw/xfree86/etc/bindist/common/extras
index a8968c86f..41ca56c8c 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/common/extras
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/common/extras
@@ -1,5 +1,5 @@
-lib/X11/doc/BetaReport
+lib/X11/doc/BugReport
lib/X11/doc/RELNOTES
lib/X11/doc/README
-lib/X11/etc/postinst.sh
-lib/X11/etc/preinst.sh
+lib/X11/doc/Install
+lib/X11/etc/Xinstall.sh
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/common/fnon-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/common/fnon-list
index 7da919b6e..a87d01f47 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/common/fnon-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/common/fnon-list
@@ -4,8 +4,6 @@ lib/X11/fonts/misc/gb24st.pcf.gz
lib/X11/fonts/misc/hanglg16.pcf.gz
lib/X11/fonts/misc/hanglm16.pcf.gz
lib/X11/fonts/misc/hanglm24.pcf.gz
-lib/X11/fonts/misc/heb6x13.pcf.gz
-lib/X11/fonts/misc/heb8x13.pcf.gz
lib/X11/fonts/misc/jiskan16.pcf.gz
lib/X11/fonts/misc/jiskan24.pcf.gz
lib/X11/fonts/misc/k14.pcf.gz
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/common/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/common/host.def
new file mode 100644
index 000000000..2d926a581
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/common/host.def
@@ -0,0 +1,19 @@
+/*
+ * host.def for building the common component of the XFree86 bindists.
+ *
+ * The settings here require the following to be installed:
+ *
+ * - XFree86 doctools package (requires groff)
+ * - nroff/troff or groff
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/common/host.def,v 1.4 2000/03/03 23:16:25 dawes Exp $
+ */
+
+#define HasSgmlFmt YES
+#define BuildAllDocs YES
+#define InstallJapaneseDocs YES
+
+#define BuildSpecsDocs YES
+#define SpecsDocDirs GL Xext Xv xterm
+
+
diff --git a/xc/programs/Xserver/hw/xfree86/input/Imakefile b/xc/programs/Xserver/hw/xfree86/input/Imakefile
index 83ee782bf..ed9ae9e17 100644
--- a/xc/programs/Xserver/hw/xfree86/input/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/input/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/Imakefile,v 1.12 1999/09/04 13:04:39 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/Imakefile,v 1.14 2000/03/05 19:26:46 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -8,10 +8,14 @@ XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/Imakefile,v 1.12 1999/09/04
JOYSTICKDIR = joystick
#endif
-MOUSEDIR = mouse
+/*
+ * The keyboard directory only has a man page so far! The driver is
+ * still built in to the common layer.
+ */
+KBDDIR = keyboard
-SUBDIRS = $(MOUSEDIR) XInputDrivers $(JOYSTICKDIR)
-DRIVERS = mouse XInputDrivers
+SUBDIRS = XInputDrivers $(JOYSTICKDIR) $(KBDDIR)
+DRIVERS = XInputDrivers
#ifndef OS2Architecture
OBJS = `cat idriver.list`
@@ -24,7 +28,7 @@ MakeSubdirs($(SUBDIRS))
#endif
#if MakeHasPosixVariableSubstitutions
-DONES = $(SUBDIRS:%=%/DONE)
+DONES = $(DRIVERS:%=%/DONE)
#if HasGnuMake || HasBsdMake
$(DONES): $(SUBDIRS)
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile b/xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile
index 537e4d716..bfbebd427 100644
--- a/xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile,v 1.2 1999/08/14 10:49:59 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile,v 1.3 2000/03/03 01:05:48 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -21,6 +21,11 @@ ObjectModuleTarget($(DRIVER),$(OBJS))
InstallObjectModule($(DRIVER),$(MODULEDIR),input)
+#if !defined(XF86DriverSDK)
+CppManTarget($(DRIVER),)
+InstallModuleManPage($(DRIVER))
+#endif
+
DependTarget()
InstallDriverSDKObjectModule($(DRIVER),$(DRIVERSDKMODULEDIR),input)
diff --git a/xc/programs/Xserver/hw/xfree86/input/dynapro/dynapro.cpp b/xc/programs/Xserver/hw/xfree86/input/dynapro/dynapro.cpp
new file mode 100644
index 000000000..55b8870cd
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/dynapro/dynapro.cpp
@@ -0,0 +1,37 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/dynapro/dynapro.cpp,v 1.1 2000/03/03 01:05:48 dawes Exp $
+.TH DYNAPRO __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+dynapro \- Dynapro input driver
+.SH SYNOPSIS
+.B "Section ""InputDevice"""
+.br
+.BI " Identifier """ idevname """"
+.br
+.B " Driver ""dynapro"""
+.br
+.BI " Option ""Device"" """ devpath """"
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B dynapro
+is an XFree86 input driver for Dynapro devices...
+.PP
+The
+.B dynapro
+driver functions as a pointer input device, and may be used as the
+X server's core pointer.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+What is supported...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details and for options that can be used with all input drivers. This
+section only covers configuration details specific to this driver.
+.PP
+Config details...
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1).
+.SH AUTHORS
+Authors include...
diff --git a/xc/programs/Xserver/hw/xfree86/input/keyboard/Imakefile b/xc/programs/Xserver/hw/xfree86/input/keyboard/Imakefile
new file mode 100644
index 000000000..a9cabdfa7
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/keyboard/Imakefile
@@ -0,0 +1,12 @@
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/keyboard/Imakefile,v 1.1 2000/03/03 01:05:48 dawes Exp $
+
+#define IHaveModules
+#include <Server.tmpl>
+
+DRIVER = keyboard
+
+#if !defined(XF86DriverSDK)
+CppManTarget($(DRIVER),)
+InstallModuleManPage($(DRIVER))
+#endif
+
diff --git a/xc/programs/Xserver/hw/xfree86/input/keyboard/keyboard.cpp b/xc/programs/Xserver/hw/xfree86/input/keyboard/keyboard.cpp
new file mode 100644
index 000000000..dab66ca60
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/keyboard/keyboard.cpp
@@ -0,0 +1,97 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/keyboard/keyboard.cpp,v 1.1 2000/03/03 01:05:49 dawes Exp $
+.TH KEYBOARD __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+keyboard \- Keyboard input driver
+.SH SYNOPSIS
+.B "Section ""InputDevice"""
+.br
+.BI " Identifier """ idevname """"
+.br
+.B " Driver ""keyboard"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B keyboard
+is an XFree86 input driver for keyboards. The driver supports the standard
+OS-provided keyboard interface. This driver is currently built-in to
+the core X server.
+.PP
+The
+.B keyboard
+driver functions as a keyboard input device, and may be used as the
+X server's core keyboard. This driver is currently built-in to the core
+X server, and multiple instances are not yet supported.
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details and for options that can be used with all input drivers. This
+section only covers configuration details specific to this driver.
+.PP
+The following driver
+.B Options
+are supported:
+.TP 7
+.BI "Option ""Protocol"" """ string """
+Specify the mouse protocol. Valid protocol types include:
+.PP
+.RS 12
+Standard, Xqueue.
+.RE
+.PP
+.RS 7
+Not all protocols are supported on all platforms. Default: "Standard".
+.RE
+.TP 7
+.BI "Option ""AutoRepeat"" """ "delay rate" """
+sets the auto repeat behaviour for the keyboard. This is not implemented
+on all platforms.
+.I delay
+is the time in milliseconds before a key starts repeating.
+.I rate
+is the number of times a key repeats per second. Default: "500 30".
+.TP 7
+.BI "Option ""XLeds"" """ ledlist """
+makes the keyboard LEDs specified in
+.I ledlist
+available for client use instead of their traditional function
+(Scroll Lock, Caps Lock and Num Lock). The numbers in the list are
+in the range 1 to 3. Default: empty list.
+.TP 7
+.BI "Option ""XkbDisable"" """ boolean """
+disable/enable the XKEYBOARD extension. The \-kb command line
+option overrides this config file option. Default: XKB is enabled.
+.TP 7
+.BI "Option ""XkbRules"" """ rules """
+specifies which XKB rules file to use for interpreting the
+.BR XkbModel ,
+.BR XkbLayout ,
+.BR XkbVariant ,
+and
+.B XkbOptions
+settings. Default: "xfree86" for most platforms, but "xfree98" for the
+Japanese PC-98 platforms.
+.TP 7
+.BI "Option ""XkbModel"" """ modelname """
+specifies the XKB keyboard model name. Default: "pc101" for most platforms,
+but "pc98" for the Japanese PC-98 platforms, and "pc101_sol8x86" for
+Solaris 8 on x86.
+.TP 7
+.BI "Option ""XkbLayout"" """ layoutname """
+specifies the XKB keyboard layout name. This is usually the country or
+language type of the keyboard. Default: "us" for most platforms, but
+"nec/jp" for the Japanese PC-98 platforms.
+.TP 7
+.BI "Option ""XkbVariant"" """ variants """
+specifies the XKB keyboard variant components. These can be used to
+enhance the keyboard layout details. Default: not set.
+.TP 7
+.BI "Option ""XkbOptions"" """ options """
+specifies the XKB keyboard option components. These can be used to
+enhance the keyboard behaviour. Default: not set.
+.PP
+Some other XKB-related options are available, but they are incompatible
+with the ones listed above and are not recommended, so they are not
+documented here.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1).
diff --git a/xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile b/xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile
index 66e66c6ae..fc449cf34 100644
--- a/xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile,v 1.4 1999/08/14 10:50:01 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile,v 1.5 2000/03/03 01:05:49 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -21,6 +21,11 @@ ObjectModuleTarget($(DRIVER),$(OBJS))
InstallObjectModule($(DRIVER),$(MODULEDIR),input)
+#if !defined(XF86DriverSDK)
+CppManTarget($(DRIVER),)
+InstallModuleManPage($(DRIVER))
+#endif
+
DependTarget()
InstallDriverSDKObjectModule($(DRIVER),$(DRIVERSDKMODULEDIR),input)
diff --git a/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.cpp b/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.cpp
new file mode 100644
index 000000000..3507b8f50
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.cpp
@@ -0,0 +1,37 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.cpp,v 1.1 2000/03/03 01:05:49 dawes Exp $
+.TH MICROTOUCH __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+microtouch \- MicroTouch input driver
+.SH SYNOPSIS
+.B "Section ""InputDevice"""
+.br
+.BI " Identifier """ idevname """"
+.br
+.B " Driver ""microtouch"""
+.br
+.BI " Option ""Device"" """ devpath """"
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B microtouch
+is an XFree86 input driver for MicroTouch devices...
+.PP
+The
+.B microtouch
+driver functions as a pointer input device, and may be used as the
+X server's core pointer.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+What is supported...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details and for options that can be used with all input drivers. This
+section only covers configuration details specific to this driver.
+.PP
+Config details...
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1).
+.SH AUTHORS
+Authors include...
diff --git a/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h b/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h
index a3b14adf9..696b12e77 100644
--- a/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h
+++ b/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h
@@ -24,7 +24,7 @@
* in this Software without prior written authorization from Metro Link.
*
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h,v 1.3 1999/08/28 09:01:17 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h,v 1.4 2000/03/03 20:36:41 dawes Exp $ */
#ifndef _microtouch_H_
#define _microtouch_H_
@@ -120,8 +120,6 @@ MuTPrivateRec, *MuTPrivatePtr;
/******************************************************************************
* Declarations
*****************************************************************************/
-static MODULESETUPPROTO( SetupProc );
-static void TearDownProc( pointer p );
/*int DumpOpts (XF86OptionPtr opts); */
static Bool DeviceControl (DeviceIntPtr dev, int mode);
static Bool DeviceOn (DeviceIntPtr dev);
diff --git a/xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile b/xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile
index 6c49d210c..ee06a2796 100644
--- a/xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile,v 1.3 1999/08/14 10:50:02 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile,v 1.4 2000/03/03 01:05:50 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -24,6 +24,11 @@ ObjectModuleTarget($(DRIVER),$(OBJS))
InstallObjectModule($(DRIVER),$(MODULEDIR),input)
+#if !defined(XF86DriverSDK)
+CppManTarget($(DRIVER),)
+InstallModuleManPage($(DRIVER))
+#endif
+
DependTarget()
InstallDriverSDKObjectModule($(DRIVER),$(DRIVERSDKMODULEDIR),input)
diff --git a/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c b/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c
index 927a93546..04afed9f1 100644
--- a/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c
+++ b/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c,v 1.26 2000/02/17 15:20:17 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c,v 1.28 2000/03/06 22:59:33 dawes Exp $ */
/*
*
* Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
@@ -68,7 +68,6 @@ static void MouseUnInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags);
#endif
static int MouseProc(DeviceIntPtr device, int what);
-static void MouseNoSigioReadInput(InputInfoPtr pInfo);
static Bool MouseConvert(LocalDevicePtr local, int first, int num, int v0,
int v1, int v2, int v3, int v4, int v5, int *x,
int *y);
@@ -1688,21 +1687,31 @@ MouseDoPostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy)
change = buttons ^ reverseBits(hitachMap, pMse->lastButtons);
else
change = buttons ^ reverseBits(reverseMap, pMse->lastButtons);
- if (change & 02)
- xf86PostButtonEvent(pInfo->dev, 0, 2, (buttons & 02), 0, 0);
+
+ /*
+ * process button 2, 4 and above
+ */
+ change &= ~0x05;
+ while (change) {
+ id = ffs(change);
+ change &= ~(1 << (id - 1));
+ xf86PostButtonEvent(pInfo->dev, 0, id,
+ (buttons & (1 << (id - 1))), 0, 0);
+ }
/*
* emulate the third button by the other two
*/
- if ((id = stateTab[(buttons & 0x07) + pMse->emulateState][0]) != 0)
+ buttons &= 0x07;
+ if ((id = stateTab[buttons + pMse->emulateState][0]) != 0)
xf86PostButtonEvent(pInfo->dev, 0, abs(id), (id >= 0), 0, 0);
- if ((id = stateTab[(buttons & 0x07) + pMse->emulateState][1]) != 0)
+ if ((id = stateTab[buttons + pMse->emulateState][1]) != 0)
xf86PostButtonEvent(pInfo->dev, 0, abs(id), (id >= 0), 0, 0);
- pMse->emulateState = stateTab[(buttons & 0x07) + pMse->emulateState][2];
- if (stateTab[(buttons & 0x07) + pMse->emulateState][0] ||
- stateTab[(buttons & 0x07) + pMse->emulateState][1]) {
+ pMse->emulateState = stateTab[buttons + pMse->emulateState][2];
+ if (stateTab[buttons + pMse->emulateState][0] ||
+ stateTab[buttons + pMse->emulateState][1]) {
pMse->truebuttons = truebuttons;
timer = TimerSet(timer, 0, pMse->emulate3Timeout, buttonTimer,
pInfo);
diff --git a/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.cpp b/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.cpp
new file mode 100644
index 000000000..9c3dfce4d
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.cpp
@@ -0,0 +1,152 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/mouse/mouse.cpp,v 1.1 2000/03/03 01:05:50 dawes Exp $
+.TH MOUSE __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+mouse \- Mouse input driver
+.SH SYNOPSIS
+.B "Section ""InputDevice"""
+.br
+.BI " Identifier """ idevname """"
+.br
+.B " Driver ""mouse"""
+.br
+.BI " Option ""Protocol"" """ protoname """"
+.br
+.BI " Option ""Device"" """ devpath """"
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B mouse
+is an XFree86 input driver for mice. The driver supports most available
+mouse types and interfaces. USB mice are only supported on some OSs,
+and the level of support for PS/2 mice depends on the OS.
+.PP
+The
+.B mouse
+driver functions as a pointer input device, and may be used as the
+X server's core pointer. Multiple mice are supported by multiple
+instances of this driver.
+.SH SUPPORTED HARDWARE
+There is a detailed list of hardware that the
+.B mouse
+driver supports in the
+.I README.mouse
+document. This can be found
+in __projectroot__/lib/X11/doc/, or online at
+http://www.xfree86.org/current/mouse.html.
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details and for options that can be used with all input drivers. This
+section only covers configuration details specific to this driver.
+.PP
+The driver can auto-detect the mouse type on some platforms On some
+platforms this is limited to plug and play serial mice, and on some the
+auto-detection works for any mouse that the OS's kernel driver supports.
+On others, it is always necessary to specify the mouse protocol in the
+config file. The
+.I README.mouse
+document contains some detailed information about this.
+.PP
+The following driver
+.B Options
+are supported:
+.TP 7
+.BI "Option ""Protocol"" """ string """
+Specify the mouse protocol. Valid protocol types include:
+.PP
+.RS 12
+Auto, Microsoft, MouseSystems, MMSeries, Logitech, MouseMan, MMHitTab,
+GlidePoint, IntelliMouse, ThinkingMouse, AceCad, PS/2, ImPS/2,
+ExplorerPS/2, ThinkingMousePS/2, MouseManPlusPS/2, GlidePointPS/2,
+NetMousePS/2, NetScrollPS/2, BusMouse, SysMouse, WSMouse, USB, Xqueue.
+.RE
+.PP
+.RS 7
+Not all protocols are supported on all platforms. The "Auto" platform
+specifies that protocol auto-detection should be attempted. There is no
+default protocol setting, and specifying this option is mandatory.
+.TP 7
+.BI "Option ""Device"" """ string """
+Specifies the device through which the mouse can be accessed. A common
+setting is "/dev/mouse", which is often a symbolic link to the real
+device. This option is mandatory, and there is no default setting.
+.TP 7
+.BI "Option ""Buttons"" """ integer """
+Specifies the number of mouse buttons. In cases where the number of buttons
+cannot be auto-detected, the default value is 3.
+.TP 7
+.BI "Option ""Emulate3Buttons"" """ boolean """
+Enable/disable the emulation of the third (middle) mouse button for mice
+which only have two physical buttons. The third button is emulated by
+pressing both buttons simultaneously. Default: off
+.TP 7
+.BI "Option ""Emulate3Timeout"" """ integer """
+Sets the timeout (in milliseconds) that the driver waits before decicing
+if two buttons where pressed "simultaneously" when 3 button emulation is
+enabled. Default: 50.
+.TP 7
+.BI "Option ""ChordMiddle"" """ boolean """
+Enable/disable handling of mice that send left+right events when the middle
+button is used. Default: off.
+.TP 7
+.BI "Option ""ZAxisMapping"" ""X"""
+.TP 7
+.BI "Option ""ZAxisMapping"" ""Y"""
+.TP 7
+.BI "Option ""ZAxisMapping"" """ "N1 N2" """
+.TP 7
+.BI "Option ""ZAxisMapping"" """ "N1 N2 N3 N4" """
+Set the mapping for the Z axis (wheel) motion to buttons or another axis
+.RB ( X
+or
+.BR Y ).
+Button number
+.I N1
+is mapped to the negative Z axis motion and button number
+.I N2
+is mapped to the positive Z axis motion. For mice with two wheels,
+four button numbers can be specified, with the negative and positive motion
+of the second wheel mapped respectively to buttons number
+.I N3
+and
+.IR N4 .
+.TP 7
+.BI "Option ""FlipXY"" """ boolean """
+Enable/disable swapping the X and Y axes. Default: off.
+.TP 7
+.BI "Option ""SampleRate"" """ integer """
+Sets the number of motion/button events the mouse sends per second. Setting
+this is only supported for some mice, including some Logitech mice and
+some PS/2 mice on some platforms. Default: whatever the mouse is
+already set to.
+.TP 7
+.BI "Option ""Resolution"" """ integer """
+Sets the resolution of the device in counts per inch. Setting this is
+only supported for some mice, including some PS/2 mice on some platforms.
+Default: whatever the mouse is already set to.
+.TP 7
+.BI "Option ""ClearDTR"" """ boolean """
+Enable/disable clearing the DTR line on the serial port used by the mouse.
+Some dual-protocol mice require the DTR line to be cleared to operate
+in the non-default protocol. This option is for serial mice only.
+Default: off.
+.TP 7
+.BI "Option ""ClearRTS"" """ boolean """
+Enable/disable clearing the RTS line on the serial port used by the mouse.
+Some dual-protocol mice require the RTS line to be cleared to operate
+in the non-default protocol. This option is for serial mice only.
+Default: off.
+.TP 7
+.BI "Option ""BaudRate"" """ integer """
+Set the baud rate to use for communicating with a serial mouse. This
+option should rarely be required because the default is correct for almost
+all situations. Valid values include: 300, 1200, 2400, 4800, 9600, 19200.
+Default: 1200.
+.PP
+There are some other options that may be used to control various parameters
+for serial port communication, but they are not documented here because
+the driver sets them correctly for each mouse protocol type.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1),
+README.mouse.
diff --git a/xc/programs/Xserver/hw/xfree86/input/void/Imakefile b/xc/programs/Xserver/hw/xfree86/input/void/Imakefile
index f49b06c9a..07579f5f6 100644
--- a/xc/programs/Xserver/hw/xfree86/input/void/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/input/void/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/void/Imakefile,v 1.1 1999/11/19 13:54:57 hohndel Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/void/Imakefile,v 1.2 2000/03/03 01:05:50 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -21,6 +21,11 @@ ObjectModuleTarget($(DRIVER),$(OBJS))
InstallObjectModule($(DRIVER),$(MODULEDIR),input)
+#if !defined(XF86DriverSDK)
+CppManTarget($(DRIVER),)
+InstallModuleManPage($(DRIVER))
+#endif
+
DependTarget()
InstallDriverSDKObjectModule($(DRIVER),$(DRIVERSDKMODULEDIR),input)
diff --git a/xc/programs/Xserver/hw/xfree86/input/void/void.cpp b/xc/programs/Xserver/hw/xfree86/input/void/void.cpp
new file mode 100644
index 000000000..9a321faf9
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/void/void.cpp
@@ -0,0 +1,29 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/void/void.cpp,v 1.1 2000/03/03 01:05:50 dawes Exp $
+.TH VOID __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+void \- null input driver
+.SH SYNOPSIS
+.B "Section ""InputDevice"""
+.br
+.BI " Identifier """ idevname """"
+.br
+.B " Driver ""void"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B void
+is an dummy/null XFree86 input driver. It doesn't connect to any
+physical device, and it never delivers any events. It functions as
+both a pointer and keyboard device, and may be used as X server's core
+pointer and/or core keyboard. It's purpose is to allow the X server
+to operate without a core pointer and/or core keyboard.
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details and for options that can be used with all input drivers. This
+driver doesn't have any configuration options in addition to those.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1).
+.SH AUTHORS
+Authors include...
diff --git a/xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile b/xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile
index 17ffb40b4..571f3ba2e 100644
--- a/xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile,v 1.5 1999/08/14 10:50:04 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile,v 1.6 2000/03/03 01:05:51 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -21,6 +21,11 @@ ObjectModuleTarget($(DRIVER),$(OBJS))
InstallObjectModule($(DRIVER),$(MODULEDIR),input)
+#if !defined(XF86DriverSDK)
+CppManTarget($(DRIVER),)
+InstallModuleManPage($(DRIVER))
+#endif
+
DependTarget()
InstallDriverSDKObjectModule($(DRIVER),$(DRIVERSDKMODULEDIR),input)
diff --git a/xc/programs/Xserver/hw/xfree86/input/wacom/wacom.cpp b/xc/programs/Xserver/hw/xfree86/input/wacom/wacom.cpp
new file mode 100644
index 000000000..a346b4f7c
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/wacom/wacom.cpp
@@ -0,0 +1,37 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/wacom/wacom.cpp,v 1.1 2000/03/03 01:05:51 dawes Exp $
+.TH WACOM __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+wacom \- Wacom input driver
+.SH SYNOPSIS
+.B "Section ""InputDevice"""
+.br
+.BI " Identifier """ idevname """"
+.br
+.B " Driver ""wacom"""
+.br
+.BI " Option ""Device"" """ devpath """"
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B wacom
+is an XFree86 input driver for Wacom devices...
+.PP
+The
+.B wacom
+driver functions as a pointer input device, and may be used as the
+X server's core pointer.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+What is supported...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details and for options that can be used with all input drivers. This
+section only covers configuration details specific to this driver.
+.PP
+Config details...
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1).
+.SH AUTHORS
+Authors include...
diff --git a/xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c b/xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c
index 142dcf520..05939b214 100644
--- a/xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c
+++ b/xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c
@@ -22,7 +22,7 @@
*
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c,v 1.16 1999/12/30 03:29:22 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c,v 1.18 2000/03/03 20:36:42 dawes Exp $ */
/*
* This driver is only able to handle the Wacom IV and Wacom V protocols.
@@ -49,7 +49,7 @@
*
*/
-static const char identification[] = "$Identification: 16 $";
+static const char identification[] = "$Identification: 18 $";
#include <xf86Version.h>
@@ -235,6 +235,7 @@ typedef struct
} WacomDeviceState;
#define PEN(ds) (((ds->device_id) & 0x07ff) == 0x0022)
+#define STROKING_PEN(ds) (((ds->device_id) & 0x07ff) == 0x0032)
#define AIRBRUSH(ds) (((ds->device_id) & 0x07ff) == 0x0112)
#define MOUSE_4D(ds) (((ds->device_id) & 0x07ff) == 0x0094)
#define LENS_CURSOR(ds) (((ds->device_id) & 0x07ff) == 0x0096)
@@ -316,6 +317,12 @@ typedef struct _WacomCommonRec
#define SERIAL 14
#define BAUD_RATE 15
#define THRESHOLD 16
+#define MAX_X 17
+#define MAX_Y 18
+#define MAX_Z 19
+#define RESOLUTION_X 20
+#define RESOLUTION_Y 21
+#define RESOLUTION_Z 22
#if !defined(sun) || defined(i386)
static SymTabRec WcmTab[] = {
@@ -336,6 +343,12 @@ static SymTabRec WcmTab[] = {
{ SERIAL, "serial" },
{ BAUD_RATE, "baudrate" },
{ THRESHOLD, "threshold" },
+ { MAX_X, "maxx" },
+ { MAX_Y, "maxy" },
+ { MAX_Z, "maxz" },
+ { RESOLUTION_X, "resolutionx" },
+ { RESOLUTION_Y, "resolutiony" },
+ { RESOLUTION_Z, "resolutionz" },
{ -1, "" }
};
@@ -730,6 +743,54 @@ xf86WcmConfig(LocalDevicePtr *array,
XCONFIG_GIVEN, common->wcmThreshold);
break;
+ case MAX_X:
+ if (xf86GetToken(NULL) != NUMBER)
+ xf86ConfigError("Option number expected");
+ common->wcmMaxX = val->num;
+ if (xf86Verbose)
+ ErrorF("%s Wacom max x = %d\n", XCONFIG_GIVEN, common->wcmMaxX);
+ break;
+
+ case MAX_Y:
+ if (xf86GetToken(NULL) != NUMBER)
+ xf86ConfigError("Option number expected");
+ common->wcmMaxY = val->num;
+ if (xf86Verbose)
+ ErrorF("%s Wacom max y = %d\n", XCONFIG_GIVEN, common->wcmMaxY);
+ break;
+
+ case MAX_Z:
+ if (xf86GetToken(NULL) != NUMBER)
+ xf86ConfigError("Option number expected");
+ common->wcmMaxZ = val->num;
+ if (xf86Verbose)
+ ErrorF("%s Wacom max y = %d\n", XCONFIG_GIVEN, common->wcmMaxZ);
+ break;
+
+ case RESOLUTION_X:
+ if (xf86GetToken(NULL) != NUMBER)
+ xf86ConfigError("Option number expected");
+ common->wcmResolX = val->num;
+ if (xf86Verbose)
+ ErrorF("%s Wacom resolution x = %d\n", XCONFIG_GIVEN, common->wcmResolX);
+ break;
+
+ case RESOLUTION_Y:
+ if (xf86GetToken(NULL) != NUMBER)
+ xf86ConfigError("Option number expected");
+ common->wcmResolY = val->num;
+ if (xf86Verbose)
+ ErrorF("%s Wacom resolution y = %d\n", XCONFIG_GIVEN, common->wcmResolY);
+ break;
+
+ case RESOLUTION_Z:
+ if (xf86GetToken(NULL) != NUMBER)
+ xf86ConfigError("Option number expected");
+ common->wcmResolZ = val->num;
+ if (xf86Verbose)
+ ErrorF("%s Wacom resolution y = %d\n", XCONFIG_GIVEN, common->wcmResolZ);
+ break;
+
case EOF:
FatalError("Unexpected EOF (missing EndSubSection)");
break;
@@ -893,7 +954,6 @@ static int
flush_input_fd(int fd)
{
int err;
- int n_bytes;
fd_set readfds;
struct timeval timeout;
char dummy[1];
@@ -1848,7 +1908,7 @@ xf86WcmReadInput(LocalDevicePtr local)
if ((ds->device_id & 0xf06) != 0x802)
ds->discard_first = 1;
- if (PEN(ds) || INKING_PEN(ds) || AIRBRUSH(ds))
+ if (PEN(ds) || STROKING_PEN(ds) || INKING_PEN(ds) || AIRBRUSH(ds))
ds->device_type = STYLUS_ID;
else if (MOUSE_4D(ds) || LENS_CURSOR(ds))
ds->device_type = CURSOR_ID;
@@ -2027,7 +2087,6 @@ static Bool
xf86WcmOpen(LocalDevicePtr local)
{
#ifndef XFREE86_V4
- struct termios termios_tty;
struct timeval timeout;
#endif
char buffer[256];
@@ -2185,30 +2244,39 @@ xf86WcmOpen(LocalDevicePtr local)
common->wcmResolY = 1000;
is_a_penpartner = 1;
}
- else if (common->wcmProtocolLevel == 4) {
+ else if (common->wcmProtocolLevel == 4 && !(common->wcmResolX && common->wcmResolY)) {
DBG(2, ErrorF("reading config\n"));
- if (!send_request(local->fd, WC_CONFIG, buffer))
- return !Success;
- DBG(2, ErrorF("%s\n", buffer));
- /* The header string is simply a place to put the unwanted
- * config header don't use buffer+xx because the header size
- * varies on different tablets
- */
- if (sscanf(buffer, "%[^,],%d,%d,%d,%d", &header, &a, &b, &common->wcmResolX, &common->wcmResolY) == 5) {
- DBG(6, ErrorF("WC_CONFIG Header = %s\n", header));
+ if (send_request(local->fd, WC_CONFIG, buffer)) {
+ DBG(2, ErrorF("%s\n", buffer));
+ /* The header string is simply a place to put the unwanted
+ * config header don't use buffer+xx because the header size
+ * varies on different tablets
+ */
+ if (sscanf(buffer, "%[^,],%d,%d,%d,%d", header, &a, &b, &common->wcmResolX, &common->wcmResolY) == 5) {
+ DBG(6, ErrorF("WC_CONFIG Header = %s\n", header));
+ }
+ else {
+ ErrorF("WACOM: unable to parse resolution. Using default.\n");
+ common->wcmResolX = common->wcmResolY = 1270;
+ }
}
else {
ErrorF("WACOM: unable to read resolution. Using default.\n");
+ common->wcmResolX = common->wcmResolY = 1270;
}
+
}
- if (!(common->wcmFlags & GRAPHIRE_FLAG)) {
+ if (!(common->wcmFlags & GRAPHIRE_FLAG) && !(common->wcmMaxX && common->wcmMaxY)) {
DBG(2, ErrorF("reading max coordinates\n"));
- if (!send_request(local->fd, WC_COORD, buffer))
+ if (!send_request(local->fd, WC_COORD, buffer)) {
+ ErrorF("WACOM: unable to read max coordinates. Use the MaxX and MaxY options.\n");
return !Success;
+ }
DBG(2, ErrorF("%s\n", buffer));
if (sscanf(buffer+2, "%d,%d", &common->wcmMaxX, &common->wcmMaxY) != 2) {
- ErrorF("WACOM: unable to read max coordinates. Using default.\n");
+ ErrorF("WACOM: unable to parse max coordinates. Use the MaxX and MaxY options.\n");
+ return !Success;
}
}
@@ -2218,31 +2286,36 @@ xf86WcmOpen(LocalDevicePtr local)
/* We can't change the resolution on PenPartner and Graphire models */
if (!is_a_penpartner && common->wcmProtocolLevel == 4) {
+ int resolX = common->wcmResolX, resolY = common->wcmResolY;
+
/* Force the resolution.
*/
if (((float)version) >= 1.2) {
- common->wcmResolY = common->wcmResolX = 2540;
+ resolX = resolY = 2540;
}
- sprintf(buffer, "%s%d\r", WC_NEW_RESOLUTION, common->wcmResolX);
+ sprintf(buffer, "%s%d\r", WC_NEW_RESOLUTION, resolX);
SYSCALL(err = write(local->fd, buffer, strlen(buffer)));
/* Verify the resolution change.
*/
DBG(2, ErrorF("rereading config\n"));
- if (!send_request(local->fd, WC_CONFIG, buffer))
- return !Success;
- DBG(2, ErrorF("%s\n", buffer));
- /* The header string is simply a place to put the unwanted
- * config header don't use buffer+xx because the header size
- * varies on different tablets
- */
- if (sscanf(buffer, "%[^,],%d,%d,%d,%d", &header, &a, &b, &common->wcmResolX, &common->wcmResolY) == 5) {
- DBG(6, ErrorF("WC_CONFIG Header = %s\n", header));
+ if (send_request(local->fd, WC_CONFIG, buffer)) {
+ DBG(2, ErrorF("%s\n", buffer));
+ /* The header string is simply a place to put the unwanted
+ * config header don't use buffer+xx because the header size
+ * varies on different tablets
+ */
+ if (sscanf(buffer, "%[^,],%d,%d,%d,%d", header, &a, &b, &common->wcmResolX, &common->wcmResolY) == 5) {
+ DBG(6, ErrorF("WC_CONFIG Header = %s\n", header));
+ }
+ else {
+ ErrorF("WACOM: unable to reparse resolution. Using previous values.\n");
+ }
}
else {
- ErrorF("WACOM: unable to reread resolution. Using default.\n");
+ ErrorF("WACOM: unable to reread resolution. Using previous values.\n");
}
-
+
/* The following couple of lines convert the MaxX and MaxY returned by
* the Wacom from 1270lpi to the Wacom's active resolution.
*/
@@ -2852,11 +2925,11 @@ xf86WcmAllocate(char * name,
common->wcmNumDevices = 1; /* number of devices */
common->wcmIndex = 0; /* number of bytes read */
common->wcmPktLength = 7; /* length of a packet */
- common->wcmMaxX = 22860; /* max X value */
- common->wcmMaxY = 15240; /* max Y value */
+ common->wcmMaxX = 0; /* max X value */
+ common->wcmMaxY = 0; /* max Y value */
common->wcmMaxZ = 240; /* max Z value */
- common->wcmResolX = 1270; /* X resolution in points/inch */
- common->wcmResolY = 1270; /* Y resolution in points/inch */
+ common->wcmResolX = 0; /* X resolution in points/inch */
+ common->wcmResolY = 0; /* Y resolution in points/inch */
common->wcmResolZ = 1270; /* Z resolution in points/inch */
common->wcmHasEraser = (flag & ERASER_ID) ? TRUE : FALSE; /* True if an eraser has been configured */
common->wcmStylusSide = TRUE; /* eraser or stylus ? */
@@ -3170,6 +3243,36 @@ xf86WcmInit(InputDriverPtr drv,
xf86Msg(X_CONFIG, "%s: threshold = %d\n", dev->identifier,
common->wcmThreshold);
}
+ common->wcmMaxX = xf86SetIntOption(local->options, "MaxX", 0);
+ if (common->wcmMaxX != 0) {
+ xf86Msg(X_CONFIG, "%s: max x = %d\n", dev->identifier,
+ common->wcmMaxX);
+ }
+ common->wcmMaxY = xf86SetIntOption(local->options, "MaxY", 0);
+ if (common->wcmMaxY != 0) {
+ xf86Msg(X_CONFIG, "%s: max x = %d\n", dev->identifier,
+ common->wcmMaxY);
+ }
+ common->wcmMaxZ = xf86SetIntOption(local->options, "MaxZ", 0);
+ if (common->wcmMaxZ != 0) {
+ xf86Msg(X_CONFIG, "%s: max x = %d\n", dev->identifier,
+ common->wcmMaxZ);
+ }
+ common->wcmResolX = xf86SetIntOption(local->options, "ResolutionX", 0);
+ if (common->wcmResolX != 0) {
+ xf86Msg(X_CONFIG, "%s: resol x = %d\n", dev->identifier,
+ common->wcmResolX);
+ }
+ common->wcmResolY = xf86SetIntOption(local->options, "ResolutionY", 0);
+ if (common->wcmResolY != 0) {
+ xf86Msg(X_CONFIG, "%s: resol x = %d\n", dev->identifier,
+ common->wcmResolY);
+ }
+ common->wcmResolZ = xf86SetIntOption(local->options, "ResolutionZ", 0);
+ if (common->wcmResolZ != 0) {
+ xf86Msg(X_CONFIG, "%s: resol x = %d\n", dev->identifier,
+ common->wcmResolZ);
+ }
{
int val;
diff --git a/xc/programs/Xserver/hw/xfree86/int10/Imakefile b/xc/programs/Xserver/hw/xfree86/int10/Imakefile
index b68bd7d53..dab002c0b 100644
--- a/xc/programs/Xserver/hw/xfree86/int10/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/int10/Imakefile
@@ -1,11 +1,11 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/int10/Imakefile,v 1.5 2000/02/17 14:00:32 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/int10/Imakefile,v 1.6 2000/02/29 03:09:24 dawes Exp $
/* An OS-independent INT10 module/library */
#define IHaveModules
#include <Server.tmpl>
-#if !UseX86Emu
+#if !UseX86Emu || (XF86INT10_BUILD == X86INT10_STUB)
SRCS = xf86int10module.c stub.c
OBJS = xf86int10module.c stub.o
diff --git a/xc/programs/Xserver/hw/xfree86/loader/Imakefile b/xc/programs/Xserver/hw/xfree86/loader/Imakefile
index ba39b07de..2504f5378 100644
--- a/xc/programs/Xserver/hw/xfree86/loader/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/loader/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/loader/Imakefile,v 1.21 2000/02/13 06:15:40 dawes Exp $ */
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/loader/Imakefile,v 1.22 2000/02/23 19:21:16 alanh Exp $ */
@@ -30,11 +30,12 @@ DEFINES = $(DBMALLOCDEFINE) $(DLOPENDEFINES) $(OSDEFINES)
MODULEDEFINES = -DDEFAULT_MODULE_PATH=\"$(MODULEDIR)\"
- INCLUDES = -I. -I.. -I$(XF86COMSRC) -I$(XF86OSSRC) \
- -I$(SERVERSRC)/dbe -I$(SERVERSRC)/Xext \
+ INCLUDES = -I. -I.. -I$(XF86COMSRC) -I$(XF86OSSRC) -I$(XF86OSSRC)/vbe \
+ -I$(SERVERSRC)/dbe -I$(SERVERSRC)/Xext -I$(XF86SRC)/int10 \
-I$(SERVERSRC)/mfb -I$(SERVERSRC)/mi -I$(SERVERSRC)/include \
-I$(SERVERSRC)/os -I$(XINCLUDESRC) -I$(FONTINCSRC) \
- -I$(FONTLIBSRC)/include -I$(FONTLIBSRC)/fontcache -I$(EXTINCSRC)
+ -I$(FONTLIBSRC)/include -I$(FONTLIBSRC)/fontcache \
+ -I$(EXTINCSRC) -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c
#ifdef OS2Architecture
SRCS1 = os2funcs.c
diff --git a/xc/programs/Xserver/hw/xfree86/loader/dixsym.c b/xc/programs/Xserver/hw/xfree86/loader/dixsym.c
index f0f3bf4c5..05e9c4c05 100644
--- a/xc/programs/Xserver/hw/xfree86/loader/dixsym.c
+++ b/xc/programs/Xserver/hw/xfree86/loader/dixsym.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/dixsym.c,v 1.29 2000/02/02 21:24:22 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/dixsym.c,v 1.30 2000/03/05 23:47:52 dawes Exp $ */
/*
@@ -248,6 +248,7 @@ LOOKUP dixLookupTab[] = {
SYMFUNC(LocalClient)
/* util.c */
SYMFUNC(Error)
+ SYMFUNC(VErrorF)
SYMFUNC(ErrorF)
SYMFUNC(FatalError)
SYMFUNC(Xstrdup)
diff --git a/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c b/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c
index 6048f2c1c..d91457078 100644
--- a/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c
+++ b/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/xf86sym.c,v 1.131 2000/02/21 19:23:14 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/xf86sym.c,v 1.134 2000/03/01 16:01:30 tsi Exp $ */
/*
*
@@ -52,6 +52,9 @@
#include "xf86_ansic.h"
#include "xisb.h"
#include "xf86Priv.h"
+#include "vbe.h"
+
+extern xf86MonPtr ConfiguredMonitor;
/* XXX Should get all of these from elsewhere */
#if defined (PowerMAX_OS)
@@ -284,6 +287,9 @@ LOOKUP xfree86LookupTab[] = {
#ifdef async
SYMFUNC(xf86QueueAsyncEvent)
#endif
+
+ /* xf86Configure.c */
+ SYMFUNC(xf86AddDeviceToConfigure)
/* xf86Cursor.c XXX not all of these should be exported */
SYMFUNC(xf86LockZoom)
@@ -472,8 +478,9 @@ LOOKUP xfree86LookupTab[] = {
/* xf86xv.c */
SYMFUNC(xf86XVScreenInit)
- SYMFUNC(xf86XVRegisterGenericAdaptor)
+ SYMFUNC(xf86XVRegisterGenericAdaptorDriver)
SYMFUNC(xf86XVListGenericAdaptors)
+ SYMFUNC(xf86XVRegisterOffscreenImages)
/* xf86VidMode.c */
SYMFUNC(VidModeExtensionInit)
@@ -931,6 +938,9 @@ LOOKUP xfree86LookupTab[] = {
/* Globals from xf86Globals.c and xf86Priv.h */
SYMVAR(xf86ConfigDRI)
+ /* Globals from xf86Configure.c */
+ SYMVAR(ConfiguredMonitor)
+
/* Pci.c */
SYMVAR(pciNumBuses)
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/Imakefile
index a40105d49..7041d435a 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/os-support/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/Imakefile,v 3.36 2000/02/12 20:45:40 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/Imakefile,v 3.37 2000/02/22 01:02:34 mvojkovi Exp $
@@ -10,7 +10,7 @@ XCOMM $XConsortium: Imakefile /main/9 1996/10/25 15:38:46 kaleb $
#define IHaveSubdirs
-#if defined(i386Architecture) || \
+#if defined(i386Architecture) || defined(ia64Architecture) || \
(defined(LinuxArchitecture) && defined(AlphaArchitecture)) || \
(defined(FreeBSDArchitecture) && defined(AlphaArchitecture)) || \
defined(PpcArchitecture) || defined(SparcArchitecture)
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile
index 568251e87..b0ec00a5e 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile
@@ -4,7 +4,7 @@ XCOMM $XConsortium: Imakefile /main/12 1996/10/27 11:06:35 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile,v 3.39 2000/02/13 03:36:06 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile,v 3.41 2000/03/05 16:59:16 dawes Exp $
#include <Server.tmpl>
@@ -60,13 +60,36 @@ SUBDIRS = libusb
#endif
+#if defined(NetBSDArchitecture) || defined(OpenBSDArchitecture)
+APMSRC = bsd_apm.c
+APMOBJ = bsd_apm.o
+#else
+APMSRC = pm_noop.c
+APMOBJ = pm_noop.o
+#endif
+
+#if defined(i386Architecture) || defined(ia64Architecture)
+RES_SRC=stdResource.c
+RES_OBJ=stdResource.o
+#else
+RES_SRC=bsdResource.c
+RES_OBJ=bsdResource.o
+#endif
+
+#if defined(AlphaArchitecture)
+AXP_SRC=bsd_ev56.c
+AXP_OBJ=bsd_ev56.o
+#endif
+
SRCS = bsd_init.c bsd_video.c bsd_io.c bsd_VTsw.c \
libc_wrapper.c $(IOPERM_SRC) std_kbdEv.c posix_tty.c $(MOUSESRC) \
- stdResource.c stdPci.c vidmem.c $(JOYSTICK_SRC) sigio.c pm_noop.c
+ $(RES_SRC) stdPci.c vidmem.c $(JOYSTICK_SRC) sigio.c $(APMSRC) \
+ $(AXP_SRC)
OBJS = bsd_init.o bsd_video.o bsd_io.o bsd_VTsw.o \
libc_wrapper.o $(IOPERM_OBJ) std_kbdEv.o posix_tty.o $(MOUSEOBJ) \
- stdResource.o stdPci.o vidmem.o $(JOYSTICK_OBJ) sigio.o pm_noop.o
+ $(RES_OBJ) stdPci.o vidmem.o $(JOYSTICK_OBJ) sigio.o $(APMOBJ) \
+ $(AXP_OBJ)
INCLUDES = -I$(XF86COMSRC) -I$(XF86OSSRC) -I. -I$(SERVERSRC)/include \
-I$(XINCLUDESRC) -I$(EXTINCSRC) -I$(SERVERSRC)/mi -I$(APINCLUDES) \
@@ -84,6 +107,10 @@ APINCLUDES = $(APDIR)/include
DEFINES = $(CONSDEFINES) $(APDEFINES) $(IOPERMDEFINES) $(RESDEFINES) \
$(MTRRDEFINES) $(USBMOUSEDEFINES)
+#if defined(AlphaArchitecture)
+SpecialObjectRule(bsd_ev56.o, bsd_ev56.c, -mcpu=ev56)
+#endif
+
SubdirLibraryRule($(OBJS))
NormalLibraryObjectRule()
@@ -98,6 +125,9 @@ InstallDynamicModule(bsd_jstk.o,$(MODULEDIR),input)
# endif
#endif
+#if !defined(NetBSDArchitecture) && !defined(OpenBSDArchitecture)
+LinkSourceFile(pm_noop.c,../shared)
+#endif
LinkSourceFile(ioperm_noop.c,../shared)
LinkSourceFile(std_kbdEv.c,../shared)
LinkSourceFile(posix_tty.c,../shared)
@@ -106,7 +136,6 @@ LinkSourceFile(stdResource.c,../shared)
LinkSourceFile(stdPci.c,../shared)
LinkSourceFile(vidmem.c,../shared)
LinkSourceFile(sigio.c,../shared)
-LinkSourceFile(pm_noop.c,../shared)
DependTarget()
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c
new file mode 100644
index 000000000..ee075f113
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c
@@ -0,0 +1,96 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c,v 1.1 2000/03/05 16:59:17 dawes Exp $ */
+
+/* Resource information code */
+
+#include "X.h"
+#include "xf86.h"
+#include "xf86Priv.h"
+#include "xf86Privstr.h"
+#include "xf86Pci.h"
+#include "xf86Resources.h"
+#define NEED_OS_RAC_PROTOS
+#include "xf86_OSlib.h"
+
+#ifdef __alpha__
+
+#include <sys/sysctl.h>
+
+resRange PciAvoid[] = {_PCI_AVOID_PC_STYLE, _END};
+
+resPtr
+xf86BusAccWindowsFromOS(void)
+{
+ resPtr ret = NULL;
+ resRange range;
+
+ RANGE(range,0,0xffffffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ RANGE(range,0,0xffffffff,ResExcIoBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+ return ret;
+}
+
+resPtr
+xf86PciBusAccWindowsFromOS(void)
+{
+ resPtr ret = NULL;
+ resRange range;
+
+ /*
+ * Only allow the upper half of the pci memory range to be used
+ * for allocation. The lower half includes magic regions for DMA.
+ * XXX this is not right for XP1000's and similar where we use the
+ * region 0x40000000-0xbfffffff for DMA but this only matters if
+ * the bios screws up the pci region mappings.
+ */
+ RANGE(range,0x80000000,0xffffffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ RANGE(range,0,0xffffffff,ResExcIoBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+ return ret;
+}
+
+resPtr
+xf86IsaBusAccWindowsFromOS(void)
+{
+ resPtr ret = NULL;
+ resRange range;
+
+ RANGE(range,0,0xffffffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ RANGE(range,0,0xffffffff,ResExcIoBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+ return ret;
+}
+
+resPtr
+xf86AccResFromOS(resPtr ret)
+{
+ resRange range;
+
+ /*
+ * Fallback is to claim the following areas:
+ *
+ * 0x000C0000 - 0x000EFFFF location of VGA and other extensions ROMS
+ */
+
+ RANGE(range,0xc0000,0xeffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ /* Fallback is to claim well known ports in the 0x0 - 0x3ff range */
+ /* Possibly should claim some of them as sparse ranges */
+
+ RANGE(range,0,0x1ff,ResExcIoBlock | ResEstimated);
+ ret = xf86AddResToList(ret, &range, -1);
+ /* XXX add others */
+ return ret;
+}
+
+#else
+
+#error : Put your platform dependent code here!!
+
+#endif
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_apm.c b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_apm.c
new file mode 100644
index 000000000..250e5cb55
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_apm.c
@@ -0,0 +1,137 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_apm.c,v 1.1 2000/02/29 03:09:25 dawes Exp $ */
+
+#include "X.h"
+#include "os.h"
+#include "xf86.h"
+#include "xf86Priv.h"
+#define XF86_OS_PRIVS
+#include "xf86_OSproc.h"
+#include "xf86_OSlib.h"
+
+#include <machine/apmvar.h>
+
+#define APM_DEVICE "/dev/apm"
+
+static pointer APMihPtr = NULL;
+static void bsdCloseAPM(void);
+
+static struct {
+ u_int apmBsd;
+ pmEvent xf86;
+} bsdToXF86Array [] = {
+ { APM_STANDBY_REQ, XF86_APM_SYS_STANDBY },
+ { APM_SUSPEND_REQ, XF86_APM_SYS_SUSPEND },
+ { APM_NORMAL_RESUME, XF86_APM_NORMAL_RESUME },
+ { APM_CRIT_RESUME, XF86_APM_CRITICAL_RESUME },
+ { APM_BATTERY_LOW, XF86_APM_LOW_BATTERY },
+ { APM_POWER_CHANGE, XF86_APM_POWER_STATUS_CHANGE },
+ { APM_UPDATE_TIME, XF86_APM_UPDATE_TIME },
+ { APM_CRIT_SUSPEND_REQ, XF86_APM_CRITICAL_SUSPEND },
+ { APM_USER_STANDBY_REQ, XF86_APM_USER_STANDBY },
+ { APM_USER_SUSPEND_REQ, XF86_APM_USER_SUSPEND },
+ { APM_SYS_STANDBY_RESUME, XF86_APM_STANDBY_RESUME },
+#ifdef APM_CAPABILITY_CHANGE
+ { APM_CAPABILITY_CHANGE, XF86_APM_CAPABILITY_CHANGED },
+#endif
+};
+
+#define numApmEvents (sizeof(bsdToXF86Array) / sizeof(bsdToXF86Array[0]))
+
+static pmEvent
+bsdToXF86(int type)
+{
+ int i;
+
+ for (i = 0; i < numApmEvents; i++) {
+ if (type == bsdToXF86Array[i].apmBsd) {
+ return bsdToXF86Array[i].xf86;
+ }
+ }
+ return XF86_APM_UNKNOWN;
+}
+
+/*
+ * APM events can be requested direclty from /dev/apm
+ */
+static int
+bsdPMGetEventFromOS(int fd, pmEvent *events, int num)
+{
+ struct apm_event_info bsdEvent;
+ int i;
+
+ for (i = 0; i < num; i++) {
+
+ if (ioctl(fd, APM_IOC_NEXTEVENT, &bsdEvent) < 0) {
+ if (errno != EAGAIN) {
+ xf86Msg(X_WARNING, "bsdPMGetEventFromOS: APM_IOC_NEXTEVENT"
+ " errno = %d\n", errno);
+ }
+ break;
+ }
+ events[i] = bsdToXF86(bsdEvent.type);
+ }
+ return i;
+}
+
+/*
+ * XXX This won't work on /dev/apm !
+ * We should either use /dev/apm_ctl (and kill apmd(8))
+ * or talk to apmd (but its protocol is not publically available)...
+ */
+static pmWait
+bsdPMConfirmEventToOs(int fd, pmEvent event)
+{
+ switch (event) {
+ case XF86_APM_SYS_STANDBY:
+ case XF86_APM_USER_STANDBY:
+ if (ioctl( fd, APM_IOC_STANDBY, NULL ) == 0)
+ return PM_WAIT; /* should we stop the Xserver in standby, too? */
+ else
+ return PM_NONE;
+ case XF86_APM_SYS_SUSPEND:
+ case XF86_APM_CRITICAL_SUSPEND:
+ case XF86_APM_USER_SUSPEND:
+ if (ioctl( fd, APM_IOC_SUSPEND, NULL ) == 0)
+ return PM_WAIT;
+ else
+ return PM_NONE;
+ case XF86_APM_STANDBY_RESUME:
+ case XF86_APM_NORMAL_RESUME:
+ case XF86_APM_CRITICAL_RESUME:
+ case XF86_APM_STANDBY_FAILED:
+ case XF86_APM_SUSPEND_FAILED:
+ return PM_CONTINUE;
+ default:
+ return PM_NONE;
+ }
+}
+
+PMClose
+xf86OSPMOpen(void)
+{
+ int fd;
+
+ if (APMihPtr || !xf86Info.pmFlag) {
+ return NULL;
+ }
+
+ if ((fd = open(APM_DEVICE, O_RDWR)) == -1) {
+ return NULL;
+ }
+ xf86PMGetEventFromOs = bsdPMGetEventFromOS;
+ xf86PMConfirmEventToOs = bsdPMConfirmEventToOs;
+ APMihPtr = xf86AddInputHandler(fd, xf86HandlePMEvents, NULL);
+ return bsdCloseAPM;
+}
+
+static void
+bsdCloseAPM(void)
+{
+ int fd;
+
+ if (APMihPtr) {
+ fd = xf86RemoveInputHandler(APMihPtr);
+ close(fd);
+ APMihPtr = NULL;
+ }
+}
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_ev56.c b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_ev56.c
new file mode 100644
index 000000000..81af01648
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_ev56.c
@@ -0,0 +1,84 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_ev56.c,v 1.1 2000/03/05 16:59:17 dawes Exp $ */
+
+#include "X.h"
+#include "input.h"
+#include "scrnintstr.h"
+#include "compiler.h"
+
+#include "xf86.h"
+#include "xf86Priv.h"
+#include "xf86_OSlib.h"
+#include "xf86OSpriv.h"
+
+int readDense8(pointer Base, register unsigned long Offset);
+int readDense16(pointer Base, register unsigned long Offset);
+int readDense32(pointer Base, register unsigned long Offset);
+void
+writeDenseNB8(int Value, pointer Base, register unsigned long Offset);
+void
+writeDenseNB16(int Value, pointer Base, register unsigned long Offset);
+void
+writeDenseNB32(int Value, pointer Base, register unsigned long Offset);
+void
+writeDense8(int Value, pointer Base, register unsigned long Offset);
+void
+writeDense16(int Value, pointer Base, register unsigned long Offset);
+void
+writeDense32(int Value, pointer Base, register unsigned long Offset);
+
+int
+readDense8(pointer Base, register unsigned long Offset)
+{
+ return *(volatile CARD8*) ((unsigned long)Base+(Offset));
+}
+
+int
+readDense16(pointer Base, register unsigned long Offset)
+{
+ return *(volatile CARD16*) ((unsigned long)Base+(Offset));
+}
+
+int
+readDense32(pointer Base, register unsigned long Offset)
+{
+ return *(volatile CARD32*)((unsigned long)Base+(Offset));
+}
+
+void
+writeDenseNB8(int Value, pointer Base, register unsigned long Offset)
+{
+ *(volatile CARD8*)((unsigned long)Base+(Offset)) = Value;
+}
+
+void
+writeDenseNB16(int Value, pointer Base, register unsigned long Offset)
+{
+ *(volatile CARD16*)((unsigned long)Base + (Offset)) = Value;
+}
+
+void
+writeDenseNB32(int Value, pointer Base, register unsigned long Offset)
+{
+ *(volatile CARD32*)((unsigned long)Base+(Offset)) = Value;
+}
+
+void
+writeDense8(int Value, pointer Base, register unsigned long Offset)
+{
+ *(volatile CARD8 *)((unsigned long)Base+(Offset)) = Value;
+ mem_barrier();
+}
+
+void
+writeDense16(int Value, pointer Base, register unsigned long Offset)
+{
+ *(volatile CARD16 *)((unsigned long)Base+(Offset)) = Value;
+ mem_barrier();
+}
+
+void
+writeDense32(int Value, pointer Base, register unsigned long Offset)
+{
+ *(volatile CARD32 *)((unsigned long)Base+(Offset)) = Value;
+ mem_barrier();
+}
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c
index 76034f313..fb251f19c 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c,v 3.33 2000/02/12 20:45:41 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c,v 3.34 2000/03/05 16:59:17 dawes Exp $ */
/*
* Copyright 1992 by Rich Murphey <Rich@Rice.edu>
* Copyright 1993 by David Wexelblat <dwex@goblin.org>
@@ -74,6 +74,10 @@
#define X_MTRR_ID "XFree86"
#endif
+#ifdef __alpha__
+#include <sys/sysctl.h>
+#endif
+
#ifdef __arm32__
#include "machine/devmap.h"
struct memAccess
@@ -110,10 +114,45 @@ struct memAccess ioMemInfo = { CONSOLE_GET_IO_INFO, NULL, NULL,
#endif
#ifdef __alpha__
-extern u_int64_t dense_base(void);
+
+extern unsigned long dense_base(void);
+
+static unsigned long
+memory_base(void)
+{
+ static unsigned long base = 0;
+
+ if (base == 0) {
+ size_t len = sizeof(base);
+ int error;
+ if ((error = sysctlbyname("hw.chipset.memory", &base, &len,
+ 0, 0)) < 0)
+ FatalError("xf86MapVidMem: can't find memory\n");
+ }
+
+ return base;
+}
+
+static int
+has_bwx(void)
+{
+ static int bwx = 0;
+ size_t len = sizeof(bwx);
+ int error;
+ if ((error = sysctlbyname("hw.chipset.bwx", &bwx, &len, 0, 0)) < 0)
+ return FALSE;
+ else
+ return bwx;
+}
+
#define BUS_BASE dense_base()
+#define BUS_BASE_BWX memory_base()
+
#else
+
#define BUS_BASE 0L
+#define BUS_BASE_BWX 0L
+
#endif
/***************************************************************************/
@@ -229,23 +268,29 @@ checkDevMem(Bool warn)
#endif
}
-
void
xf86OSInitVidMem(VidMemInfoPtr pVidMem)
{
checkDevMem(TRUE);
pVidMem->linearSupported = useDevMem;
-#ifndef __arm32__
- pVidMem->mapMem = mapVidMem;
- pVidMem->unmapMem = unmapVidMem;
-#else
+#if defined(__alpha__)
+ if (has_bwx()) {
+ xf86Msg(X_INFO,"Machine type has 8/16 bit access\n");
+ pVidMem->mapMem = mapVidMem;
+ pVidMem->unmapMem = unmapVidMem;
+ } else {
+ xf86Msg(X_INFO,"Machine needs sparse mapping\n");
+ pVidMem->mapMem = mapVidMemSparse;
+ pVidMem->unmapMem = unmapVidMemSparse;
+ }
+#elif defined(__arm32__)
pVidMem->mapMem = armMapVidMem;
pVidMem->unmapVidMem = armUnmapVidMem;
+#else
+ pVidMem->mapMem = mapVidMem;
+ pVidMem->unmapMem = unmapVidMem;
#endif
-#ifdef __alpha__
- pVidMem->mapMemSparse = mapVidMemSparse;
- pVidMem->unmapMemSparse = unmapVidMemSparse;
-#endif
+
#ifdef HAS_MTRR_SUPPORT
if (useDevMem) {
if (cleanMTRR()) {
@@ -276,7 +321,7 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size)
DEV_MEM, strerror(errno));
}
base = mmap((caddr_t)0, Size, PROT_READ|PROT_WRITE,
- MAP_FLAGS, devMemFd, (off_t)Base + BUS_BASE);
+ MAP_FLAGS, devMemFd, (off_t)Base + BUS_BASE_BWX);
if (base == MAP_FAILED)
{
FatalError("%s: could not mmap %s [s=%x,a=%x] (%s)\n",
@@ -1249,101 +1294,260 @@ undoWC(int screenNum, pointer list)
#if defined(__FreeBSD__) && defined(__alpha__)
-extern void *map_memory(u_int32_t address, u_int32_t size);
-extern void unmap_memory(void *handle, u_int32_t size);
-extern u_int8_t readb(void *handle, u_int32_t offset);
-extern u_int16_t readw(void *handle, u_int32_t offset);
-extern u_int32_t readl(void *handle, u_int32_t offset);
-extern void writeb(void *handle, u_int32_t offset, u_int8_t val);
-extern void writew(void *handle, u_int32_t offset, u_int16_t val);
-extern void writel(void *handle, u_int32_t offset, u_int32_t val);
-extern void writeb_nb(void *handle, u_int32_t offset, u_int8_t val);
-extern void writew_nb(void *handle, u_int32_t offset, u_int16_t val);
-extern void writel_nb(void *handle, u_int32_t offset, u_int32_t val);
+#define vuip volatile unsigned int *
+
+static unsigned long msb_set = 0;
+static pointer memSBase = 0;
+static pointer memBase = 0;
+
+extern int readDense8(pointer Base, register unsigned long Offset);
+extern int readDense16(pointer Base, register unsigned long Offset);
+extern int readDense32(pointer Base, register unsigned long Offset);
+extern void
+writeDenseNB8(int Value, pointer Base, register unsigned long Offset);
+extern void
+writeDenseNB16(int Value, pointer Base, register unsigned long Offset);
+extern void
+writeDenseNB32(int Value, pointer Base, register unsigned long Offset);
+extern void
+writeDense8(int Value, pointer Base, register unsigned long Offset);
+extern void
+writeDense16(int Value, pointer Base, register unsigned long Offset);
+extern void
+writeDense32(int Value, pointer Base, register unsigned long Offset);
+
+static int readSparse8(pointer Base, register unsigned long Offset);
+static int readSparse16(pointer Base, register unsigned long Offset);
+static int readSparse32(pointer Base, register unsigned long Offset);
+static void
+writeSparseNB8(int Value, pointer Base, register unsigned long Offset);
+static void
+writeSparseNB16(int Value, pointer Base, register unsigned long Offset);
+static void
+writeSparseNB32(int Value, pointer Base, register unsigned long Offset);
+static void
+writeSparse8(int Value, pointer Base, register unsigned long Offset);
+static void
+writeSparse16(int Value, pointer Base, register unsigned long Offset);
+static void
+writeSparse32(int Value, pointer Base, register unsigned long Offset);
+
+#include <machine/sysarch.h>
+
+extern int sysarch(int, char *);
+
+struct parms {
+ u_int64_t hae;
+};
+
+static int
+sethae(u_int64_t hae)
+{
+ struct parms p;
+ p.hae = hae;
+ return (sysarch(ALPHA_SETHAE, (char *)&p));
+}
static pointer
mapVidMemSparse(int ScreenNum, unsigned long Base, unsigned long Size)
{
- return (pointer) map_memory((u_int32_t) (u_int64_t) Base, Size);
+ static Bool was_here = FALSE;
+
+ if (!was_here) {
+ was_here = TRUE;
+
+ checkDevMem(FALSE);
+
+ xf86WriteMmio8 = writeSparse8;
+ xf86WriteMmio16 = writeSparse16;
+ xf86WriteMmio32 = writeSparse32;
+ xf86WriteMmioNB8 = writeSparseNB8;
+ xf86WriteMmioNB16 = writeSparseNB16;
+ xf86WriteMmioNB32 = writeSparseNB32;
+ xf86ReadMmio8 = readSparse8;
+ xf86ReadMmio16 = readSparse16;
+ xf86ReadMmio32 = readSparse32;
+
+ memBase = mmap((caddr_t)0, 0x100000000,
+ PROT_READ | PROT_WRITE,
+ MAP_SHARED, devMemFd,
+ (off_t) dense_base());
+ memSBase = mmap((caddr_t)0, 0x100000000,
+ PROT_READ | PROT_WRITE,
+ MAP_SHARED, devMemFd,
+ (off_t) memory_base());
+
+ if (memSBase == MAP_FAILED || memBase == MAP_FAILED) {
+ FatalError("xf86MapVidMem: Could not mmap framebuffer (%s)\n",
+ strerror(errno));
+ }
+ }
+ return (pointer)((unsigned long)memBase + Base);
}
static void
unmapVidMemSparse(int ScreenNum, pointer Base, unsigned long Size)
{
- unmap_memory(Base, Size);
}
static int
-readMmio8(pointer Base, unsigned long Offset)
+readSparse8(pointer Base, register unsigned long Offset)
{
- return readb(Base, Offset);
+ register unsigned long result, shift;
+ register unsigned long msb;
+
+ Offset += (unsigned long)Base - (unsigned long)memBase;
+ shift = (Offset & 0x3) << 3;
+ if (Offset >= (1UL << 24)) {
+ msb = Offset & 0xf8000000UL;
+ Offset -= msb;
+ if (msb_set != msb) {
+ sethae(msb);
+ msb_set = msb;
+ }
+ }
+
+ result = *(vuip) ((unsigned long)memSBase + (Offset << 5));
+ result >>= shift;
+ return 0xffUL & result;
}
static int
-readMmio16(pointer Base, unsigned long Offset)
+readSparse16(pointer Base, register unsigned long Offset)
{
- return readw(Base, Offset);
+ register unsigned long result, shift;
+ register unsigned long msb;
+
+ Offset += (unsigned long)Base - (unsigned long)memBase;
+ shift = (Offset & 0x2) << 3;
+ if (Offset >= (1UL << 24)) {
+ msb = Offset & 0xf8000000UL;
+ Offset -= msb;
+ if (msb_set != msb) {
+ sethae(msb);
+ msb_set = msb;
+ }
+ }
+ result = *(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2)));
+ result >>= shift;
+ return 0xffffUL & result;
}
static int
-readMmio32(pointer Base, unsigned long Offset)
+readSparse32(pointer Base, register unsigned long Offset)
{
- return readl(Base, Offset);
+ return *(vuip)((unsigned long)Base+(Offset));
}
static void
-writeMmio8(int Value, pointer Base, unsigned long Offset)
+writeSparse8(int Value, pointer Base, register unsigned long Offset)
{
- writeb(Base, Offset, Value);
+ register unsigned long msb;
+ register unsigned int b = Value & 0xffU;
+
+ Offset += (unsigned long)Base - (unsigned long)memBase;
+ if (Offset >= (1UL << 24)) {
+ msb = Offset & 0xf8000000;
+ Offset -= msb;
+ if (msb_set != msb) {
+ sethae(msb);
+ msb_set = msb;
+ }
+ }
+ *(vuip) ((unsigned long)memSBase + (Offset << 5)) = b * 0x01010101;
+ mem_barrier();
}
static void
-writeMmio16(int Value, pointer Base, unsigned long Offset)
+writeSparse16(int Value, pointer Base, register unsigned long Offset)
{
- writew(Base, Offset, Value);
+ register unsigned long msb;
+ register unsigned int w = Value & 0xffffU;
+
+ Offset += (unsigned long)Base - (unsigned long)memBase;
+ if (Offset >= (1UL << 24)) {
+ msb = Offset & 0xf8000000;
+ Offset -= msb;
+ if (msb_set != msb) {
+ sethae(msb);
+ msb_set = msb;
+ }
+ }
+ *(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2))) =
+ w * 0x00010001;
+ mem_barrier();
+
}
static void
-writeMmio32(int Value, pointer Base, unsigned long Offset)
+writeSparse32(int Value, pointer Base, register unsigned long Offset)
{
- writel(Base, Offset, Value);
+ *(vuip)((unsigned long)Base + (Offset)) = Value;
+ mem_barrier();
+ return;
}
static void
-writeMmioNB8(int Value, pointer Base, unsigned long Offset)
+writeSparseNB8(int Value, pointer Base, register unsigned long Offset)
{
- writeb_nb(Base, Offset, Value);
+ register unsigned long msb;
+ register unsigned int b = Value & 0xffU;
+
+ Offset += (unsigned long)Base - (unsigned long)memBase;
+ if (Offset >= (1UL << 24)) {
+ msb = Offset & 0xf8000000;
+ Offset -= msb;
+ if (msb_set != msb) {
+ sethae(msb);
+ msb_set = msb;
+ }
+ }
+ *(vuip) ((unsigned long)memSBase + (Offset << 5)) = b * 0x01010101;
}
static void
-writeMmioNB16(int Value, pointer Base, unsigned long Offset)
+writeSparseNB16(int Value, pointer Base, register unsigned long Offset)
{
- writew_nb(Base, Offset, Value);
+ register unsigned long msb;
+ register unsigned int w = Value & 0xffffU;
+
+ Offset += (unsigned long)Base - (unsigned long)memBase;
+ if (Offset >= (1UL << 24)) {
+ msb = Offset & 0xf8000000;
+ Offset -= msb;
+ if (msb_set != msb) {
+ sethae(msb);
+ msb_set = msb;
+ }
+ }
+ *(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2))) =
+ w * 0x00010001;
}
static void
-writeMmioNB32(int Value, pointer Base, unsigned long Offset)
+writeSparseNB32(int Value, pointer Base, register unsigned long Offset)
{
- writel_nb(Base, Offset, Value);
+ *(vuip)((unsigned long)Base + (Offset)) = Value;
+ return;
}
void (*xf86WriteMmio8)(int Value, pointer Base, unsigned long Offset)
- = writeMmio8;
+ = writeDense8;
void (*xf86WriteMmio16)(int Value, pointer Base, unsigned long Offset)
- = writeMmio16;
+ = writeDense16;
void (*xf86WriteMmio32)(int Value, pointer Base, unsigned long Offset)
- = writeMmio32;
+ = writeDense32;
void (*xf86WriteMmioNB8)(int Value, pointer Base, unsigned long Offset)
- = writeMmioNB8;
+ = writeDenseNB8;
void (*xf86WriteMmioNB16)(int Value, pointer Base, unsigned long Offset)
- = writeMmioNB16;
+ = writeDenseNB16;
void (*xf86WriteMmioNB32)(int Value, pointer Base, unsigned long Offset)
- = writeMmioNB32;
+ = writeDenseNB32;
int (*xf86ReadMmio8)(pointer Base, unsigned long Offset)
- = readMmio8;
+ = readDense8;
int (*xf86ReadMmio16)(pointer Base, unsigned long Offset)
- = readMmio16;
+ = readDense16;
int (*xf86ReadMmio32)(pointer Base, unsigned long Offset)
- = readMmio32;
+ = readDense32;
#endif /* __FreeBSD__ && __alpha__ */
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile
index 5066d1980..6267531f7 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile
@@ -3,7 +3,7 @@ XCOMM $XConsortium: Imakefile /main/16 1996/10/27 18:07:43 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile,v 1.8 2000/02/12 20:45:42 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile,v 1.10 2000/03/07 13:59:06 dawes Exp $
#include <Server.tmpl>
@@ -42,7 +42,7 @@ XCOMM generic FreeBSD PCI driver (using /dev/pci)
PCIDRVRSRC = freebsdPci.c
PCIDRVROBJ = freebsdPci.o
-#elif defined(i386Architecture)
+#elif defined(i386Architecture) || defined(ia64Architecture)
XCOMM ix86 PCI driver
@@ -68,7 +68,7 @@ SubdirLibraryRule($(OBJS))
* egcs 1.1.2 as provided with some Linux distributions has an optimisation
* bug that results in bad code for this file.
*/
-#if defined(Egcs112Bug)
+#if Egcs112Bug
SpecialCObjectRule(Pci,NullParameter,-O0)
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile
index 3700639a7..8a9458ef2 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile
@@ -1,6 +1,5 @@
XCOMM $XConsortium: Imakefile /main/10 1996/10/19 18:06:19 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile,v 3.36 2000/02/21 18:05:48 dawes Exp $
-XCOMM $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile,v 1.9 1999/06/07 13:01:42 faith Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile,v 3.38 2000/02/23 04:47:22 martin Exp $
#include <Server.tmpl>
@@ -27,7 +26,7 @@ DRI_OBJ = sigio.o
MOUSESRC = lnx_mouse.c
MOUSEOBJ = lnx_mouse.o
-#if defined(i386Architecture)
+#if defined(i386Architecture) || defined(ia64Architecture)
RES_SRCS=stdResource.c
RES_OBJS=stdResource.o
#else
@@ -104,7 +103,7 @@ LinkSourceFile(VTsw_usl.c,../shared)
LinkSourceFile($(DRI_SRC),../shared)
-#if defined(i386Architecture)
+#if defined(i386Architecture) || defined(ia64Architecture)
LinkSourceFile(stdResource.c,../shared)
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/agpgart.h b/xc/programs/Xserver/hw/xfree86/os-support/linux/agpgart.h
new file mode 100644
index 000000000..7457cd114
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/agpgart.h
@@ -0,0 +1,224 @@
+/*
+ * AGPGART module version 0.99
+ * Copyright (C) 1999 Jeff Hartmann
+ * Copyright (C) 1999 Precision Insight, Inc.
+ * Copyright (C) 1999 Xi Graphics, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * JEFF HARTMANN, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef _AGP_H
+#define _AGP_H 1
+
+#define AGPIOC_BASE 'A'
+#define AGPIOC_INFO _IOR (AGPIOC_BASE, 0, agp_info*)
+#define AGPIOC_ACQUIRE _IO (AGPIOC_BASE, 1)
+#define AGPIOC_RELEASE _IO (AGPIOC_BASE, 2)
+#define AGPIOC_SETUP _IOW (AGPIOC_BASE, 3, agp_setup*)
+#define AGPIOC_RESERVE _IOW (AGPIOC_BASE, 4, agp_region*)
+#define AGPIOC_PROTECT _IOW (AGPIOC_BASE, 5, agp_region*)
+#define AGPIOC_ALLOCATE _IOWR(AGPIOC_BASE, 6, agp_allocate*)
+#define AGPIOC_DEALLOCATE _IOW (AGPIOC_BASE, 7, int)
+#define AGPIOC_BIND _IOW (AGPIOC_BASE, 8, agp_bind*)
+#define AGPIOC_UNBIND _IOW (AGPIOC_BASE, 9, agp_unbind*)
+
+#define AGP_DEVICE "/dev/agpgart"
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#ifndef __KERNEL__
+#include <linux/types.h>
+#include <asm/types.h>
+
+typedef struct _agp_version {
+ __u16 major;
+ __u16 minor;
+} agp_version;
+
+typedef struct _agp_info {
+ agp_version version; /* version of the driver */
+ __u32 bridge_id; /* bridge vendor/device */
+ __u32 agp_mode; /* mode info of bridge */
+ off_t aper_base; /* base of aperture */
+ size_t aper_size; /* size of aperture */
+ size_t pg_total; /* max pages (swap + system) */
+ size_t pg_system; /* max pages (system) */
+ size_t pg_used; /* current pages used */
+} agp_info;
+
+typedef struct _agp_setup {
+ __u32 agp_mode; /* mode info of bridge */
+} agp_setup;
+
+/*
+ * The "prot" down below needs still a "sleep" flag somehow ...
+ */
+typedef struct _agp_segment {
+ off_t pg_start; /* starting page to populate */
+ size_t pg_count; /* number of pages */
+ int prot; /* prot flags for mmap */
+} agp_segment;
+
+typedef struct _agp_region {
+ pid_t pid; /* pid of process */
+ size_t seg_count; /* number of segments */
+ struct _agp_segment *seg_list;
+} agp_region;
+
+typedef struct _agp_allocate {
+ int key; /* tag of allocation */
+ size_t pg_count; /* number of pages */
+ __u32 type; /* 0 == normal, other devspec */
+ __u32 physical; /* device specific (some devices
+ * need a phys address of the
+ * actual page behind the gatt
+ * table) */
+} agp_allocate;
+
+typedef struct _agp_bind {
+ int key; /* tag of allocation */
+ off_t pg_start; /* starting page to populate */
+} agp_bind;
+
+typedef struct _agp_unbind {
+ int key; /* tag of allocation */
+ __u32 priority; /* priority for paging out */
+} agp_unbind;
+
+#else /* __KERNEL__ */
+
+#define AGPGART_MINOR 175
+
+#define AGP_UNLOCK() up(&(agp_fe.agp_mutex));
+#define AGP_LOCK() down(&(agp_fe.agp_mutex));
+#define AGP_LOCK_INIT() sema_init(&(agp_fe.agp_mutex), 1)
+
+#ifndef _AGP_BACKEND_H
+typedef struct _agp_version {
+ u16 major;
+ u16 minor;
+} agp_version;
+
+#endif
+
+typedef struct _agp_info {
+ agp_version version; /* version of the driver */
+ u32 bridge_id; /* bridge vendor/device */
+ u32 agp_mode; /* mode info of bridge */
+ off_t aper_base; /* base of aperture */
+ size_t aper_size; /* size of aperture */
+ size_t pg_total; /* max pages (swap + system) */
+ size_t pg_system; /* max pages (system) */
+ size_t pg_used; /* current pages used */
+} agp_info;
+
+typedef struct _agp_setup {
+ u32 agp_mode; /* mode info of bridge */
+} agp_setup;
+
+/*
+ * The "prot" down below needs still a "sleep" flag somehow ...
+ */
+typedef struct _agp_segment {
+ off_t pg_start; /* starting page to populate */
+ size_t pg_count; /* number of pages */
+ int prot; /* prot flags for mmap */
+} agp_segment;
+
+typedef struct _agp_segment_priv {
+ off_t pg_start;
+ size_t pg_count;
+ pgprot_t prot;
+} agp_segment_priv;
+
+typedef struct _agp_region {
+ pid_t pid; /* pid of process */
+ size_t seg_count; /* number of segments */
+ struct _agp_segment *seg_list;
+} agp_region;
+
+typedef struct _agp_allocate {
+ int key; /* tag of allocation */
+ size_t pg_count; /* number of pages */
+ u32 type; /* 0 == normal, other devspec */
+ u32 physical; /* device specific (some devices
+ * need a phys address of the
+ * actual page behind the gatt
+ * table) */
+} agp_allocate;
+
+typedef struct _agp_bind {
+ int key; /* tag of allocation */
+ off_t pg_start; /* starting page to populate */
+} agp_bind;
+
+typedef struct _agp_unbind {
+ int key; /* tag of allocation */
+ u32 priority; /* priority for paging out */
+} agp_unbind;
+
+typedef struct _agp_client {
+ struct _agp_client *next;
+ struct _agp_client *prev;
+ pid_t pid;
+ int num_segments;
+ agp_segment_priv **segments;
+} agp_client;
+
+typedef struct _agp_controller {
+ struct _agp_controller *next;
+ struct _agp_controller *prev;
+ pid_t pid;
+ int num_clients;
+ agp_memory *pool;
+ agp_client *clients;
+} agp_controller;
+
+#define AGP_FF_ALLOW_CLIENT 0
+#define AGP_FF_ALLOW_CONTROLLER 1
+#define AGP_FF_IS_CLIENT 2
+#define AGP_FF_IS_CONTROLLER 3
+#define AGP_FF_IS_VALID 4
+
+typedef struct _agp_file_private {
+ struct _agp_file_private *next;
+ struct _agp_file_private *prev;
+ pid_t my_pid;
+ u32 access_flags;
+} agp_file_private;
+
+struct agp_front_data {
+ struct semaphore agp_mutex;
+ agp_controller *current_controller;
+ agp_controller *controllers;
+ agp_file_private *file_priv_list;
+ u8 used_by_controller;
+ u8 backend_acquired;
+};
+
+#endif /* __KERNEL__ */
+
+#endif /* _AGP_H */
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile
index 5399048fc..96388450b 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile
@@ -1,5 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile,v 1.4 1999/09/25 14:37:49 dawes Exp $
-XCOMM $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile,v 1.7 1999/09/14 19:55:15 faith Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile,v 1.5 2000/02/23 04:47:22 martin Exp $
#define IHaveModules
#include <Server.tmpl>
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c
index 1ddf3f4c1..cf4249f38 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c,v 1.1 1999/06/07 13:01:42 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c,v 1.1 1999/06/14 07:32:01 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c,v 1.2 2000/02/23 04:47:22 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile
index e802cf5ac..7a5fea61c 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile
@@ -1,5 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile,v 1.1 1999/09/25 14:37:56 dawes Exp $
-XCOMM $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile,v 1.8 1999/07/02 17:46:30 faith Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile,v 1.2 2000/02/23 04:47:24 martin Exp $
#include <Server.tmpl>
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux
index 0f14540d9..8a41f880b 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux
@@ -24,8 +24,7 @@
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
-# $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/generic/Makefile.linux,v 1.23 1999/07/02 17:46:30 faith Exp $
-# $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux,v 1.5 2000/02/14 06:27:25 martin Exp $
+# $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux,v 1.6 2000/02/23 04:47:25 martin Exp $
#
.SUFFIXES:
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c
index 865681956..0e3b1c565 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c,v 1.4 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c,v 1.1 1999/09/25 14:37:57 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c,v 1.2 2000/02/23 04:47:25 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c
index 289868d31..85244c7dc 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c,v 1.8 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c,v 1.4 2000/02/14 06:27:25 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c,v 1.5 2000/02/23 04:47:25 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c
index d7f8bdf2b..fdf8fd9f1 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c,v 1.5 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c,v 1.1 1999/09/25 14:37:58 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c,v 1.2 2000/02/23 04:47:26 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c
index 2efeba351..8291e52e4 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c,v 1.7 1999/09/16 16:56:18 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c,v 1.4 2000/02/14 06:27:26 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c,v 1.5 2000/02/23 04:47:26 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c
index c26953c1d..c7acecb97 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c,v 1.3 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c,v 1.1 1999/09/25 14:37:58 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c,v 1.2 2000/02/23 04:47:26 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h
index 7488a315e..7b8e88265 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.46 1999/08/20 20:00:53 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.4 2000/02/14 06:27:26 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.5 2000/02/23 04:47:26 martin Exp $
*
* Acknowledgements:
* Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h
index 25c35425a..312fba36f 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h,v 1.58 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h,v 1.5 2000/02/14 06:27:26 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h,v 1.6 2000/02/23 04:47:27 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c
index a0aac6752..8fe6f7072 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c,v 1.28 1999/08/04 18:12:11 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c,v 1.5 2000/02/14 06:27:27 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c,v 1.6 2000/02/23 04:47:27 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c
index ceef1d8ca..2a064e5df 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c,v 1.3 1999/08/20 15:36:45 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c,v 1.5 2000/02/14 06:27:27 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c,v 1.6 2000/02/23 04:47:27 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c
index 3b1592180..eec0f8592 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c,v 1.9 1999/09/16 16:56:18 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c,v 1.1 1999/09/25 14:38:00 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c,v 1.2 2000/02/23 04:47:28 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c
index 4e1e30e15..ce970835a 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c,v 1.17 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c,v 1.3 2000/01/20 07:25:35 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c,v 1.4 2000/02/23 04:47:28 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h
index 15e77dca9..d78a13eb7 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h,v 1.4 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h,v 1.1 1999/09/25 14:38:00 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h,v 1.2 2000/02/23 04:47:28 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c
index 340ba8f5a..25c0aed22 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c,v 1.3 1999/08/20 15:07:01 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c,v 1.1 1999/09/25 14:38:01 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c,v 1.2 2000/02/23 04:47:29 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c
index 886ef661c..8edfb4374 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c,v 1.3 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c,v 1.1 1999/09/25 14:38:01 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c,v 1.2 2000/02/23 04:47:29 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c
index 50655bc3c..af8f6150a 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c,v 1.3 1999/08/20 15:07:02 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c,v 1.4 2000/02/14 06:27:27 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c,v 1.6 2000/02/23 04:56:42 martin Exp $
*
*/
@@ -154,7 +153,7 @@ int drm_freelist_put(drm_device_t *dev, drm_freelist_t *bl, drm_buf_t *buf)
buf->list = DRM_LIST_FREE;
do {
old = bl->next;
- bl->next = old;
+ buf->next = old;
prev = cmpxchg(&bl->next, old, buf);
if (++count > DRM_LOOPING_LIMIT) {
DRM_ERROR("Looping\n");
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c
index ae41526f1..adf27ab5d 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c,v 1.5 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c,v 1.4 2000/02/14 06:27:27 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c,v 1.5 2000/02/23 04:47:29 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c
index 4ba911f34..a8a81abd8 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c,v 1.4 1999/08/20 20:00:53 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c,v 1.4 2000/02/14 06:27:28 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c,v 1.5 2000/02/23 04:47:30 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c
index ec0ebeeb9..54aba58c4 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c,v 1.4 1999/08/20 15:36:46 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c,v 1.5 2000/02/14 06:27:28 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c,v 1.6 2000/02/23 04:47:30 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c
index 29e75ab5e..842d6f5d5 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI$
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c,v 1.1 1999/12/14 01:49:21 robin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c,v 1.2 2000/02/23 04:47:30 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c
index 61c917eb4..57c1c719d 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI$
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c,v 1.2 2000/01/20 07:25:36 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c,v 1.3 2000/02/23 04:47:31 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h
index aad3aa191..3866010a8 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI$
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h,v 1.1 1999/12/14 01:49:22 robin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h,v 1.2 2000/02/23 04:47:31 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c
index 5c272eb6c..85470ac52 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c,v 1.7 1999/08/21 02:48:34 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c,v 1.4 2000/02/14 06:27:28 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c,v 1.5 2000/02/23 04:47:31 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c
index d0d869692..3b0f98acd 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c,v 1.43 1999/08/04 18:14:43 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c,v 1.9 2000/02/14 06:27:24 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c,v 1.10 2000/02/23 04:47:23 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c
index a3c9481b5..c08a5f4c4 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c,v 1.3 1999/06/07 13:01:42 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c,v 1.1 1999/06/14 07:32:02 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c,v 1.2 2000/02/23 04:47:23 martin Exp $
*
* DESCRIPTION
*
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c
index dad836d02..f42698c48 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c,v 1.4 1999/06/24 18:54:55 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c,v 1.2 1999/06/27 14:08:20 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c,v 1.3 2000/02/23 04:47:23 martin Exp $
*
* DESCRIPTION
*
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c
index d5dd63da8..56059384f 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c,v 1.2 1999/06/07 13:01:42 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c,v 1.1 1999/06/14 07:32:02 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c,v 1.2 2000/02/23 04:47:24 martin Exp $
*
* DESCRIPTION
*
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c
index b4a122772..3e6f39685 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c,v 1.7 2000/02/08 17:19:23 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c,v 1.8 2000/02/29 03:09:26 dawes Exp $ */
/*
* linux specific part of the int10 module
* Copyright 1999 Egbert Eich
@@ -419,9 +419,21 @@ vm86_rep(struct vm86_struct *ptr)
{
int __res;
- __asm__ __volatile__("int $0x80\n"
+#ifdef __PIC__
+ /* When compiling with -fPIC, we can't use asm constraint "b" because
+ %ebx is already taken by gcc. */
+ __asm__ __volatile__("pushl %%ebx\n\t"
+ "movl %2,%%ebx\n\t"
+ "movl %1,%%eax\n\t"
+ "int $0x80\n\t"
+ "popl %%ebx"
+ :"=a" (__res)
+ :"n" ((int)113), "r" ((struct vm86_struct *)ptr));
+#else
+ __asm__ __volatile__("int $0x80"
:"=a" (__res):"a" ((int)113),
"b" ((struct vm86_struct *)ptr));
+#endif
if ((__res) < 0) {
errno = -__res;
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c
index ff8059d8a..72ab22f8a 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c,v 3.6 2000/02/18 16:23:24 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c,v 3.7 2000/03/06 22:59:33 dawes Exp $ */
/* Resource information code */
@@ -150,6 +150,62 @@ xf86AccResFromOS(resPtr ret)
return ret;
}
+#elif defined(__powerpc__)
+
+ /* XXX this isn't exactly correct but it will get the server working
+ * for now until we get something better.
+ */
+
+resRange PciAvoid[] = {_PCI_AVOID_PC_STYLE, _END};
+
+resPtr
+xf86BusAccWindowsFromOS(void)
+{
+ resPtr ret = NULL;
+ resRange range;
+
+ RANGE(range,0,0xffffffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ RANGE(range,0,0x0000ffff,ResExcIoBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+ return ret;
+}
+
+resPtr
+xf86PciBusAccWindowsFromOS(void)
+{
+ resPtr ret = NULL;
+ resRange range;
+
+ RANGE(range,0,0xffffffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ RANGE(range,0,0x0000ffff,ResExcIoBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+ return ret;
+}
+
+resPtr
+xf86IsaBusAccWindowsFromOS(void)
+{
+ resPtr ret = NULL;
+ resRange range;
+
+ RANGE(range,0,0xffffffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ RANGE(range,0,0x0000ffff,ResExcIoBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+ return ret;
+}
+
+resPtr
+xf86AccResFromOS(resPtr ret)
+{
+ return ret;
+}
+
#else
#error : Put your platform dependent code here!!
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c
index bf553ae84..38c354ee3 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c,v 3.4 2000/02/12 23:56:20 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c,v 3.5 2000/03/01 00:25:26 dawes Exp $ */
#include "X.h"
#include "os.h"
@@ -126,7 +126,7 @@ xf86OSPMOpen(void)
if (APMihPtr || !xf86Info.pmFlag)
return NULL;
- if (access( APM_PROC, R_OK ) || (fd = open( APM_PROC, O_RDONLY) == -1))
+ if (access( APM_PROC, R_OK ) || ((fd = open( APM_PROC, O_RDONLY)) == -1))
return NULL;
close( fd );
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c
index 1ce641256..314530dc8 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c,v 3.11 2000/02/08 13:13:30 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c,v 3.12 2000/02/25 18:28:11 dawes Exp $ */
/*
* Copyright 1992 by Orest Zborowski <obz@Kodak.com>
* Copyright 1993 by David Wexelblat <dwex@goblin.org>
@@ -57,6 +57,8 @@ xf86OpenConsole(void)
struct fb_var_screeninfo var;
int fbfd;
#endif
+ char *tty0[] = { "/dev/tty0", "/dev/vc/0", NULL };
+ char *vcs[] = { "/dev/vc/%d", "/dev/tty%d", NULL };
if (serverGeneration == 1)
{
@@ -73,11 +75,17 @@ xf86OpenConsole(void)
xf86Info.vtno = VTnum;
from = X_CMDLINE;
} else {
- if ((fd = open("/dev/tty0",O_WRONLY,0)) < 0) {
+ i=0;
+ while (tty0[i] != NULL)
+ {
+ if ((fd = open(tty0[i],O_WRONLY,0)) >= 0)
+ break;
+ i++;
+ }
+ if (fd < 0)
FatalError(
"xf86OpenConsole: Cannot open /dev/tty0 (%s)\n",
strerror(errno));
- }
if ((ioctl(fd, VT_OPENQRY, &xf86Info.vtno) < 0) ||
(xf86Info.vtno == -1)) {
FatalError("xf86OpenConsole: Cannot find a free VT\n");
@@ -97,15 +105,22 @@ xf86OpenConsole(void)
#endif
xf86Msg(from, "using VT number %d\n\n", xf86Info.vtno);
- sprintf(vtname,"/dev/tty%d",xf86Info.vtno); /* /dev/tty1-64 */
-
if (!KeepTty) {
setpgrp();
}
- if ((xf86Info.consoleFd = open(vtname, O_RDWR|O_NDELAY, 0)) < 0) {
- FatalError("xf86OpenConsole: Cannot open %s (%s)\n",
- vtname, strerror(errno));
+ i=0;
+ while (vcs[i] != NULL)
+ {
+ sprintf(vtname, vcs[i], xf86Info.vtno); /* /dev/tty1-64 */
+ if ((xf86Info.consoleFd = open(vtname, O_RDWR|O_NDELAY, 0)) >= 0)
+ break;
+ i++;
+ }
+
+ if (xf86Info.consoleFd < 0) {
+ FatalError("xf86OpenConsole: Cannot open virtual console %d (%s)\n",
+ xf86Info.vtno, strerror(errno));
}
/* change ownership of the vt */
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c
index 2ee25041a..dc485367a 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c,v 3.31 2000/02/17 13:45:50 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c,v 3.32 2000/02/22 01:02:37 mvojkovi Exp $ */
/*
* Copyright 1992 by Orest Zborowski <obz@Kodak.com>
* Copyright 1993 by David Wexelblat <dwex@goblin.org>
@@ -45,6 +45,11 @@
static Bool ExtendedEnabled = FALSE;
+#ifdef __ia64__
+#include "compiler.h"
+#include <sys/io.h>
+#endif
+
#ifdef __alpha__
# ifdef LIBC_IS_FIXED
@@ -420,7 +425,11 @@ xf86DisableInterrupts()
#if defined(__alpha__) || defined(__mc68000__) || defined(__powerpc__) || defined(__sparc__)
#else
#ifdef __GNUC__
- __asm__ __volatile__("cli");
+#if defined(__ia64__)
+ __asm__ __volatile__ (";; rsm psr.i;; srlz.d" ::: "memory");
+#else
+ __asm__ __volatile__("cli");
+#endif
#else
asm("cli");
#endif
@@ -443,7 +452,11 @@ xf86EnableInterrupts()
#if defined(__alpha__) || defined(__mc68000__) || defined(__powerpc__) || defined(__sparc__)
#else
#ifdef __GNUC__
- __asm__ __volatile__("sti");
+#if defined(__ia64__)
+ __asm__ __volatile__ (";; ssm psr.i;; srlz.d" ::: "memory");
+#else
+ __asm__ __volatile__("sti");
+#endif
#else
asm("sti");
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c b/xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c
index 0fad8a3c1..5bf3628d2 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c
@@ -21,7 +21,7 @@
*
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c,v 3.14 1999/12/08 06:10:13 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c,v 3.15 2000/03/03 20:02:20 dawes Exp $ */
#include "X.h"
#include "input.h"
@@ -190,8 +190,6 @@ xf86OSInitVidMem(VidMemInfoPtr pVidMem)
pVidMem->linearSupported = TRUE;
pVidMem->mapMem = MapVidMem;
pVidMem->unmapMem = UnMapVidMem;
- pVidMem->mapMemSparse = 0;
- pVidMem->unmapMemSparse = 0;
pVidMem->setWC = 0;
pVidMem->undoWC = 0;
#ifdef HAS_MTRR_SUPPORT
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h b/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h
index 7488a315e..7b8e88265 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h
+++ b/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.46 1999/08/20 20:00:53 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.4 2000/02/14 06:27:26 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.5 2000/02/23 04:47:26 martin Exp $
*
* Acknowledgements:
* Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c b/xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c
index 0681098d0..15e7e530a 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c
@@ -1,6 +1,5 @@
/* sigio.c -- Support for SIGIO handler installation and removal
* Created: Thu Jun 3 15:39:18 1999 by faith@precisioninsight.com
- * Revised: Thu Jun 3 16:16:35 1999 by faith@precisioninsight.com
* Revised: Thu Jan 6 10:32:25 2000 by faith@precisioninsight.com
*
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
@@ -25,7 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c,v 1.8 2000/02/08 17:19:24 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c,v 1.9 2000/03/02 16:07:53 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h b/xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h
index 62b59306b..61287e3e2 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h
+++ b/xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h,v 1.44 1999/08/04 18:14:42 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h,v 1.6 2000/02/14 06:27:24 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h,v 1.7 2000/02/23 04:47:21 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/parser/DRI.c b/xc/programs/Xserver/hw/xfree86/parser/DRI.c
index 80190fcb1..e120399b9 100644
--- a/xc/programs/Xserver/hw/xfree86/parser/DRI.c
+++ b/xc/programs/Xserver/hw/xfree86/parser/DRI.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/parser/DRI.c,v 1.2 1999/06/17 21:45:25 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/parser/DRI.c,v 1.1 1999/06/27 14:08:30 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/parser/DRI.c,v 1.3 2000/03/05 17:04:19 dawes Exp $
*
*/
@@ -44,8 +43,6 @@ static xf86ConfigSymTabRec DRITab[] =
{-1, ""},
};
-#define DEBUG
-
#define CLEANUP freeBuffersList
XF86ConfBuffersPtr
diff --git a/xc/programs/Xserver/hw/xfree86/parser/Device.c b/xc/programs/Xserver/hw/xfree86/parser/Device.c
index db206652c..8d79dd78c 100644
--- a/xc/programs/Xserver/hw/xfree86/parser/Device.c
+++ b/xc/programs/Xserver/hw/xfree86/parser/Device.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Device.c,v 1.13 2000/01/30 00:55:36 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Device.c,v 1.14 2000/03/01 16:01:30 tsi Exp $ */
/*
*
* Copyright (c) 1997 Metro Link Incorporated
@@ -75,6 +75,7 @@ parseDeviceSection (void)
/* Zero is a valid value for these */
ptr->dev_chipid = -1;
ptr->dev_chiprev = -1;
+ ptr->dev_irq = -1;
while ((token = xf86GetToken (DeviceTab)) != ENDSECTION)
{
switch (token)
@@ -287,9 +288,9 @@ printDeviceSection (FILE * cf, XF86ConfDevicePtr ptr)
if (ptr->dev_clockchip)
fprintf (cf, "\tClockChip \"%s\"\n", ptr->dev_clockchip);
if (ptr->dev_chipid != -1)
- fprintf (cf, "\tChipId %d\n", ptr->dev_chipid);
+ fprintf (cf, "\tChipId 0x%x\n", ptr->dev_chipid);
if (ptr->dev_chiprev != -1)
- fprintf (cf, "\tChipRev %d\n", ptr->dev_chiprev);
+ fprintf (cf, "\tChipRev 0x%x\n", ptr->dev_chiprev);
for (optr = ptr->dev_option_lst; optr; optr = optr->list.next)
{
diff --git a/xc/programs/Xserver/hw/xfree86/parser/Imakefile b/xc/programs/Xserver/hw/xfree86/parser/Imakefile
index 7237012fa..3cef69fce 100644
--- a/xc/programs/Xserver/hw/xfree86/parser/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/parser/Imakefile
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Imakefile,v 1.10 1999/09/04 13:04:53 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Imakefile,v 1.11 2000/03/02 17:53:13 dawes Exp $ */
@@ -25,6 +25,7 @@ SYS_LIBRARIES = MathLibrary
XCONFIGFILE = XConfigFile
XCONFIGDIR = XConfigDir
+XVERS = XFree86Version
INCLUDES = -I. -I$(XF86OSSRC)
@@ -36,7 +37,9 @@ OBJS = Device.o Files.o Flags.o Input.o Keyboard.o Layout.o Module.o \
Video.o Monitor.o Pointer.o Screen.o Vendor.o read.o scan.o write.o \
DRI.o
-CONFIG_DEFINES = -DXCONFIGDIR=\"$(XCONFIGDIR)\" -DXCONFIGFILE=\"$(XCONFIGFILE)\"
+CONFIG_DEFINES = -DXCONFIGDIR=\"$(XCONFIGDIR)\" \
+ -DXCONFIGFILE=\"$(XCONFIGFILE)\" \
+ -DXVERSION=$(XVERS)
#include <Library.tmpl>
diff --git a/xc/programs/Xserver/hw/xfree86/parser/Screen.c b/xc/programs/Xserver/hw/xfree86/parser/Screen.c
index 11f08f331..ee945bd07 100644
--- a/xc/programs/Xserver/hw/xfree86/parser/Screen.c
+++ b/xc/programs/Xserver/hw/xfree86/parser/Screen.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Screen.c,v 1.10 2000/01/26 02:00:51 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Screen.c,v 1.11 2000/02/25 19:07:53 dawes Exp $ */
/*
*
* Copyright (c) 1997 Metro Link Incorporated
@@ -96,7 +96,7 @@ parseDisplaySubSection (void)
break;
case VISUAL:
if (xf86GetToken (NULL) != STRING)
- Error (NUMBER_MSG, "Display");
+ Error (QUOTE_MSG, "Display");
ptr->disp_visual = val.str;
break;
case WEIGHT:
@@ -381,7 +381,7 @@ printScreenSection (FILE * cf, XF86ConfScreenPtr ptr)
{
fprintf (cf, "\tSubSection \"Display\"\n");
if (dptr->disp_comment)
- fprintf (cf, "\t\t### %d %d\n",
+ fprintf (cf, "\t\t### %s\n",
dptr->disp_comment);
if (dptr->disp_frameX0 != 0 || dptr->disp_frameY0 != 0)
{
diff --git a/xc/programs/Xserver/hw/xfree86/parser/scan.c b/xc/programs/Xserver/hw/xfree86/parser/scan.c
index d377a72e2..8018c5fda 100644
--- a/xc/programs/Xserver/hw/xfree86/parser/scan.c
+++ b/xc/programs/Xserver/hw/xfree86/parser/scan.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/scan.c,v 1.9 2000/01/31 19:33:39 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/scan.c,v 1.10 2000/03/02 17:53:13 dawes Exp $ */
/*
*
* Copyright (c) 1997 Metro Link Incorporated
@@ -357,6 +357,7 @@ PathIsSafe(const char *path)
* %G config file environment ($XF86CONFIG) as a safe path
* %D $HOME
* %P projroot
+ * %M major version number
* %% %
*/
@@ -369,6 +370,13 @@ PathIsSafe(const char *path)
#ifndef XCONFENV
#define XCONFENV "XF86CONFIG"
#endif
+#ifndef XF86_VERSION_MAJOR
+#ifdef XVERSION
+#define XF86_VERSION_MAJOR (XVERSION / 1000)
+#else
+#define XF86_VERSION_MAJOR 4
+#endif
+#endif
#define BAIL_OUT do { \
xf86conffree(result); \
@@ -398,6 +406,7 @@ DoSubstitution(const char *template, const char *cmdline, const char *projroot,
int i, l;
static const char *env = NULL, *home = NULL;
static char *hostname = NULL;
+ static char majorvers[3] = "";
if (!template)
return NULL;
@@ -500,6 +509,16 @@ DoSubstitution(const char *template, const char *cmdline, const char *projroot,
else
BAIL_OUT;
break;
+ case 'M':
+ if (!majorvers[0]) {
+ if (XF86_VERSION_MAJOR < 0 || XF86_VERSION_MAJOR > 99) {
+ fprintf(stderr, "XF86_VERSION_MAJOR is out of range\n");
+ BAIL_OUT;
+ } else
+ sprintf(majorvers, "%d", XF86_VERSION_MAJOR);
+ }
+ APPEND_STR(majorvers);
+ break;
case '%':
result[l++] = '%';
CHECK_LENGTH;
@@ -539,11 +558,14 @@ DoSubstitution(const char *template, const char *cmdline, const char *projroot,
"%P/etc/X11/%S," \
"/etc/X11/%G," \
"%P/etc/X11/%G," \
+ "/etc/X11/%X-%M," \
"/etc/X11/%X," \
"/etc/%X," \
"%P/etc/X11/%X.%H," \
+ "%P/etc/X11/%X-%M," \
"%P/etc/X11/%X," \
"%P/lib/X11/%X.%H," \
+ "%P/lib/X11/%X-%M," \
"%P/lib/X11/%X"
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/parser/write.c b/xc/programs/Xserver/hw/xfree86/parser/write.c
index 95a4e0673..0bd3369ac 100644
--- a/xc/programs/Xserver/hw/xfree86/parser/write.c
+++ b/xc/programs/Xserver/hw/xfree86/parser/write.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/write.c,v 1.8 1999/09/04 13:04:54 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/write.c,v 1.10 2000/03/06 22:59:34 dawes Exp $ */
/*
*
* Copyright (c) 1997 Metro Link Incorporated
@@ -33,8 +33,37 @@
#include "xf86tokens.h"
#include "Configint.h"
-int
-xf86WriteConfigFile (const char *filename, XF86ConfigPtr cptr)
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <signal.h>
+#include <errno.h>
+
+#if (defined(X_NOT_STDC_ENV) || (defined(sun) && !defined(SVR4)) || defined(macII)) && !defined(__GLIBC__)
+#ifndef strerror
+extern char *sys_errlist[];
+extern int sys_nerr;
+#define strerror(n) \
+ (((n) >= 0 && (n) < sys_nerr) ? sys_errlist[n] : "unknown error")
+#endif
+#endif
+
+#if defined(SVR4) || defined(__linux__) || defined(CSRG_BASED)
+#define HAS_SAVED_IDS_AND_SETEUID
+#endif
+#if defined(__EMX__) || defined(WIN32)
+#define HAS_NO_UIDS
+#endif
+
+#ifdef HAS_NO_UIDS
+#define doWriteConfigFile xf86WriteConfigFile
+#define Local /**/
+#else
+#define Local static
+#endif
+
+Local int
+doWriteConfigFile (const char *filename, XF86ConfigPtr cptr)
{
FILE *cf;
@@ -74,3 +103,82 @@ xf86WriteConfigFile (const char *filename, XF86ConfigPtr cptr)
fclose(cf);
return 1;
}
+
+#ifndef HAS_NO_UIDS
+
+int
+xf86WriteConfigFile (const char *filename, XF86ConfigPtr cptr)
+{
+ int ret;
+
+#if !defined(HAS_SAVED_IDS_AND_SETEUID)
+ int pid, p;
+ int status;
+ void (*csig)(int);
+#else
+ int ruid, euid;
+#endif
+
+ if (getuid() != geteuid())
+ {
+
+#if !defined(HAS_SAVED_IDS_AND_SETEUID)
+ /* Need to fork to change ruid without loosing euid */
+#ifdef SIGCHLD
+ csig = signal(SIGCHLD, SIG_DFL);
+#endif
+ switch ((pid = fork()))
+ {
+ case -1:
+ ErrorF("xf86WriteConfigFile(): fork failed (%s)\n",
+ strerror(errno));
+ return 0;
+ case 0: /* child */
+ setuid(getuid());
+ ret = doWriteConfigFile(filename, cptr);
+ exit(ret);
+ break;
+ default: /* parent */
+ do
+ {
+ p = waitpid(pid, &status, 0);
+ } while (p == -1 && errno == EINTR);
+ }
+#ifdef SIGCHLD
+ signal(SIGCHLD, csig);
+#endif
+ if (p != -1 && WIFEXITED(status) && WEXITSTATUS(status) == 0)
+ return 1; /* success */
+ else
+ return 0;
+
+#else /* HAS_SAVED_IDS_AND_SETEUID */
+
+ ruid = getuid();
+ euid = geteuid();
+
+ if (seteuid(ruid) == -1)
+ {
+ ErrorF("xf86WriteConfigFile(): seteuid(%d) failed (%s)\n",
+ ruid, strerror(errno));
+ return 0;
+ }
+ ret = doWriteConfigFile(filename, cptr);
+
+ if (seteuid(euid) == -1)
+ {
+ ErrorF("xf86WriteConfigFile(): seteuid(%d) failed (%s)\n",
+ euid, strerror(errno));
+ }
+ return ret;
+
+#endif /* HAS_SAVED_IDS_AND_SETEUID */
+
+ }
+ else
+ {
+ return doWriteConfigFile(filename, cptr);
+ }
+}
+
+#endif /* !HAS_NO_UIDS */
diff --git a/xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c b/xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c
index 3b1ed842f..3f8dea6f3 100644
--- a/xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c
+++ b/xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c,v 1.5 1999/08/14 10:50:13 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c,v 1.6 2000/03/03 18:49:55 mvojkovi Exp $ */
#include "xaa.h"
@@ -113,6 +113,9 @@ BitmapScanline_Shifted_Inverted(
return base;
}
+#define BitmapScanline_Shifted_Careful BitmapScanline_Shifted
+#define BitmapScanline_Shifted_Inverted_Careful BitmapScanline_Shifted_Inverted
+
#else
static CARD32*
BitmapScanline(
@@ -192,6 +195,36 @@ BitmapScanline_Shifted_Inverted(
}
return base;
}
+
+static CARD32*
+BitmapScanline_Shifted_Careful(
+ CARD32 *bits, CARD32 *base,
+ int count, int skipleft )
+{
+ while(--count) {
+ WRITE_BITS(SHIFT_R(*bits,skipleft) |
+ SHIFT_L(*(bits + 1),(32 - skipleft)));
+ bits++;
+ }
+ WRITE_BITS(SHIFT_R(*bits,skipleft));
+
+ return base;
+}
+
+static CARD32*
+BitmapScanline_Shifted_Inverted_Careful(
+ CARD32 *bits, CARD32 *base,
+ int count, int skipleft )
+{
+ while(--count) {
+ WRITE_BITS(~(SHIFT_R(*bits,skipleft) |
+ SHIFT_L(*(bits + 1),(32 - skipleft))));
+ bits++;
+ }
+ WRITE_BITS(~(SHIFT_R(*bits,skipleft)));
+ return base;
+}
+
#endif
/*
@@ -250,8 +283,14 @@ EXPNAME(XAAWriteBitmapColorExpand)(
(!(infoRec->CPUToScreenColorExpandFillFlags & LEFT_EDGE_CLIPPING_NEGATIVE_X) &&
(skipleft > x)))) {
#endif
- firstFunc = BitmapScanline_Shifted;
- secondFunc = BitmapScanline_Shifted_Inverted;
+ if((skipleft + ((w + 31) & ~31)) > ((skipleft + w + 31) & ~31)) {
+ /* don't read past the end */
+ firstFunc = BitmapScanline_Shifted_Careful;
+ secondFunc = BitmapScanline_Shifted_Inverted_Careful;
+ } else {
+ firstFunc = BitmapScanline_Shifted;
+ secondFunc = BitmapScanline_Shifted_Inverted;
+ }
shift = skipleft;
skipleft = 0;
} else {
@@ -360,8 +399,14 @@ EXPNAME(XAAWriteBitmapScanlineColorExpand)(
(!(infoRec->ScanlineCPUToScreenColorExpandFillFlags &
LEFT_EDGE_CLIPPING_NEGATIVE_X) && (skipleft > x)))) {
#endif
- firstFunc = BitmapScanline_Shifted;
- secondFunc = BitmapScanline_Shifted_Inverted;
+ if((skipleft + ((w + 31) & ~31)) > ((skipleft + w + 31) & ~31)) {
+ /* don't read past the end */
+ firstFunc = BitmapScanline_Shifted_Careful;
+ secondFunc = BitmapScanline_Shifted_Inverted_Careful;
+ } else {
+ firstFunc = BitmapScanline_Shifted;
+ secondFunc = BitmapScanline_Shifted_Inverted;
+ }
shift = skipleft;
skipleft = 0;
} else {
diff --git a/xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c b/xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c
index b79fd6be9..82c541177 100644
--- a/xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c
+++ b/xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c,v 1.24 2000/01/21 01:12:22 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c,v 1.28 2000/02/27 21:50:20 mvojkovi Exp $ */
#include "misc.h"
#include "xf86.h"
@@ -15,6 +15,7 @@
#include "servermd.h"
#include "xf86str.h"
#include "xaa.h"
+#include "xaacexp.h"
#include "xaalocal.h"
#include "xaawrap.h"
@@ -833,9 +834,10 @@ XAAInitPixmapCache(
*/
next = List128->next;
while(Num128 > max) {
- List128->next = ListPartial; ListPartial = List128;
- List128 = next;
- next = List128->next;
+ List128->next = ListPartial;
+ ListPartial = List128;
+ if((List128 = next))
+ next = List128->next;
NumPartial++; Num128--;
}
}
@@ -1069,12 +1071,21 @@ XAAInitPixmapCache(
CACHEINIT(pScrn) = 1;
}
+#if X_BYTE_ORDER == X_BIG_ENDIAN
+static CARD32 StippleMasks[4] = {
+ 0x80808080,
+ 0xC0C0C0C0,
+ 0x00000000,
+ 0xF0F0F0F0
+};
+#else
static CARD32 StippleMasks[4] = {
0x01010101,
0x03030303,
0x00000000,
0x0F0F0F0F
};
+#endif
Bool
XAACheckStippleReducibility(PixmapPtr pPixmap)
@@ -1086,6 +1097,7 @@ XAACheckStippleReducibility(PixmapPtr pPixmap)
int h = pPixmap->drawable.height;
int i;
CARD32 bits[8];
+ CARD32 mask = SHIFT_R(0xFFFFFFFF,24);
pPriv->flags |= REDUCIBILITY_CHECKED | REDUCIBLE_TO_2_COLOR;
pPriv->flags &= ~REDUCIBLE_TO_8x8;
@@ -1098,23 +1110,23 @@ XAACheckStippleReducibility(PixmapPtr pPixmap)
switch(w) {
case 32:
while(i--) {
- bits[i] = IntPtr[i] & 0x000000FF;
- if( (bits[i] != ((IntPtr[i] & 0x0000FF00) >> 8)) ||
- (bits[i] != ((IntPtr[i] & 0x00FF0000) >> 16)) ||
- (bits[i] != ((IntPtr[i] & 0xFF000000) >> 24)))
+ bits[i] = IntPtr[i] & mask;
+ if( (bits[i] != SHIFT_R((IntPtr[i] & SHIFT_L(mask, 8)), 8)) ||
+ (bits[i] != SHIFT_R((IntPtr[i] & SHIFT_L(mask,16)),16)) ||
+ (bits[i] != SHIFT_R((IntPtr[i] & SHIFT_L(mask,24)),24)))
return FALSE;
}
break;
case 16:
while(i--) {
- bits[i] = IntPtr[i] & 0x000000FF;
- if(bits[i] != ((IntPtr[i] & 0x0000FF00) >> 8))
+ bits[i] = IntPtr[i] & mask;
+ if(bits[i] != ((IntPtr[i] & SHIFT_R(SHIFT_L(mask,8),8))))
return FALSE;
}
break;
default:
while(i--)
- bits[i] = IntPtr[i] & 0x000000FF;
+ bits[i] = IntPtr[i] & mask;
break;
}
@@ -1146,20 +1158,20 @@ XAACheckStippleReducibility(PixmapPtr pPixmap)
pPriv->flags |= REDUCIBLE_TO_8x8;
- pPriv->pattern0 = bits[0] | (bits[1]<<8) | (bits[2]<<16) | (bits[3]<<24);
- pPriv->pattern1 = bits[4] | (bits[5]<<8) | (bits[6]<<16) | (bits[7]<<24);
+ pPriv->pattern0 = bits[0] | SHIFT_L(bits[1],8) | SHIFT_L(bits[2],16) | SHIFT_L(bits[3],24);
+ pPriv->pattern1 = bits[4] | SHIFT_L(bits[5],8) | SHIFT_L(bits[6],16) | SHIFT_L(bits[7],24);
if(w < 8) {
pPriv->pattern0 &= StippleMasks[w - 1];
pPriv->pattern1 &= StippleMasks[w - 1];
switch(w) {
- case 1: pPriv->pattern0 |= (pPriv->pattern0 << 1);
- pPriv->pattern1 |= (pPriv->pattern1 << 1);
- case 2: pPriv->pattern0 |= (pPriv->pattern0 << 2);
- pPriv->pattern1 |= (pPriv->pattern1 << 2);
- case 4: pPriv->pattern0 |= (pPriv->pattern0 << 4);
- pPriv->pattern1 |= (pPriv->pattern1 << 4);
+ case 1: pPriv->pattern0 |= SHIFT_L(pPriv->pattern0,1);
+ pPriv->pattern1 |= SHIFT_L(pPriv->pattern1,1);
+ case 2: pPriv->pattern0 |= SHIFT_L(pPriv->pattern0,2);
+ pPriv->pattern1 |= SHIFT_L(pPriv->pattern1,2);
+ case 4: pPriv->pattern0 |= SHIFT_L(pPriv->pattern0,4);
+ pPriv->pattern1 |= SHIFT_L(pPriv->pattern1,4);
}
}
@@ -1899,8 +1911,8 @@ XAAWritePixmapToCacheLinear(
pScreenPix = (*pScreen->GetScreenPixmap)(pScreen);
- pDstPix = GetScratchPixmapHeader(pScreen, pScreenPix->drawable.width,
- y + h, depth, bpp, pScreenPix->devKind,
+ pDstPix = GetScratchPixmapHeader(pScreen, x + w, y + h,
+ depth, bpp, pScreenPix->devKind,
pScreenPix->devPrivate.ptr);
pGC = GetScratchGC(depth, pScreen);
diff --git a/xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c b/xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c
index a3d3dd44f..5807cb6e6 100644
--- a/xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c
+++ b/xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c,v 1.5 1999/08/14 10:50:14 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c,v 1.7 2000/02/29 17:38:32 tsi Exp $ */
#include "xaa.h"
#include "xaalocal.h"
@@ -37,14 +37,23 @@ StippleScanlineProcPtr stipple_scanline_func[6] = {
#if defined(FIXEDBASE) && defined(MSBFIRST)
unsigned int XAAShiftMasks[32] = {
- 0x00000000, 0x00000001, 0x00000003, 0x00000007,
- 0x0000000F, 0x0000001F, 0x0000003F, 0x0000007F,
- 0x000000FF, 0x000001FF, 0x000003FF, 0x000007FF,
- 0x00000FFF, 0x00001FFF, 0x00003FFF, 0x00007FFF,
- 0x0000FFFF, 0x0001FFFF, 0x0003FFFF, 0x0007FFFF,
- 0x000FFFFF, 0x001FFFFF, 0x003FFFFF, 0x007FFFFF,
- 0x00FFFFFF, 0x01FFFFFF, 0x03FFFFFF, 0x07FFFFFF,
- 0x0FFFFFFF, 0x1FFFFFFF, 0x3FFFFFFF, 0x7FFFFFFF
+ /* gcc is rather pedantic about SHIFT_R(0xFFFFFFFF,32) */
+ 0x00000000 , SHIFT_R(0xFFFFFFFF,31),
+ SHIFT_R(0xFFFFFFFF,30), SHIFT_R(0xFFFFFFFF,29),
+ SHIFT_R(0xFFFFFFFF,28), SHIFT_R(0xFFFFFFFF,27),
+ SHIFT_R(0xFFFFFFFF,26), SHIFT_R(0xFFFFFFFF,25),
+ SHIFT_R(0xFFFFFFFF,24), SHIFT_R(0xFFFFFFFF,23),
+ SHIFT_R(0xFFFFFFFF,22), SHIFT_R(0xFFFFFFFF,21),
+ SHIFT_R(0xFFFFFFFF,20), SHIFT_R(0xFFFFFFFF,19),
+ SHIFT_R(0xFFFFFFFF,18), SHIFT_R(0xFFFFFFFF,17),
+ SHIFT_R(0xFFFFFFFF,16), SHIFT_R(0xFFFFFFFF,15),
+ SHIFT_R(0xFFFFFFFF,14), SHIFT_R(0xFFFFFFFF,13),
+ SHIFT_R(0xFFFFFFFF,12), SHIFT_R(0xFFFFFFFF,11),
+ SHIFT_R(0xFFFFFFFF,10), SHIFT_R(0xFFFFFFFF,9),
+ SHIFT_R(0xFFFFFFFF,8), SHIFT_R(0xFFFFFFFF,7),
+ SHIFT_R(0xFFFFFFFF,6), SHIFT_R(0xFFFFFFFF,5),
+ SHIFT_R(0xFFFFFFFF,4), SHIFT_R(0xFFFFFFFF,3),
+ SHIFT_R(0xFFFFFFFF,2), SHIFT_R(0xFFFFFFFF,1)
};
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c b/xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c
index cae24ac80..d149f41d3 100644
--- a/xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c
+++ b/xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c,v 1.2 1999/08/29 12:21:05 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c,v 1.3 2000/02/25 00:21:00 mvojkovi Exp $ */
#include "X.h"
#include "windowstr.h"
@@ -25,6 +25,9 @@ cfb24_32GetImage (
){
if(!w || !h) return;
+ if (!cfbDrawableEnabled (pDraw))
+ return;
+
if(pDraw->bitsPerPixel != 24) {
cfb32GetImage(pDraw, sx, sy, w, h, format, planemask, pdstLine);
return;
@@ -70,6 +73,9 @@ cfb24_32GetSpans(
int pitch, i;
CARD8 *ptr, *ptrBase;
+ if (!cfbDrawableEnabled (pDraw))
+ return;
+
if(pDraw->bitsPerPixel != 24){
cfb32GetSpans(pDraw, wMax, ppt, pwidth, nspans, pDst);
return;
diff --git a/xc/programs/Xserver/hw/xfree86/xf86Version.h b/xc/programs/Xserver/hw/xfree86/xf86Version.h
index bc2354e26..57e9ede9d 100644
--- a/xc/programs/Xserver/hw/xfree86/xf86Version.h
+++ b/xc/programs/Xserver/hw/xfree86/xf86Version.h
@@ -1,11 +1,11 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Version.h,v 3.420 2000/02/21 18:05:40 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Version.h,v 3.428 2000/03/08 15:14:43 dawes Exp $ */
-#define XF86_VERSION " 3.9.18 "
+#define XF86_VERSION " 4.0 "
/* The finer points in versions... */
-#define XF86_VERSION_MAJOR 3
-#define XF86_VERSION_MINOR 9
-#define XF86_VERSION_SUBMINOR 18
+#define XF86_VERSION_MAJOR 4
+#define XF86_VERSION_MINOR 0
+#define XF86_VERSION_SUBMINOR 0
#define XF86_VERSION_BETA 0 /* 0="", 1="A", 2="B", etc... */
#define XF86_VERSION_ALPHA 0 /* 0="", 1="a", 2="b", etc... */
@@ -18,6 +18,6 @@
XF86_VERSION_BETA, \
XF86_VERSION_ALPHA)
-#define XF86_DATE "21 February 2000"
+#define XF86_DATE "8 March 2000"
/* $XConsortium: xf86Version.h /main/78 1996/10/28 05:42:10 kaleb $ */
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h
index 4c4d548ad..733051ae0 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h,v 1.3 2000/02/11 06:33:46 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h,v 1.5 2000/03/02 02:32:52 mvojkovi Exp $ */
#ifndef _CFB8_32_H
#define _CFB8_32_H
@@ -14,6 +14,8 @@ typedef struct {
typedef struct {
unsigned char key;
+ void (*EnableDisableFBAccess)(int scrnIndex, Bool enable);
+ pointer visualData;
} cfb8_32ScreenRec, *cfb8_32ScreenPtr;
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c
index 5d6514137..752e56db8 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c,v 1.4 1999/05/23 06:33:51 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c,v 1.5 2000/02/29 00:17:16 mvojkovi Exp $ */
#include "X.h"
#include "Xmd.h"
@@ -327,7 +327,7 @@ Do8To8Blt(
}
if(xdir < 0) {
- register tmp = (width - 1) << 2;
+ register int tmp = (width - 1) << 2;
src += tmp;
dst += tmp;
}
@@ -371,7 +371,7 @@ Do24To24Blt(
}
if(xdir < 0) {
- register tmp = (width - 1) << 2;
+ register int tmp = (width - 1) << 2;
src += tmp;
dst += tmp;
}
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c
index 59e926a24..d8a6f4608 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c,v 1.2 2000/02/11 06:33:46 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c,v 1.3 2000/02/29 00:17:16 mvojkovi Exp $ */
#include "X.h"
#include "Xmd.h"
@@ -51,8 +51,6 @@ GCFuncs cfb32GCFuncs_Underlay = {
static void
cfb32DestroyGC_Underlay(GCPtr pGC)
{
- cfb8_32GCPtr pGCPriv = CFB8_32_GET_GC_PRIVATE(pGC);
-
if (pGC->freeCompClip)
REGION_DESTROY(pGC->pScreen, pGC->pCompositeClip);
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c
index d2c4424f2..1e8550851 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c,v 1.1 1999/01/03 03:58:56 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c,v 1.2 2000/02/25 00:21:40 mvojkovi Exp $ */
#include "X.h"
#include "windowstr.h"
@@ -24,6 +24,9 @@ cfb8_32GetImage (
){
if(!w || !h) return;
+ if (!cfbDrawableEnabled (pDraw))
+ return;
+
if(pDraw->depth == 24){
cfb32GetImage(pDraw, sx, sy, w, h, format, planemask, pdstLine);
return;
@@ -130,6 +133,9 @@ cfb8_32GetSpans(
int pitch, i;
CARD8 *ptr, *ptrBase;
+ if (!cfbDrawableEnabled (pDraw))
+ return;
+
if(pDraw->bitsPerPixel == 1) {
mfbGetSpans(pDraw, wMax, ppt, pwidth, nspans, pDst);
return;
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c
index 88e96ee7f..ea0338ff8 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c,v 1.3 2000/02/11 06:33:46 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c,v 1.4 2000/02/29 00:17:16 mvojkovi Exp $ */
#include "X.h"
@@ -25,7 +25,6 @@ cfb8_32PaintWindow(
RegionPtr pRegion,
int what
){
- cfb8_32ScreenPtr pScreenPriv;
WindowPtr pBgWin;
int xorg, yorg;
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c
index 1c050dd1a..0d80ab2a9 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c,v 1.6 2000/02/11 06:33:47 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c,v 1.9 2000/03/03 00:22:47 mvojkovi Exp $ */
#include "X.h"
@@ -153,6 +153,9 @@ cfb8_32CloseScreen (int i, ScreenPtr pScreen)
{
cfb8_32ScreenPtr pScreenPriv = CFB8_32_GET_SCREEN_PRIVATE(pScreen);
+ if(pScreenPriv->visualData)
+ xfree(pScreenPriv->visualData);
+
xfree((pointer) pScreenPriv);
return(cfb32CloseScreen(i, pScreen));
@@ -204,23 +207,99 @@ cfb8_32FinishScreenInit(
return TRUE;
}
+static void
+cfb8_32EnableDisableFBAccess (
+ int index,
+ Bool enable
+){
+ ScreenPtr pScreen = screenInfo.screens[index];
+ cfb8_32ScreenPtr pScreenPriv = CFB8_32_GET_SCREEN_PRIVATE(pScreen);
+
+ miOverlaySetRootClip(pScreen, enable);
+
+ (*pScreenPriv->EnableDisableFBAccess) (index, enable);
+}
+
+static Atom overlayVisualsAtom;
+
+typedef struct {
+ CARD32 overlay_visual;
+ CARD32 transparent_type;
+ CARD32 value;
+ CARD32 layer;
+} overlayVisualRec;
+
+static void
+cfb8_32SetupVisuals (ScreenPtr pScreen)
+{
+ cfb8_32ScreenPtr pScreenPriv = CFB8_32_GET_SCREEN_PRIVATE(pScreen);
+ char atomString[] = {"SERVER_OVERLAY_VISUALS"};
+ overlayVisualRec *overlayVisuals;
+ VisualID *visuals = NULL;
+ int numVisuals = 0;
+ DepthPtr pDepth = pScreen->allowedDepths;
+ int numDepths = pScreen->numDepths;
+ int i;
+
+ /* find depth 8 visuals */
+ for(i = 0; i < numDepths; i++, pDepth++) {
+ if(pDepth->depth == 8) {
+ numVisuals = pDepth->numVids;
+ visuals = pDepth->vids;
+ break;
+ }
+ }
+
+ if(!numVisuals || !visuals) {
+ ErrorF("No overlay visuals found!\n");
+ return;
+ }
+
+ if(!(overlayVisuals = xalloc(numVisuals * sizeof(overlayVisualRec))))
+ return;
+
+ for(i = 0; i < numVisuals; i++) {
+ overlayVisuals[i].overlay_visual = visuals[i];
+ overlayVisuals[i].transparent_type = 1; /* transparent pixel */
+ overlayVisuals[i].value = pScreenPriv->key;
+ overlayVisuals[i].layer = 1;
+ }
+
+ overlayVisualsAtom = MakeAtom(atomString, sizeof(atomString) - 1, TRUE);
+
+ xf86RegisterRootWindowProperty(pScreen->myNum, overlayVisualsAtom,
+ overlayVisualsAtom, 32, numVisuals * 4, overlayVisuals);
+
+ pScreenPriv->visualData = (pointer)overlayVisuals;
+}
+
Bool
cfb8_32ScreenInit(
ScreenPtr pScreen,
pointer pbits, /* pointer to screen bitmap */
int xsize, int ysize, /* in pixels */
int dpix, int dpiy, /* dots per inch */
- int width /* pixel width of frame buffer */
+ int w /* pixel width of frame buffer */
){
cfb8_32ScreenPtr pScreenPriv;
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- if (!cfb8_32SetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width))
+ if (!cfb8_32SetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, w))
return FALSE;
pScreenPriv = CFB8_32_GET_SCREEN_PRIVATE(pScreen);
pScreenPriv->key = pScrn->colorKey;
+ pScreenPriv->visualData = NULL;
+
- return cfb8_32FinishScreenInit(
- pScreen, pbits, xsize, ysize, dpix, dpiy, width);
+ pScreenPriv->EnableDisableFBAccess = pScrn->EnableDisableFBAccess;
+ pScrn->EnableDisableFBAccess = cfb8_32EnableDisableFBAccess;
+
+
+ if(cfb8_32FinishScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, w))
+ {
+ cfb8_32SetupVisuals(pScreen);
+ return TRUE;
+ }
+ return FALSE;
}
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c
index 6fe67db58..175e590de 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c,v 1.5 2000/02/11 06:33:47 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c,v 1.6 2000/02/29 00:17:16 mvojkovi Exp $ */
#include "X.h"
@@ -12,6 +12,7 @@
#include "mistruct.h"
#include "regionstr.h"
#include "cfbmskbits.h"
+#include "mioverlay.h"
/* We don't bother with cfb's fastBackground/Border so we don't
diff --git a/xc/programs/Xserver/hw/xnest/Keyboard.c b/xc/programs/Xserver/hw/xnest/Keyboard.c
index 89c44a005..80ad48f34 100644
--- a/xc/programs/Xserver/hw/xnest/Keyboard.c
+++ b/xc/programs/Xserver/hw/xnest/Keyboard.c
@@ -12,6 +12,8 @@ the suitability of this software for any purpose. It is provided "as
is" without express or implied warranty.
*/
+/* $XFree86: xc/programs/Xserver/hw/xnest/Keyboard.c,v 1.3 2000/02/27 04:52:56 dawes Exp $ */
+
#define NEED_EVENTS
#include "X.h"
#include "Xproto.h"
@@ -139,7 +141,11 @@ int xnestKeyboardProc(pDev, onoff, argc, argv)
InitKeyboardDeviceStruct(pDev, &keySyms, modmap,
xnestBell, xnestChangeKeyboardControl);
+#ifdef _XSERVER64
+ xfree(keymap);
+#else
XFree(keymap);
+#endif
break;
case DEVICE_ON:
xnestEventMask |= XNEST_KEYBOARD_EVENT_MASK;
diff --git a/xc/programs/Xserver/include/servermd.h b/xc/programs/Xserver/include/servermd.h
index 72caff377..6d08b6d2c 100644
--- a/xc/programs/Xserver/include/servermd.h
+++ b/xc/programs/Xserver/include/servermd.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/include/servermd.h,v 3.37 2000/02/12 03:39:58 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/include/servermd.h,v 3.38 2000/02/22 01:04:01 mvojkovi Exp $ */
/***********************************************************
Copyright 1987, 1998 The Open Group
@@ -311,6 +311,28 @@ SOFTWARE.
#endif /* alpha */
+
+#if defined(__ia64__)
+# define IMAGE_BYTE_ORDER LSBFirst
+
+# if defined(XF86MONOVGA) || defined(XF86VGA16) || defined(XF86MONO)
+# define BITMAP_BIT_ORDER MSBFirst
+# else
+# define BITMAP_BIT_ORDER LSBFirst
+# endif
+
+# if defined(XF86MONOVGA) || defined(XF86VGA16)
+# define BITMAP_SCANLINE_UNIT 8
+# endif
+
+# define GLYPHPADBYTES 4
+# define GETLEFTBITS_ALIGNMENT 1
+# define FAST_CONSTANT_OFFSET_MODE
+# define LARGE_INSTRUCTION_CACHE
+# define PLENTIFUL_REGISTERS
+
+#endif /* ia64 */
+
#ifdef stellar
#define IMAGE_BYTE_ORDER MSBFirst /* Values for the stellar only*/
diff --git a/xc/programs/Xserver/mi/mioverlay.c b/xc/programs/Xserver/mi/mioverlay.c
index 6ce6d8e80..19589e594 100644
--- a/xc/programs/Xserver/mi/mioverlay.c
+++ b/xc/programs/Xserver/mi/mioverlay.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/mi/mioverlay.c,v 3.2 2000/02/12 05:43:26 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/mi/mioverlay.c,v 3.4 2000/02/29 00:16:03 mvojkovi Exp $ */
#include "X.h"
#include "scrnintstr.h"
@@ -9,6 +9,7 @@
#include "regionstr.h"
#include "mivalidate.h"
#include "mioverlay.h"
+#include "migc.h"
#include "globals.h"
@@ -42,6 +43,7 @@ typedef struct {
CreateWindowProcPtr CreateWindow;
DestroyWindowProcPtr DestroyWindow;
UnrealizeWindowProcPtr UnrealizeWindow;
+ RealizeWindowProcPtr RealizeWindow;
miOverlayTransFunc MakeTransparent;
int overlayDepth;
Bool underlayMarked;
@@ -61,6 +63,7 @@ static Bool miOverlayCloseScreen(int, ScreenPtr);
static Bool miOverlayCreateWindow(WindowPtr);
static Bool miOverlayDestroyWindow(WindowPtr);
static Bool miOverlayUnrealizeWindow(WindowPtr);
+static Bool miOverlayRealizeWindow(WindowPtr);
static void miOverlayMarkWindow(WindowPtr);
static void miOverlayReparentWindow(WindowPtr, WindowPtr);
static void miOverlayRestackWindow(WindowPtr, WindowPtr);
@@ -133,11 +136,13 @@ miInitOverlay(
pScreenPriv->CreateWindow = pScreen->CreateWindow;
pScreenPriv->DestroyWindow = pScreen->DestroyWindow;
pScreenPriv->UnrealizeWindow = pScreen->UnrealizeWindow;
+ pScreenPriv->RealizeWindow = pScreen->RealizeWindow;
pScreen->CloseScreen = miOverlayCloseScreen;
pScreen->CreateWindow = miOverlayCreateWindow;
pScreen->DestroyWindow = miOverlayDestroyWindow;
pScreen->UnrealizeWindow = miOverlayUnrealizeWindow;
+ pScreen->RealizeWindow = miOverlayRealizeWindow;
pScreen->ReparentWindow = miOverlayReparentWindow;
pScreen->RestackWindow = miOverlayRestackWindow;
@@ -166,6 +171,8 @@ miOverlayCloseScreen(int i, ScreenPtr pScreen)
pScreen->CloseScreen = pScreenPriv->CloseScreen;
pScreen->CreateWindow = pScreen->CreateWindow;
pScreen->DestroyWindow = pScreen->DestroyWindow;
+ pScreen->UnrealizeWindow = pScreen->UnrealizeWindow;
+ pScreen->RealizeWindow = pScreen->RealizeWindow;
xfree(pScreenPriv);
@@ -272,6 +279,36 @@ miOverlayUnrealizeWindow(WindowPtr pWin)
return result;
}
+
+static Bool
+miOverlayRealizeWindow(WindowPtr pWin)
+{
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+ miOverlayScreenPtr pScreenPriv = MIOVERLAY_GET_SCREEN_PRIVATE(pScreen);
+ Bool result = TRUE;
+
+ if(pScreenPriv->RealizeWindow) {
+ pScreen->RealizeWindow = pScreenPriv->RealizeWindow;
+ result = (*pScreen->RealizeWindow)(pWin);
+ pScreen->RealizeWindow = miOverlayRealizeWindow;
+ }
+
+ /* we only need to cache the root window realization */
+
+ if(result && !pWin->parent &&
+ (pWin->drawable.depth != pScreenPriv->overlayDepth))
+ {
+ BoxRec box;
+ box.x1 = box.y1 = 0;
+ box.x2 = pWin->drawable.width;
+ box.y2 = pWin->drawable.height;
+ (*pScreenPriv->MakeTransparent)(pScreen, 1, &box);
+ }
+
+ return result;
+}
+
+
static void
miOverlayReparentWindow(WindowPtr pWin, WindowPtr pPriorParent)
{
@@ -311,7 +348,7 @@ miOverlayMarkOverlappedWindows(
box = REGION_EXTENTS(pScreen, &pWin->borderSize);
- if(pChild = pFirst) {
+ if((pChild = pFirst)) {
pLast = pChild->parent->lastChild;
while (1) {
if (pChild == pWin) markAll = TRUE;
@@ -319,18 +356,25 @@ miOverlayMarkOverlappedWindows(
if(doUnderlay && IN_UNDERLAY(pChild))
pTree = MIOVERLAY_GET_WINDOW_TREE(pChild);
- if (pChild->viewable &&
- (markAll || RECT_IN_REGION(pScreen, &pChild->borderSize, box)))
- {
- MARK_OVERLAY(pChild);
- overMarked = TRUE;
- if(doUnderlay && IN_UNDERLAY(pChild)) {
- MARK_UNDERLAY(pChild);
- underMarked = TRUE;
- }
- if (pChild->firstChild) {
- pChild = pChild->firstChild;
- continue;
+ if(pChild->viewable) {
+ if (REGION_BROKEN (pScreen, &pChild->winSize))
+ SetWinSize (pChild);
+ if (REGION_BROKEN (pScreen, &pChild->borderSize))
+ SetBorderSize (pChild);
+
+ if (markAll ||
+ RECT_IN_REGION(pScreen, &pChild->borderSize, box))
+ {
+ MARK_OVERLAY(pChild);
+ overMarked = TRUE;
+ if(doUnderlay && IN_UNDERLAY(pChild)) {
+ MARK_UNDERLAY(pChild);
+ underMarked = TRUE;
+ }
+ if (pChild->firstChild) {
+ pChild = pChild->firstChild;
+ continue;
+ }
}
}
while (!pChild->nextSib && (pChild != pLast)) {
@@ -371,11 +415,17 @@ miOverlayMarkOverlappedWindows(
tLast = pTree->nextSib;
while(1) {
- if(tChild->pWin->viewable &&
- RECT_IN_REGION(pScreen, &(tChild->pWin->borderSize), box))
- {
- MARK_UNDERLAY(tChild->pWin);
- underMarked = TRUE;
+ if(tChild->pWin->viewable) {
+ if (REGION_BROKEN (pScreen, &tChild->pWin->winSize))
+ SetWinSize (tChild->pWin);
+ if (REGION_BROKEN (pScreen, &tChild->pWin->borderSize))
+ SetBorderSize (tChild->pWin);
+
+ if(RECT_IN_REGION(pScreen, &(tChild->pWin->borderSize), box))
+ {
+ MARK_UNDERLAY(tChild->pWin);
+ underMarked = TRUE;
+ }
}
if(tChild->lastChild) {
@@ -709,11 +759,27 @@ miOverlayValidateTree(
else
tChild = tParent->firstChild;
- for(tWin = tChild; tWin; tWin = tWin->nextSib) {
- if(tWin->valdata)
- REGION_APPEND(pScreen, &totalClip, &tWin->borderClip);
+ if (REGION_BROKEN (pScreen, &tParent->clipList) &&
+ !REGION_BROKEN (pScreen, &tParent->borderClip))
+ {
+ kind = VTBroken;
+ REGION_COPY (pScreen, &totalClip, &tParent->borderClip);
+ REGION_INTERSECT (pScreen, &totalClip, &totalClip,
+ &tParent->pWin->winSize);
+
+ for (tWin = tParent->firstChild; tWin != tChild; tWin = tWin->nextSib) {
+ if (tWin->pWin->viewable)
+ REGION_SUBTRACT (pScreen, &totalClip, &totalClip,
+ &tWin->pWin->borderSize);
+ }
+ REGION_EMPTY (pScreen, &tParent->clipList);
+ } else {
+ for(tWin = tChild; tWin; tWin = tWin->nextSib) {
+ if(tWin->valdata)
+ REGION_APPEND(pScreen, &totalClip, &tWin->borderClip);
+ }
+ REGION_VALIDATE(pScreen, &totalClip, &overlap);
}
- REGION_VALIDATE(pScreen, &totalClip, &overlap);
if(kind != VTStack)
REGION_UNION(pScreen, &totalClip, &totalClip, &tParent->clipList);
@@ -1498,7 +1564,6 @@ miOverlaySetShape(WindowPtr pWin)
{
Bool WasViewable = (Bool)(pWin->viewable);
ScreenPtr pScreen = pWin->drawable.pScreen;
- WindowPtr pParent = pWin->parent;
RegionPtr pOldClip, bsExposed;
#ifdef DO_SAVE_UNDERS
Bool dosave = FALSE;
@@ -1650,7 +1715,31 @@ miOverlayChangeBorderWidth(
WindowsRestructured ();
}
+/* We need this as an addition since the xf86 common code doesn't
+ know about the second tree which is static to this file. */
+
+void
+miOverlaySetRootClip(ScreenPtr pScreen, Bool enable)
+{
+ WindowPtr pRoot = WindowTable[pScreen->myNum];
+ miOverlayTreePtr pTree = MIOVERLAY_GET_WINDOW_TREE(pRoot);
+
+ MARK_UNDERLAY(pRoot);
+ if(enable) {
+ BoxRec box;
+
+ box.x1 = 0;
+ box.y1 = 0;
+ box.x2 = pScreen->width;
+ box.y2 = pScreen->height;
+
+ REGION_RESET(pScreen, &pTree->borderClip, &box);
+ } else
+ REGION_EMPTY(pScreen, &pTree->borderClip);
+
+ REGION_BREAK(pScreen, &pTree->clipList);
+}
/****************************************************************/
diff --git a/xc/programs/Xserver/mi/mioverlay.h b/xc/programs/Xserver/mi/mioverlay.h
index 2d20eec9b..51e628ef5 100644
--- a/xc/programs/Xserver/mi/mioverlay.h
+++ b/xc/programs/Xserver/mi/mioverlay.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/mi/mioverlay.h,v 3.2 2000/02/12 05:43:26 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/mi/mioverlay.h,v 3.3 2000/02/29 00:16:03 mvojkovi Exp $ */
#ifndef __MIOVERLAY_H
#define __MIOVERLAY_H
@@ -23,5 +23,6 @@ Bool miOverlayCollectUnderlayRegions(WindowPtr, RegionPtr*);
void miOverlayComputeCompositeClip(GCPtr, WindowPtr);
Bool miOverlayCopyUnderlay(ScreenPtr);
void miOverlaySetTransFunction(ScreenPtr, miOverlayTransFunc);
+void miOverlaySetRootClip(ScreenPtr, Bool);
#endif /* __MIOVERLAY_H */
diff --git a/xc/programs/Xserver/mi/miscrinit.c b/xc/programs/Xserver/mi/miscrinit.c
index 51fed013b..148a0cfff 100644
--- a/xc/programs/Xserver/mi/miscrinit.c
+++ b/xc/programs/Xserver/mi/miscrinit.c
@@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
-/* $XFree86: xc/programs/Xserver/mi/miscrinit.c,v 3.10 1999/10/13 22:33:12 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/mi/miscrinit.c,v 3.11 2000/03/07 13:37:51 dawes Exp $ */
#include "X.h"
#include "servermd.h"
@@ -248,6 +248,7 @@ miScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width,
/* PaintWindowBackground, PaintWindowBorder, CopyWindow */
pScreen->ClearToBackground = miClearToBackground;
pScreen->ClipNotify = (ClipNotifyProcPtr) 0;
+ pScreen->RestackWindow = (RestackWindowProcPtr) 0;
/* CreatePixmap, DestroyPixmap */
/* RealizeFont, UnrealizeFont */
/* CreateGC */
diff --git a/xc/programs/Xserver/mi/mizerarc.c b/xc/programs/Xserver/mi/mizerarc.c
index 78fccb90c..cd3f43749 100644
--- a/xc/programs/Xserver/mi/mizerarc.c
+++ b/xc/programs/Xserver/mi/mizerarc.c
@@ -1,3 +1,4 @@
+/* $XFree86: xc/programs/Xserver/mi/mizerarc.c,v 1.3 2000/03/01 01:04:22 dawes Exp $ */
/************************************************************
Copyright 1989, 1998 The Open Group
@@ -734,7 +735,7 @@ miZeroPolyArc(pDraw, pGC, narcs, parcs)
if (!maxPts)
return;
numPts = maxPts << 2;
- dospans = (pGC->lineStyle != LineSolid) || (pGC->fillStyle != FillSolid);
+ dospans = (pGC->fillStyle != FillSolid);
if (dospans)
{
widths = (int *)ALLOCATE_LOCAL(sizeof(int) * numPts);
diff --git a/xc/programs/Xserver/os/utils.c b/xc/programs/Xserver/os/utils.c
index 1af0588cb..35da9a210 100644
--- a/xc/programs/Xserver/os/utils.c
+++ b/xc/programs/Xserver/os/utils.c
@@ -45,7 +45,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/os/utils.c,v 3.55 1999/12/27 00:39:58 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/os/utils.c,v 3.56 2000/02/23 20:30:18 dawes Exp $ */
#ifdef WIN32
#include <X11/Xwinsock.h>
@@ -121,8 +121,8 @@ extern int errno;
Bool CoreDump;
Bool noTestExtensions;
-Bool noPanoramiXExtension = TRUE;
#ifdef PANORAMIX
+Bool noPanoramiXExtension = TRUE;
Bool PanoramiXVisibilityNotifySent = FALSE;
Bool PanoramiXMapped = FALSE;
Bool PanoramiXWindowExposureSent = FALSE;
diff --git a/xc/programs/Xserver/os/xalloc.c b/xc/programs/Xserver/os/xalloc.c
index 91c1fd770..3ae509ce6 100644
--- a/xc/programs/Xserver/os/xalloc.c
+++ b/xc/programs/Xserver/os/xalloc.c
@@ -25,7 +25,7 @@ dealings in this Software without prior written authorization from
Pascal Haible.
*/
-/* $XFree86: xc/programs/Xserver/os/xalloc.c,v 3.24 2000/02/08 13:13:35 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/os/xalloc.c,v 3.25 2000/02/22 01:03:25 mvojkovi Exp $ */
/* Only used if INTERNAL_MALLOC is defined
* - otherwise xalloc() in utils.c is used
@@ -186,7 +186,7 @@ extern Bool Must_have_memory;
#define TAIL_SIZE 0
#endif
-#ifdef __alpha__
+#if defined(__alpha__) || defined(__ia64__)
#define MAGIC 0x1404196414071968
#define MAGIC_FREE 0x1506196615061966
#define MAGIC2 0x2515207525182079
@@ -327,7 +327,7 @@ Xalloc (unsigned long amount)
}
/* alignment check */
-#if defined(__alpha__) || defined(__sparc__) || defined(__mips__) || defined(__powerpc__) || defined(__arm32__)
+#if defined(__alpha__) || defined(__sparc__) || defined(__mips__) || defined(__powerpc__) || defined(__arm32__) || defined(__ia64__)
amount = (amount + (sizeof(long)-1)) & ~(sizeof(long)-1);
#endif