diff options
| author | Marcin Juszkiewicz <hrw@openedhand.com> | 2007-05-09 17:05:25 +0000 |
|---|---|---|
| committer | Marcin Juszkiewicz <hrw@openedhand.com> | 2007-05-09 17:05:25 +0000 |
| commit | fbf4ba6b29527b913aa98a1ed5794ebdfb5ef625 (patch) | |
| tree | 4e92eb9a63ac0850735297af979c015a54a8c75d | |
| parent | 082a34fa0b1840116109c88ad24a11f4bfa51484 (diff) | |
| download | openembedded-core-fbf4ba6b29527b913aa98a1ed5794ebdfb5ef625.tar.gz openembedded-core-fbf4ba6b29527b913aa98a1ed5794ebdfb5ef625.tar.bz2 openembedded-core-fbf4ba6b29527b913aa98a1ed5794ebdfb5ef625.zip | |
xserver-kdrive: added 1.3.0.0
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@1684 311d38ba-8fff-0310-9ca6-ca027cbcb966
16 files changed, 16391 insertions, 3 deletions
diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/disable-xf86-dga-xorgcfg.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/disable-xf86-dga-xorgcfg.patch new file mode 100644 index 0000000000..ccc19139c8 --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/disable-xf86-dga-xorgcfg.patch @@ -0,0 +1,39 @@ +Index: xorg-server-1.3.0.0/configure.ac +=================================================================== +--- xorg-server-1.3.0.0.orig/configure.ac 2007-04-20 03:23:40.000000000 +0200 ++++ xorg-server-1.3.0.0/configure.ac 2007-05-09 16:51:34.000000000 +0200 +@@ -520,7 +520,11 @@ + XEXTXORG_LIB='$(top_builddir)/Xext/libXextbuiltin.la' + + dnl Core modules for most extensions, et al. ++if test "$KDRIVE" = yes; then ++REQUIRED_MODULES="[randrproto >= 1.2] renderproto [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto xproto xtrans xf86bigfontproto [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto inputproto [kbproto >= 1.0.3]" ++else + REQUIRED_MODULES="[randrproto >= 1.2] renderproto [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto xproto xtrans xf86miscproto xf86vidmodeproto xf86bigfontproto [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto inputproto xf86dgaproto [kbproto >= 1.0.3]" ++fi + REQUIRED_LIBS="xfont xau fontenc" + + AM_CONDITIONAL(XV, [test "x$XV" = xyes]) +@@ -1603,7 +1607,9 @@ + AC_SUBST(XKB_COMPILED_DIR) + + dnl and the rest of these are generic, so they're in config.h ++if test ! x"$KDRIVE" = xyes; then + AC_DEFINE(XFreeXDGA, 1, [Build XDGA support]) ++fi + AC_DEFINE(XResExtension, 1, [Build XRes extension]) + + AC_TRY_COMPILE([ +@@ -1616,10 +1622,12 @@ + + AC_DEFINE_DIR(PROJECTROOT, prefix, [Overall prefix]) + ++if test ! "x$KDRIVE" = xyes ; then + dnl xorgconfig CLI configuration utility + PKG_CHECK_MODULES([XORGCONFIG_DEP], [xkbfile x11]) + AC_SUBST(XORGCONFIG_DEP_CFLAGS) + AC_SUBST(XORGCONFIG_DEP_LIBS) ++fi + + dnl xorgcfg GUI configuration utility + AC_ARG_ENABLE(xorgcfg, AS_HELP_STRING([--enable-xorgcfg], diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-epson.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-epson.patch new file mode 100644 index 0000000000..8ec3a37c78 --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-epson.patch @@ -0,0 +1,11 @@ +Index: xorg-server-1.2.0/hw/kdrive/Makefile.am +=================================================================== +--- xorg-server-1.2.0.orig/hw/kdrive/Makefile.am 2007-03-28 17:11:38.000000000 +0200 ++++ xorg-server-1.2.0/hw/kdrive/Makefile.am 2007-03-28 17:12:28.000000000 +0200 +@@ -1,5 +1,5 @@ + if KDRIVEFBDEV +-FBDEV_SUBDIRS = fbdev ++FBDEV_SUBDIRS = fbdev epson + endif + + if KDRIVEIMAGEON diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-tslib.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-tslib.patch new file mode 100644 index 0000000000..9a59530ed3 --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-tslib.patch @@ -0,0 +1,12 @@ +Index: xorg-server-1.2.0/configure.ac +=================================================================== +--- xorg-server-1.2.0.orig/configure.ac 2007-03-29 13:28:10.000000000 +0200 ++++ xorg-server-1.2.0/configure.ac 2007-03-29 13:28:35.000000000 +0200 +@@ -1517,6 +1517,7 @@ + AC_MSG_ERROR([tslib must be installed to build the tslib driver. See http://tslib.berlios.de/]) + fi + AC_DEFINE(TSLIB, 1, [Have tslib support]) ++ AC_DEFINE(TOUCHSCREEN, 1, [Have touchscreen support]) + fi + + # damage shadow extension glx (NOTYET) fb mi diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-xcalibrate.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-xcalibrate.patch new file mode 100644 index 0000000000..11931f83d6 --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-xcalibrate.patch @@ -0,0 +1,51 @@ +Index: xorg-server-1.2.0/mi/miinitext.c +=================================================================== +--- xorg-server-1.2.0.orig/mi/miinitext.c 2007-01-23 06:39:17.000000000 +0100 ++++ xorg-server-1.2.0/mi/miinitext.c 2007-03-30 11:28:44.000000000 +0200 +@@ -372,6 +372,9 @@ + #ifdef DMXEXT + extern void DMXExtensionInit(INITARGS); + #endif ++#ifdef XCALIBRATE ++extern void XCalibrateExtensionInit(INITARGS); ++#endif + #ifdef XEVIE + extern void XevieExtensionInit(INITARGS); + #endif +@@ -663,6 +666,9 @@ + #ifdef DAMAGE + if (!noDamageExtension) DamageExtensionInit(); + #endif ++#ifdef XCALIBRATE ++ XCalibrateExtensionInit (); ++#endif + } + + void +Index: xorg-server-1.2.0/include/kdrive-config.h.in +=================================================================== +--- xorg-server-1.2.0.orig/include/kdrive-config.h.in 2007-03-30 11:31:07.000000000 +0200 ++++ xorg-server-1.2.0/include/kdrive-config.h.in 2007-03-30 11:34:09.000000000 +0200 +@@ -22,6 +22,9 @@ + /* Support tslib touchscreen abstraction library */ + #undef TSLIB + ++/* Build XCalibrate extension */ ++#undef XCALIBRATE ++ + /* Verbose debugging output hilarity */ + #undef DEBUG + +Index: xorg-server-1.2.0/configure.ac +=================================================================== +--- xorg-server-1.2.0.orig/configure.ac 2007-03-30 12:47:25.000000000 +0200 ++++ xorg-server-1.2.0/configure.ac 2007-03-30 12:39:01.000000000 +0200 +@@ -1540,7 +1540,7 @@ + ;; + esac + KDRIVE_STUB_LIB='$(top_builddir)/hw/kdrive/src/libkdrivestubs.a' +- KDRIVE_LIBS="$DIX_LIB $KDRIVE_LIB $KDRIVE_OS_LIB $KDRIVE_PURE_LIBS $KDRIVE_STUB_LIB $TSLIB_LIBS" ++ KDRIVE_LIBS="$DIX_LIB $KDRIVE_LIB $KDRIVE_PURE_LIBS $KDRIVE_OS_LIB $KDRIVE_STUB_LIB $TSLIB_LIBS" + + # check if we can build Xephyr + PKG_CHECK_MODULES(XEPHYR, x11 xext xfont xau xdmcp, [xephyr="yes"], [xephyr="no"]) diff --git a/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/optional-xkb.patch b/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/optional-xkb.patch new file mode 100644 index 0000000000..a580b500b7 --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-kdrive-1.3.0.0/optional-xkb.patch @@ -0,0 +1,58 @@ +Index: xorg-server-1.2.0/Makefile.am +=================================================================== +--- xorg-server-1.2.0.orig/Makefile.am 2007-01-23 06:39:15.000000000 +0100 ++++ xorg-server-1.2.0/Makefile.am 2007-03-28 20:26:19.000000000 +0200 +@@ -30,6 +30,10 @@ + XINPUT_DIR=Xi + endif + ++if XKB ++XKB_DIR=xkb ++endif ++ + if DBE + DBE_DIR=dbe + endif +@@ -46,7 +50,7 @@ + randr \ + render \ + $(XINPUT_DIR) \ +- xkb \ ++ $(XKB_DIR) \ + $(DBE_DIR) \ + $(MFB_DIR) \ + $(AFB_DIR) \ +Index: xorg-server-1.2.0/configure.ac +=================================================================== +--- xorg-server-1.2.0.orig/configure.ac 2007-01-23 06:39:15.000000000 +0100 ++++ xorg-server-1.2.0/configure.ac 2007-03-28 20:27:13.000000000 +0200 +@@ -428,6 +428,7 @@ + AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes]) + AC_ARG_ENABLE(xinput, AS_HELP_STRING([--disable-xinput], [Build XInput Extension (default: enabled)]), [XINPUT=$enableval], [XINPUT=yes]) + AC_ARG_ENABLE(xfree86-utils, AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes]) ++AC_ARG_ENABLE(xkb, AS_HELP_STRING([--disable-xkb], [Build XKB (default: enabled)]), [XKB=$enableval], [XKB=yes]) + + dnl DDXes. + AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto]) +@@ -754,12 +755,15 @@ + + AC_DEFINE(SHAPE, 1, [Support SHAPE extension]) + +-AC_DEFINE(XKB, 1, [Build XKB]) +-AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server]) +-AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default]) +-REQUIRED_MODULES="$REQUIRED_MODULES xkbfile" +-XKB_LIB='$(top_builddir)/xkb/libxkb.la' +-XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la' ++AM_CONDITIONAL(XKB, [test "x$XKB" = xyes]) ++if test "x$XKB" = xyes; then ++ AC_DEFINE(XKB, 1, [Build XKB]) ++ AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server]) ++ AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default]) ++ REQUIRED_MODULES="$REQUIRED_MODULES xkbfile" ++ XKB_LIB='$(top_builddir)/xkb/libxkb.la' ++ XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la' ++fi + + AC_CHECK_FUNC(strcasecmp, [], AC_DEFINE([NEED_STRCASECMP], 1, + [Do not have `strcasecmp'.])) diff --git a/meta/packages/xorg-xserver/xserver-kdrive-common.inc b/meta/packages/xorg-xserver/xserver-kdrive-common.inc new file mode 100644 index 0000000000..02df9d2d4e --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-kdrive-common.inc @@ -0,0 +1,124 @@ +LICENSE = "MIT" +DEPENDS = "compositeproto damageproto fixesproto recordproto resourceproto scrnsaverproto videoproto xextproto xproto \ + libxau libxext libxdmcp libxfont libxrandr tslib virtual/libsdl virtual/libx11 xtrans" + +PROVIDES = "virtual/xserver" +RPROVIDES = "virtual/xserver" +PACKAGES =+ "xserver-kdrive-fbdev \ + xserver-kdrive-sdl \ + xserver-kdrive-fake \ + xserver-kdrive-xephyr \ + xserver-kdrive-epson \ + xserver-kdrive-ati \ + xserver-kdrive-chips \ + xserver-kdrive-i810 \ + xserver-kdrive-mach64 \ + xserver-kdrive-mga \ + xserver-kdrive-neomagic \ + xserver-kdrive-nvidia \ + xserver-kdrive-pm2 \ + xserver-kdrive-r128 \ + xserver-kdrive-smi \ + xserver-kdrive-vesa \ + xserver-kdrive-via \ + xserver-kdrive-w100 \ + " + +SECTION = "x11/base" +DESCRIPTION = "X server from freedesktop.org" +DESCRIPTION_xserver-kdrive-fbdev = "X server from freedesktop.org, supporting generic framebuffer devices" +DESCRIPTION_xserver-kdrive-fake = "Fake X server" +DESCRIPTION_xserver-kdrive-xephyr = "X server in an X window" +DESCRIPTION_xserver-kdrive-epson = "X server from freedesktop.org, supporting Epson S1D13806 devices" +DESCRIPTION_xserver-kdrive-sdl = "X server from freedesktop.org, SDL version" +DESCRIPTION_xserver-kdrive-w100 = "X server from freedesktop.org, supporting the ATI imageon w100 chipset" +DESCRIPTION_xserver-kdrive-ati = "X server from freedesktop.org, supporting ATI devices" +DESCRIPTION_xserver-kdrive-chips = "X server from freedesktop.org, supporting Chips chipsets" +DESCRIPTION_xserver-kdrive-i810 = "X server from freedesktop.org, supporting Intel chipsets" +DESCRIPTION_xserver-kdrive-imageon = "X server from freedesktop.org, supporting the ATI imageon 100 chipset" +DESCRIPTION_xserver-kdrive-mach64 = "X server from freedesktop.org, supporting mach64 chipsets" +DESCRIPTION_xserver-kdrive-mga = "X server from freedesktop.org, supporting mga chipsets" +DESCRIPTION_xserver-kdrive-neomagic = "X server from freedesktop.org, supporting neomagic chipsets" +DESCRIPTION_xserver-kdrive-nvidia = "X server from freedesktop.org, supporting nvidia devices" +DESCRIPTION_xserver-kdrive-pm2 = "X server from freedesktop.org, supporting Permedia2 chipsets" +DESCRIPTION_xserver-kdrive-r128 = "X server from freedesktop.org, supporting rage128 chipsets" +DESCRIPTION_xserver-kdrive-smi = "X server from freedesktop.org, supporting Silicon Motion devices" +DESCRIPTION_xserver-kdrive-vesa = "X server from freedesktop.org, supporting any card with a VESA, VGA or even EGA BIOS. x86 hardware only" +DESCRIPTION_xserver-kdrive-via = "X server from freedesktop.org, supporting VIA chipsets" + +FILES_${PN} += "${libdir}/xserver/SecurityPolicy" + +FILES_xserver-kdrive-fbdev = "${bindir}/Xfbdev" +FILES_xserver-kdrive-fake = "${bindir}/Xfake" +FILES_xserver-kdrive-xephyr = "${bindir}/Xephyr" +FILES_xserver-kdrive-epson = "${bindir}/Xepson" +FILES_xserver-kdrive-sdl = "${bindir}/Xsdl" +FILES_xserver-kdrive-w100 = "${bindir}/Xw100" +FILES_xserver-kdrive-ati = "${bindir}/Xati" +FILES_xserver-kdrive-chips = "${bindir}/Xchips" +FILES_xserver-kdrive-i810 = "${bindir}/Xi810" +FILES_xserver-kdrive-imageon = "${bindir}/Ximageon" +FILES_xserver-kdrive-mach64 = "${bindir}/Xmach64" +FILES_xserver-kdrive-mga = "${bindir}/Xmga" +FILES_xserver-kdrive-neomagic = "${bindir}/Xneomagic" +FILES_xserver-kdrive-nvidia = "${bindir}/Xnvidia" +FILES_xserver-kdrive-pm2 = "${bindir}/Xpm2" +FILES_xserver-kdrive-r128 = "${bindir}/Xr128" +FILES_xserver-kdrive-smi = "${bindir}/Xsmi" +FILES_xserver-kdrive-vesa = "${bindir}/Xvesa" +FILES_xserver-kdrive-via = "${bindir}/Xvia" + +RDEPENDS_xserver-kdrive-fbdev = "${PN}" +RDEPENDS_xserver-kdrive-fake = "${PN}" +RDEPENDS_xserver-kdrive-xephyr = "${PN}" +RDEPENDS_xserver-kdrive-epson = "${PN}" +RDEPENDS_xserver-kdrive-sdl = "${PN}" +RDEPENDS_xserver-kdrive-w100 = "${PN}" +RDEPENDS_xserver-kdrive-ati = "${PN}" +RDEPENDS_xserver-kdrive-chips = "${PN}" +RDEPENDS_xserver-kdrive-i810 = "${PN}" +RDEPENDS_xserver-kdrive-mach64 = "${PN}" +RDEPENDS_xserver-kdrive-mga = "${PN}" +RDEPENDS_xserver-kdrive-neomagic = "${PN}" +RDEPENDS_xserver-kdrive-nvidia = "${PN}" +RDEPENDS_xserver-kdrive-pm2 = "${PN}" +RDEPENDS_xserver-kdrive-r128 = "${PN}" +RDEPENDS_xserver-kdrive-smi = "${PN}" +RDEPENDS_xserver-kdrive-vesa = "${PN}" +RDEPENDS_xserver-kdrive-via = "${PN}" + +SRC_URI ?= "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ + ${KDRIVE_COMMON_PATCHES}" +KDRIVE_COMMON_PATCHES = " \ + file://kmode.patch;patch=1 \ + file://disable-apm.patch;patch=1 \ + file://no-serial-probing.patch;patch=1 \ + file://kdrive-evdev.patch;patch=1 \ + file://kdrive-use-evdev.patch;patch=1 \ + file://fbdev-not-fix.patch;patch=1 \ + file://enable-builtin-fonts.patch;patch=1 \ + file://disable-xf86-dga-xorgcfg.patch;patch=1 \ + file://optional-xkb.patch;patch=1 \ + file://enable-epson.patch;patch=1 \ + file://enable-tslib.patch;patch=1 \ + file://kmode-palm.patch;patch=1 \ + " + +SRC_URI_append_mnci = " file://onlyfb.patch;patch=1" +SRC_URI_append_poodle = " file://xserver-kdrive-poodle.patch;patch=1" +PACKAGE_ARCH_poodle = "poodle" + +inherit autotools pkgconfig + +ARM_INSTRUCTION_SET = "arm" + +EXTRA_OECONF = "--enable-composite --enable-kdrive \ + --disable-dga --disable-dri --disable-xinerama \ + --disable-xf86misc --disable-xf86vidmode \ + --disable-xorg --disable-xorgcfg \ + --disable-xkb --disable-xnest --disable-xvfb \ + --disable-xevie --disable-xprint --disable-xtrap \ + --disable-dmx ${W100_OECONF} ${IMAGEON_OECONF} \ + --with-default-font-path=built-ins \ + --enable-tslib --enable-xcalibrate \ + ac_cv_file__usr_share_X11_sgml_defs_ent=no" diff --git a/meta/packages/xorg-xserver/xserver-kdrive/build-fix-panoramix.patch b/meta/packages/xorg-xserver/xserver-kdrive/build-fix-panoramix.patch new file mode 100644 index 0000000000..f919b48f0e --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-kdrive/build-fix-panoramix.patch @@ -0,0 +1,18 @@ +Index: git/composite/compext.c +=================================================================== +--- git.orig/composite/compext.c 2007-03-28 16:25:12.000000000 +0200 ++++ git/composite/compext.c 2007-03-28 16:25:15.000000000 +0200 +@@ -696,11 +696,13 @@ + if (GetPictureScreenIfSet(pScreen) == NULL) + return; + } ++#ifdef PANORAMIX + /* Xinerama's rewriting of window drawing before Composite gets to it + * breaks Composite. + */ + if (!noPanoramiXExtension) + return; ++#endif + + CompositeClientWindowType = CreateNewResourceType (FreeCompositeClientWindow); + if (!CompositeClientWindowType) diff --git a/meta/packages/xorg-xserver/xserver-kdrive/enable-epson.patch b/meta/packages/xorg-xserver/xserver-kdrive/enable-epson.patch new file mode 100644 index 0000000000..63b13a4511 --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-kdrive/enable-epson.patch @@ -0,0 +1,11 @@ +--- /tmp/Makefile.am 2006-08-30 09:51:21.000000000 +0200 ++++ git/hw/kdrive/Makefile.am 2006-08-30 09:51:44.425780000 +0200 +@@ -4,7 +4,7 @@ + endif + + if KDRIVEFBDEV +-FBDEV_SUBDIRS = fbdev ++FBDEV_SUBDIRS = fbdev epson + endif + + if XSDLSERVER diff --git a/meta/packages/xorg-xserver/xserver-kdrive/kdrive-imageon.patch b/meta/packages/xorg-xserver/xserver-kdrive/kdrive-imageon.patch new file mode 100644 index 0000000000..f4272f80e0 --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-kdrive/kdrive-imageon.patch @@ -0,0 +1,8851 @@ +# Author: Manuel Teira <manuel.teira@telefonica.net> (sirfred in #oe) +# Description: New driver for the Imageon ATI Card. Implementing: +# -Hardware solid fills +# -Hardware bitblt +# -Hardware cursors +# -XV Extension +# -Internal and External Imageon offscreen memory support +# -Hardware RandR rotation (without using a shadow framebuffer) +# -Support for RandR mode changing + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- xorg-server-X11R7.1-1.1.0.work/configure.ac~kdrive-imageon ++++ xorg-server-X11R7.1-1.1.0.work/configure.ac +@@ -435,6 +435,7 @@ + AC_ARG_ENABLE(kdrive, AS_HELP_STRING([--enable-kdrive], [Build kdrive servers (default: no)]), [KDRIVE=$enableval], [KDRIVE=no]) + AC_ARG_ENABLE(xephyr, AS_HELP_STRING([--enable-xephyr], [Build the kdrive Xephyr server (default: auto)]), [XEPHYR=$enableval], [XEPHYR=auto]) + AC_ARG_ENABLE(xsdl, AS_HELP_STRING([--enable-xsdl], [Build the kdrive Xsdl server (default: auto)]), [XSDL=$enableval], [XSDL=auto]) ++AC_ARG_ENABLE(imageon, AS_HELP_STRING([--enable-imageon], [Build the kdrive Ximageon server (default: no)]), [KDRIVEIMAGEON=$enableval], [KDRIVEIMAGEON=no]) + dnl xprint + AC_ARG_ENABLE(freetype, AS_HELP_STRING([ --enable-freetype], [Build Xprint FreeType backend (default: yes)]), [XP_USE_FREETYPE=$enableval],[XP_USE_FREETYPE=no]) + AC_ARG_WITH(freetype-config, AS_HELP_STRING([ --with-freetype-config=PROG], [Use FreeType configuration program PROG (default: auto)]), freetype_config=$withval, freetype_config=auto) +@@ -1509,6 +1510,11 @@ + AC_SUBST([XSDL_INCS]) + + ++AM_CONDITIONAL(KDRIVEIMAGEON, [test "x$KDRIVEIMAGEON" = xyes]) ++if test "x$KDRIVEIMAGEON" = xyes; then ++ AC_DEFINE(KDRIVEIMAGEON, 1, [Build Ximageon server]) ++fi ++ + dnl these only go in xkb-config.h (which is shared by the Xorg and Xnest servers) + AC_DEFINE(__XKBDEFRULES__, "xorg", [Default XKB rules]) + AC_DEFINE_DIR(XKB_BASE_DIRECTORY, XKBPATH, [Path to XKB data]) +@@ -1750,6 +1756,7 @@ + hw/kdrive/epson/Makefile + hw/kdrive/fake/Makefile + hw/kdrive/fbdev/Makefile ++hw/kdrive/imageon/Makefile + hw/kdrive/i810/Makefile + hw/kdrive/linux/Makefile + hw/kdrive/mach64/Makefile +--- xorg-server-X11R7.1-1.1.0.work/hw/kdrive/Makefile.am~kdrive-imageon ++++ xorg-server-X11R7.1-1.1.0.work/hw/kdrive/Makefile.am +@@ -1,18 +1,9 @@ +-if KDRIVEVESA +-VESA_SUBDIRS = vesa ati chips epson i810 mach64 mga neomagic nvidia pm2 r128 \ +- smi via +-endif +- + if KDRIVEFBDEV + FBDEV_SUBDIRS = fbdev + endif + +-if XSDLSERVER +-XSDL_SUBDIRS = sdl +-endif +- +-if XEPHYR +-XEPHYR_SUBDIRS = ephyr ++if KDRIVEIMAGEON ++IMAGEON_SUBDIRS = imageon + endif + + SUBDIRS = \ +@@ -20,9 +11,9 @@ + linux \ + $(XSDL_SUBDIRS) \ + $(FBDEV_SUBDIRS) \ ++ $(IMAGEON_SUBDIRS) \ + $(VESA_SUBDIRS) \ +- $(XEPHYR_SUBDIRS) \ +- fake ++ $(XEPHYR_SUBDIRS) + + DIST_SUBDIRS = vesa ati chips epson i810 mach64 mga neomagic nvidia pm2 r128 \ + smi via fbdev sdl ephyr src linux fake sis300 +--- /dev/null ++++ xorg-server-X11R7.1-1.1.0.work/hw/kdrive/imageon/Makefile.am +@@ -0,0 +1,47 @@ ++if KDRIVEFBDEV ++FBDEV_INCLUDES =-I$(top_srcdir)/hw/kdrive/fbdev ++FBDEV_LIBS = $(top_builddir)/hw/kdrive/fbdev/libfbdev.a ++endif ++ ++INCLUDES = \ ++ @KDRIVE_INCS@ \ ++ $(FBDEV_INCLUDES) \ ++ @KDRIVE_CFLAGS@ ++ ++bin_PROGRAMS = Ximageon ++ ++if TSLIB ++TSLIB_FLAG = -lts ++endif ++ ++noinst_LIBRARIES = libimageon.a ++ ++libimageon_a_SOURCES = \ ++ imageon.h \ ++ imageon_regs.h \ ++ imageon_const.h \ ++ imageon.c \ ++ imageon_cursor.c \ ++ imageon_draw.c \ ++ imageon_support.c \ ++ imageon_video.c ++ ++ ++ ++Ximageon_SOURCES = \ ++ imageon_stub.c ++ ++W100_LIBS = \ ++ libimageon.a \ ++ $(FBDEV_LIBS) \ ++ @KDRIVE_LIBS@ ++ ++Ximageon_LDADD = \ ++ $(W100_LIBS) \ ++ @XSERVER_LIBS@ \ ++ $(TSLIB_FLAG) ++ ++ ++Ximageon_DEPENDENCIES = \ ++ libimageon.a \ ++ $(FBDEV_LIBS) +--- /dev/null ++++ xorg-server-X11R7.1-1.1.0.work/hw/kdrive/imageon/imageon.c +@@ -0,0 +1,606 @@ ++/* ++ * Copyright © 2007 Manuel Teira ++ * ++ * Permission to use, copy, modify, distribute, and sell this software and its ++ * documentation for any purpose is hereby granted without fee, provided that ++ * the above copyright notice appear in all copies and that both that ++ * copyright notice and this permission notice appear in supporting ++ * documentation, and that the name of Manuel Teira not be used in ++ * advertising or publicity pertaining to distribution of the software without ++ * specific, written prior permission. Manuel Teira makes no ++ * representations about the suitability of this software for any purpose. It ++ * is provided "as is" without express or implied warranty. ++ * ++ * MANUEL TEIRA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, ++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO ++ * EVENT SHALL MANUEL TEIRA BE LIABLE FOR ANY SPECIAL, INDIRECT OR ++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER 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. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include <kdrive-config.h> ++#endif ++#include "imageon.h" ++#include "imageon_regs.h" ++#include "imageon_support.h" ++ ++W100CardEntry w100_cards[] = { ++ {0x1002, 0x5644, 0, "ATI Imageon 3200"}, ++ {0x1002, 0x5741, W100XVSupport, "ATI Imageon 100"}, ++ {0x1002, 0x5744, 0, "ATI Imageon 3220"}, ++ {0, 0, 0, NULL} ++}; ++ ++W100ModeSpec w100_modes[] = { ++ {800, 600, 16, W100_EXTMEM, FALSE}, ++ {640, 480, 16, W100_EXTMEM, FALSE}, ++ {320, 240, 16, W100_INTMEM, FALSE}, ++ { 0, 0, 0, 0, FALSE} ++}; ++ ++W100StartupInfo w100StartupInfo; ++ ++extern void (*tslib_transform_coords)(long *x, long *y, void *closure); ++extern void *tslib_transform_closure; ++ ++static void ++W100Startup(W100CardInfo *w100c) ++{ ++ int i; ++ DBG_IMAGEON(("--W100Startup\n")); ++ W100ModeSpec *modes; ++ /* Take the current graphics mode */ ++ if (!W100GetFbMode(w100c, &w100StartupInfo.mode)) { ++ ErrorF("(E) Unable to get current mode\n"); ++ } ++ w100StartupInfo.randr = W100GetRotation(w100c); ++ w100StartupInfo.portrait = w100StartupInfo.mode.width < w100StartupInfo.mode.height; ++ ++ /* Test the valid modes */ ++ for (modes = w100_modes; modes->width; modes++) { ++ modes->supported = W100CheckFbMode(w100c, modes); ++ } ++ ++ DBG_IMAGEON(("Startup Mode: %dx%d@%d, rot: %d, portrait: %s\n", ++ w100StartupInfo.mode.width, ++ w100StartupInfo.mode.height, ++ w100StartupInfo.mode.bpp, ++ w100StartupInfo.randr, ++ w100StartupInfo.portrait ? "Yes" : "No")); ++ ++ /* Tell the kernel to never switch off external memory */ ++ W100SysFsSet(w100c, W100_SYSFS_BASE "extmem", "1"); ++ ++ /* Disable framebuffer accel */ ++ W100SysFsSet(w100c, W100_SYSFS_BASE "accel", "0"); ++ ++ /* Enable fastsysclk */ ++ W100SysFsSet(w100c, W100_SYSFS_BASE "fastpllclk", "1"); ++ ++} ++ ++ ++static Bool ++W100Map(KdCardInfo * card, W100CardInfo *w100c) ++{ ++ DBG_IMAGEON(("--W100Map\n")); ++ w100c->mem_base = (CARD8 *) KdMapDevice(W100_MEM_BASE, W100_MEM_SIZE); ++ ++ if (w100c->mem_base == NULL) { ++ return FALSE; ++ } ++ ++ w100c->reg_base = w100c->mem_base + W100_REG_OFFSET; ++ ++ /* ++ * It doesn't matter mapping all the area as registers. ++ * There's only difference when HAVE_ASM_MTRR_H is defined. ++ * So, this call is doing nothing. ++ */ ++ KdSetMappedMode(W100_MEM_BASE, W100_MEM_SIZE, KD_MAPPED_MODE_REGISTERS); ++ ++ return TRUE; ++} ++ ++static void ++W100Unmap(KdCardInfo * card, W100CardInfo *w100c) ++{ ++ DBG_IMAGEON(("--W100Unmap\n")); ++ if (w100c->mem_base) { ++ KdResetMappedMode(W100_MEM_BASE, W100_MEM_SIZE, ++ KD_MAPPED_MODE_REGISTERS); ++ KdUnmapDevice((void *) w100c->mem_base, W100_MEM_SIZE); ++ w100c->mem_base = w100c->reg_base = 0; ++ } ++} ++ ++static void W100MemSetup(W100CardInfo *w100c) ++{ ++ int reg_value; ++ int int_start, int_size; ++ int ext_start, ext_size; ++ int i; ++ DBG_IMAGEON(("--W100MemSetup\n")); ++ ++ for (i = 0; i < w100c->num_memareas; i++) { ++ xfree(w100c->memareas[i]); ++ } ++ xfree(w100c->memareas); ++ ++ reg_value = MMIO_IN32(mmMC_FB_LOCATION); ++ int_start = (reg_value & 0xffff) << 8; ++ int_size = (((reg_value >> 16) & 0xffff) - (reg_value & 0xffff)) << 8; ++ DBG_IMAGEON(("(I) MC_FB_LOCATION: 0x%08x. Start: 0x%08x, size: %d\n", ++ reg_value, int_start, int_size)); ++ ++ reg_value = MMIO_IN32(mmMC_EXT_MEM_LOCATION); ++ ext_start = (reg_value & 0xffff) << 8; ++ ext_size = (((reg_value >> 16) & 0xffff) - (reg_value & 0xffff)) << 8; ++ DBG_IMAGEON(("(I) MC_EXT_MEM_LOCATION: 0x%08x. Start: 0x%08x, size: %d\n", ++ reg_value, ext_start, ext_size)); ++ ++ w100c->num_memareas = (ext_size > 0) ? 2 : 1; ++ w100c->memareas = xcalloc(sizeof(W100MemArea *), w100c->num_memareas); ++ ++ w100c->memareas[W100_INTMEM] = xcalloc(sizeof(W100MemArea), 1); ++ w100c->memareas[W100_INTMEM]->priority = KD_VIDMEM_MAXPRIO; ++ w100c->memareas[W100_INTMEM]->start = (CARD8 *) int_start; ++ w100c->memareas[W100_INTMEM]->size = int_size; ++ ++ if (w100c->num_memareas == 2) { ++ w100c->memareas[W100_EXTMEM] = xcalloc(sizeof(W100MemArea), 1); ++ w100c->memareas[W100_EXTMEM]->priority = KD_VIDMEM_MINPRIO; ++ w100c->memareas[W100_EXTMEM]->start = (CARD8 *) ext_start; ++ w100c->memareas[W100_EXTMEM]->size = ext_size; ++ } ++ ++ for (i = 0; i < w100c->num_memareas; i++) { ++ DBG_IMAGEON(("(I) Memory mapped at 0x%08x(0x%08x), size %d bytes\n", ++ W100_CARD2HOST(w100c->memareas[i]->start), ++ w100c->memareas[i]->start, ++ w100c->memareas[i]->size)); ++ } ++ ++} ++ ++static Bool ++W100CardInit(KdCardInfo * card) ++{ ++ W100CardInfo *w100c; ++ ++ W100CardEntry *model = &w100_cards[0]; ++ static Bool initialized = FALSE; ++ ++ DBG_IMAGEON(("--W100CardInit\n")); ++ ++ w100c = xcalloc(sizeof(W100CardInfo), 1); ++ if (w100c == NULL) ++ return FALSE; ++ ++ if (!fbdevInitialize(card, &w100c->fbdev)) { ++ return FALSE; ++ } ++ ++ if (!W100Map(card, w100c)) { ++ xfree(w100c); ++ return FALSE; ++ } ++ card->driver = w100c; ++ ++ while (model->name) { ++ if (model->device == card->attr.deviceID) { ++ w100c->card_id = model; ++ break; ++ } ++ model++; ++ } ++ ++ ErrorF("(I) Using ATI card: %s\n", w100c->card_id->name); ++ ++ if (!initialized) { ++ initialized = TRUE; ++ W100Startup(w100c); ++ } ++ ++ w100c->hw_window.mode = W100GetModeSpec(w100c, &w100StartupInfo.mode); ++ w100c->hw_window.randr = w100StartupInfo.randr; ++ ++ tslib_transform_closure = w100c; ++ tslib_transform_coords = W100TransformTsLibCoordinates; ++ return TRUE; ++} ++ ++ ++static void ++W100CardFini(KdCardInfo * card) ++{ ++ W100CardInfo *w100c = (W100CardInfo *) card->driver; ++ ++ DBG_IMAGEON(("--W100CardFini\n")); ++ W100Unmap(card, w100c); ++ fbdevCardFini(card); ++} ++ ++static void ++W100Setup(KdScreenInfo *screen) ++{ ++ W100CardInfo(screen); ++ W100MemArea *mem; ++ KdMouseMatrix m; ++ int fb_size, i; ++ ++ DBG_IMAGEON(("--W100Setup\n")); ++ ++ /* Adjust mode */ ++ w100c->hw_window.width = screen->width; ++ w100c->hw_window.height = screen->height; ++ w100c->hw_window.bpp = screen->fb[0].bitsPerPixel; ++ W100SetupGraphicWindow(w100c); ++ ++ /* Get some register values */ ++ w100c->regs.ENG_CNTL = MMIO_IN32(mmENG_CNTL); ++ w100c->regs.VIDEO_CTRL = MMIO_IN32(mmVIDEO_CTRL); ++ w100c->regs.GRAPHIC_H_DISP = MMIO_IN32(mmGRAPHIC_H_DISP); ++ w100c->regs.GRAPHIC_V_DISP = MMIO_IN32(mmGRAPHIC_V_DISP); ++ w100c->regs.DISP_DEBUG2 = MMIO_IN32(mmDISP_DEBUG2); ++ ++ W100MemSetup(w100c); ++ ++ /* Clear the VideoMemAreas set up by the framebuffer initialization */ ++ for (i = 0; i < screen->num_videomem_areas; i++) { ++ xfree(screen->videomem_areas[i]); ++ } ++ xfree(screen->videomem_areas); ++ ++ screen->videomem_areas = xcalloc(sizeof(KdVideoMemArea *), ++ w100c->num_memareas); ++ screen->num_videomem_areas = w100c->num_memareas; ++ ++ screen->fb[0].byteStride = screen->width * screen->fb[0].bitsPerPixel / 8; ++ fb_size = screen->fb[0].byteStride * screen->height; ++ ++ DBG_IMAGEON(("(I) Framebuffer required size: %d bytes\n", fb_size)); ++ ++ for (i = 0; i < w100c->num_memareas; i++) { ++ mem = w100c->memareas[i]; ++ screen->videomem_areas[i] = xcalloc(sizeof(KdVideoMemArea), 1); ++ screen->videomem_areas[i]->priority = mem->priority; ++ screen->videomem_areas[i]->base = W100_CARD2HOST(mem->start); ++ screen->videomem_areas[i]->size = mem->size; ++ if (w100c->hw_window.mode->fbpool == i) { ++ DBG_IMAGEON(("(I) FrameBuffer in w100 memzone 0x%08x(0x%08x)\n", ++ W100_CARD2HOST(mem->start), mem->start)); ++ screen->videomem_areas[i]->available_offset = fb_size; ++ screen->fb[0].frameBuffer = W100_CARD2HOST(mem->start); ++ } else { ++ screen->videomem_areas[i]->available_offset = 0; ++ } ++ DBG_IMAGEON(("New videomem_area(priority:%d, start:0x%08x, size:%d, available_offset:%d\n", ++ screen->videomem_areas[i]->priority, ++ screen->videomem_areas[i]->base, ++ screen->videomem_areas[i]->size, ++ screen->videomem_areas[i]->available_offset)); ++ } ++ ++ ++ w100c->hw_window.offset = W100_HOST2CARD(screen->fb[0].frameBuffer); ++ ++ KdComputeMouseMatrix(&m, screen->randr, ++ w100StartupInfo.portrait ? ++ W100_MIN(screen->width, screen->height) : ++ W100_MAX(screen->width, screen->height), ++ w100StartupInfo.portrait ? ++ W100_MAX(screen->width, screen->height) : ++ W100_MIN(screen->width, screen->height)); ++ ++ KdSetMouseMatrix(&m); ++ ++ DBG_IMAGEON(("Window(width:%d,height:%d,bpp:%d,offset:0x%08x" ++ "(0x%08x), randr:%d)\n", ++ w100c->hw_window.width, ++ w100c->hw_ |
