diff options
24 files changed, 1174 insertions, 91 deletions
diff --git a/classes/nslu2-image.bbclass b/classes/nslu2-image.bbclass index 33caa54b21..8be1fa762f 100644 --- a/classes/nslu2-image.bbclass +++ b/classes/nslu2-image.bbclass @@ -19,5 +19,5 @@ nslu2_pack_image () { -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-nslu2-16mb.bin } -EXTRA_IMAGEDEPENDS += 'slugimage-native nslu2-linksys-firmware ixp4xx-npe upslug2-native apex-nslu2 apex-nslu2-16mb' +EXTRA_IMAGEDEPENDS += 'slugimage-native nslu2-linksys-firmware ixp4xx-npe apex-nslu2 apex-nslu2-16mb' IMAGE_POSTPROCESS_COMMAND += "nslu2_pack_image; " diff --git a/conf/machine/include/ixp4xx.inc b/conf/machine/include/ixp4xx.inc index 743b7ad362..6e7d303586 100644 --- a/conf/machine/include/ixp4xx.inc +++ b/conf/machine/include/ixp4xx.inc @@ -2,24 +2,15 @@ #@NAME: ixp4xx #@DESCRIPTION: genric machine configuration for ixp4xx platforms -# Set default for nslu2 - can be overridden for machines with other features. +# Set default for common ixp4xx-based machines MACHINE_FEATURES ?= "kernel26 usbhost ext2 redboot apex" +# Select an appropriate default kernel PREFERRED_PROVIDER_virtual/kernel ?= "linux-ixp4xx" PREFERRED_VERSION_linux-ixp4xx ?= "2.6.21.6+svnr${SRCREV}" -# Add modules required for basic networking support - -MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= " \ - ixp4xx-npe \ - " - -MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= " \ - kernel-module-mii \ - kernel-module-ixp4xx-mac \ - kernel-module-ixp4xx-qmgr \ - kernel-module-via-velocity \ - " +# Add packages required for basic networking support +MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "ixp4xx-npe" # Set default for 16MB machines - can be overridden for more or less flash. ROOT_FLASH_SIZE ?= "12" @@ -27,7 +18,7 @@ ROOT_FLASH_SIZE ?= "12" # Allow for rootfs loaded direct from internal hard disk IMAGE_FSTYPES ?= "jffs2 tar.gz" -# Set default for nslu2, nas100d, dsmg600 +# Set default for common ixp4xx-based machines EXTRA_IMAGECMD_jffs2 = "--pad --eraseblock=0x20000 -n" require conf/machine/include/tune-xscale.inc diff --git a/conf/machine/mpc8313e-rdb.conf b/conf/machine/mpc8313e-rdb.conf index 3c47b53b56..81c3e29e91 100644 --- a/conf/machine/mpc8313e-rdb.conf +++ b/conf/machine/mpc8313e-rdb.conf @@ -13,6 +13,9 @@ MACHINE_FEATURES = "kernel26 usbhost ext2" PREFERRED_VERSION_u-boot = "1.3.0" UBOOT_MACHINE = "MPC8313ERDB_33_config" +#rootfs on NAND flash +EXTRA_IMAGECMD_jffs2 = "--pad --big-endian --eraseblock=0x4000 --no-cleanmarkers" + #don't try to access tty1 USE_VT = "0" diff --git a/packages/devmem2/devmem2.bb b/packages/devmem2/devmem2.bb index 64de9fcbf3..56095f5c99 100644 --- a/packages/devmem2/devmem2.bb +++ b/packages/devmem2/devmem2.bb @@ -1,3 +1,4 @@ +DESCRIPTION = "Simple program to read/write from/to any location in memory." SRC_URI = "http://www.abcsinc.com/small-linux/devmem2.c" LICENSE = "GPL" diff --git a/packages/directfb/directfb-examples_1.0.0.bb b/packages/directfb/directfb-examples_1.0.0.bb index 8a792b4ae4..064a808273 100644 --- a/packages/directfb/directfb-examples_1.0.0.bb +++ b/packages/directfb/directfb-examples_1.0.0.bb @@ -3,8 +3,10 @@ DEPENDS = "directfb" SECTION = "libs" LICENSE = "GPL" -SRC_URI = "http://www.directfb.org/downloads/Extras/DirectFB-extra-${PV}.tar.gz" -S = "${WORKDIR}/DirectFB-extra-${PV}" +SRC_URI = " \ + http://www.directfb.org/downloads/Extras/DirectFB-examples-${PV}.tar.gz \ + " +S = "${WORKDIR}/DirectFB-examples-${PV}" inherit autotools diff --git a/packages/directfb/directfb_1.1.0.bb b/packages/directfb/directfb_1.1.0.bb index 84772b6a25..2c600b409f 100644 --- a/packages/directfb/directfb_1.1.0.bb +++ b/packages/directfb/directfb_1.1.0.bb @@ -10,12 +10,15 @@ DEPENDS = "jpeg libpng freetype zlib tslib" PR = "r1" RV = "1.1-0" -SRC_URI = "http://www.directfb.org/download/DirectFB/DirectFB-${PV}.tar.gz \ - file://fix-pkgconfig-cflags.patch;patch=1 \ - file://fix-font-missing-char.patch;patch=1 \ - file://getpagesize.patch;patch=1 \ - file://fix-includes.patch;patch=1 \ - file://mkdfiff.patch;patch=1" +SRC_URI = " \ + http://www.directfb.org/download/DirectFB/DirectFB-${PV}.tar.gz \ + file://fix-configure-include-path.patch;patch=1 \ + file://fix-pkgconfig-cflags.patch;patch=1 \ + file://fix-font-missing-char.patch;patch=1 \ + file://getpagesize.patch;patch=1 \ + file://fix-includes.patch;patch=1 \ + file://mkdfiff.patch;patch=1 \ + " S = "${WORKDIR}/DirectFB-${PV}" @@ -23,11 +26,12 @@ LDFLAGS_append =" -lts -lm" inherit autotools pkgconfig -EXTRA_OECONF = "--with-gfxdrivers=none \ +EXTRA_OECONF = " \ + --with-gfxdrivers=none \ --enable-libmpeg3=no \ --enable-freetype=yes \ --enable-sdl=no \ - --enable-vnc=no \ + --enable-vnc=no \ --disable-x11 \ " diff --git a/packages/directfb/files/fix-configure-include-path.patch b/packages/directfb/files/fix-configure-include-path.patch new file mode 100644 index 0000000000..f9bbff8b00 --- /dev/null +++ b/packages/directfb/files/fix-configure-include-path.patch @@ -0,0 +1,13 @@ +--- DirectFB-1.1.0/configure.in-orig 2007-08-27 00:07:00.000000000 -0700 ++++ DirectFB-1.1.0/configure.in 2007-11-26 12:05:52.000000000 -0800 +@@ -1380,8 +1380,8 @@ + + MODULEDIR=$libdir/$MODULEDIRNAME + DATADIR=$datadir/directfb-$VERSION +-INCLUDEDIR=$includedir/directfb +-INTERNALINCLUDEDIR=$includedir/directfb-internal ++INCLUDEDIR=$includedir/ ++INTERNALINCLUDEDIR=$includedir/ + + SOPATH=$libdir/libdirectfb-$LT_RELEASE.so.$LT_CURRENT + AC_SUBST(SOPATH) diff --git a/packages/gtk-webcore/midori_0.0.12.bb b/packages/gtk-webcore/midori_0.0.12.bb new file mode 100644 index 0000000000..23d0179375 --- /dev/null +++ b/packages/gtk-webcore/midori_0.0.12.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Midori is a lightweight web browser." +LICENSE = "GPLv2" + +DEPENDS = "webkit-gtk libsexy" + +inherit autotools pkgconfig + +SRC_URI = "http://software.twotoasts.de/media/midori/midori-${PV}.tar.gz \ + " + + diff --git a/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb b/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb index b63bc67af7..3101ecb3be 100644 --- a/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb +++ b/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb @@ -1,7 +1,7 @@ require ipkg-utils_${PV}.bb RDEPENDS = "" -PR = "r14" +PR = "r15" inherit native diff --git a/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb b/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb index 51f5d7f835..c089796ccb 100644 --- a/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb +++ b/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb @@ -5,19 +5,18 @@ LICENSE = "GPL" CONFLICTS = "ipkg-link" RDEPENDS = "python" SRCDATE = "20050404" -PR = "r16" +PR = "r17" SRC_URI = "${HANDHELDS_CVS};module=ipkg-utils \ file://ipkg-utils-fix.patch;patch=1 \ file://ipkg-py-sane-vercompare.patch;patch=1 \ file://ipkg-py-tarfile.patch;patch=1 \ file://ipkg-make-index-track-stamps.patch;patch=1 \ - file://fields_tweaks.patch;patch=1 \ - " + file://fields_tweaks.patch;patch=1 " S = "${WORKDIR}/ipkg-utils" -INSTALL = "ipkg-build ipkg-deb-unbuild ipkg-unbuild ipkg-compare-versions ipkg-upload ipkg-make-index ipkg-link ipkg.py" +INSTALL = "ipkg-build ipkg-deb-unbuild ipkg-unbuild ipkg-compare-versions ipkg-upload ipkg-make-index ipkg-link ipkg.py ipkg-list-fields" do_compile() { oe_runmake ipkg-compare-versions diff --git a/packages/libungif/libungif_4.1.3.bb b/packages/libungif/libungif_4.1.3.bb index bd7a2fd8cb..caf0427551 100644 --- a/packages/libungif/libungif_4.1.3.bb +++ b/packages/libungif/libungif_4.1.3.bb @@ -1,6 +1,6 @@ SECTION = "libs" DESCRIPTION = "shared library for GIF images" -SRC_URI = "${SOURCEFORGE_MIRROR}/libungif/libungif-${PV}.tar.bz2" +SRC_URI = "${SOURCEFORGE_MIRROR}/giflib/libungif-${PV}.tar.bz2" LICENSE = "MIT" PR = "r1" diff --git a/packages/linux/linux-2.6.23/mpc8313e-rdb/mpc8313e-rdb-leds.patch b/packages/linux/linux-2.6.23/mpc8313e-rdb/mpc8313e-rdb-leds.patch index 0310746dfe..56176c1095 100644 --- a/packages/linux/linux-2.6.23/mpc8313e-rdb/mpc8313e-rdb-leds.patch +++ b/packages/linux/linux-2.6.23/mpc8313e-rdb/mpc8313e-rdb-leds.patch @@ -1,6 +1,6 @@ diff -urN linux-2.6.23.orig/drivers/leds/Kconfig linux-2.6.23/drivers/leds/Kconfig --- linux-2.6.23.orig/drivers/leds/Kconfig 2007-10-09 22:31:38.000000000 +0200 -+++ linux-2.6.23/drivers/leds/Kconfig 2007-11-29 09:02:42.000000000 +0100 ++++ linux-2.6.23/drivers/leds/Kconfig 2007-12-03 11:08:06.000000000 +0100 @@ -101,6 +101,12 @@ outputs. To be useful the particular board must have LEDs and they must be connected to the GPIO lines. @@ -16,8 +16,8 @@ diff -urN linux-2.6.23.orig/drivers/leds/Kconfig linux-2.6.23/drivers/leds/Kconf config LEDS_TRIGGERS diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/drivers/leds/leds-mpc8313e-rdb.c --- linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.23/drivers/leds/leds-mpc8313e-rdb.c 2007-11-29 09:02:42.000000000 +0100 -@@ -0,0 +1,128 @@ ++++ linux-2.6.23/drivers/leds/leds-mpc8313e-rdb.c 2007-12-03 11:08:36.000000000 +0100 +@@ -0,0 +1,127 @@ +/* + * drivers/leds/leds-mpc8313e-rdb.c + * Copyright (C) 2007 Leon Woestenberg <leon@sidebranch.com> @@ -38,18 +38,18 @@ diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/driver +#include <linux/err.h> +#include <asm/io.h> + -+int par_io_config_pin(u8 port, u8 pin, int dir, int open_drain, -+ int assignment, int has_irq); -+int par_io_data_set(u8 port, u8 pin, u8 val); ++#define LEDS_BASE 0xfa000000 ++#define LEDS_SIZE 0x2 + +static struct platform_dev *leds_pdev = NULL; +static struct resource *led_mem = NULL; -+static void *p = NULL; ++static void *led_io = NULL; ++static u8 led_state = 0; + +static void mpc8313leds_green_set(struct led_classdev *led_cdev, enum led_brightness value) +{ -+ int d = ioread16(p); -+ iowrite16(value?d&~1:d|1, p); ++ led_state = value ? led_state&~32 : led_state|32; ++ iowrite8(led_state, led_io); +} + +static struct led_classdev mpc8313_green_led = { @@ -59,8 +59,8 @@ diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/driver + +static void mpc8313leds_yellow_set(struct led_classdev *led_cdev, enum led_brightness value) +{ -+ int d = ioread16(p); -+ iowrite16(value?d&~2:d|2, p); ++ led_state = value ? led_state&~64 : led_state|64; ++ iowrite8(led_state, led_io); +} + +static struct led_classdev mpc8313_yellow_led = { @@ -70,8 +70,8 @@ diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/driver + +static void mpc8313leds_red_set(struct led_classdev *led_cdev, enum led_brightness value) +{ -+ int d = ioread16(p); -+ iowrite16(value?d&~4:d|4, p); ++ led_state = value ? led_state&~128 : led_state|128; ++ iowrite8(led_state, led_io); +} + +static struct led_classdev mpc8313_red_led = { @@ -117,12 +117,11 @@ diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/driver + +static int __init mpc8313leds_init(void) +{ -+ led_mem = request_mem_region(0xfa000000, 0x100, "mpc8313-leds"); -+ if (led_mem == NULL) return -ENOMEM; -+ p = ioremap(0xfa000000, 0x100); -+ if (p == NULL) ++ if (!(led_mem = request_mem_region(LEDS_BASE, LEDS_SIZE, "mpc8313-leds"))) ++ return -ENOMEM; ++ if (!(led_io = ioremap(LEDS_BASE, LEDS_SIZE))) + { -+ if (led_mem) release_mem_region(0xfa000000, 0x100); ++ release_mem_region(LEDS_BASE, LEDS_SIZE); + led_mem = NULL; + return -ENOMEM; + } @@ -133,7 +132,7 @@ diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/driver + +static void __exit mpc8313leds_exit(void) +{ -+ if (led_mem) release_mem_region(0xfa000000, 0x100); ++ if (led_mem) release_mem_region(LEDS_BASE, LEDS_SIZE); + led_mem = NULL; + platform_driver_unregister(&mpc8313leds_driver); + @@ -148,7 +147,7 @@ diff -urN linux-2.6.23.orig/drivers/leds/leds-mpc8313e-rdb.c linux-2.6.23/driver +MODULE_LICENSE("GPL"); diff -urN linux-2.6.23.orig/drivers/leds/Makefile linux-2.6.23/drivers/leds/Makefile --- linux-2.6.23.orig/drivers/leds/Makefile 2007-10-09 22:31:38.000000000 +0200 -+++ linux-2.6.23/drivers/leds/Makefile 2007-11-29 09:03:09.000000000 +0100 ++++ linux-2.6.23/drivers/leds/Makefile 2007-12-03 11:08:06.000000000 +0100 @@ -17,6 +17,7 @@ obj-$(CONFIG_LEDS_H1940) += leds-h1940.o obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o diff --git a/packages/meta/external-toolchain.bb b/packages/meta/external-toolchain.bb new file mode 100644 index 0000000000..c483ea26a6 --- /dev/null +++ b/packages/meta/external-toolchain.bb @@ -0,0 +1,50 @@ +DESCRIPTION = "This package allows OE to work with an external toolchain generated \ + by meta-toolchain instead of building its own. It expects that toolchain \ + to be located in SDK_PREFIX/prefix." + +PROVIDES = "\ + linux-libc-headers \ + virtual/${TARGET_PREFIX}gcc \ + virtual/${TARGET_PREFIX}gcc-initial \ + virtual/${TARGET_PREFIX}binutils \ + virtual/${TARGET_PREFIX}libc-for-gcc \ + virtual/libc \ + virtual/libintl \ + virtual/libiconv \ + glibc-thread-db \ + virtual/linux-libc-headers \ + " + +RPROVIDES = "glibc-utils libsegfault glibc-thread-db libgcc-dev libstdc++-dev libstdc++" +PACKAGES_DYNAMIC = "glibc-gconv-*" +PR = "r1" + +inherit sdk + +do_stage() { + if [ ! -e ${prefix}/package-status ]; then + echo "The external toolchain could not be found in ${prefix}!" + exit 1 + fi + + install -d ${STAGING_DIR}/pkgdata/ + install -d ${STAGING_DIR_TARGET}/shlibs/ + + cp -ar ${prefix}/pkgdata/* ${STAGING_DIR}/pkgdata/ + cp -ar ${prefix}/${TARGET_SYS}/shlibs/* ${STAGING_DIR_TARGET}/shlibs/ + + if [ -d ${prefix}/ipk ]; then + install -d ${DEPLOY_DIR_IPK}/ + cp -ar ${prefix}/ipk/* ${DEPLOY_DIR_IPK}/ + fi + + if [ -d ${prefix}/deb ]; then + install -d ${DEPLOY_DIR_DEB}/ + cp -ar ${prefix}/deb/* ${DEPLOY_DIR_DEB}/ + fi + + if [ -d ${prefix}/pstage -a "x${DEPLOY_DIR_PSTAGE}" != "x" ]; then + install -d ${DEPLOY_DIR_PSTAGE}/ + cp -ar ${prefix}/pstage/* ${DEPLOY_DIR_PSTAGE}/ + fi +} diff --git a/packages/perl/libxml-parser-perl_2.34.bb b/packages/perl/libxml-parser-perl_2.34.bb index 46ce6512ca..dd502a8f63 100644 --- a/packages/perl/libxml-parser-perl_2.34.bb +++ b/packages/perl/libxml-parser-perl_2.34.bb @@ -1,7 +1,7 @@ SECTION = "libs" LICENSE = "Artistic" -DEPENDS += "expat-native" -PR = "r10" +DEPENDS += "expat expat-native" +PR = "r11" SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Parser-${PV}.tar.gz" diff --git a/packages/tasks/task-base.bb b/packages/tasks/task-base.bb index c0b39d34ff..bfb673293d 100644 --- a/packages/tasks/task-base.bb +++ b/packages/tasks/task-base.bb @@ -1,5 +1,5 @@ DESCRIPTION = "Merge machine and distro options to create a basic machine task/package" -PR = "r46" +PR = "r47" inherit task @@ -11,47 +11,43 @@ PACKAGES = ' \ task-distro-base \ task-machine-base \ \ - task-base-acpi \ - task-base-alsa \ - task-base-apm \ + ${@base_contains("MACHINE_FEATURES", "acpi", "task-base-acpi", "",d)} \ + ${@base_contains("MACHINE_FEATURES", "alsa", "task-base-alsa", "", d)} \ + ${@base_contains("MACHINE_FEATURES", "apm", "task-base-apm", "", d)} \ + ${@base_contains("MACHINE_FEATURES", "ext2", "task-base-ext2", "", d)} \ + ${@base_contains("MACHINE_FEATURES", "irda", "task-base-irda", "",d)} \ + ${@base_contains("MACHINE_FEATURES", "keyboard", "task-base-keyboard", "", d)} \ + ${@base_contains("MACHINE_FEATURES", "pci", "task-base-pci", "",d)} \ + ${@base_contains("MACHINE_FEATURES", "pcmcia", "task-base-pcmcia", "", d)} \ + ${@base_contains("MACHINE_FEATURES", "phone", "task-base-phone", "", d)} \ + ${@base_contains("MACHINE_FEATURES", "screen", "task-base-screen", "", d)} \ + ${@base_contains("MACHINE_FEATURES", "serial", "task-base-serial", "", d)} \ + ${@base_contains("MACHINE_FEATURES", "touchscreen", "task-base-touchscreen", "", d)} \ + ${@base_contains("MACHINE_FEATURES", "usbgadget", "task-base-usbgadget", "", d)} \ + ${@base_contains("MACHINE_FEATURES", "usbhost", "task-base-usbhost", "", d)} \ + \ + ${@base_contains("MACHINE_FEATURES", "uboot", "task-base-uboot", "",d)} \ + ${@base_contains("MACHINE_FEATURES", "redboot", "task-base-redboot", "",d)} \ + ${@base_contains("MACHINE_FEATURES", "apex", "task-base-apex", "",d)} \ + \ task-base-bluetooth \ - task-base-ext2 \ - task-base-irda \ - task-base-keyboard \ - task-base-pci \ - task-base-pcmcia \ - task-base-phone \ - task-base-screen \ - task-base-serial \ - task-base-touchscreen \ - task-base-usbgadget \ - task-base-usbhost \ task-base-wifi \ - task-base-uboot \ - task-base-redboot \ - task-base-apex \ \ - task-base-cramfs \ - task-base-ipsec \ - task-base-ipv6 \ - task-base-nfs \ - task-base-ppp \ - task-base-smbfs \ - task-base-raid \ - \ + ${@base_contains("DISTRO_FEATURES", "cramfs", "task-base-cramfs", "", d)} \ + ${@base_contains("DISTRO_FEATURES", "ipsec", "task-base-ipsec", "", d)} \ + ${@base_contains("DISTRO_FEATURES", "ipv6", "task-base-ipv6", "", d)} \ + ${@base_contains("DISTRO_FEATURES", "nfs", "task-base-nfs", "", d)} \ + ${@base_contains("DISTRO_FEATURES", "ppp", "task-base-ppp", "", d)} \ + ${@base_contains("DISTRO_FEATURES", "smbfs", "task-base-smbfs", "", d)} \ + ${@base_contains("DISTRO_FEATURES", "raid", "task-base-raid", "",d)} \ + \ ${@base_contains("MACHINE_FEATURES","kernel26","task-base-kernel26","task-base-kernel24",d)} \ - ' + ' # # packages which content depend on MACHINE_FEATURES need to be MACHINE_ARCH # -PACKAGE_ARCH_task-base = "${MACHINE_ARCH}" -PACKAGE_ARCH_task-machine-base = "${MACHINE_ARCH}" -PACKAGE_ARCH_task-base-apm = "${MACHINE_ARCH}" -PACKAGE_ARCH_task-base-bluetooth = "${MACHINE_ARCH}" -PACKAGE_ARCH_task-base-irda = "${MACHINE_ARCH}" -PACKAGE_ARCH_task-base-pcmcia = "${MACHINE_ARCH}" -PACKAGE_ARCH_task-base-wifi = "${MACHINE_ARCH}" +PACKAGE_ARCH = "${MACHINE_ARCH}" # # linux-hotplug or none diff --git a/packages/tasks/task-native-sdk.bb b/packages/tasks/task-native-sdk.bb index d27a855c9d..b840254176 100644 --- a/packages/tasks/task-native-sdk.bb +++ b/packages/tasks/task-native-sdk.bb @@ -3,8 +3,8 @@ LICENSE = "MIT" DEPENDS = "gcc binutils make patch patchutils diffstat diffutils automake flex bison gawk sed grep" RDEPENDS = "gcc-symlinks g++-symlinks binutils-symlinks make libc6-dev \ flex flex-dev bison gawk sed grep autoconf automake make \ - patch patchutils diffstat diffutils libgcc-s-dev libstdc++-dev" -PR = "r1" + patch patchutils diffstat diffutils libstdc++-dev" +PR = "r2" ALLOW_EMPTY = "1" PACKAGES = "${PN}" diff --git a/packages/xorg-lib/libx11-native_1.0.3.bb b/packages/xorg-lib/libx11-native_1.0.3.bb new file mode 100644 index 0000000000..d9e0d05844 --- /dev/null +++ b/packages/xorg-lib/libx11-native_1.0.3.bb @@ -0,0 +1,28 @@ +DESCRIPTION = "Base X libs." +SECTION = "x11/libs" +PRIORITY = "optional" +LICENSE = "XFree86" +PE = "1" + +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libx11" + +DEPENDS = "xproto-native xextproto-native libxau-native xtrans-native libxdmcp-native xcmiscproto-native xf86bigfontproto-native kbproto-native inputproto-native bigreqsproto-native util-macros-native" +PROVIDES = "x11-native" + +XORG_PN = "libX11" + +SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.bz2" +S = "${WORKDIR}/libX11-${PV}" + +inherit native autotools pkgconfig + +EXTRA_OECONF="--enable-malloc0returnsnull" + +do_compile() { + ( + unset CC LD CXX CCLD + oe_runmake -C src/util 'CC=${BUILD_CC}' 'LD=${BUILD_LD}' 'CXX=${BUILD_CXX}' 'CCLD=${BUILD_CCLD}' 'CFLAGS=-D_GNU_SOURCE ${BUILD_CFLAGS}' 'LDFLAGS=${BUILD_LDFLAGS}' 'CXXFLAGS=${BUILD_CXXFLAGS}' 'CPPFLAGS=${BUILD_CPPFLAGS}' makekeys + ) + rm -f ${STAGING_INCDIR}/X11/Xlib.h + oe_runmake +} diff --git a/packages/xorg-xserver/xserver-kdrive/00-xglamo-logs.patch b/packages/xorg-xserver/xserver-kdrive/00-xglamo-logs.patch new file mode 100644 index 0000000000..8fc8ff46b9 --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive/00-xglamo-logs.patch @@ -0,0 +1,386 @@ +Index: xorg-server-1.3.0.0/hw/kdrive/glamo/Makefile.am +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/Makefile.am 2007-11-28 18:44:27.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/glamo/Makefile.am 2007-11-28 18:44:28.000000000 +0100 +@@ -20,6 +20,7 @@ + noinst_LIBRARIES = libglamo.a + + libglamo_a_SOURCES = \ ++ glamo-log.h \ + glamo_dma.c \ + glamo_dma.h \ + glamo_draw.c \ +Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo-log.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo-log.h 2007-11-29 09:05:53.000000000 +0100 +@@ -0,0 +1,63 @@ ++/* ++ * Copyright © 2007 OpenMoko, Inc. ++ * ++ * This driver is based on Xati, ++ * Copyright © 2004 Eric Anholt ++ * ++ * 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 the copyright holders not be used in advertising or ++ * publicity pertaining to distribution of the software without specific, ++ * written prior permission. The copyright holders make no representations ++ * about the suitability of this software for any purpose. It is provided "as ++ * is" without express or implied warranty. ++ * ++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, ++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO ++ * EVENT SHALL THE COPYRIGHT HOLDERS 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. ++ * ++ * Author: Dodji Seketeli <dodji@openedhand.com> ++ */ ++#ifndef _GLAMO_LOG_H_ ++#define _GLAMO_LOG_H_ ++#ifdef HAVE_CONFIG_H ++#include <kdrive-config.h> ++#endif ++ ++#include <assert.h> ++#include "os.h" ++ ++#ifdef NDEBUG ++/*we are not in debug mode*/ ++#define GLAMO_LOG ++#define GLAMO_LOG_ERROR ++ ++#else /*NDEBUG*/ ++ ++#define ERROR_LOG_LEVEL 3 ++#define INFO_LOG_LEVEL 4 ++ ++#ifndef GLAMO_LOG ++#define GLAMO_LOG(...) \ ++LogMessageVerb(X_NOTICE, INFO_LOG_LEVEL, "in %s:%d:%s: ",\ ++ __FILE__, __LINE__, __func__) ; \ ++LogMessageVerb(X_NOTICE, INFO_LOG_LEVEL, __VA_ARGS__) ++#endif /*GLAMO_LOG*/ ++ ++#ifndef GLAMO_LOG_ERROR ++#define GLAMO_LOG_ERROR(...) \ ++LogMessageVerb(X_NOTICE, ERROR_LOG_LEVEL, "Error:in %s:%d:%s: ",\ ++ __FILE__, __LINE__, __func__) ; \ ++LogMessageVerb(X_NOTICE, ERROR_LOG_LEVEL, __VA_ARGS__) ++#endif /*GLAMO_LOG_ERROR*/ ++ ++#endif /*NDEBUG*/ ++ ++#endif /*_GLAMO_LOG_H_*/ ++ +Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_draw.c +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo_draw.c 2007-11-28 18:44:27.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_draw.c 2007-11-29 09:33:11.000000000 +0100 +@@ -26,6 +26,7 @@ + #ifdef HAVE_CONFIG_H + #include <kdrive-config.h> + #endif ++#include "glamo-log.h" + #include "glamo.h" + #include "glamo-regs.h" + #include "glamo_dma.h" +@@ -90,45 +91,11 @@ + KdScreenPriv(pScreen); + GLAMOScreenInfo(pScreenPriv); + +- ENTER_DRAW(0); ++ GLAMO_LOG("enter"); + GLAMOWaitIdle(glamos); +- LEAVE_DRAW(0); ++ GLAMO_LOG("leave"); + } + +-#if GLAMO_TRACE_DRAW +-void +-GLAMOEnterDraw (PixmapPtr pPix, const char *function) +-{ +- if (pPix != NULL) { +- KdScreenPriv(pPix->drawable.pScreen); +- CARD32 offset; +- +- offset = ((CARD8 *)pPix->devPrivate.ptr - +- pScreenPriv->screen->memory_base); +- +- ErrorF ("Enter %s 0x%x (%dx%dx%d/%d)\n", function, (unsigned int) offset, +- pPix->drawable.width, pPix->drawable.height, pPix->drawable.depth, +- (unsigned int) pPix->drawable.bitsPerPixel); +- } else +- ErrorF ("Enter %s\n", function); +-} +- +-void +-GLAMOLeaveDraw (PixmapPtr pPix, const char *function) +-{ +- if (pPix != NULL) { +- KdScreenPriv(pPix->drawable.pScreen); +- CARD32 offset; +- +- offset = ((CARD8 *)pPix->devPrivate.ptr - +- pScreenPriv->screen->memory_base); +- +- ErrorF ("Leave %s 0x%x\n", function, (unsigned int) offset); +- } else +- ErrorF ("Leave %s\n", function); +-} +-#endif +- + static Bool + GLAMOPrepareSolid(PixmapPtr pPix, int alu, Pixel pm, Pixel fg) + { +@@ -152,7 +119,7 @@ + pScreenPriv->screen->memory_base); + pitch = pPix->devKind; + +- ENTER_DRAW(pPix); ++ GLAMO_LOG("enter"); + + BEGIN_DMA(12); + OUT_REG(GLAMO_REG_2D_DST_ADDRL, offset & 0xffff); +@@ -163,7 +130,7 @@ + OUT_REG(GLAMO_REG_2D_COMMAND2, settings); + END_DMA(); + +- LEAVE_DRAW(pPix); ++ GLAMO_LOG("leave"); + + return TRUE; + } +@@ -171,7 +138,7 @@ + static void + GLAMOSolid(int x1, int y1, int x2, int y2) + { +- ENTER_DRAW(0); ++ GLAMO_LOG("enter"); + GLAMOScreenInfo *glamos = accel_glamos; + RING_LOCALS; + +@@ -184,14 +151,12 @@ + OUT_REG(GLAMO_REG_2D_ID1, 0); + OUT_REG(GLAMO_REG_2D_ID2, 0); + END_DMA(); +- LEAVE_DRAW(0); ++ GLAMO_LOG("leave"); + } + + static void + GLAMODoneSolid(void) + { +- ENTER_DRAW(0); +- LEAVE_DRAW(0); + } + + static Bool +@@ -204,6 +169,8 @@ + FbBits mask; + RING_LOCALS; + ++ GLAMO_LOG("enter"); ++ + if (pSrc->drawable.bitsPerPixel != 16 || + pDst->drawable.bitsPerPixel != 16) + GLAMO_FALLBACK(("Only 16bpp is supported")); +@@ -224,8 +191,6 @@ + + settings = GLAMOBltRop[alu] << 8; + +- ENTER_DRAW (pDst); +- + BEGIN_DMA(16); + + OUT_REG(GLAMO_REG_2D_SRC_ADDRL, src_offset & 0xffff); +@@ -241,7 +206,7 @@ + + END_DMA(); + +- LEAVE_DRAW(pDst); ++ GLAMO_LOG("leave"); + + return TRUE; + } +@@ -268,8 +233,10 @@ + static void + GLAMODoneCopy(void) + { +- ENTER_DRAW(0); +- LEAVE_DRAW(0); ++ GLAMOScreenInfo *glamos = accel_glamos; ++ GLAMO_LOG("enter"); ++ GLAMOFlushIndirect(glamos, 1); ++ GLAMO_LOG("leave"); + } + + static Bool +@@ -279,6 +246,7 @@ + CARD8 *dst_offset; + int dst_pitch; + ++ GLAMO_LOG("enter"); + dst_offset = (CARD8 *)pDst->devPrivate.ptr; + dst_pitch = pDst->devKind; + width = pDst->drawable.width; +@@ -294,83 +262,9 @@ + src += src_pitch; + } + +- ErrorF("hostdata upload %d,%d %dbpp\n", width, height, bpp); +- + return TRUE; + } + +- +-#if 0 +-static Bool +-GLAMOUploadToScratch(PixmapPtr pSrc, PixmapPtr pDst) +-{ +- KdScreenPriv(pSrc->drawable.pScreen); +- GLAMOCardInfo(pScreenPriv); +- GLAMOScreenInfo(pScreenPriv); +- int dst_pitch, src_pitch, w, i, size, bytes; +- unsigned char *dst, *src; +- RING_LOCALS; +- +- ENTER_DRAW(pSrc); +- /* Align width to log 2, useful for R128 composite. This should be a +- * KAA flag we check for (and supported in kaa.c in general) since many +- * older bits of hardware are going to want POT pitches. +- */ +- w = pSrc->drawable.width; +- if (glamos->kaa.flags & KAA_OFFSCREEN_ALIGN_POT) +- w = 1 << (GLAMOLog2(w - 1) + 1); +- dst_pitch = (w * pSrc->drawable.bitsPerPixel / 8 + +- glamos->kaa.pitchAlign - 1) & ~(glamos->kaa.pitchAlign - 1); +- +- size = dst_pitch * pSrc->drawable.height; +- if (size > glamos->scratch_area->size) +- GLAMO_FALLBACK(("Pixmap too large for scratch (%d,%d)\n", +- pSrc->drawable.width, pSrc->drawable.height)); +- +- glamos->scratch_next = (glamos->scratch_next + glamos->kaa.offsetAlign - 1) & +- ~(glamos->kaa.offsetAlign - 1); +- if (glamos->scratch_next + size > glamos->scratch_area->offset + +- glamos->scratch_area->size) { +- /* Only sync when we've used all of the scratch area. */ +- kaaWaitSync(pSrc->drawable.pScreen); +- glamos->scratch_next = glamos->scratch_area->offset; +- } +- memcpy(pDst, pSrc, sizeof(*pDst)); +- pDst->devKind = dst_pitch; +- pDst->devPrivate.ptr = pScreenPriv->screen->memory_base + +- glamos->scratch_next; +- glamos->scratch_next += size; +- +- src = pSrc->devPrivate.ptr; +- src_pitch = pSrc->devKind; +- dst = pDst->devPrivate.ptr; +- bytes = src_pitch < dst_pitch ? src_pitch : dst_pitch; +- +- i = pSrc->drawable.height; +- while (i--) { +- memcpy(dst, src, bytes); +- dst += dst_pitch; +- src += src_pitch; +- } +- +- /* Flush the pixel cache */ +- if (glamoc->is_3362) { +- BEGIN_DMA(4); +- OUT_REG(RADEON_REG_RB3D_DSTCACHE_CTLSTAT, +- RADEON_RB3D_DC_FLUSH_ALL); +- OUT_REG(GLAMO_REG_WAIT_UNTIL, RADEON_WAIT_HOST_IDLECLEAN); +- END_DMA(); +- } else { +- BEGIN_DMA(2); +- OUT_REG(R128_REG_PC_GUI_CTLSTAT, R128_PC_FLUSH_ALL); +- END_DMA(); +- } +- +- LEAVE_DRAW(pSrc); +- return TRUE; +-} +-#endif +- + static void + GLAMOBlockHandler(pointer blockData, OSTimePtr timeout, pointer readmask) + { +Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_dma.c +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo_dma.c 2007-11-28 18:44:27.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_dma.c 2007-11-28 22:13:23.000000000 +0100 +@@ -25,6 +25,7 @@ + + #include <sys/time.h> + ++#include "glamo-log.h" + #include "glamo.h" + #include "glamo-regs.h" + #include "glamo_dma.h" +@@ -35,9 +36,7 @@ + #include "glamo_sarea.h" + #endif /* USE_DRI */ + +-#define DEBUG_FIFO 1 +- +-#if DEBUG_FIFO ++#ifndef NDEBUG + static void + GLAMODebugFifo(GLAMOScreenInfo *glamos) + { +@@ -273,7 +272,7 @@ + count--; + } + if (TIMEDOUT()) { +- ErrorF("Timeout submitting packets, resetting...\n"); ++ GLAMO_LOG_ERROR("Timeout submitting packets, resetting...\n"); + GLAMOEngineReset(glamos->screen->pScreen, GLAMO_ENGINE_CQ); + GLAMODrawSetup(glamos->screen->pScreen); + } +@@ -292,11 +291,6 @@ + if ((glamos->indirectStart == buf->used) && !discard) + return; + +-#if DEBUG_FIFO +- ErrorF("Dispatching %d DWORDS\n", (buf->used - glamos->indirectStart) / +- 4); +-#endif +- + #ifdef USE_DRI + if (glamos->using_dri) { + buf->drmBuf->used = buf->used; +@@ -384,11 +378,6 @@ + glamos->indirectBuffer = GLAMOGetDMABuffer(glamos); + if (glamos->indirectBuffer == FALSE) + FatalError("Failed to allocate DMA buffer.\n"); +- +- if (glamos->using_dri) +- ErrorF("Initialized DRI DMA\n"); +- else +- ErrorF("Initialized DMA\n"); + } + + void +Index: xorg-server-1.3.0.0/configure.ac +=================================================================== +--- xorg-server-1.3.0.0.orig/configure.ac 2007-11-29 09:07:21.000000000 +0100 ++++ xorg-server-1.3.0.0/configure.ac 2007-11-29 09:15:38.000000000 +0100 +@@ -866,6 +866,10 @@ + + if ! test "x$DEBUGGING" = xyes; then + AC_DEFINE(NDEBUG, 1, [Disable some debugging code]) ++ AC_MSG_NOTICE([disabled debugging]) ++else ++ AC_MSG_NOTICE([enabled debugging]) ++ + fi + + AC_DEFINE(USE_RGB_TXT, 1, [Use rgb.txt directly]) diff --git a/packages/xorg-xserver/xserver-kdrive/01-xglamo-scrolling-artifact-fix.patch b/packages/xorg-xserver/xserver-kdrive/01-xglamo-scrolling-artifact-fix.patch new file mode 100644 index 0000000000..1ca96b954d --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive/01-xglamo-scrolling-artifact-fix.patch @@ -0,0 +1,15 @@ +Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_draw.c +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo_draw.c 2007-11-30 09:54:00.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_draw.c 2007-11-30 09:55:05.000000000 +0100 +@@ -314,8 +314,8 @@ + */ + + glamos->kaa.flags = KAA_OFFSCREEN_PIXMAPS; +- glamos->kaa.offsetAlign = 2; +- glamos->kaa.pitchAlign = 2; ++ glamos->kaa.offsetAlign = 0; ++ glamos->kaa.pitchAlign = 0; + + kaaInitTrapOffsets(8, sample_offsets_x, sample_offsets_y, 0.0, 0.0); + sample_count = (1 << 8) - 1; diff --git a/packages/xorg-xserver/xserver-kdrive/02-xglamo-no-dri.patch b/packages/xorg-xserver/xserver-kdrive/02-xglamo-no-dri.patch new file mode 100644 index 0000000000..43315121da --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive/02-xglamo-no-dri.patch @@ -0,0 +1,438 @@ +Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.c +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo.c 2007-11-28 18:44:27.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.c 2007-11-30 10:18:43.000000000 +0100 +@@ -27,9 +27,6 @@ + #include <kdrive-config.h> + #endif + #include "glamo.h" +-#if defined(USE_DRI) && defined(GLXEXT) +-#include "glamo_sarea.h" +-#endif + + static Bool + GLAMOCardInit(KdCardInfo *card) +@@ -89,13 +86,6 @@ + return FALSE; + } + +-#ifdef USE_DRI +- /* We demand identification by busid, not driver name */ +- glamoc->drmFd = drmOpen(NULL, glamoc->busid); +- if (glamoc->drmFd < 0) +- ErrorF("Failed to open DRM, DRI disabled.\n"); +-#endif /* USE_DRI */ +- + card->driver = glamoc; + + glamoc->is_3362 = TRUE; +@@ -122,10 +112,6 @@ + GLAMOSetOffscreen (KdScreenInfo *screen) + { + GLAMOCardInfo(screen); +-#if defined(USE_DRI) && defined(GLXEXT) +- GLAMOScreenInfo *glamos = (GLAMOScreenInfo *)screen->driver; +- int l; +-#endif + int screen_size; + char *mmio = glamoc->reg_base; + +@@ -152,57 +138,7 @@ + } + + screen_size = screen->fb[0].byteStride * screen->height; +- + screen->off_screen_base = screen_size; +- +-#if defined(USE_DRI) && defined(GLXEXT) +- /* Reserve a static area for the back buffer the same size as the +- * visible screen. XXX: This would be better initialized in glamo_dri.c +- * when GLX is set up, but the offscreen memory manager's allocations +- * don't last through VT switches, while the kernel's understanding of +- * offscreen locations does. +- */ +- glamos->frontOffset = 0; +- glamos->frontPitch = screen->fb[0].byteStride; +- +- if (screen->off_screen_base + screen_size <= screen->memory_size) { +- glamos->backOffset = screen->off_screen_base; +- glamos->backPitch = screen->fb[0].byteStride; +- screen->off_screen_base += screen_size; +- } +- +- /* Reserve the depth span for Rage 128 */ +- if (!glamoc->is_3362 && screen->off_screen_base + +- screen->fb[0].byteStride <= screen->memory_size) { +- glamos->spanOffset = screen->off_screen_base; +- screen->off_screen_base += screen->fb[0].byteStride; +- } +- +- /* Reserve the static depth buffer, which happens to be the same +- * bitsPerPixel as the screen. +- */ +- if (screen->off_screen_base + screen_size <= screen->memory_size) { +- glamos->depthOffset = screen->off_screen_base; +- glamos->depthPitch = screen->fb[0].byteStride; +- screen->off_screen_base += screen_size; +- } +- +- /* Reserve approx. half of remaining offscreen memory for local +- * textures. Round down to a whole number of texture regions. +- */ +- glamos->textureSize = (screen->memory_size - screen->off_screen_base) / 2; +- l = GLAMOLog2(glamos->textureSize / GLAMO_NR_TEX_REGIONS); +- if (l < GLAMO_LOG_TEX_GRANULARITY) +- l = GLAMO_LOG_TEX_GRANULARITY; +- glamos->textureSize = (glamos->textureSize >> l) << l; +- if (glamos->textureSize >= 512 * 1024) { +- glamos->textureOffset = screen->off_screen_base; +- screen->off_screen_base += glamos->textureSize; +- } else { +- /* Minimum texture size is for 2 256x256x32bpp textures */ +- glamos->textureSize = 0; +- } +-#endif /* USE_DRI && GLXEXT */ + } + + static Bool +@@ -413,9 +349,6 @@ + GLAMODisable(ScreenPtr pScreen) + { + KdScreenPriv(pScreen); +-#if defined(USE_DRI) && defined(GLXEXT) +- GLAMOScreenInfo(pScreenPriv); +-#endif /* USE_DRI && GLXEXT */ + GLAMOCardInfo(pScreenPriv); + + GLAMOUnmapReg(pScreenPriv->card, glamoc); +Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_dma.c +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo_dma.c 2007-11-28 22:13:23.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_dma.c 2007-11-30 10:25:49.000000000 +0100 +@@ -31,11 +31,6 @@ + #include "glamo_dma.h" + #include "glamo_draw.h" + +-#ifdef USE_DRI +-#include "radeon_common.h" +-#include "glamo_sarea.h" +-#endif /* USE_DRI */ +- + #ifndef NDEBUG + static void + GLAMODebugFifo(GLAMOScreenInfo *glamos) +@@ -168,26 +163,6 @@ + if (glamos->indirectBuffer != NULL) + GLAMOFlushIndirect(glamos, 0); + +-#ifdef USE_DRI +- if (glamos->using_dri) { +- int ret = 0; +- int cmd = (glamoc->is_3362 ? DRM_RADEON_CP_IDLE : +- DRM_R128_CCE_IDLE); +- WHILE_NOT_TIMEOUT(2) { +- ret = drmCommandNone(glamoc->drmFd, cmd); +- if (ret != -EBUSY) +- break; +- } +- if (TIMEDOUT()) { +- GLAMODebugFifo(glamos); +- FatalError("Timed out idling CCE (card hung)\n"); +- } +- if (ret != 0) +- ErrorF("Failed to idle DMA, returned %d\n", ret); +- return; +- } +-#endif +- + WHILE_NOT_TIMEOUT(.5) { + status = MMIO_IN16(mmio, GLAMO_REG_CQ_STATUS); + if ((status & (1 << 2)) && !(status & (1 << 8))) +@@ -214,20 +189,6 @@ + if (buf == NULL) + return NULL; + +-#ifdef USE_DRI +- if (glamos->using_dri) { +- buf->drmBuf = GLAMODRIGetBuffer(glamos); +- if (buf->drmBuf == NULL) { +- xfree(buf); +- return NULL; +- } +- buf->size = buf->drmBuf->total; +- buf->used = buf->drmBuf->used; +- buf->address = buf->drmBuf->address; +- return buf; +- } +-#endif /* USE_DRI */ +- + buf->size = glamos->ring_len / 2; + buf->address = xalloc(buf->size); + if (buf->address == NULL) { +@@ -290,25 +251,6 @@ + + if ((glamos->indirectStart == buf->used) && !discard) + return; +- +-#ifdef USE_DRI +- if (glamos->using_dri) { +- buf->drmBuf->used = buf->used; +- GLAMODRIDispatchIndirect(glamos, discard); +- if (discard) { +- buf->drmBuf = GLAMODRIGetBuffer(glamos); +- buf->size = buf->drmBuf->total; +- buf->used = buf->drmBuf->used; +- buf->address = buf->drmBuf->address; +- glamos->indirectStart = 0; +- } else { +- /* Start on a double word boundary */ +- glamos->indirectStart = buf->used = (buf->used + 7) & ~7; +- } +- return; +- } +-#endif /* USE_DRI */ +- + GLAMODispatchIndirectDMA(glamos); + + buf->used = 0; +@@ -367,13 +309,7 @@ + KdScreenPriv(pScreen); + GLAMOScreenInfo(pScreenPriv); + +-#ifdef USE_DRI +- if (glamos->using_dri) +- GLAMODRIDMAStart(glamos); +-#endif /* USE_DRI */ +- +- if (!glamos->using_dri) +- GLAMODMAInit(pScreen); ++ GLAMODMAInit(pScreen); + + glamos->indirectBuffer = GLAMOGetDMABuffer(glamos); + if (glamos->indirectBuffer == FALSE) +@@ -388,11 +324,6 @@ + + GLAMOWaitIdle(glamos); + +-#ifdef USE_DRI +- if (glamos->using_dri) +- GLAMODRIDMAStop(glamos); +-#endif /* USE_DRI */ +- + xfree(glamos->indirectBuffer->address); + xfree(glamos->indirectBuffer); + glamos->indirectBuffer = NULL; +Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.h +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo.h 2007-11-30 10:24:13.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.h 2007-11-30 10:25:06.000000000 +0100 +@@ -39,18 +39,6 @@ + + #include "kxv.h" + +-#undef XF86DRI +-#ifdef XF86DRI +-#define USE_DRI +-#include "xf86drm.h" +-#include "dri.h" +-#ifdef GLXEXT +-#include "GL/glxint.h" +-#include "GL/glxtokens.h" +-#include "glamo_dripriv.h" +-#endif +-#endif +- + #define GLAMO_REG_BASE(c) ((c)->attr.address[0]) + #define GLAMO_REG_SIZE(c) (0x2400) + +@@ -124,9 +112,6 @@ + Bool is_3362; + CARD32 crtc_pitch; + CARD32 crtc2_pitch; +-#ifdef USE_DRI +- int drmFd; +-#endif /* USE_DRI */ + Bool use_fbdev, use_vesa; + } GLAMOCardInfo; + +@@ -166,9 +151,6 @@ + int size; + int used; + void *address; +-#ifdef USE_DRI +- drmBufPtr drmBuf; +-#endif + } dmaBuf; + + typedef struct _GLAMOScreenInfo { +@@ -194,8 +176,6 @@ + KdVideoAdaptorPtr pAdaptor; + int num_texture_ports; + +- Bool using_dri; /* If we use the DRM for DMA. */ +- + KdOffscreenArea *dma_space; /* For "DMA" from framebuffer. */ + CARD16 *ring_addr; /* Beginning of ring buffer. */ + int ring_write; /* Index of write ptr in ring. */ +@@ -204,76 +184,6 @@ + + dmaBuf *indirectBuffer; + int indirectStart; +- +-#ifdef USE_DRI +- Bool dma_started; +- +- drmSize registerSize; +- drmHandle registerHandle; +- drmHandle fbHandle; +- +- drmSize gartSize; +- drmHandle agpMemHandle; /* Handle from drmAgpAlloc */ +- unsigned long gartOffset; +- unsigned char *AGP; /* Map */ +- int agpMode; +- drmSize pciSize; +- drmHandle pciMemHandle; +- +- /* ring buffer data */ +- unsigned long ringStart; /* Offset into AGP space */ +- drmHandle ringHandle; /* Handle from drmAddMap */ +- drmSize ringMapSize; /* Size of map */ +- int ringSize; /* Size of ring (MB) */ +- unsigned char *ring; /* Map */ +- +- unsigned long ringReadOffset; /* Offset into AGP space */ +- drmHandle ringReadPtrHandle; /* Handle from drmAddMap */ +- drmSize ringReadMapSize; /* Size of map */ +- unsigned char *ringReadPtr; /* Map */ +- +- /* vertex/indirect buffer data */ +- unsigned long bufStart; /* Offset into AGP space */ +- drmHandle bufHandle; /* Handle from drmAddMap */ +- drmSize bufMapSize; /* Size of map */ +- int bufSize; /* Size of buffers (MB) */ +- unsigned char *buf; /* Map */ +- int bufNumBufs; /* Number of buffers */ +- drmBufMapPtr buffers; /* Buffer map */ +- +- /* AGP Texture data */ +- unsigned long gartTexStart; /* Offset into AGP space */ +- drmHandle gartTexHandle; /* Handle from drmAddMap */ +- drmSize gartTexMapSize; /* Size of map */ +- int gartTexSize; /* Size of AGP tex space (MB) */ +- unsigned char *gartTex; /* Map */ +- int log2GARTTexGran; +- +- int DMAusecTimeout; /* CCE timeout in usecs */ +- +- /* DRI screen private data */ +- int frontOffset; +- int frontPitch; +- int backOffset; +- int backPitch; +- int depthOffset; +- int depthPitch; +- int spanOffset; +- int textureOffset; +- int textureSize; +- int log2TexGran; +- +- int irqEnabled; +- +- int serverContext; +- +- DRIInfoPtr pDRIInfo; +-#ifdef GLXEXT +- int numVisualConfigs; +- __GLXvisualConfig *pVisualConfigs; +- GLAMOConfigPrivPtr pVisualConfigsPriv; +-#endif /* GLXEXT */ +-#endif /* USE_DRI */ + } GLAMOScreenInfo; + + #define getGLAMOScreenInfo(kd) ((GLAMOScreenInfo *) ((kd)->screen->driver)) +@@ -330,31 +240,6 @@ + void + GLAMODrawFini(ScreenPtr pScreen); + +-/* glamo_dri.c */ +-#ifdef USE_DRI +-Bool +-GLAMODRIScreenInit(ScreenPtr pScreen); +- +-void +-GLAMODRICloseScreen(ScreenPtr pScreen); +- +-void +-GLAMODRIDMAStart(GLAMOScreenInfo *glamos); +- +-void +-GLAMODRIDMAStop(GLAMOScreenInfo *glamos); +- +-void +-GLAMODRIDMAReset(GLAMOScreenInfo *glamos); +- +-void +-GLAMODRIDispatchIndirect(GLAMOScreenInfo *glamos, Bool discard); +- +-drmBufPtr +-GLAMODRIGetBuffer(GLAMOScreenInfo *glamos); +- +-#endif /* USE_DRI */ +- + /* glamo_cursor.c */ + Bool + GLAMOCursorInit(ScreenPtr pScreen); +Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_draw.c +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo_draw.c 2007-11-30 09:55:05.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_draw.c 2007-11-30 10:26:02.000000000 +0100 +@@ -296,11 +296,6 @@ + RegisterBlockAndWakeupHandlers(GLAMOBlockHandler, GLAMOWakeupHandler, + pScreen); + +- glamos->using_dri = FALSE; +-#ifdef USE_DRI +- glamos->using_dri = GLAMODRIScreenInit(pScreen); +-#endif /* USE_DRI */ +- + memset(&glamos->kaa, 0, sizeof(KaaScreenInfoRec)); + glamos->kaa.waitMarker = GLAMOWaitMarker; + glamos->kaa.PrepareSolid = GLAMOPrepareSolid; +@@ -357,20 +352,6 @@ + glamos->kaa.UploadToScreen = NULL; + glamos->kaa.UploadToScratch = NULL; + +-#ifdef USE_DRI +- if (glamos->using_dri) { +- if (!glamoc->is_3362) { +- /*glamos->kaa.PrepareTrapezoids = R128PrepareTrapezoids; +- glamos->kaa.Trapezoids = R128Trapezoids; +- glamos->kaa.DoneTrapezoids = R128DoneTrapezoids;*/ +- } else if (glamoc->is_r100 || glamoc->is_r200) { +- glamos->kaa.PrepareTrapezoids = RadeonPrepareTrapezoids; +- glamos->kaa.Trapezoids = RadeonTrapezoids; +- glamos->kaa.DoneTrapezoids = RadeonDoneTrapezoids; +- } +- } +-#endif /* USE_DRI */ +- + glamos->kaa.UploadToScreen = GLAMOUploadToScreen; + + /* Reserve a scratch area. It'll be used for storing glyph data during +@@ -399,15 +380,6 @@ + void + GLAMODrawFini(ScreenPtr pScreen) + { +-#ifdef USE_DRI +- KdScreenPriv(pScreen); +- GLAMOScreenInfo(pScreenPriv); +- if (glamos->using_dri) { +- GLAMODRICloseScreen(pScreen); +- glamos->using_dri = FALSE; +- } +-#endif /* USE_DRI */ +- + RemoveBlockAndWakeupHandlers(GLAMOBlockHandler, GLAMOWakeupHandler, + pScreen); + diff --git a/packages/xorg-xserver/xserver-kdrive/03-xglamo-no-vesa.patch b/packages/xorg-xserver/xserver-kdrive/03-xglamo-no-vesa.patch new file mode 100644 index 0000000000..2c44bd8d3d --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive/03-xglamo-no-vesa.patch @@ -0,0 +1,141 @@ +Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.c +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo.c 2007-11-30 10:18:43.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.c 2007-11-30 10:35:27.000000000 +0100 +@@ -38,9 +38,7 @@ + if (glamoc == NULL) + return FALSE; + +-#ifdef KDRIVEFBDEV + if (!initialized && fbdevInitialize(card, &glamoc->backend_priv.fbdev)) { +- glamoc->use_fbdev = TRUE; + initialized = TRUE; + glamoc->backend_funcs.cardfini = fbdevCardFini; + glamoc->backend_funcs.scrfini = fbdevScreenFini; +@@ -58,29 +56,6 @@ + glamoc->backend_funcs.randrSetConfig = fbdevRandRSetConfig; + #endif + } +-#endif +-#ifdef KDRIVEVESA +- if (!initialized && vesaInitialize(card, &glamoc->backend_priv.vesa)) { +- glamoc->use_vesa = TRUE; +- initialized = TRUE; +- glamoc->backend_funcs.cardfini = vesaCardFini; +- glamoc->backend_funcs.scrfini = vesaScreenFini; +- glamoc->backend_funcs.initScreen = vesaInitScreen; +- glamoc->backend_funcs.finishInitScreen = vesaFinishInitScreen; +- glamoc->backend_funcs.createRes = vesaCreateResources; +- glamoc->backend_funcs.preserve = vesaPreserve; +- glamoc->backend_funcs.restore = vesaRestore; +- glamoc->backend_funcs.dpms = vesaDPMS; +- glamoc->backend_funcs.enable = vesaEnable; +- glamoc->backend_funcs.disable = vesaDisable; +- glamoc->backend_funcs.getColors = vesaGetColors; +- glamoc->backend_funcs.putColors = vesaPutColors; +-#ifdef RANDR +- glamoc->backend_funcs.randrSetConfig = vesaRandRSetConfig; +-#endif +- } +-#endif +- + if (!initialized || !GLAMOMapReg(card, glamoc)) { + xfree(glamoc); + return FALSE; +@@ -158,18 +133,8 @@ + + if (screen->fb[0].depth == 0) + screen->fb[0].depth = 16; +-#ifdef KDRIVEFBDEV +- if (glamoc->use_fbdev) { +- success = fbdevScreenInitialize(screen, +- &glamos->backend_priv.fbdev); +- } +-#endif +-#ifdef KDRIVEVESA +- if (glamoc->use_vesa) { +- success = vesaScreenInitialize(screen, +- &glamos->backend_priv.vesa); +- } +-#endif ++ ++ success = fbdevScreenInitialize(screen, &glamos->backend_priv.fbdev); + + if (!success) { + screen->driver = NULL; +Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.h +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo.h 2007-11-30 10:25:06.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo.h 2007-11-30 10:35:17.000000000 +0100 +@@ -30,13 +30,7 @@ + #include <kdrive-config.h> + #endif + +-#ifdef KDRIVEFBDEV + #include <fbdev.h> +-#endif +-#ifdef KDRIVEVESA +-#include <vesa.h> +-#endif +- + #include "kxv.h" + + #define GLAMO_REG_BASE(c) ((c)->attr.address[0]) +@@ -99,12 +93,7 @@ + + typedef struct _GLAMOCardInfo { + union { +-#ifdef KDRIVEFBDEV + FbdevPriv fbdev; +-#endif +-#ifdef KDRIVEVESA +- VesaCardPrivRec vesa; +-#endif + } backend_priv; + struct backend_funcs backend_funcs; + +@@ -112,7 +101,6 @@ + Bool is_3362; + CARD32 crtc_pitch; + CARD32 crtc2_pitch; +- Bool use_fbdev, use_vesa; + } GLAMOCardInfo; + + #define getGLAMOCardInfo(kd) ((GLAMOCardInfo *) ((kd)->card->driver)) +@@ -155,12 +143,7 @@ + + typedef struct _GLAMOScreenInfo { + union { +-#ifdef KDRIVEFBDEV + FbdevScrPriv fbdev; +-#endif +-#ifdef KDRIVEVESA +- VesaScreenPrivRec vesa; +-#endif + } backend_priv; + KaaScreenInfoRec kaa; + +Index: xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_stub.c +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/glamo/glamo_stub.c 2007-11-28 18:44:27.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/glamo/glamo_stub.c 2007-11-30 10:34:10.000000000 +0100 +@@ -59,9 +59,6 @@ + ddxUseMsg (void) + { + KdUseMsg(); +-#ifdef KDRIVEVESA +- vesaUseMsg(); +-#endif + } + + int +@@ -69,9 +66,6 @@ + { + int ret; + +-#ifdef KDRIVEVESA +- if (!(ret = vesaProcessArgument (argc, argv, i))) +-#endif + ret = KdProcessArgument(argc, argv, i); + + return ret; diff --git a/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb b/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb index f78bef05ae..368b421650 100644 --- a/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb +++ b/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb @@ -23,6 +23,10 @@ SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ file://gumstix-kmode.patch;patch=1 \ file://smedia-glamo.patch;patch=1 \ file://build-glamo.patch;patch=1 \ + file://00-xglamo-logs.patch;patch=1 \ + file://01-xglamo-scrolling-artifact-fix.patch;patch=1 \ + file://02-xglamo-no-dri.patch;patch=1 \ + file://03-xglamo-no-vesa.patch;patch=1 \ " S = "${WORKDIR}/xorg-server-${PV}" diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/Xserver b/packages/xserver-kdrive-common/xserver-kdrive-common/Xserver index ac6de5d82e..417b29ca2a 100644 --- a/packages/xserver-kdrive-common/xserver-kdrive-common/Xserver +++ b/packages/xserver-kdrive-common/xserver-kdrive-common/Xserver @@ -114,8 +114,7 @@ case `module_id` in DPI=140 fi ARGS="$ARGS -dpi ${DPI} -screen ${SCREEN_SIZE}" - # uncomment the line below if you want to test Xglamo - #XSERVER=/usr/bin/Xglamo + XSERVER=/usr/bin/Xglamo ;; "Nokia N770") ARGS="$ARGS -dpi 225 -screen ${SCREEN_SIZE} -mouse tslib" diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/openmoko/Xserver b/packages/xserver-kdrive-common/xserver-kdrive-common/openmoko/Xserver index f7fe52d84e..99a4138473 100644 --- a/packages/xserver-kdrive-common/xserver-kdrive-common/openmoko/Xserver +++ b/packages/xserver-kdrive-common/xserver-kdrive-common/openmoko/Xserver @@ -15,6 +15,9 @@ fi if [ -f /usr/bin/Xomap ]; then XSERVER=/usr/bin/Xomap fi +if [ -f /usr/bin/Xglamo ]; then + XSERVER=/usr/bin/Xglamo +fi . /etc/profile |
