diff options
author | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2008-09-24 19:39:46 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2008-09-24 19:39:46 +0000 |
commit | ffdc33ee9f98213b0206cbbd8496ec3b48ae1c8f (patch) | |
tree | b83355fd177bb16b3309ba991b02d2815c42d7c1 | |
parent | 4f7b18b2325b460f224f13ad1f562ee4489e9e56 (diff) | |
parent | 1afd7b0bd9371f8bb52f7f63edcbca4e4e2af998 (diff) |
merge of '2e75cbd37f40c36e60bc1e60a02e967304b6b338'
and '887e1a4016c96ca69eca2047591511a955459515'
160 files changed, 4552 insertions, 2106 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 65f6a10095..072bf0a4c5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -275,8 +275,8 @@ Recipes: jikes-native, jikes-initial, ecj-initial, ecj-bootstrap-native Recipes: classpath*, cacao*, jamvm* Recipes: miglayout, javasqlite*, sqlitejbdc Recipes: swt-gtk, rxtx, dbus-java, libmatthew, kxml2, xmlpull -Recipes: woodstox2 +Recipes: woodstox2, phoneme-advanced-* Recipes: midpath*, logic-analyze -Recipes: kobodeluxe +Recipes: kobodeluxe, wesnoth Recipes: hildon-thumbnail, libhildon*, libosso*, mce-dev, libconic Recipes: libgpsbt, libgpsmgr, osso-gnome-vfs2, osso-gwconnect, osso-ic-oss diff --git a/classes/oestats-client.bbclass b/classes/oestats-client.bbclass index 94fdbf41c4..6d348d3ded 100644 --- a/classes/oestats-client.bbclass +++ b/classes/oestats-client.bbclass @@ -108,6 +108,7 @@ def oestats_stop(server, d, failures): def oestats_task(server, d, task, status): import bb import glob + import os.path import time # retrieve build id @@ -130,6 +131,13 @@ def oestats_task(server, d, task, status): 'filename': 'log.txt', 'content': file(log).read(), 'content-type': 'text/plain'} + if task == 'do_package': + qalog = "%s/log.qa_package" % bb.data.getVar('T', d, True) + if os.path.exists(qalog): + files['qalog'] = { + 'filename': 'qalog.txt', + 'content': file(qalog).read(), + 'content-type': 'text/plain'} # prepare report vars = { diff --git a/classes/pkgconfig.bbclass b/classes/pkgconfig.bbclass index d65f8a6253..2a8199d135 100644 --- a/classes/pkgconfig.bbclass +++ b/classes/pkgconfig.bbclass @@ -2,6 +2,13 @@ inherit base DEPENDS_prepend = "pkgconfig-native " +do_install_prepend () { + +for i in `find ${S}/ -name "*.pc" -type f` ; do \ + sed -i -e 's:-L${STAGING_LIBDIR}::g' $i + done +} + do_stage_append () { install -d ${PKG_CONFIG_DIR} for pc in `find ${S} -name '*.pc' -type f | grep -v -- '-uninstalled.pc$'`; do diff --git a/conf/distro/angstrom-2008.1.conf b/conf/distro/angstrom-2008.1.conf index 823dd9d340..da0aabee38 100644 --- a/conf/distro/angstrom-2008.1.conf +++ b/conf/distro/angstrom-2008.1.conf @@ -63,8 +63,8 @@ PCMCIA_MANAGER = "pcmciautils" PREFERRED_VERSION_linux-handhelds-2.6 ?= "2.6.21-hh20" #Initramfs for kernels -KERNEL_INITRAMFS_DIR = "${TMPDIR}/deploy/uclibc/images/${MACHINE}/" -KERNEL_INITRAMFS_PATH = "${KERNEL_INITRAMFS_DIR}/$(readlink ${KERNEL_INITRAMFS_DIR}initramfs-bootmenu-image-${MACHINE}.cpio.gz)" +#KERNEL_INITRAMFS_DIR = "${TMPDIR}/deploy/uclibc/images/${MACHINE}/" +#KERNEL_INITRAMFS_PATH = "${KERNEL_INITRAMFS_DIR}/$(readlink ${KERNEL_INITRAMFS_DIR}initramfs-bootmenu-image-${MACHINE}.cpio.gz)" #This is unrelated to the kernel version, but userspace apps (e.g. HAL) require a recent version to build against PREFERRED_VERSION_linux-libc-headers = "2.6.23" diff --git a/conf/distro/chinook-compat.conf b/conf/distro/chinook-compat.conf index 24a90e4e59..b9d882d5d6 100644 --- a/conf/distro/chinook-compat.conf +++ b/conf/distro/chinook-compat.conf @@ -211,6 +211,7 @@ PKG_zlib = "zlib1g" PKG_libglade = "libglade2-0" PKG_libsoup = "libsoup2.2-8" +PKG_libsdl-mixer = "libsdl-mixer1.2" PKG_libsdl-image = "libsdl-image1.2" PKG_libsdl-directfb = "libsdl1.2" PKG_libsdl-ttf = "libsdl-ttf2.0-0" diff --git a/conf/distro/include/angstrom-2008-preferred-versions.inc b/conf/distro/include/angstrom-2008-preferred-versions.inc index b5c13e17cb..17459ee31d 100644 --- a/conf/distro/include/angstrom-2008-preferred-versions.inc +++ b/conf/distro/include/angstrom-2008-preferred-versions.inc @@ -4,10 +4,10 @@ PREFERRED_VERSION_cairo = "1.6.4" PREFERRED_VERSION_dbus = "1.2.1" PREFERRED_VERSION_dropbear = "0.51" PREFERRED_VERSION_fontconfig = "2.4.1" -PREFERRED_VERSION_glib-2.0 = "2.18.0" +PREFERRED_VERSION_glib-2.0 = "2.18.1" PREFERRED_VERSION_glib-2.0-native = "2.18.0" PREFERRED_VERSION_gst-pulse = "0.9.7" -PREFERRED_VERSION_gtk+ = "2.14.1" +PREFERRED_VERSION_gtk+ = "2.14.2" PREFERRED_VERSION_libsdl-x11 = "1.2.11" PREFERRED_VERSION_libtool = "2.2.4" PREFERRED_VERSION_libtool-native = "2.2.4" diff --git a/conf/distro/include/preferred-om-2008-versions.inc b/conf/distro/include/preferred-om-2008-versions.inc index a42e555c48..f420097466 100644 --- a/conf/distro/include/preferred-om-2008-versions.inc +++ b/conf/distro/include/preferred-om-2008-versions.inc @@ -288,7 +288,7 @@ PREFERRED_VERSION_e2tools-native ?= "0.0.16" PREFERRED_VERSION_eb ?= "4.3" PREFERRED_VERSION_ebtables ?= "2.0.6" PREFERRED_VERSION_eciadsl ?= "0.11" -PREFERRED_VERSION_ecj-native ?= "3.3" +PREFERRED_VERSION_libecj-bootstrap ?= "3.3" PREFERRED_VERSION_editres ?= "1.0.2" PREFERRED_VERSION_eds-feed ?= "0.3.2" PREFERRED_VERSION_eel ?= "2.12.2" @@ -1378,7 +1378,7 @@ PREFERRED_VERSION_openssh ?= "4.6p1" PREFERRED_VERSION_openssl ?= "0.9.7g" PREFERRED_VERSION_openssl-native ?= "0.9.7g" PREFERRED_VERSION_openswan ?= "2.4.7" -PREFERRED_VERSION_openttd ?= "0.4.0.1" +PREFERRED_VERSION_openttd ?= "0.6.2" PREFERRED_VERSION_openvpn ?= "2.0.9" SRCREV_pn-opkg-native ?= "4640" SRCREV_pn-opkg ?= "4640" @@ -1775,7 +1775,6 @@ PREFERRED_VERSION_squid ?= "2.6.STABLE14" PREFERRED_VERSION_sshfs-fuse ?= "1.8" PREFERRED_VERSION_ssmtp ?= "2.61" PREFERRED_VERSION_stagemanager-native ?= "0.0.1" -PREFERRED_VERSION_starling ?= "0.2" PREFERRED_VERSION_startup-monitor ?= "0.18-2" PREFERRED_VERSION_startup-notification ?= "0.8" PREFERRED_VERSION_stat ?= "3.3" diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index 8958b764af..6add80f7b4 100644 --- a/conf/distro/include/sane-srcrevs.inc +++ b/conf/distro/include/sane-srcrevs.inc @@ -11,6 +11,7 @@ # you know what that means? like... a, b, c, d, e, f, g... +SRCREV_pn-accelges ?= "206" SRCREV_pn-aircrack-ng ?= "802" SRCREV_pn-alsa-scenario ?= "633aaccc37f845146e490090dbd2a1ebb8064fd6" SRCREV_pn-assassin ?= "93" @@ -79,7 +80,7 @@ SRCREV_pn-lightmediascanner ?= "68" SRCREV_pn-linux-bfin ?= "3758" SRCREV_pn-linux-hackndev-2.6 ?= "1308" SRCREV_pn-linux-ixp4xx ?= "1066" -SRCREV_pn-linux-openmoko ?= "ca19d156400f817960efe0d14680324b2ea34171" +SRCREV_pn-linux-openmoko ?= "968c41d0c32099d78927849a71e2ef3143cc05e7" SRCREV_pn-linux-openmoko-devel ?= "e20ce2bd6fc6e711eed58a580ae117cb574abe96" SRCREV_pn-llvm-gcc4 ?= "374" SRCREV_pn-llvm-gcc4-cross ?= "374" @@ -93,7 +94,7 @@ SRCREV_pn-mickeydbus ?= "d1f32060474767582dd4248d5e5c2adc63931d5a" SRCREV_pn-mickeyterm ?= "d1f32060474767582dd4248d5e5c2adc63931d5a" SRCREV_pn-moko-gtk-engine ?= "3612" SRCREV_pn-mpd-alsa ?= "6952" -SRCREV_pn-mplayer ?= "27047" +SRCREV_pn-mplayer ?= "27659" SRCREV_pn-mplayer-maemo ?= "342" SRCREV_pn-multitap-pad ?= "373" SRCREV_pn-navit ?= "1096" @@ -166,11 +167,14 @@ SRCREV_pn-python-formencode = "3148" SRCREV_pn-python-gsmd = "148" SRCREV_pn-python-lightmediascanner = "68" SRCREV_pn-python-pyrtc = "d1f32060474767582dd4248d5e5c2adc63931d5a" +SRCREV_pn-remoko = "115" +SRCREV_pn-remoko-server = "115" SRCREV_pn-s3c24xx-gpio ?= "4130" SRCREV_pn-serial-forward ?= "4214" SRCREV_pn-settings-daemon ?= "2006" SRCREV_pn-sjf2410-linux-native ?= "4268" SRCREV_pn-sphyrna-python ?= "45" +SRCREV_pn-starling ?= "9574" SRCREV_pn-tichy ?= "168" SRCREV_pn-tmut ?= "60" SRCREV_pn-u-boot-openmoko ?= "ba029a1426bfca169572bf80d50a8b190a6b0e19" diff --git a/conf/machine/c7x0.conf b/conf/machine/c7x0.conf index 20fc2fb873..18c9db1f3f 100644 --- a/conf/machine/c7x0.conf +++ b/conf/machine/c7x0.conf @@ -5,7 +5,7 @@ require conf/machine/include/zaurus-2.6.inc require conf/machine/include/zaurus-clamshell.inc -IMAGE_FSTYPES ?= "jffs2" +IMAGE_FSTYPES += "jffs2" ROOT_FLASH_SIZE = "25" # yes, we are aware that the husky (c760,c860) has 54MB rootfs, but we don't make a special image for it. diff --git a/conf/machine/include/zaurus-2.6.inc b/conf/machine/include/zaurus-2.6.inc index 5e8f34fad6..a688f2f64b 100644 --- a/conf/machine/include/zaurus-2.6.inc +++ b/conf/machine/include/zaurus-2.6.inc @@ -52,7 +52,7 @@ zaurus_make_installkit () { mkdir ${IMAGE_NAME}-installkit/ # Get the latest kernel using the zImage-<machine>.bin symlink - if [ "${@base_contains('MACHINE_FEATURES', 'kexecboot', 'true', 'false',d)}" ]; then + if [ "${@base_contains('MACHINE_FEATURES', 'kexecboot', 'true', 'false',d)}" = "true" ]; then [ -f "zImage-kexecboot-${MACHINE}.bin" ] && cp zImage-kexecboot-${MACHINE}.bin ${IMAGE_NAME}-installkit/zImage # we need also tgz for mmc or cf cards cp ${IMAGE_NAME}.rootfs.tar.gz ${IMAGE_NAME}-installkit/image.tgz diff --git a/contrib/angstrom/build-feeds.sh b/contrib/angstrom/build-feeds.sh index 6a32bf2e4f..8d5a75fcdf 100755 --- a/contrib/angstrom/build-feeds.sh +++ b/contrib/angstrom/build-feeds.sh @@ -40,7 +40,7 @@ do_report_success() { for machine in efika dht-walnut omap5912osk ixp4xxle ixp4xxbe c7x0 poodle tosa akita spitz collie simpad om-gta01 om-gta02 a780 at91sam9263ek qemuarm h2200 h3900 h4000 hx4700 nokia800 do BUILD_MACHINE=$machine - BUILD_CLEAN="qmake-native qmake2-native" + BUILD_CLEAN="qmake-native qmake2-native qt-x11-free" BUILD_TARGETS="texinfo flex bison gperf gcc binutils make automake autoconf m4 pkgconfig distcc \ gdb gdbserver strace \ usbutils pciutils mtd-utils usbview hal setserial \ diff --git a/packages/abiword/abiword-embedded_2.6.4.bb b/packages/abiword/abiword-embedded_2.6.4.bb new file mode 100644 index 0000000000..98e69515fa --- /dev/null +++ b/packages/abiword/abiword-embedded_2.6.4.bb @@ -0,0 +1,8 @@ +require abiword-2.5.inc + +EXTRA_OECONF += "--enable-embedded" + +S = "${WORKDIR}/abiword-${PV}" + +RCONFLICTS = "abiword" +RPROVIDES += "abiword" diff --git a/packages/classpath/classpath-minimal-0.97.2/.mtn2git_empty b/packages/accelges/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/classpath/classpath-minimal-0.97.2/.mtn2git_empty +++ b/packages/accelges/.mtn2git_empty diff --git a/packages/accelges/accelges_svn.bb b/packages/accelges/accelges_svn.bb new file mode 100644 index 0000000000..93895e5cbe --- /dev/null +++ b/packages/accelges/accelges_svn.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Accelerometer gestures" +HOMEPAGE = "http://code.google.com/p/accelges/" +AUTHOR = "Paul V. Borza" +LICENSE = "GPL" +DEPENDS = "libnotify" +PV = "0.2+svn${SRCREV}" + +SRC_URI = "svn://accelges.googlecode.com/svn/;module=trunk;proto=http" +S = "${WORKDIR}/trunk" + +inherit autotools + +# FIXME increase packaging granularity diff --git a/packages/aufs/aufs_cvs.bb b/packages/aufs/aufs_cvs.bb index e83071fa0b..fb579f476f 100644 --- a/packages/aufs/aufs_cvs.bb +++ b/packages/aufs/aufs_cvs.bb @@ -28,7 +28,6 @@ EXTRA_OEMAKE = "KDIR=${STAGING_KERNEL_DIR} -f local.mk" # I suggest you to read http://osdir.com/ml/linux.kernel.tracing/2006-12/msg00020.html do_configure() { -echo ${S} > /home/nice/sdir K_VERSION=$(echo ${KERNEL_VERSION} | awk 'BEGIN{FS="."}{print $3}') cd ${S} if [ $K_VERSION -ge 24 ] ; then @@ -59,4 +58,3 @@ else depmod -ae fi } - diff --git a/packages/base-files/base-files_3.0.14.bb b/packages/base-files/base-files_3.0.14.bb index 287f022562..d2fb1be5a1 100644 --- a/packages/base-files/base-files_3.0.14.bb +++ b/packages/base-files/base-files_3.0.14.bb @@ -1,7 +1,7 @@ DESCRIPTION = "Miscellaneous files for the base system." SECTION = "base" PRIORITY = "required" -PR = "r79" +PR = "r81" LICENSE = "GPL" SRC_URI = " \ diff --git a/packages/boost/boost_1.34.1.bb b/packages/boost/boost_1.34.1.bb index 68afcafea5..7fb691f360 100644 --- a/packages/boost/boost_1.34.1.bb +++ b/packages/boost/boost_1.34.1.bb @@ -2,12 +2,15 @@ # # Warning! The build system for boost seems to have changed # significantly since 1.33 (again). +DESCRIPTION = "Free peer-reviewed portable C++ source libraries" +HOMEPAGE = "http://www.boost.org/" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "Boost Software License" -include boost.inc +DEPENDS = "python boost-jam-native zlib bzip2" -DEFAULT_PREFERENCE = "-1" - -DEPENDS += "bzip2" +PR = "r2" SRC_URI = "\ ${SOURCEFORGE_MIRROR}/boost/${BOOST_P}.tar.bz2 \ @@ -15,13 +18,15 @@ SRC_URI = "\ file://${PV}-gcc43.patch;patch=1 \ " -PR = "r0" +DEFAULT_PREFERENCE = "-1" + +S = "${WORKDIR}/${BOOST_P}" -BJAM_TOOLS = "--toolset=gcc \ - '-sGCC=${CC} '${BJAM_CONF} \ - '-sGXX=${CXX} '${BJAM_CONF} \ - '-sGCC_INCLUDE_DIRECTORY=${STAGING_INCDIR}' \ - '-sGCC_STDLIB_DIRECTORY=${STAGING_LIBDIR}' \ +BOOST_VER = "${@"_".join(bb.data.getVar("PV",d,1).split("."))}" +BOOST_MAJ = "${@"_".join(bb.data.getVar("PV",d,1).split(".")[0:2])}" +BOOST_P = "boost_${BOOST_VER}" + +BJAM_TOOLS = "--toolset=gcc \ '-sBUILD=release <optimization>space <inlining>on <debug-symbols>off' \ '-sPYTHON_VERSION=${PYTHON_VERSION}' \ '-sPYTHON=${STAGING_BINDIR_NATIVE}/python' \ @@ -31,11 +36,134 @@ BJAM_TOOLS = "--toolset=gcc \ '--layout=system' \ " -BJAM_OPTS = '${BJAM_TOOLS} \ +BJAM_OPTS = '${BJAM_TOOLS} \ --builddir=${S}/${TARGET_SYS} \ ${BJAM_EXTRA}' +PYTHON_ROOT = "${STAGING_DIR_HOST}/${layout_prefix}" +PYTHON_VERSION = "2.5" + do_configure() { + cp -f boost/config/platform/linux.hpp boost/config/platform/linux-gnueabi.hpp + + platform_config="-DBOOST_PLATFORM_CONFIG='boost/config/platform/${TARGET_OS}.hpp'" + echo "import toolset : using ;" > tools/build/v2/user-config.jam - echo "using gcc : : ${CC} : <cflags>${CFLAGS} <cxxflags>${CXXFLAGS} <linkflags>${LDFLAGS} ;" >> tools/build/v2/user-config.jam + echo "using gcc : : ${CC} : <cflags>${CFLAGS} <cxxflags>${CXXFLAGS} $platform_config<linkflags>${LDFLAGS} ;" >> tools/build/v2/user-config.jam } + +do_compile() { + set -ex + bjam ${BJAM_OPTS} --prefix=${prefix} \ + --exec-prefix=${exec_prefix} \ + --libdir=${libdir} \ + --includedir=${includedir} +} + +do_stage() { + set -ex + bjam ${BJAM_OPTS} \ + --libdir=${STAGING_LIBDIR} \ + --includedir=${STAGING_INCDIR} \ + install +} + +do_install() { + set -ex + bjam ${BJAM_OPTS} \ + --libdir=${D}${libdir} \ + --includedir=${D}${includedir} \ + install +} + +BOOSTLIBS = "" + +# -dev last to pick up the remaining stuff +PACKAGES = "${BOOSTLIBS} ${PN}-dev ${PN}" +FILES_${PN}-dev = "${includedir} ${libdir}/libboost_*.so ${libdir}/libboost_*.a" + +# "boost" is a metapackage which pulls in all boost librabries +RRECOMMENDS_${PN} += "${BOOSTLIBS}" + +BOOSTLIBS += "boost-date-time boost-date-time-dbg boost-date-time-mt boost-date-time-mt-dbg" +FILES_boost-date-time = "${libdir}/libboost_date_time.so" +FILES_boost-date-time-dbg = "${libdir}/libboost_date_time-d.so ${libdir}/.debug/libboost_date_time-d.so" +FILES_boost-date-time-mt = "${libdir}/libboost_date_time-mt.so" +FILES_boost-date-time-mt-dbg = "${libdir}/libboost_date_time-mt-d.so ${libdir}/.debug/libboost_date_time-mt-d.so" + +BOOSTLIBS += "boost-filesystem boost-filesystem-dbg boost-filesystem-mt boost-filesystem-mt-dbg" +FILES_boost-filesystem = "${libdir}/libboost_filesystem.so" +FILES_boost-filesystem-dbg = "${libdir}/libboost_filesystem-d.so ${libdir}/.debug/libboost_filesystem-d.so" +FILES_boost-filesystem-mt = "${libdir}/libboost_filesystem-mt.so" +FILES_boost-filesystem-mt-dbg = "${libdir}/libboost_filesystem-mt-d.so ${libdir}/.debug/libboost_filesystem-mt-d.so" + +BOOSTLIBS += "boost-graph boost-graph-dbg boost-graph-mt boost-graph-mt-dbg" +FILES_boost-graph = "${libdir}/libboost_graph.so" +FILES_boost-graph-dbg = "${libdir}/libboost_graph-d.so ${libdir}/.debug/libboost_graph-d.so" +FILES_boost-graph-mt = "${libdir}/libboost_graph-mt.so" +FILES_boost-graph-mt-dbg = "${libdir}/libboost_graph-mt-d.so ${libdir}/.debug/libboost_graph-mt-d.so" + +BOOSTLIBS += "boost-iostreams boost-iostreams-dbg boost-iostreams-mt boost-iostreams-mt-dbg" +FILES_boost-iostreams = "${libdir}/libboost_iostreams.so" +FILES_boost-iostreams-dbg = "${libdir}/libboost_iostreams-d.so ${libdir}/.debug/libboost_iostreams-d.so" +FILES_boost-iostreams-mt = "${libdir}/libboost_iostreams-mt.so" +FILES_boost-iostreams-mt-dbg = "${libdir}/libboost_iostreams-mt-d.so ${libdir}/.debug/libboost_iostreams-mt-d.so" + +BOOSTLIBS += "boost-prg-exec-monitor boost-prg-exec-monitor-dbg boost-prg-exec-monitor-mt boost-prg-exec-monitor-mt-dbg" +FILES_boost-prg-exec-monitor = "${libdir}/libboost_prg_exec_monitor.so" +FILES_boost-prg-exec-monitor-dbg = "${libdir}/libboost_prg_exec_monitor-d.so ${libdir}/.debug/libboost_prg_exec_monitor-d.so" +FILES_boost-prg-exec-monitor-mt = "${libdir}/libboost_prg_exec_monitor-mt.so" +FILES_boost-prg-exec-monitor-mt-dbg = "${libdir}/libboost_prg_exec_monitor-mt-d.so ${libdir}/.debug/libboost_prg_exec_monitor-mt-d.so" + +BOOSTLIBS += "boost-program-options boost-program-options-dbg boost-program-options-mt boost-program-options-mt-dbg" +FILES_boost-program-options = "${libdir}/libboost_program_options.so" +FILES_boost-program-options-dbg = "${libdir}/libboost_program_options-d.so ${libdir}/.debug/libboost_program_options-d.so" +FILES_boost-program-options-mt = "${libdir}/libboost_program_options-mt.so" +FILES_boost-program-options-mt-dbg = "${libdir}/libboost_program_options-mt-d.so ${libdir}/.debug/libboost_program_options-mt-d.so" + +BOOSTLIBS += "boost-python boost-python-dbg boost-python-mt boost-python-mt-dbg" +FILES_boost-python = "${libdir}/libboost_python.so" +FILES_boost-python-dbg = "${libdir}/libboost_python-d.so ${libdir}/.debug/libboost_python-d.so" +FILES_boost-python-mt = "${libdir}/libboost_python-mt.so" +FILES_boost-python-mt-dbg = "${libdir}/libboost_python-mt-d.so ${libdir}/.debug/libboost_python-mt-d.so" + +BOOSTLIBS += "boost-regex boost-regex-dbg boost-regex-mt boost-regex-mt-dbg" +FILES_boost-regex = "${libdir}/libboost_regex.so" +FILES_boost-regex-dbg = "${libdir}/libboost_regex-d.so ${libdir}/.debug/libboost_regex-d.so" +FILES_boost-regex-mt = "${libdir}/libboost_regex-mt.so" +FILES_boost-regex-mt-dbg = "${libdir}/libboost_regex-mt-d.so ${libdir}/.debug/libboost_regex-mt-d.so" + +BOOSTLIBS += "boost-serialization boost-serialization-dbg boost-serialization-mt boost-serialization-mt-dbg" +FILES_boost-serialization = "${libdir}/libboost_serialization.so" +FILES_boost-serialization-dbg = "${libdir}/libboost_serialization-d.so ${libdir}/.debug/libboost_serialization-d.so" +FILES_boost-serialization-mt = "${libdir}/libboost_serialization-mt.so" +FILES_boost-serialization-mt-dbg = "${libdir}/libboost_serialization-mt-d.so ${libdir}/.debug/libboost_serialization-mt-d.so" + +BOOSTLIBS += "boost-signals boost-signals-dbg boost-signals-mt boost-signals-mt-dbg" +FILES_boost-signals = "${libdir}/libboost_signals.so" +FILES_boost-signals-dbg = "${libdir}/libboost_signals-d.so ${libdir}/.debug/libboost_signals-d.so" +FILES_boost-signals-mt = "${libdir}/libboost_signals-mt.so" +FILES_boost-signals-mt-dbg = "${libdir}/libboost_signals-mt-d.so ${libdir}/.debug/libboost_signals-mt-d.so" + +BOOSTLIBS += "boost-thread-mt boost-thread-mt-dbg" +FILES_boost-thread-mt = "${libdir}/libboost_thread-mt.so" +FILES_boost-thread-mt-dbg = "${libdir}/libboost_thread-mt-d.so ${libdir}/.debug/libboost_thread-mt-d.so" + +BOOSTLIBS += "boost-unit-test-framework boost-unit-test-framework-dbg boost-unit-test-framework-mt boost-unit-test-framework-mt-dbg" +FILES_boost-unit-test-framework = "${libdir}/libboost_unit_test_framework.so" +FILES_boost-unit-test-framework-dbg = "${libdir}/libboost_unit_test_framework-d.so ${libdir}/.debug/libboost_unit_test_framework-d.so" +FILES_boost-unit-test-framework-mt = "${libdir}/libboost_unit_test_framework-mt.so" +FILES_boost-unit-test-framework-mt-dbg = "${libdir}/libboost_unit_test_framework-mt-d.so ${libdir}/.debug/libboost_unit_test_framework-mt-d.so" + +BOOSTLIBS += "boost-wave boost-wave-dbg boost-wave-mt boost-wave-mt-dbg" +FILES_boost-wave = "${libdir}/libboost_wave.so" +FILES_boost-wave-dbg = "${libdir}/libboost_wave-d.so ${libdir}/.debug/libboost_wave-d.so" +FILES_boost-wave-mt = "${libdir}/libboost_wave-mt.so" +FILES_boost-wave-mt-dbg = "${libdir}/libboost_wave-mt-d.so ${libdir}/.debug/libboost_wave-mt-d.so" + +BOOSTLIBS += "boost-wserialization boost-wserialization-dbg boost-wserialization-mt boost-wserialization-mt-dbg" +FILES_boost-wserialization = "${libdir}/libboost_wserialization.so" +FILES_boost-wserialization-dbg = "${libdir}/libboost_wserialization-d.so ${libdir}/.debug/libboost_wserialization-d.so" +FILES_boost-wserialization-mt = "${libdir}/libboost_wserialization-mt.so" +FILES_boost-wserialization-mt-dbg = "${libdir}/libboost_wserialization-mt-d.so ${libdir}/.debug/libboost_wserialization-mt-d.so" + diff --git a/packages/classpath/classpath-minimal-0.97.2/autotools.patch b/packages/classpath/classpath-minimal-0.97.2/autotools.patch deleted file mode 100644 index e36e143b5f..0000000000 --- a/packages/classpath/classpath-minimal-0.97.2/autotools.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: classpath-0.97.2/configure.ac -=================================================================== ---- classpath-0.97.2.orig/configure.ac 2008-06-06 02:58:57.000000000 +0200 -+++ classpath-0.97.2/configure.ac 2008-08-02 00:58:16.537364104 +0200 -@@ -41,6 +41,8 @@ - AC_CONFIG_HEADERS([include/config.h]) - AC_PREFIX_DEFAULT(/usr/local/classpath) - -+AC_CONFIG_MACRO_DIR([m4]) -+ - dnl ----------------------------------------------------------- - dnl Enable collections.jar (disabled by default) - dnl ----------------------------------------------------------- diff --git a/packages/classpath/classpath-minimal_0.97.2.bb b/packages/classpath/classpath-minimal_0.97.2.bb index 44cffcec32..e03dc85760 100644 --- a/packages/classpath/classpath-minimal_0.97.2.bb +++ b/packages/classpath/classpath-minimal_0.97.2.bb @@ -1,5 +1,7 @@ require classpath.inc +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/${PBN}-${PV}" + SRC_URI += "\ file://netif_16.patch;patch=1;pnum=0 \ file://SimpleName.diff;patch=1;pnum=0 \ diff --git a/packages/classpath/classpath-native-0.97.2/autotools.patch b/packages/classpath/classpath-native-0.97.2/autotools.patch deleted file mode 100644 index e36e143b5f..0000000000 --- a/packages/classpath/classpath-native-0.97.2/autotools.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: classpath-0.97.2/configure.ac -=================================================================== ---- classpath-0.97.2.orig/configure.ac 2008-06-06 02:58:57.000000000 +0200 -+++ classpath-0.97.2/configure.ac 2008-08-02 00:58:16.537364104 +0200 -@@ -41,6 +41,8 @@ - AC_CONFIG_HEADERS([include/config.h]) - AC_PREFIX_DEFAULT(/usr/local/classpath) - -+AC_CONFIG_MACRO_DIR([m4]) -+ - dnl ----------------------------------------------------------- - dnl Enable collections.jar (disabled by default) - dnl ----------------------------------------------------------- diff --git a/packages/classpath/classpath-native.inc b/packages/classpath/classpath-native.inc index 992a16ec7a..d178ce6779 100644 --- a/packages/classpath/classpath-native.inc +++ b/packages/classpath/classpath-native.inc @@ -2,15 +2,15 @@ DESCRIPTION = "GNU Classpath standard Java libraries - For native Java-dependent HOMEPAGE = "http://www.gnu.org/software/classpath/" LICENSE = "Classpath" -S = "${WORKDIR}/classpath-${PV}" - -SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz" - +inherit autotools native DEPENDS = "ecj-initial fastjar-native zip-native gettext-native" -inherit autotools native +SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz" + +S = "${WORKDIR}/classpath-${PV}" +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/classpath-${PV}" do_configure_prepend () { @@ -18,6 +18,7 @@ do_configure_prepend () { } export JAVAC="${STAGING_BINDIR_NATIVE}/ecj-initial" +export JAVACFLAGS="-nowarn" # Note: the --with-ecj options seems redundant but is # for compatibility with older classpath versions. diff --git a/packages/classpath/classpath.inc b/packages/classpath/classpath.inc index 65bc465200..e0d6a2abb7 100644 --- a/packages/classpath/classpath.inc +++ b/packages/classpath/classpath.inc @@ -21,6 +21,8 @@ SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz" S = "${WORKDIR}/${PBN}-${PV}" +export JAVA = "java" + EXTRA_OECONF = "\ --with-glibj \ --with-ecj=javac \ diff --git a/packages/cnc/openredalert/gcc43-fix.patch b/packages/cnc/openredalert/gcc43-fix.patch new file mode 100644 index 0000000000..aa99d991b7 --- /dev/null +++ b/packages/cnc/openredalert/gcc43-fix.patch @@ -0,0 +1,13 @@ +Index: openredalert-0.0+svnr438-r0/src/misc/Compression.h +=================================================================== +--- openredalert-0.0+svnr438-r0.orig/src/misc/Compression.h 2008-09-21 15:20:33.000000000 +0200 ++++ openredalert-0.0+svnr438-r0/src/misc/Compression.h 2008-09-21 15:21:10.000000000 +0200 +@@ -20,6 +20,8 @@ +
+ #include "SDL/SDL_types.h"
+
++#include <cstring>
++
+ /**
+ * Various decompression routines for format80, format40, and
+ * format20 type graphics
diff --git a/packages/cnc/openredalert_r438.bb b/packages/cnc/openredalert_r438.bb index 4da245614a..098f293b2e 100644 --- a/packages/cnc/openredalert_r438.bb +++ b/packages/cnc/openredalert_r438.bb @@ -4,8 +4,11 @@ LICENSE = "GPLv2" DEPENDS = "virtual/libsdl libsdl-mixer" SRC_URI = "http://openredalert.googlecode.com/files/openredalert-${PV}-src.tar.gz \ + file://gcc43-fix.patch;patch=1 \ file://openredalert-launcher" +PR = "r1" + S = "${WORKDIR}" CFLAGS_append = " -I. -I${STAGING_INCDIR}" diff --git a/packages/classpath/classpath-native-0.97.2/.mtn2git_empty b/packages/cowsay/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/classpath/classpath-native-0.97.2/.mtn2git_empty +++ b/packages/cowsay/.mtn2git_empty diff --git a/packages/cowsay/xcowsay_1.1.bb b/packages/cowsay/xcowsay_1.1.bb new file mode 100644 index 0000000000..85f336c85f --- /dev/null +++ b/packages/cowsay/xcowsay_1.1.bb @@ -0,0 +1,8 @@ +DESCRIPTION = "xcowsay displays a cute cow and message on your desktop" +LICENSE = "GPLv3" +DEPENDS = "gtk+ dbus" + +SRC_URI = "http://www.nickg.me.uk/files/xcowsay-${PV}.tar.gz" + +inherit autotools + diff --git a/packages/ecj/ecj-bootstrap-native_3.3.2.bb b/packages/ecj/ecj-bootstrap-native.bb index bd4347457c..04f8ba4062 100644 --- a/packages/ecj/ecj-bootstrap-native_3.3.2.bb +++ b/packages/ecj/ecj-bootstrap-native.bb @@ -1,9 +1,7 @@ # ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more # and no less features. # -# Since the VM running the compiler has no effect on the produced bytecode this recipe -# uses the jar created by ecj-initial and creates a start script that runs it with a different -# VM. +# This recipe uses the jar created by libecj-bootstrap. DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant" HOMEPAGE = "http://www.eclipse.org/" @@ -11,7 +9,7 @@ SECTION = "devel" PRIORITY = "optional" LICENSE = "EPL" -DEPENDS = "ecj-initial virtual/java-native" +DEPENDS = "libecj-bootstrap" PROVIDES = "virtual/javac-native" @@ -19,7 +17,7 @@ SRC_URI = "file://ecj.in" S = "${WORKDIR}" -JAR = "ecj-bootstrap-${PV}.jar" +JAR = "ecj-bootstrap.jar" inherit native diff --git a/packages/ecj/ecj-bootstrap-native_3.3.bb b/packages/ecj/ecj-bootstrap-native_3.3.bb deleted file mode 100644 index bd4347457c..0000000000 --- a/packages/ecj/ecj-bootstrap-native_3.3.bb +++ /dev/null @@ -1,38 +0,0 @@ -# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more -# and no less features. -# -# Since the VM running the compiler has no effect on the produced bytecode this recipe -# uses the jar created by ecj-initial and creates a start script that runs it with a different -# VM. - -DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant" -HOMEPAGE = "http://www.eclipse.org/" -SECTION = "devel" -PRIORITY = "optional" -LICENSE = "EPL" - -DEPENDS = "ecj-initial virtual/java-native" - -PROVIDES = "virtual/javac-native" - -SRC_URI = "file://ecj.in" - -S = "${WORKDIR}" - -JAR = "ecj-bootstrap-${PV}.jar" - -inherit native - -do_compile() { - # Create the start script - echo "#!/bin/sh" > ecj-bootstrap - echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-bootstrap - echo "RUNTIME=java" >> ecj-bootstrap - cat ecj.in >> ecj-bootstrap -} - -do_stage() { - install -d ${STAGING_BINDIR} - install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR} - install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR}/javac -} diff --git a/packages/ecj/ecj-bootstrap-native_3.4.bb b/packages/ecj/ecj-bootstrap-native_3.4.bb deleted file mode 100644 index bd4347457c..0000000000 --- a/packages/ecj/ecj-bootstrap-native_3.4.bb +++ /dev/null @@ -1,38 +0,0 @@ -# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more -# and no less features. -# -# Since the VM running the compiler has no effect on the produced bytecode this recipe -# uses the jar created by ecj-initial and creates a start script that runs it with a different -# VM. - -DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant" -HOMEPAGE = "http://www.eclipse.org/" -SECTION = "devel" -PRIORITY = "optional" -LICENSE = "EPL" - -DEPENDS = "ecj-initial virtual/java-native" - -PROVIDES = "virtual/javac-native" - -SRC_URI = "file://ecj.in" - -S = "${WORKDIR}" - -JAR = "ecj-bootstrap-${PV}.jar" - -inherit native - -do_compile() { - # Create the start script - echo "#!/bin/sh" > ecj-bootstrap - echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-bootstrap - echo "RUNTIME=java" >> ecj-bootstrap - cat ecj.in >> ecj-bootstrap -} - -do_stage() { - install -d ${STAGING_BINDIR} - install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR} - install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR}/javac -} diff --git a/packages/ecj/ecj-initial.bb b/packages/ecj/ecj-initial.bb new file mode 100644 index 0000000000..106453691b --- /dev/null +++ b/packages/ecj/ecj-initial.bb @@ -0,0 +1,31 @@ +# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more +# and no less features. + +# This variant runs on the initial (not Java5-compatible runtime). + +DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant" +HOMEPAGE = "http://www.eclipse.org/" +LICENSE = "EPL" + +DEPENDS = "libecj-bootstrap" + +SRC_URI = "file://ecj.in" + +S = "${WORKDIR}" + +inherit native + +JAR = "ecj-bootstrap.jar" + +do_compile() { + # Create the start script + echo "#!/bin/sh" > ecj-initial + echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-initial + echo "RUNTIME=java-initial" >> ecj-initial + cat ecj.in >> ecj-initial +} + +do_stage() { + install -d ${STAGING_BINDIR} + install -m 755 ${S}/ecj-initial ${STAGING_BINDIR} +} diff --git a/packages/ecj/ecj-initial_3.3.2.bb b/packages/ecj/ecj-initial_3.3.2.bb deleted file mode 100644 index 60bbc5546c..0000000000 --- a/packages/ecj/ecj-initial_3.3.2.bb +++ /dev/null @@ -1,84 +0,0 @@ -# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more -# and no less features. - -# This variant runs on the initial (not Java5-compatible runtime). - -DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant" -HOMEPAGE = "http://www.eclipse.org/" -LICENSE = "EPL" - -DEPENDS = "fastjar-native unzip-native jikes-initial virtual/java-initial" - -SRC_URI = "\ - http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.3.2-200802211800/ecjsrc.zip \ - file://ecj.in \ - " - -S = "${WORKDIR}" - -inherit native - -JAR = "ecj-bootstrap-${PV}.jar" - -do_unpackpost() { - if [ ! -d source ]; then - mkdir source - fi - - if [ ! -d build ]; then - mkdir build - fi - - # Remove crap. - rm about.html build.xml - rm -rf META-INF - - # Move source into separate subdir. - mv org source/ - - # Remove stuff unneeded for the bootstrap compiler. - rm -rf source/org/eclipse/jdt/internal/compiler/apt - rm -rf source/org/eclipse/jdt/internal/compiler/tool - rm -rf source/org/eclipse/jdt/internal/antadapter - rm source/org/eclipse/jdt/core/JDTCompilerAdapter.java - - # Make a copy of the remaining source to get the embedded - # resources. - cp -r source/org build/ - - # Remove source code and other stuff. - find build -name '*.java' -exec rm -f {} \; - find build -name '*.html' -exec rm -f {} \; -} - -addtask unpackpost after do_unpack before do_patch - -do_compile() { - find source -name '*.java' > sourcefiles - split -l 25 sourcefiles ecj-sources. - - # Compiling in place is done because the sources contain - # property files which need to be available at runtime. - for list in `find . -name 'ecj-sources.*'`; do - echo "building files in $list ..."; - echo jikes-initial -d build -source 1.4 -sourcepath source `cat $list`; - jikes-initial \ - -d build -source 1.4 -sourcepath source `cat $list`; - done - - fastjar -c -C build . -f ${JAR} - - # Create the start script - echo "#!/bin/sh" > ecj-initial - echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-initial - echo "RUNTIME=java-initial" >> ecj-initial - cat ecj.in >> ecj-initial -} - -do_stage() { - install -d ${STAGING_DATADIR}/java - install -m 755 ${S}/${JAR} ${STAGING_DATADIR}/java - - install -d ${STAGING_BINDIR} - install -m 755 ${S}/ecj-initial ${STAGING_BINDIR} -} diff --git a/packages/ecj/ecj-initial_3.4.bb b/packages/ecj/ecj-initial_3.4.bb deleted file mode 100644 index dcc08139c1..0000000000 --- a/packages/ecj/ecj-initial_3.4.bb +++ /dev/null @@ -1,84 +0,0 @@ -# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more -# and no less features. - -# This variant runs on the initial (not Java5-compatible runtime). - -DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant" -HOMEPAGE = "http://www.eclipse.org/" -LICENSE = "EPL" - -DEPENDS = "fastjar-native unzip-native jikes-initial virtual/java-initial" - -SRC_URI = "\ - http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.4-200806172000/ecjsrc.zip \ - file://ecj.in \ - " - -S = "${WORKDIR}" - -inherit native - -JAR = "ecj-bootstrap-${PV}.jar" - -do_unpackpost() { - if [ ! -d source ]; then - mkdir source - fi - - if [ ! -d build ]; then - mkdir build - fi - - # Remove crap. - rm about.html build.xml - rm -rf META-INF - - # Move source into separate subdir. - mv org source/ - - # Remove stuff unneeded for the bootstrap compiler. - rm -rf source/org/eclipse/jdt/internal/compiler/apt - rm -rf source/org/eclipse/jdt/internal/compiler/tool - rm -rf source/org/eclipse/jdt/internal/antadapter - rm source/org/eclipse/jdt/core/JDTCompilerAdapter.java - - # Make a copy of the remaining source to get the embedded - # resources. - cp -r source/org build/ - - # Remove source code and other stuff. - find build -name '*.java' -exec rm -f {} \; - find build -name '*.html' -exec rm -f {} \; -} - -addtask unpackpost after do_unpack before do_patch - -do_compile() { - find source -name '*.java' > sourcefiles - split -l 25 sourcefiles ecj-sources. - - # Compiling in place is done because the sources contain - # property files which need to be available at runtime. - for list in `find . -name 'ecj-sources.*'`; do - echo "building files in $list ..."; - echo jikes-initial -d build -source 1.4 -sourcepath source `cat $list`; - jikes-initial \ - -d build -source 1.4 -sourcepath source `cat $list`; - done - - fastjar -c -C build . -f ${JAR} - - # Create the start script - echo "#!/bin/sh" > ecj-initial - echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-initial - echo "RUNTIME=java-initial" >> ecj-initial - cat ecj.in >> ecj-initial -} - -do_stage() { - install -d ${STAGING_DATADIR}/java - install -m 755 ${S}/${JAR} ${STAGING_DATADIR}/java - - install -d ${STAGING_BINDIR} - install -m 755 ${S}/ecj-initial ${STAGING_BINDIR} -} diff --git a/packages/ecj/ecj-initial_3.3.bb b/packages/ecj/libecj-bootstrap.inc index 884d98f30b..c24c1af5ca 100644 --- a/packages/ecj/ecj-initial_3.3.bb +++ b/packages/ecj/libecj-bootstrap.inc @@ -1,23 +1,15 @@ -# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more -# and no less features. +# This package compiles and stages only the Jar. -# This variant runs on the initial (not Java5-compatible runtime). - -DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant" +DESCRIPTION = "JDT Core Batch Compiler - Jar only" HOMEPAGE = "http://www.eclipse.org/" LICENSE = "EPL" -DEPENDS = "fastjar-native unzip-native jikes-initial virtual/java-initial" +DEPENDS = "fastjar-native jikes-initial virtual/java-initial" -SRC_URI = "\ - http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.3-200706251500/ecjsrc.zip \ - file://ecj.in \ - " +inherit native java S = "${WORKDIR}" -inherit native - JAR = "ecj-bootstrap-${PV}.jar" do_unpackpost() { @@ -67,18 +59,9 @@ do_compile() { done fastjar -c -C build . -f ${JAR} - - # Create the start script - echo "#!/bin/sh" > ecj-initial - echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-initial - echo "RUNTIME=java-initial" >> ecj-initial - cat ecj.in >> ecj-initial } do_stage() { - install -d ${STAGING_DATADIR}/java - install -m 755 ${S}/${JAR} ${STAGING_DATADIR}/java - - install -d ${STAGING_BINDIR} - install -m 755 ${S}/ecj-initial ${STAGING_BINDIR} + oe_jarinstall -s ${JAR} ecj-bootstrap.jar } + diff --git a/packages/ecj/libecj-bootstrap_3.3.2.bb b/packages/ecj/libecj-bootstrap_3.3.2.bb new file mode 100644 index 0000000000..dab6ed724c --- /dev/null +++ b/packages/ecj/libecj-bootstrap_3.3.2.bb @@ -0,0 +1,6 @@ +require libecj-bootstrap.inc + +SRC_URI = "\ + http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.3.2-200802211800/ecjsrc.zip \ + " + diff --git a/packages/ecj/libecj-bootstrap_3.3.bb b/packages/ecj/libecj-bootstrap_3.3.bb new file mode 100644 index 0000000000..b65e99cb54 --- /dev/null +++ b/packages/ecj/libecj-bootstrap_3.3.bb @@ -0,0 +1,6 @@ +require libecj-bootstrap.inc + +SRC_URI = "\ + http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.3-200706251500/ecjsrc.zip \ + " + diff --git a/packages/ecj/libecj-bootstrap_3.4.bb b/packages/ecj/libecj-bootstrap_3.4.bb new file mode 100644 index 0000000000..c321a8f2c1 --- /dev/null +++ b/packages/ecj/libecj-bootstrap_3.4.bb @@ -0,0 +1,6 @@ +require libecj-bootstrap.inc + +SRC_URI = "\ + http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.4-200806172000/ecjsrc.zip \ + " + diff --git a/packages/freesmartphone/frameworkd_git.bb b/packages/freesmartphone/frameworkd_git.bb index 0532166748..7523f6bfc7 100644 --- a/packages/freesmartphone/frameworkd_git.bb +++ b/packages/freesmartphone/frameworkd_git.bb @@ -4,7 +4,7 @@ AUTHOR = "Michael 'Mickey' Lauer <mlauer@vanille-media.de> et. al." SECTION = "console/network" DEPENDS = "python-cython-native python-pyrex-native" LICENSE = "GPL" -PV = "0.8.2+gitr${SRCREV}" +PV = "0.8.2+${PR}-gitr${SRCREV}" PR = "r0" inherit distutils update-rc.d diff --git a/packages/freesmartphone/gsm0710muxd_git.bb b/packages/freesmartphone/gsm0710muxd_git.bb index d5e9bd0672..0c146079d0 100644 --- a/packages/freesmartphone/gsm0710muxd_git.bb +++ b/packages/freesmartphone/gsm0710muxd_git.bb @@ -5,7 +5,7 @@ SECTION = "console/network" DEPENDS = "dbus dbus-glib" RDEPENDS = "dbus dbus-glib" LICENSE = "GPL" -PV = "0.9.1+gitr${SRCREV}" +PV = "0.9.1+${PR}-gitr${SRCREV}" PR = "r0" SRC_URI = "${FREESMARTPHONE_GIT}/gsm0710muxd.git;protocol=git;branch=master" diff --git a/packages/freesmartphone/gsmd2_git.bb b/packages/freesmartphone/gsmd2_git.bb index 6c327ede30..0432927d16 100644 --- a/packages/freesmartphone/gsmd2_git.bb +++ b/packages/freesmartphone/gsmd2_git.bb @@ -5,7 +5,7 @@ SECTION = "console/network" DEPENDS = "dbus dbus-glib" RDEPENDS = "gsm0710muxd" LICENSE = "GPL" -PV = "0.1.0+gitr${SRCREV}" +PV = "0.1.0+${PR}-gitr${SRCREV}" PR = "r0" SRC_URI = "${FREESMARTPHONE_GIT}/gsmd2.git;protocol=git;branch=master" diff --git a/packages/freesmartphone/illume-theme-freesmartphone_git.bb b/packages/freesmartphone/illume-theme-freesmartphone_git.bb index 1ff193e87b..1e6306f624 100644 --- a/packages/freesmartphone/illume-theme-freesmartphone_git.bb +++ b/packages/freesmartphone/illume-theme-freesmartphone_git.bb @@ -2,7 +2,7 @@ DESCRIPTION = "Illume theme for the freesmartphone.org project" HOMEPAGE = "http://illume.projects.openmoko.org/" LICENSE = "MIT/BSD" DEPENDS = "edje-native eet-native" -PV = "0.0+gitr${SRCREV}" +PV = "0.0+${PR}-gitr${SRCREV}" PR = "r2" SRC_URI = "${FREESMARTPHONE_GIT}/artwork.git;protocol=git;branch=master" diff --git a/packages/freesmartphone/zhone_git.bb b/packages/freesmartphone/zhone_git.bb index 55b56c8e26..e5c16fabad 100644 --- a/packages/freesmartphone/zhone_git.bb +++ b/packages/freesmartphone/zhone_git.bb @@ -3,7 +3,7 @@ LICENSE = "GPL" SECTION = "x11" DEPENDS = "edje-native python-pyrex-native python-cython-native" RDEPENDS = "task-python-efl python-textutils python-dbus python-pycairo" -PV = "0.0.0+gitr${SRCREV}" +PV = "0.0.0+${PR}-gitr${SRCREV}" PR = "r8" SRC_URI = "${FREESMARTPHONE_GIT}/zhone.git;protocol=git;branch=master \ diff --git a/packages/gcc/gcc-cross-initial_csl-arm-2007q3.bb b/packages/gcc/gcc-cross-initial_csl-arm-2007q3.bb index 99656dbe83..c9f03a7920 100644 --- a/packages/gcc/gcc-cross-initial_csl-arm-2007q3.bb +++ b/packages/gcc/gcc-cross-initial_csl-arm-2007q3.bb @@ -4,9 +4,3 @@ require gcc-cross-initial.inc S = "${WORKDIR}/gcc-4.2" EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap " - -# Hack till we fix *libc properly -do_stage_append() { - ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/ -} - diff --git a/packages/gcc/gcc-cross-initial_csl-arm-2008q1.bb b/packages/gcc/gcc-cross-initial_csl-arm-2008q1.bb index 99656dbe83..c9f03a7920 100644 --- a/packages/gcc/gcc-cross-initial_csl-arm-2008q1.bb +++ b/packages/gcc/gcc-cross-initial_csl-arm-2008q1.bb @@ -4,9 +4,3 @@ require gcc-cross-initial.inc S = "${WORKDIR}/gcc-4.2" EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap " - -# Hack till we fix *libc properly -do_stage_append() { - ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/ -} - diff --git a/packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb b/packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb index 114d9831c6..5423626a99 100644 --- a/packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb +++ b/packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb @@ -4,9 +4,3 @@ require gcc-cross-intermediate.inc S = "${WORKDIR}/gcc-4.2" EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap " - -# Hack till we fix *libc properly -do_stage_append() { - ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/ -} - diff --git a/packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb b/packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb index 114d9831c6..5423626a99 100644 --- a/packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb +++ b/packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb @@ -4,9 +4,3 @@ require gcc-cross-intermediate.inc S = "${WORKDIR}/gcc-4.2" EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap " - -# Hack till we fix *libc properly -do_stage_append() { - ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/ -} - diff --git a/packages/gcc/gcc-cross-sdk_csl-arm-2007q3.bb b/packages/gcc/gcc-cross-sdk_csl-arm-2007q3.bb index bc66b51f7c..fc5c2e5deb 100644 --- a/packages/gcc/gcc-cross-sdk_csl-arm-2007q3.bb +++ b/packages/gcc/gcc-cross-sdk_csl-arm-2007q3.bb @@ -1,4 +1,4 @@ -PR = "r0" +PR = "r1" inherit sdk @@ -20,8 +20,3 @@ EXTRA_OECONF += " \ CFLAGS = "" CXXFLAGS = "" LDFLAGS = "" - -# Hack till we fix *libc properly -do_install_append() { - cp -a ${D}${gcclibdir}/${TARGET_SYS}/${BINV}/include-fixed/* ${D}${gcclibdir}/${TARGET_SYS}/${BINV}/include/ -} diff --git a/packages/wxwidgets/wxbase-2.8.7/.mtn2git_empty b/packages/glib-2.0/glib-2.0-2.18.1/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/wxwidgets/wxbase-2.8.7/.mtn2git_empty +++ b/packages/glib-2.0/glib-2.0-2.18.1/.mtn2git_empty diff --git a/packages/glib-2.0/glib-2.0-2.18.1/configure-libtool.patch b/packages/glib-2.0/glib-2.0-2.18.1/configure-libtool.patch new file mode 100644 index 0000000000..3ba79b8986 --- /dev/null +++ b/packages/glib-2.0/glib-2.0-2.18.1/configure-libtool.patch @@ -0,0 +1,34 @@ +# Poky renames libtool to $host_alias-libtool. +# ./$host_alias-libtool isn't created until after configure runs with libtool >= 2.2.2 +# so we can't call # it at this point. We can safely assume a version is available +# from PATH though + +--- glib-2.12.10/configure.in.orig 2006-06-05 13:34:08.000000000 +0100 ++++ glib-2.12.10/configure.in 2006-06-05 13:34:36.000000000 +0100 +@@ -1174,7 +1174,7 @@ + G_MODULE_LDFLAGS= + else + export SED +- G_MODULE_LDFLAGS=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` ++ G_MODULE_LDFLAGS=`($host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` + fi + dnl G_MODULE_IMPL= don't reset, so cmd-line can override + G_MODULE_NEED_USCORE=0 +@@ -1265,7 +1265,7 @@ + LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS" + dnl *** check for OSF1/5.0 RTLD_GLOBAL brokenness + echo "void glib_plugin_test(void) { }" > plugin.c +- ${SHELL} ./libtool --mode=compile ${CC} -shared \ ++ ${SHELL} $host_alias-libtool --mode=compile ${CC} -shared \ + -export-dynamic -o plugin.o plugin.c 2>&1 >/dev/null + AC_CACHE_CHECK([for RTLD_GLOBAL brokenness], + glib_cv_rtldglobal_broken,[ +@@ -1339,7 +1339,7 @@ + + AC_MSG_CHECKING(for the suffix of shared libraries) + export SED +-shrext_cmds=`./libtool --config | grep '^shrext_cmds='` ++shrext_cmds=`$host_alias-libtool --config | grep '^shrext_cmds='` + eval $shrext_cmds + module=yes eval std_shrext=$shrext_cmds + # chop the initial dot diff --git a/packages/glib-2.0/glib-2.0-native_2.18.0.bb b/packages/glib-2.0/glib-2.0-native_2.18.0.bb index 4a610c4a74..5684c5df49 100644 --- a/packages/glib-2.0/glib-2.0-native_2.18.0.bb +++ b/packages/glib-2.0/glib-2.0-native_2.18.0.bb @@ -1,11 +1,13 @@ require glib-2.0_${PV}.bb FILESPATH = "${FILE_DIRNAME}/glib-2.0-${PV}:${FILE_DIRNAME}/files" -DEPENDS = "gtk-doc-native" -PR = "r1" +PR = "r2" inherit native +DEPENDS = "gettext-native gtk-doc-native" + + do_configure_prepend() { if [ -e ${S}/${TARGET_SYS}-libtool ] ; then echo "${TARGET_SYS}-libtool already present" diff --git a/packages/glib-2.0/glib-2.0_2.18.1.bb b/packages/glib-2.0/glib-2.0_2.18.1.bb new file mode 100644 index 0000000000..3ac0487018 --- /dev/null +++ b/packages/glib-2.0/glib-2.0_2.18.1.bb @@ -0,0 +1,11 @@ +require glib.inc + +# This version requires a newer libtool that isn't default yet +DEFAULT_PREFERENCE = "-1" + +PR = "r0" + +SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glib/2.18/glib-${PV}.tar.bz2 \ + file://glibconfig-sysdefs.h \ + file://configure-libtool.patch;patch=1 \ + " diff --git a/packages/gnome/gnome-games_2.23.6.bb b/packages/gnome/gnome-games_2.23.6.bb index 6fb4dd7d89..c8e1c19da3 100644 --- a/packages/gnome/gnome-games_2.23.6.bb +++ b/packages/gnome/gnome-games_2.23.6.bb @@ -19,7 +19,7 @@ do_configure_prepend() { done } -do_configure_prepend() { +do_configure_append() { for i in $(find ${S} -name "Makefile") ; do sed -i -e s:'-I /usr/include -I /usr/local/include'::g $i done diff --git a/packages/gnome/orbit2/pkgconfig-fix.patch b/packages/gnome/orbit2/pkgconfig-fix.patch new file mode 100644 index 0000000000..f629e506dd --- /dev/null +++ b/packages/gnome/orbit2/pkgconfig-fix.patch @@ -0,0 +1,12 @@ +diff -urN ORBit2-2.14.12.orig/ORBit-2.0.pc.in ORBit2-2.14.12/ORBit-2.0.pc.in +--- ORBit2-2.14.12.orig/ORBit-2.0.pc.in 2008-01-29 13:45:22.000000000 +0100 ++++ ORBit2-2.14.12/ORBit-2.0.pc.in 2008-09-23 20:13:07.000000000 +0200 +@@ -2,7 +2,7 @@ + exec_prefix=@exec_prefix@ + libdir=@libdir@ + includedir=@includedir@ +-orbit_idl=@bindir@/orbit-idl-2@EXEEXT@ ++orbit_idl=@exec_prefix@/bin/orbit-idl-2@EXEEXT@ + + + Name: ORBit-2.0 diff --git a/packages/gnome/orbit2_2.14.12.bb b/packages/gnome/orbit2_2.14.12.bb index 1ac0136e10..140776114d 100644 --- a/packages/gnome/orbit2_2.14.12.bb +++ b/packages/gnome/orbit2_2.14.12.bb @@ -1,9 +1,10 @@ LICENSE = "GPL" -PR = "r0" +PR = "r1" DESCRIPTION = "CORBA ORB" SECTION = "x11/gnome/libs" SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/ORBit2/2.14/ORBit2-${PV}.tar.bz2 \ file://configure-lossage.patch;patch=1;pnum=1 \ + file://pkgconfig-fix.patch;patch=1 \ file://gtk-doc.m4 \ file://gtk-doc.make" DEPENDS = "libidl popt orbit2-native gtk-doc" @@ -28,16 +29,6 @@ do_configure_prepend() { install ${WORKDIR}/gtk-doc.make ./ } -do_compile_append () { - cp ORBit-2.0.pc ORBit-2.0.pc.old - sed 's:^orbit_idl=.*/:orbit_idl=${STAGING_BINDIR_NATIVE}/:' < ORBit-2.0.pc > ORBit-2.0.pc.new - mv ORBit-2.0.pc.new ORBit-2.0.pc -} - -do_install_append () { - mv ORBit-2.0.pc.old ORBit-2.0.pc -} - do_stage() { oe_libinstall -so -C src/orb libORBit-2 ${STAGING_LIBDIR} oe_libinstall -so -C src/services/name libORBitCosNaming-2 ${STAGING_LIBDIR} diff --git a/packages/gnumeric/gnumeric_1.8.2.bb b/packages/gnumeric/gnumeric_1.8.2.bb index f7654117d7..8d3b1b5fb7 100644 --- a/packages/gnumeric/gnumeric_1.8.2.bb +++ b/packages/gnumeric/gnumeric_1.8.2.bb @@ -6,6 +6,8 @@ DESCRIPTION = "Gnumeric spreadsheet for GNOME" PR = "r1" +PARALLEL_MAKE = "" + inherit gnome flow-lossage SRC_URI += "file://remove-docs.patch;patch=1" diff --git a/packages/gnumeric/gnumeric_1.8.3.bb b/packages/gnumeric/gnumeric_1.8.3.bb index 9fa01408f6..0f70e37d5c 100644 --- a/packages/gnumeric/gnumeric_1.8.3.bb +++ b/packages/gnumeric/gnumeric_1.8.3.bb @@ -6,6 +6,8 @@ DESCRIPTION = "Gnumeric spreadsheet for GNOME" PR = "r0" +PARALLEL_MAKE = "" + inherit gnome flow-lossage SRC_URI += "file://remove-docs.patch;patch=1" diff --git a/packages/gtk+/gtk+-2.14.2/.mtn2git_empty b/packages/gtk+/gtk+-2.14.2/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/gtk+/gtk+-2.14.2/.mtn2git_empty diff --git a/packages/gtk+/gtk+-2.14.2/hardcoded_libtool.patch b/packages/gtk+/gtk+-2.14.2/hardcoded_libtool.patch new file mode 100644 index 0000000000..82fbbac8d7 --- /dev/null +++ b/packages/gtk+/gtk+-2.14.2/hardcoded_libtool.patch @@ -0,0 +1,31 @@ +Index: gtk+-2.14.2/configure.in +=================================================================== +--- gtk+-2.14.2.orig/configure.in 2008-09-23 15:52:44.000000000 +0100 ++++ gtk+-2.14.2/configure.in 2008-09-23 15:53:51.000000000 +0100 +@@ -401,7 +401,7 @@ + case $enable_explicit_deps in + auto) + export SED +- deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` ++ deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` + if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then + enable_explicit_deps=yes + else +@@ -759,7 +759,7 @@ + dnl Now we check to see if our libtool supports shared lib deps + dnl (in a rather ugly way even) + if $dynworks; then +- pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config" ++ pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} $host_alias-libtool --config" + pixbuf_deplibs_check=`$pixbuf_libtool_config | \ + grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \ + sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'` +@@ -1893,7 +1893,7 @@ + # We are using gmodule-no-export now, but I'm leaving the stripping + # code in place for now, since pango and atk still require gmodule. + export SED +-export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` ++export_dynamic=`($host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` + if test -n "$export_dynamic"; then + GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"` + GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"` diff --git a/packages/gtk+/gtk+-2.14.2/no-demos.patch b/packages/gtk+/gtk+-2.14.2/no-demos.patch new file mode 100644 index 0000000000..0fc4c48d1a --- /dev/null +++ b/packages/gtk+/gtk+-2.14.2/no-demos.patch @@ -0,0 +1,10 @@ +--- gtk+-2.10.1/Makefile.am.orig 2006-08-08 12:37:30.000000000 +0100 ++++ gtk+-2.10.1/Makefile.am 2006-08-08 12:37:48.000000000 +0100 +@@ -1,6 +1,6 @@ + ## Makefile.am for GTK+ + +-SRC_SUBDIRS = gdk-pixbuf gdk gtk modules demos tests perf contrib ++SRC_SUBDIRS = gdk-pixbuf gdk gtk modules tests perf contrib + SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros + + # require automake 1.4 diff --git a/packages/gtk+/gtk+-2.14.2/run-iconcache.patch b/packages/gtk+/gtk+-2.14.2/run-iconcache.patch new file mode 100644 index 0000000000..ac15e9ab24 --- /dev/null +++ b/packages/gtk+/gtk+-2.14.2/run-iconcache.patch @@ -0,0 +1,19 @@ +--- /tmp/Makefile.am 2007-01-08 17:44:47.000000000 +0100 ++++ gtk+-2.10.7/gtk/Makefile.am 2007-01-08 17:45:17.025251000 +0100 +@@ -1128,11 +1128,11 @@ + ./gtk-update-icon-cache + endif + +-gtkbuiltincache.h: @REBUILD@ stamp-icons +- $(MAKE) $(AM_MAKEFLAGS) gtk-update-icon-cache$(EXEEXT) +- $(gtk_update_icon_cache_program) --force --ignore-theme-index \ +- --source builtin_icons stock-icons > gtkbuiltincache.h.tmp && \ +- mv gtkbuiltincache.h.tmp gtkbuiltincache.h ++#gtkbuiltincache.h: @REBUILD@ stamp-icons ++# $(MAKE) $(AM_MAKEFLAGS) gtk-update-icon-cache$(EXEEXT) ++# $(gtk_update_icon_cache_program) --force --ignore-theme-index \ ++# --source builtin_icons stock-icons > gtkbuiltincache.h.tmp && \ ++# mv gtkbuiltincache.h.tmp gtkbuiltincache.h + + EXTRA_DIST += \ + $(STOCK_ICONS) \ diff --git a/packages/gtk+/gtk+-2.14.2/toggle-font.diff b/packages/gtk+/gtk+-2.14.2/toggle-font.diff new file mode 100644 index 0000000000..59ad150b2f --- /dev/null +++ b/packages/gtk+/gtk+-2.14.2/toggle-font.diff @@ -0,0 +1,100 @@ +Index: gtk/gtkcellrenderertoggle.c +=================================================================== +--- gtk/gtkcellrenderertoggle.c (revision 18523) ++++ gtk/gtkcellrenderertoggle.c (working copy) +@@ -71,6 +71,8 @@ + PROP_INDICATOR_SIZE + }; + ++/* This is a hard-coded default which promptly gets overridden by a size ++ calculated from the font size. */ + #define TOGGLE_WIDTH 13 + + static guint toggle_cell_signals[LAST_SIGNAL] = { 0 }; +@@ -80,8 +82,9 @@ + typedef struct _GtkCellRendererTogglePrivate GtkCellRendererTogglePrivate; + struct _GtkCellRendererTogglePrivate + { +- gint indicator_size; +- ++ gint indicator_size; /* This is the real size */ ++ gint override_size; /* This is the size set from the indicator-size property */ ++ GtkWidget *cached_widget; + guint inconsistent : 1; + }; + +@@ -104,6 +107,7 @@ + GTK_CELL_RENDERER (celltoggle)->ypad = 2; + + priv->indicator_size = TOGGLE_WIDTH; ++ priv->override_size = 0; + priv->inconsistent = FALSE; + } + +@@ -210,7 +214,7 @@ + g_value_set_boolean (value, celltoggle->radio); + break; + case PROP_INDICATOR_SIZE: +- g_value_set_int (value, priv->indicator_size); ++ g_value_set_int (value, priv->override_size ? priv->override_size : priv->indicator_size); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); +@@ -245,7 +249,7 @@ + celltoggle->radio = g_value_get_boolean (value); + break; + case PROP_INDICATOR_SIZE: +- priv->indicator_size = g_value_get_int (value); ++ priv->override_size = g_value_get_int (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); +@@ -273,6 +277,27 @@ + } + + static void ++on_widget_style_set (GtkWidget *widget, GtkStyle *previous, gpointer user_data) ++{ ++ GtkCellRendererTogglePrivate *priv = user_data; ++ PangoContext *context; ++ PangoFontMetrics *metrics; ++ int height; ++ ++ context = gtk_widget_get_pango_context (widget); ++ metrics = pango_context_get_metrics (context, ++ widget->style->font_desc, ++ pango_context_get_language (context)); ++ ++ height = pango_font_metrics_get_ascent (metrics) + ++ pango_font_metrics_get_descent (metrics); ++ ++ pango_font_metrics_unref (metrics); ++ ++ priv->indicator_size = PANGO_PIXELS (height * 0.85); ++} ++ ++static void + gtk_cell_renderer_toggle_get_size (GtkCellRenderer *cell, + GtkWidget *widget, + GdkRectangle *cell_area, +@@ -287,6 +312,20 @@ + + priv = GTK_CELL_RENDERER_TOGGLE_GET_PRIVATE (cell); + ++ if (priv->override_size) { ++ priv->indicator_size = priv->override_size; ++ } else if (priv->cached_widget != widget) { ++ if (priv->cached_widget) { ++ g_object_remove_weak_pointer (widget, &priv->cached_widget); ++ g_signal_handlers_disconnect_by_func (priv->cached_widget, on_widget_style_set, priv); ++ } ++ priv->cached_widget = widget; ++ g_object_add_weak_pointer (widget, &priv->cached_widget); ++ g_signal_connect (widget, "style-set", on_widget_style_set, priv); ++ ++ on_widget_style_set (widget, NULL, priv); ++ } ++ + calc_width = (gint) cell->xpad * 2 + priv->indicator_size; + calc_height = (gint) cell->ypad * 2 + priv->indicator_size; + diff --git a/packages/gtk+/gtk+_2.14.2.bb b/packages/gtk+/gtk+_2.14.2.bb new file mode 100644 index 0000000000..d63a47a8b7 --- /dev/null +++ b/packages/gtk+/gtk+_2.14.2.bb @@ -0,0 +1,40 @@ +require gtk+.inc + +DEPENDS += "cairo jasper" + +# disabled per default - this uses as little patches as possible +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "http://download.gnome.org/sources/gtk+/2.14/gtk+-${PV}.tar.bz2 \ + file://xsettings.patch;patch=1 \ + file://run-iconcache.patch;patch=1 \ + file://hardcoded_libtool.patch;patch=1 \ + file://no-demos.patch;patch=1 \ + file://toggle-font.diff;patch=1;pnum=0 \ + " + +EXTRA_OECONF = "--with-libtiff --disable-xkb --disable-glibtest --enable-display-migration gio_can_sniff=yes" + +LIBV = "2.10.0" + +PACKAGES_DYNAMIC = "gtk-module-* gdk-pixbuf-loader-* gtk-immodule-* gtk-printbackend-*" + +python populate_packages_prepend () { + import os.path + + prologue = bb.data.getVar("postinst_prologue", d, 1) + + gtk_libdir = bb.data.expand('${libdir}/gtk-2.0/${LIBV}', d) + loaders_root = os.path.join(gtk_libdir, 'loaders') + immodules_root = os.path.join(gtk_libdir, 'immodules') + printmodules_root = os.path.join(gtk_libdir, 'printbackends'); + modules_root = bb.data.expand('${libdir}/gtk-2.0/modules/',d) + + do_split_packages(d, loaders_root, '^libpixbufloader-(.*)\.so$', 'gdk-pixbuf-loader-%s', 'GDK pixbuf loader for %s', prologue + 'gdk-pixbuf-query-loaders > /etc/gtk-2.0/gdk-pixbuf.loaders', extra_depends='') + do_split_packages(d, immodules_root, '^im-(.*)\.so$', 'gtk-immodule-%s', 'GTK input module for %s', prologue + 'gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules', extra_depends='') + do_split_packages(d, printmodules_root, '^libprintbackend-(.*)\.so$', 'gtk-printbackend-%s', 'GTK printbackend module for %s', extra_depends='') + do_split_packages(d, modules_root, '^lib(.*)\.so$', 'gtk-module-%s', 'GTK module for %s', extra_depends='') + + if (bb.data.getVar('DEBIAN_NAMES', d, 1)): + bb.data.setVar('PKG_${PN}', 'libgtk-2.0', d) +} diff --git a/packages/initscripts/initscripts_1.0.bb b/packages/initscripts/initscripts_1.0.bb index 6d4b7e6ea5..2ed20952f1 100644 --- a/packages/initscripts/initscripts_1.0.bb +++ b/packages/initscripts/initscripts_1.0.bb @@ -4,7 +4,7 @@ PRIORITY = "required" DEPENDS = "makedevs" RDEPENDS = "makedevs" LICENSE = "GPL" -PR = "r107" +PR = "r108" SRC_URI = "file://functions \ file://halt \ @@ -125,3 +125,8 @@ do_install () { install -m 0755 ${WORKDIR}/device_table.txt ${D}${sysconfdir}/device_table } + +# Angstrom doesn't support devfs +do_install_append_angstrom () { + rm ${D}${sysconfdir}/init.d/devices ${D}${sysconfdir}/rcS.d/S05devices +} diff --git a/packages/klibc/klibc-common.inc b/packages/klibc/klibc-common.inc index 87fb6498f4..ff67450f50 100644 --- a/packages/klibc/klibc-common.inc +++ b/packages/klibc/klibc-common.inc @@ -17,6 +17,11 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" KLIBC_ARCH = '${TARGET_ARCH}' KLIBC_ARCH_armeb = 'arm' KLIBC_ARCH_mipsel = 'mips' +KLIBC_ARCH_x86 = 'i386' +KLIBC_ARCH_i486 = 'i386' +KLIBC_ARCH_i586 = 'i386' +KLIBC_ARCH_i686 = 'i386' +KLIBC_ARCH_pentium = 'i386' # the klibc code contains ARM instructions (for ARM), this # could be fixed, but for the moment: diff --git a/packages/klibc/klibc-utils-static_1.5.bb b/packages/klibc/klibc-utils-static_1.5.bb index f7015ffaf7..14a9f6b4d7 100644 --- a/packages/klibc/klibc-utils-static_1.5.bb +++ b/packages/klibc/klibc-utils-static_1.5.bb @@ -1,6 +1,6 @@ require klibc-common.inc -PR = "r10" +PR = "r11" # We only want the static utils. klibc build both. So we install only what we want. do_install() { diff --git a/packages/klibc/klibc_1.5.bb b/packages/klibc/klibc_1.5.bb index 70d2819394..a607aa8a21 100644 --- a/packages/klibc/klibc_1.5.bb +++ b/packages/klibc/klibc_1.5.bb @@ -1,2 +1,2 @@ require klibc.inc -PR = "r8" +PR = "r9" diff --git a/packages/leafpad/leafpad_0.8.15.bb b/packages/leafpad/leafpad_0.8.15.bb index 3446b4f74e..9017c11dbf 100644 --- a/packages/leafpad/leafpad_0.8.15.bb +++ b/packages/leafpad/leafpad_0.8.15.bb @@ -1,25 +1,19 @@ DESCRIPTION = "GTK+ based simple text editor" +DESCRIPTION_${PN}-icons = "Extra icon files for leafpad text editor" HOMEPAGE = "http://tarot.freeshell.org/leafpad" AUTHOR = "Tarot Osuji <tarot@sdf.lonestar.org>" SECTION = "x11/applications" LICENSE = "GPLv2" -DEPENDS = "gtk+" -SRC_URI = "http://savannah.nongnu.org/download/${PN}/${PN}-${PV}.tar.gz \ - file://leafpad.desktop \ - file://leafpad.png" -PR = "r0" +DEPENDS = "gtk+ intltool-native" +SRC_URI = "http://savannah.nongnu.org/download/${PN}/${PN}-${PV}.tar.gz" + +PR = "r1" inherit autotools pkgconfig EXTRA_OECONF = " --enable-chooser --enable-emacs --disable-print" -do_install_append () { - install -d ${D}/${datadir} - install -d ${D}/${datadir}/applications - install -d ${D}/${datadir}/pixmaps/ - - install -m 0644 ${WORKDIR}/leafpad.png ${D}/${datadir}/pixmaps - install -m 0644 ${WORKDIR}/leafpad.desktop ${D}/${datadir}/applications -} +PACKAGES =+ "${PN}-icons" +FILES_${PN}-icons = "${datadir}/icons" FILES_${PN} += "${datadir}/applications ${datadir}/pixmaps ${datadir}/icons" diff --git a/packages/liboil/liboil-0.3.15/.mtn2git_empty b/packages/liboil/liboil-0.3.15/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/liboil/liboil-0.3.15/.mtn2git_empty diff --git a/packages/liboil/liboil-0.3.15/autotools.patch b/packages/liboil/liboil-0.3.15/autotools.patch new file mode 100644 index 0000000000..bbd4cbb250 --- /dev/null +++ b/packages/liboil/liboil-0.3.15/autotools.patch @@ -0,0 +1,46 @@ +Index: liboil-0.3.15/configure.ac +=================================================================== +--- liboil-0.3.15.orig/configure.ac 2008-07-01 06:45:53.000000000 +0200 ++++ liboil-0.3.15/configure.ac 2008-09-24 20:37:24.963143501 +0200 +@@ -187,15 +187,33 @@ + true) + fi + +-if test x$HAVE_GCC_ASM = xyes -a x$HAVE_ARM = xyes ; then +- AS_COMPILER_FLAG(["-Wa,-mfpu=vfp"], +- [VFP_CFLAGS="$VFP_CFLAGS -mfpu=vfp"], +- true) +- #AS_COMPILER_FLAG(["-Wa,-mfloat-abi=softfp"], +- # [VFP_CFLAGS="$VFP_CFLAGS -mfloat-abi=softfp"], +- # true) ++dnl macro taken from cacao ++dnl check if softfloat should be used ++ ++AC_DEFUN([AC_CHECK_SOFTFLOAT],[ ++AC_MSG_CHECKING(whether softfloat should be used) ++AC_ARG_ENABLE([softfloat], ++ [AS_HELP_STRING(--enable-softfloat,use softfloat [[default=no]])], ++ [case "${enableval}" in ++ yes) ++ ENABLE_SOFTFLOAT=yes ++ ;; ++ *) ++ ENABLE_SOFTFLOAT=no ++ ;; ++ esac], ++ [ENABLE_SOFTFLOAT=no]) ++AC_MSG_RESULT(${ENABLE_SOFTFLOAT}) ++ ++if test x"${ENABLE_SOFTFLOAT}" = "xyes"; then ++ VFP_CFLAGS="$VFP_CFLAGS -mfloat-abi=softfp" ++else ++ VFP_CFLAGS="$VFP_CFLAGS -mfpu=vfp" + fi +-AC_SUBST(VFP_CFLAGS) ++AC_SUBST([VFP_CFLAGS]) ++]) ++ ++AC_CHECK_SOFTFLOAT + + #AS_COMPILER_FLAG(["-fasm-blocks"], HAVE_ASM_BLOCKS=yes, HAVE_ASM_BLOCKS=no) + HAVE_ASM_BLOCKS=no diff --git a/packages/liboil/liboil_0.3.15.bb b/packages/liboil/liboil_0.3.15.bb index d6a29f0c0f..2021451ddb 100644 --- a/packages/liboil/liboil_0.3.15.bb +++ b/packages/liboil/liboil_0.3.15.bb @@ -1,14 +1,20 @@ DESCRIPTION = "Liboil is a library of simple functions that are optimized for various CPUs." HOMEPAGE = "http://liboil.freedesktop.org/" LICENSE = "various" +PR = "r1" DEPENDS = "glib-2.0" SRC_URI = "http://liboil.freedesktop.org/download/${P}.tar.gz \ + file://autotools.patch;patch=1 \ " inherit autotools pkgconfig +EXTRA_OECONF = "\ + ${@['','--enable-softfloat'][bb.data.getVar('TARGET_FPU',d,1) == 'soft']} \ + " + do_stage() { autotools_stage_all } diff --git a/packages/libopie/libopie2/c7x0_w100_disable.patch b/packages/libopie/libopie2/c7x0_w100_disable.patch new file mode 100644 index 0000000000..959c56c443 --- /dev/null +++ b/packages/libopie/libopie2/c7x0_w100_disable.patch @@ -0,0 +1,20 @@ +--- libopie2/opiecore/device/odevice_zaurus.cpp 10 Aug 2008 09:07:32 -0000 1.55 ++++ libopie2/opiecore/device/odevice_zaurus.cpp 20 Sep 2008 23:56:20 -0000 +@@ -313,14 +313,14 @@ + } + + // set default qte driver +- switch( d->m_model ) ++/* switch( d->m_model ) + { + case Model_Zaurus_SLC7x0: + d->m_qteDriver = "W100"; + break; +- default: ++ default:*/ + d->m_qteDriver = "Transformed"; +- } ++// } + + m_leds[0] = Led_Off; + diff --git a/packages/libopie/libopie2_1.2.3.bb b/packages/libopie/libopie2_1.2.3.bb index 522fe55f7c..d0f9e9e17a 100644 --- a/packages/libopie/libopie2_1.2.3.bb +++ b/packages/libopie/libopie2_1.2.3.bb @@ -1,12 +1,13 @@ require ${PN}.inc -PR = "r5" +PR = "r6" SRC_URI = "${HANDHELDS_CVS};tag=${TAG};module=opie/libopie2 \ file://include.pro \ file://gcc-syntax-fix.patch;patch=1 \ file://h4000_and_default_rot.patch;patch=1 \ file://ipaq_rotate_fix.patch;patch=1 \ - file://spitz_rotate_fix.patch;patch=1" + file://spitz_rotate_fix.patch;patch=1 \ + file://c7x0_w100_disable.patch;patch=1" SRC_URI_append_poodle = " file://poodle-2.6-hotkeys.patch;patch=1" diff --git a/packages/libsdl/libsdl-gfx_2.0.17.bb b/packages/libsdl/libsdl-gfx_2.0.17.bb new file mode 100644 index 0000000000..79af40ae1d --- /dev/null +++ b/packages/libsdl/libsdl-gfx_2.0.17.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "Simple DirectMedia Layer graphic primitives library." +SECTION = "libs" +PRIORITY = "optional" +DEPENDS = "zlib libpng jpeg virtual/libsdl" +LICENSE = "LGPL" + +SRC_URI = "http://www.ferzkopp.net/~aschiffler/Software/SDL_gfx-2.0/SDL_gfx-${PV}.tar.gz" +S = "${WORKDIR}/SDL_gfx-${PV}" + +inherit autotools + +EXTRA_OECONF = "--disable-mmx" + +do_stage() { + autotools_stage_all +} + diff --git a/packages/libtool/libtool-sdk_2.2.4.bb b/packages/libtool/libtool-sdk_2.2.4.bb index b6b2aa966c..e92c4dbfaf 100644 --- a/packages/libtool/libtool-sdk_2.2.4.bb +++ b/packages/libtool/libtool-sdk_2.2.4.bb @@ -1,7 +1,7 @@ require libtool.inc require libtool_${PV}.bb -PR = "r0" +PR = "r1" FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}" SRC_URI_append = " file://cross_compile.patch;patch=1" @@ -40,6 +40,7 @@ do_stage () { install -m 0755 libtoolize ${STAGING_BINDIR}/libtoolize oe_libinstall -a -so -C libltdl libltdl ${STAGING_LIBDIR} + install -d ${STAGING_INCDIR} install -m 0644 libltdl/ltdl.h ${STAGING_INCDIR}/ install -d ${STAGING_DATADIR}/libtool/config/ diff --git a/packages/linux/linux-2.6.25/at32stk1000/defconfig b/packages/linux/linux-2.6.25/at32stk1000/defconfig index c5f75a04d6..9c01480cdd 100644 --- a/packages/linux/linux-2.6.25/at32stk1000/defconfig +++ b/packages/linux/linux-2.6.25/at32stk1000/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.25 -# Sun Sep 7 18:10:04 2008 +# Mon Sep 22 19:07:49 2008 # CONFIG_AVR32=y CONFIG_GENERIC_GPIO=y @@ -200,7 +200,7 @@ CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y # CONFIG_CPU_FREQ_DEBUG is not set CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_STAT_DETAILS=n +# CONFIG_CPU_FREQ_STAT_DETAILS is not set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set @@ -850,64 +850,7 @@ CONFIG_SOUND=m # # Advanced Linux Sound Architecture # -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m -# CONFIG_SND_SEQUENCER is not set -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -# CONFIG_SND_DYNAMIC_MINORS is not set -# CONFIG_SND_SUPPORT_OLD_API is not set -# CONFIG_SND_VERBOSE_PROCFS is not set -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set - -# -# Generic devices -# -CONFIG_SND_AC97_CODEC=m -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set - -# -# AVR32 devices -# -CONFIG_SND_ATMEL_AC97=m - -# -# SPI devices -# -CONFIG_SND_AT73C213=m -CONFIG_SND_AT73C213_TARGET_BITRATE=48000 - -# -# USB devices -# -# CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_CAIAQ is not set - -# -# PCMCIA devices -# -# CONFIG_SND_VXPOCKET is not set -# CONFIG_SND_PDAUDIOCF is not set - -# -# System on Chip audio support -# -# CONFIG_SND_SOC is not set - -# -# SoC Audio support for SuperH -# - -# -# ALSA SoC audio for Freescale SOCs -# +# CONFIG_SND is not set # # Open Sound System @@ -916,7 +859,6 @@ CONFIG_SOUND_PRIME=m # CONFIG_SOUND_MSNDCLAS is not set # CONFIG_SOUND_MSNDPIN is not set CONFIG_SOUND_AT32_ABDAC=m -CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y CONFIG_HID=m # CONFIG_HID_DEBUG is not set diff --git a/packages/linux/linux-ezx_2.6.21.bb b/packages/linux/linux-ezx_2.6.21.bb index 7ba2556bb8..150a4a153c 100644 --- a/packages/linux/linux-ezx_2.6.21.bb +++ b/packages/linux/linux-ezx_2.6.21.bb @@ -8,6 +8,8 @@ require linux.inc RPSRC = "http://www.rpsys.net/openzaurus/patches/archive" +CFLAGS += "-DPATH_MAX=256" + SRC_URI = " \ ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ file://logo_linux_clut224.ppm \ diff --git a/packages/linux/linux-openezx-devel_svn.bb b/packages/linux/linux-openezx-devel_svn.bb index 6c0af7cfb6..17156535ea 100644 --- a/packages/linux/linux-openezx-devel_svn.bb +++ b/packages/linux/linux-openezx-devel_svn.bb @@ -55,6 +55,7 @@ CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDL do_prepatch() { mv ${WORKDIR}/${KERNEL_PATCHES}/defconfig-${MACHINE} ${WORKDIR}/defconfig +# mv ${WORKDIR}/defconfig-${MACHINE} ${WORKDIR}/defconfig mv ${WORKDIR}/${KERNEL_PATCHES} ${S}/patches && cd ${S} && quilt push -av mv patches patches.openezx mv .pc .pc.old diff --git a/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics-2.6.22.5.patch b/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics-2.6.22.5.patch deleted file mode 100644 index cc74c0e289..0000000000 --- a/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics-2.6.22.5.patch +++ /dev/null @@ -1,91 +0,0 @@ -Index: linux-2.6.22.5/drivers/input/evdev.c -=================================================================== ---- linux-2.6.22.5.orig/drivers/input/evdev.c -+++ linux-2.6.22.5/drivers/input/evdev.c -@@ -28,7 +28,7 @@ struct evdev { - char name[16]; - struct input_handle handle; - wait_queue_head_t wait; -- struct evdev_client *grab; -+ int grab; - struct list_head client_list; - }; - -@@ -36,6 +36,7 @@ struct evdev_client { - struct input_event buffer[EVDEV_BUFFER_SIZE]; - int head; - int tail; -+ int grab; - struct fasync_struct *fasync; - struct evdev *evdev; - struct list_head node; -@@ -48,8 +49,7 @@ static void evdev_event(struct input_han - struct evdev *evdev = handle->private; - struct evdev_client *client; - -- if (evdev->grab) { -- client = evdev->grab; -+ list_for_each_entry(client, &evdev->client_list, node) { - - do_gettimeofday(&client->buffer[client->head].time); - client->buffer[client->head].type = type; -@@ -58,17 +58,7 @@ static void evdev_event(struct input_han - client->head = (client->head + 1) & (EVDEV_BUFFER_SIZE - 1); - - kill_fasync(&client->fasync, SIGIO, POLL_IN); -- } else -- list_for_each_entry(client, &evdev->client_list, node) { -- -- do_gettimeofday(&client->buffer[client->head].time); -- client->buffer[client->head].type = type; -- client->buffer[client->head].code = code; -- client->buffer[client->head].value = value; -- client->head = (client->head + 1) & (EVDEV_BUFFER_SIZE - 1); -- -- kill_fasync(&client->fasync, SIGIO, POLL_IN); -- } -+ } - - wake_up_interruptible(&evdev->wait); - } -@@ -105,9 +95,10 @@ static int evdev_release(struct inode *i - struct evdev_client *client = file->private_data; - struct evdev *evdev = client->evdev; - -- if (evdev->grab == client) { -- input_release_device(&evdev->handle); -- evdev->grab = NULL; -+ if (client->grab) { -+ if(!--evdev->grab && evdev->exist) -+ input_release_device(&evdev->handle); -+ client->grab = 0; - } - - evdev_fasync(-1, file, 0); -@@ -488,17 +479,19 @@ static long evdev_ioctl_handler(struct f - - case EVIOCGRAB: - if (p) { -- if (evdev->grab) -- return -EBUSY; -- if (input_grab_device(&evdev->handle)) -+ if (client->grab) - return -EBUSY; -- evdev->grab = client; -+ if (!evdev->grab++) -+ if (input_grab_device(&evdev->handle)) -+ return -EBUSY; -+ client->grab = 0; - return 0; - } else { -- if (evdev->grab != client) -+ if (!client->grab) - return -EINVAL; -- input_release_device(&evdev->handle); -- evdev->grab = NULL; -+ if (!--evdev->grab) -+ input_release_device(&evdev->handle); -+ client->grab = 0; - return 0; - } - diff --git a/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics.patch b/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics.patch deleted file mode 100644 index 3c96faa271..0000000000 --- a/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics.patch +++ /dev/null @@ -1,97 +0,0 @@ -diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c -index 12c7ab8..c7e741b 100644 ---- a/drivers/input/evdev.c -+++ b/drivers/input/evdev.c -@@ -29,7 +29,7 @@ struct evdev { - char name[16]; - struct input_handle handle; - wait_queue_head_t wait; -- struct evdev_list *grab; -+ int grab; - struct list_head list; - }; - -@@ -37,6 +37,7 @@ struct evdev_list { - struct input_event buffer[EVDEV_BUFFER_SIZE]; - int head; - int tail; -+ int grab; - struct fasync_struct *fasync; - struct evdev *evdev; - struct list_head node; -@@ -49,8 +50,7 @@ static void evdev_event(struct input_han - struct evdev *evdev = handle->private; - struct evdev_list *list; - -- if (evdev->grab) { -- list = evdev->grab; -+ list_for_each_entry(list, &evdev->list, node) { - - do_gettimeofday(&list->buffer[list->head].time); - list->buffer[list->head].type = type; -@@ -59,17 +59,7 @@ static void evdev_event(struct input_han - list->head = (list->head + 1) & (EVDEV_BUFFER_SIZE - 1); - - kill_fasync(&list->fasync, SIGIO, POLL_IN); -- } else -- list_for_each_entry(list, &evdev->list, node) { -- -- do_gettimeofday(&list->buffer[list->head].time); -- list->buffer[list->head].type = type; -- list->buffer[list->head].code = code; -- list->buffer[list->head].value = value; -- list->head = (list->head + 1) & (EVDEV_BUFFER_SIZE - 1); -- -- kill_fasync(&list->fasync, SIGIO, POLL_IN); -- } -+ } - - wake_up_interruptible(&evdev->wait); - } -@@ -104,9 +94,10 @@ static int evdev_release(struct inode * - { - struct evdev_list *list = file->private_data; - -- if (list->evdev->grab == list) { -- input_release_device(&list->evdev->handle); -- list->evdev->grab = NULL; -+ if (list->grab) { -+ if(!--list->evdev->grab && list->evdev->exist) -+ input_release_device(&list->evdev->handle); -+ list->grab = 0; - } - - evdev_fasync(-1, file, 0); -@@ -483,17 +474,19 @@ static long evdev_ioctl_handler(struct f - - case EVIOCGRAB: - if (p) { -- if (evdev->grab) -- return -EBUSY; -- if (input_grab_device(&evdev->handle)) -+ if (list->grab) - return -EBUSY; -- evdev->grab = list; -+ if (!evdev->grab++) -+ if (input_grab_device(&evdev->handle)) -+ return -EBUSY; -+ list->grab = 0; - return 0; - } else { -- if (evdev->grab != list) -+ if (!list->grab) - return -EINVAL; -- input_release_device(&evdev->handle); -- evdev->grab = NULL; -+ if (!--evdev->grab) -+ input_release_device(&evdev->handle); -+ list->grab = 0; - return 0; - } - -- -To unsubscribe from this list: send the line "unsubscribe linux-kernel" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html -Please read the FAQ at http://www.tux.org/lkml/ - diff --git a/packages/linux/linux-openmoko/fix-gta01-flowcontrol2-2.6.22.5.patch b/packages/linux/linux-openmoko/fix-gta01-flowcontrol2-2.6.22.5.patch deleted file mode 100644 index ddb58f0cdb..0000000000 --- a/packages/linux/linux-openmoko/fix-gta01-flowcontrol2-2.6.22.5.patch +++ /dev/null @@ -1,193 +0,0 @@ ---- linux-2.6.22.5/arch/arm/common/gta01_pm_gsm.c.orig 2007-09-27 11:23:20.000000000 -0500 -+++ linux-2.6.22.5/arch/arm/common/gta01_pm_gsm.c 2007-09-27 21:09:00.000000000 -0500 -@@ -23,6 +23,9 @@ - #include <asm/arch/gta01.h> - #include <asm/arch/gta02.h> - -+#include <linux/serial_core.h> -+void s3c24xx_set_flow_control(struct uart_port *port, int fc_on); -+ - struct gta01pm_priv { - int gpio_ngsm_en; - struct console *con; -@@ -49,6 +52,23 @@ - static ssize_t gsm_read(struct device *dev, struct device_attribute *attr, - char *buf) - { -+ struct uart_driver *udrive = NULL; -+ struct uart_state *ustate = NULL; -+ struct uart_port *uport = NULL; -+ -+ if (gta01_gsm.con) { -+ udrive = gta01_gsm.con->data; -+ if (udrive) { -+ ustate = udrive->state; -+ if (ustate) { -+ uport = ustate->port; -+ } -+ } -+ } -+ printk("gsm: gsm_read of \"%s\"\n", attr->attr.name); -+ printk("gsm: con=%p udrive=%p ustate=%p uport=%p\n", -+ gta01_gsm.con, udrive, ustate, uport); -+ - if (!strcmp(attr->attr.name, "power_on")) { - if (s3c2410_gpio_getpin(GTA01_GPIO_MODEM_ON)) - goto out_1; -@@ -58,6 +78,24 @@ - } else if (!strcmp(attr->attr.name, "download")) { - if (s3c2410_gpio_getpin(GTA01_GPIO_MODEM_DNLOAD)) - goto out_1; -+ } else if (!strcmp(attr->attr.name, "flowcontrol")) { -+ if (uport) { -+ if (uport->unused[2] & 0x2) { -+ if (uport->unused[2] & 0x1) { -+ printk("gsm: flow control allowed and on\n"); -+ goto out_1; -+ } else { -+ printk("gsm: flow control allowed and not on\n"); -+ } -+ } else { -+ if (uport->unused[2] & 0x1) -+ printk("gsm: flow control not allowed, " -+ "but is pending\n"); -+ else -+ printk("gsm: flow control not allowed, " -+ "not pending\n"); -+ } -+ } - } - - return strlcpy(buf, "0\n", 3); -@@ -68,10 +106,26 @@ - static ssize_t gsm_write(struct device *dev, struct device_attribute *attr, - const char *buf, size_t count) - { -+ struct uart_driver *udrive = NULL; -+ struct uart_state *ustate = NULL; -+ struct uart_port *uport = NULL; -+ static int was_on = 0; - unsigned long on = simple_strtoul(buf, NULL, 10); - -+ if (gta01_gsm.con) { -+ udrive = gta01_gsm.con->data; -+ if (udrive) { -+ ustate = udrive->state; -+ if (ustate) { -+ uport = ustate->port; -+ } -+ } -+ } -+ printk("gsm: con=%p udrive=%p ustate=%p uport=%p\n", -+ gta01_gsm.con, udrive, ustate, uport); -+ - if (!strcmp(attr->attr.name, "power_on")) { -- if (on) { -+ if (on && !was_on) { - if (gta01_gsm.con) { - dev_info(dev, "powering up GSM, thus " - "disconnecting serial console\n"); -@@ -83,7 +137,24 @@ - s3c2410_gpio_setpin(gta01_gsm.gpio_ngsm_en, 0); - - s3c2410_gpio_setpin(GTA01_GPIO_MODEM_ON, 1); -- } else { -+ -+ if (uport) { -+ /* set any pending flow-control mode */ -+ uport->unused[2] |= 0x2; -+ s3c24xx_set_flow_control(uport, -+ (uport->unused[2] & 0x1)); -+ dev_info(dev, "flow control allowed\n"); -+ } -+ -+ was_on = 1; -+ -+ } else if (!on && was_on) { -+ if (uport) { -+ uport->unused[2] &= ~0x2; -+ s3c24xx_set_flow_control(uport, 0); -+ dev_info(dev, "flow control not allowed\n"); -+ } -+ - s3c2410_gpio_setpin(GTA01_GPIO_MODEM_ON, 0); - - if (gta01_gsm.gpio_ngsm_en) -@@ -95,6 +166,8 @@ - dev_info(dev, "powered down GSM, thus enabling " - "serial console\n"); - } -+ -+ was_on = 0; - } - } else if (!strcmp(attr->attr.name, "reset")) { - s3c2410_gpio_setpin(GTA01_GPIO_MODEM_RST, on); -@@ -105,6 +178,7 @@ - return count; - } - -+static DEVICE_ATTR(flowcontrol, 0644, gsm_read, gsm_write); - static DEVICE_ATTR(power_on, 0644, gsm_read, gsm_write); - static DEVICE_ATTR(reset, 0644, gsm_read, gsm_write); - static DEVICE_ATTR(download, 0644, gsm_read, gsm_write); -@@ -136,6 +210,7 @@ - #endif - - static struct attribute *gta01_gsm_sysfs_entries[] = { -+ &dev_attr_flowcontrol.attr, - &dev_attr_power_on.attr, - &dev_attr_reset.attr, - NULL, ---- linux-2.6.22.5/drivers/serial/s3c2410.c.orig 2007-09-27 11:23:27.000000000 -0500 -+++ linux-2.6.22.5/drivers/serial/s3c2410.c 2007-09-27 21:07:21.000000000 -0500 -@@ -80,6 +80,8 @@ - - #include <asm/arch/regs-serial.h> - #include <asm/arch/regs-gpio.h> -+#include <asm/mach-types.h> -+#include <asm/arch/gta01.h> - - /* structures */ - -@@ -729,6 +731,17 @@ - return best->quot; - } - -+/* This routine is called whenever the gta01 modem/console switches */ -+void s3c24xx_set_flow_control(struct uart_port *port, int fc_on) -+{ -+ unsigned int umcon; -+ if (machine_is_neo1973_gta01() && port) { -+ umcon = (fc_on) ? S3C2410_UMCOM_AFC : 0; -+ wr_regl(port, S3C2410_UMCON, umcon); -+ } -+} -+EXPORT_SYMBOL(s3c24xx_set_flow_control); -+ - static void s3c24xx_serial_set_termios(struct uart_port *port, - struct ktermios *termios, - struct ktermios *old) -@@ -803,6 +816,23 @@ - - umcon = (termios->c_cflag & CRTSCTS) ? S3C2410_UMCOM_AFC : 0; - -+ /* -+ * Custom handling of flow control on hwport 0 for the GTA01: -+ * Save the desired state for flow control, but if the port -+ * is being used as a console, then do not actually enable -+ * flow control unless the flag permiting us to do so is set. -+ */ -+ if (machine_is_neo1973_gta01() && (cfg->hwport == 0)) { -+ if (umcon) -+ port->unused[2] |= 0x1; -+ else -+ port->unused[2] &= ~0x1; -+ if (port->cons && (port->cons->index >= 0)) { -+ if (!(port->unused[2] & 0x2)) -+ umcon = 0; -+ } -+ } -+ - if (termios->c_cflag & PARENB) { - if (termios->c_cflag & PARODD) - ulcon |= S3C2410_LCON_PODD; diff --git a/packages/linux/linux-openmoko/glamo-report-vram-size-to-userspace.patch b/packages/linux/linux-openmoko/glamo-report-vram-size-to-userspace.patch deleted file mode 100644 index 563923e71c..0000000000 --- a/packages/linux/linux-openmoko/glamo-report-vram-size-to-userspace.patch +++ /dev/null @@ -1,67 +0,0 @@ -From ff1564e5100eeccd53ee6b007813ea722f8cf8b6 Mon Sep 17 00:00:00 2001 -From: Chia-I Wu <olv@openmoko.com> -Date: Mon, 1 Oct 2007 21:16:46 +0800 -Subject: [PATCH] glamo: report vram size to userspace - -Set fb_fix_screeninfo.smem_len to RESSIZE(fb_res). This is not the real -vram size, as it is a hardcoded value in glamo-core.c for now. ---- - drivers/video/glamo/glamo-fb.c | 13 +++++-------- - 1 files changed, 5 insertions(+), 8 deletions(-) - -diff --git a/drivers/video/glamo/glamo-fb.c b/drivers/video/glamo/glamo-fb.c -index 451de75..160a5b1 100644 ---- a/drivers/video/glamo/glamo-fb.c -+++ b/drivers/video/glamo/glamo-fb.c -@@ -54,8 +54,6 @@ - - #define RESSIZE(ressource) (((ressource)->end - (ressource)->start)+1) - --#define GLAMO_FB_ALLOC (640*480*2) -- - struct glamofb_handle { - struct fb_info *fb; - struct device *dev; -@@ -224,7 +222,6 @@ static int glamofb_set_par(struct fb_info *info) - } - - glamo->fb->fix.line_length = (var->width * var->bits_per_pixel) / 8; -- glamo->fb->fix.smem_len = info->fix.line_length * var->yres_virtual; - - return 0; - } -@@ -453,7 +450,7 @@ static int __init glamofb_probe(struct platform_device *pdev) - } - - glamofb->fb_res = request_mem_region(glamofb->fb_res->start, -- GLAMO_FB_ALLOC, pdev->name); -+ RESSIZE(glamofb->fb_res), pdev->name); - if (!glamofb->fb_res) { - dev_err(&pdev->dev, "failed to request vram region\n"); - goto out_release_reg; -@@ -467,6 +464,7 @@ static int __init glamofb_probe(struct platform_device *pdev) - goto out_release_fb; - } - fbinfo->fix.smem_start = (unsigned long) glamofb->fb_res->start; -+ fbinfo->fix.smem_len = RESSIZE(glamofb->fb_res); - - fbinfo->screen_base = ioremap(glamofb->fb_res->start, - RESSIZE(glamofb->fb_res)); -@@ -522,11 +520,10 @@ static int __init glamofb_probe(struct platform_device *pdev) - fbinfo->var.green.length = 6; - fbinfo->var.blue.length = 5; - fbinfo->var.transp.length = 0; -- fbinfo->fix.smem_len = mach_info->xres.max * -- mach_info->yres.max * -- mach_info->bpp.max / 8; - -- memset(fbinfo->screen_base, 0, fbinfo->fix.smem_len); -+ memset(fbinfo->screen_base, 0, mach_info->xres.max * -+ mach_info->yres.max * -+ mach_info->bpp.max / 8); - - glamo_engine_enable(mach_info->glamo, GLAMO_ENGINE_LCD); - glamo_engine_reset(mach_info->glamo, GLAMO_ENGINE_LCD); --- -1.5.3.1 - diff --git a/packages/linux/linux-openmoko/glamo-turbo-mode.patch b/packages/linux/linux-openmoko/glamo-turbo-mode.patch deleted file mode 100644 index 4f03c967ec..0000000000 --- a/packages/linux/linux-openmoko/glamo-turbo-mode.patch +++ /dev/null @@ -1,32 +0,0 @@ -X-Git-Url: http://git.openmoko.org/?p=kernel.git;a=blobdiff_plain;f=drivers%2Fmfd%2Fglamo%2Fglamo-core.c;fp=drivers%2Fmfd%2Fglamo%2Fglamo-core.c;h=bc91178ba609fbb99343eca212e7dda85e110d7c;hp=2619c5fc9fc3a189232504b97d3f024249bd9a72;hb=b920e3309db7e4f733499dc724a0dfba310edc5c;hpb=c1768ad6cc5b11eeda4394f68fbaedd03eea3354 - -diff --git a/drivers/mfd/glamo/glamo-core.c b/drivers/mfd/glamo/glamo-core.c -index 2619c5f..bc91178 100644 ---- a/drivers/mfd/glamo/glamo-core.c -+++ b/drivers/mfd/glamo/glamo-core.c -@@ -740,7 +740,11 @@ static struct glamo_script glamo_init_script[] = { - { GLAMO_REG_CLOCK_GEN7, 0x0101 }, - { GLAMO_REG_CLOCK_GEN8, 0x0100 }, - { GLAMO_REG_CLOCK_HOST, 0x000d }, -- { 0x200, 0x0ef0 }, -+ /* -+ * b7..b4 = 0 = no wait states on read or write -+ * b0 = 1 select PLL2 for Host interface, b1 = enable it -+ */ -+ { 0x200, 0x0e03 }, - { 0x202, 0x07ff }, - { 0x212, 0x0000 }, - { 0x214, 0x4000 }, -@@ -750,11 +754,7 @@ static struct glamo_script glamo_init_script[] = { - * more efficiency when 640x480" */ - { GLAMO_REG_MEM_TYPE, 0x0c74 }, /* 8MB, 16 word pg wr+rd */ - { GLAMO_REG_MEM_GEN, 0xafaf }, /* 63 grants min + max */ -- /* -- * the register below originally 0x0108 makes unreliable Glamo MMC -- * write operations. Cranked to 0x05ad to add a wait state, the -- * unreliability is not seen after 4GB of write / read testing -- */ -+ - { GLAMO_REG_MEM_TIMING1, 0x0108 }, - { GLAMO_REG_MEM_TIMING2, 0x0010 }, /* Taa = 3 MCLK */ - { GLAMO_REG_MEM_TIMING3, 0x0000 }, diff --git a/packages/linux/linux-openmoko/gta-vibro-pwm-suspend.patch b/packages/linux/linux-openmoko/gta-vibro-pwm-suspend.patch deleted file mode 100644 index a98f5c8ca5..0000000000 --- a/packages/linux/linux-openmoko/gta-vibro-pwm-suspend.patch +++ /dev/null @@ -1,27 +0,0 @@ -Index: linux-2.6.22/drivers/leds/leds-gta01.c -=================================================================== ---- linux-2.6.22.orig/drivers/leds/leds-gta01.c 2007-11-09 16:27:03.000000000 +0000 -+++ linux-2.6.22/drivers/leds/leds-gta01.c 2007-11-09 16:27:13.000000000 +0000 -@@ -33,6 +33,8 @@ - struct s3c2410_pwm pwm; - }; - -+static int gta01vib_init_hw(struct gta01_vib_priv *vp); -+ - static inline struct gta01_vib_priv *pdev_to_vpriv(struct platform_device *dev) - { - return platform_get_drvdata(dev); -@@ -80,7 +82,13 @@ - - static int gta01vib_resume(struct platform_device *dev) - { -+ struct gta01_vib_priv *vp = pdev_to_vpriv(dev); -+ - led_classdev_resume(>a01_vib_led); -+ -+ if (vp->has_pwm) -+ gta01vib_init_hw(vp); -+ - return 0; - } - #endif diff --git a/packages/linux/linux-openmoko/gta02-sound.patch b/packages/linux/linux-openmoko/gta02-sound.patch deleted file mode 100644 index f742c77303..0000000000 --- a/packages/linux/linux-openmoko/gta02-sound.patch +++ /dev/null @@ -1,754 +0,0 @@ -Index: linux-2.6.22/sound/soc/s3c24xx/neo1973_gta02_wm8753.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/sound/soc/s3c24xx/neo1973_gta02_wm8753.c 2007-11-09 16:21:35.000000000 +0000 -@@ -0,0 +1,667 @@ -+/* -+ * neo1973_gta02_wm8753.c -- SoC audio for Neo1973 -+ * -+ * Copyright 2007 OpenMoko Inc -+ * Author: Graeme Gregory <graeme@openmoko.org> -+ * Copyright 2007 Wolfson Microelectronics PLC. -+ * Author: Graeme Gregory <linux@wolfsonmicro.com> -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ * -+ * Revision history -+ * 06th Nov 2007 Changed from GTA01 to GTA02 -+ * 20th Jan 2007 Initial version. -+ * 05th Feb 2007 Rename all to Neo1973 -+ * -+ */ -+ -+#include <linux/module.h> -+#include <linux/moduleparam.h> -+#include <linux/timer.h> -+#include <linux/interrupt.h> -+#include <linux/platform_device.h> -+#include <linux/i2c.h> -+#include <sound/driver.h> -+#include <sound/core.h> -+#include <sound/pcm.h> -+#include <sound/soc.h> -+#include <sound/soc-dapm.h> -+ -+#include <asm/mach-types.h> -+#include <asm/hardware/scoop.h> -+#include <asm/arch/regs-iis.h> -+#include <asm/arch/regs-clock.h> -+#include <asm/arch/regs-gpio.h> -+#include <asm/hardware.h> -+#include <asm/arch/audio.h> -+#include <asm/io.h> -+#include <asm/arch/spi-gpio.h> -+#include <asm/arch/regs-gpioj.h> -+#include <asm/arch/gta02.h> -+#include "../codecs/wm8753.h" -+#include "s3c24xx-pcm.h" -+#include "s3c24xx-i2s.h" -+ -+/* define the scenarios */ -+#define NEO_AUDIO_OFF 0 -+#define NEO_GSM_CALL_AUDIO_HANDSET 1 -+#define NEO_GSM_CALL_AUDIO_HEADSET 2 -+#define NEO_GSM_CALL_AUDIO_BLUETOOTH 3 -+#define NEO_STEREO_TO_SPEAKERS 4 -+#define NEO_STEREO_TO_HEADPHONES 5 -+#define NEO_CAPTURE_HANDSET 6 -+#define NEO_CAPTURE_HEADSET 7 -+#define NEO_CAPTURE_BLUETOOTH 8 -+#define NEO_STEREO_TO_HANDSET_SPK 9 -+ -+static struct snd_soc_machine neo1973_gta02; -+ -+static int neo1973_gta02_hifi_hw_params(struct snd_pcm_substream *substream, -+ struct snd_pcm_hw_params *params) -+{ -+ struct snd_soc_pcm_runtime *rtd = substream->private_data; -+ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai; -+ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai; -+ unsigned int pll_out = 0, bclk = 0; -+ int ret = 0; -+ unsigned long iis_clkrate; -+ -+ iis_clkrate = s3c24xx_i2s_get_clockrate(); -+ -+ switch (params_rate(params)) { -+ case 8000: -+ case 16000: -+ pll_out = 12288000; -+ break; -+ case 48000: -+ bclk = WM8753_BCLK_DIV_4; -+ pll_out = 12288000; -+ break; -+ case 96000: -+ bclk = WM8753_BCLK_DIV_2; -+ pll_out = 12288000; -+ break; -+ case 11025: -+ bclk = WM8753_BCLK_DIV_16; -+ pll_out = 11289600; -+ break; -+ case 22050: -+ bclk = WM8753_BCLK_DIV_8; -+ pll_out = 11289600; -+ break; -+ case 44100: -+ bclk = WM8753_BCLK_DIV_4; -+ pll_out = 11289600; -+ break; -+ case 88200: -+ bclk = WM8753_BCLK_DIV_2; -+ pll_out = 11289600; -+ break; -+ } -+ -+ /* set codec DAI configuration */ -+ ret = codec_dai->dai_ops.set_fmt(codec_dai, -+ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | -+ SND_SOC_DAIFMT_CBM_CFM); -+ if (ret < 0) -+ return ret; -+ -+ /* set cpu DAI configuration */ -+ ret = cpu_dai->dai_ops.set_fmt(cpu_dai, -+ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | -+ SND_SOC_DAIFMT_CBM_CFM); -+ if (ret < 0) -+ return ret; -+ -+ /* set the codec system clock for DAC and ADC */ -+ ret = codec_dai->dai_ops.set_sysclk(codec_dai, WM8753_MCLK, pll_out, -+ SND_SOC_CLOCK_IN); -+ if (ret < 0) -+ return ret; -+ -+ /* set MCLK division for sample rate */ -+ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_MCLK, -+ S3C2410_IISMOD_32FS ); -+ if (ret < 0) -+ return ret; -+ -+ /* set codec BCLK division for sample rate */ -+ ret = codec_dai->dai_ops.set_clkdiv(codec_dai, -+ WM8753_BCLKDIV, bclk); -+ if (ret < 0) -+ return ret; -+ -+ /* set prescaler division for sample rate */ -+ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER, -+ S3C24XX_PRESCALE(4,4)); -+ if (ret < 0) -+ return ret; -+ -+ /* codec PLL input is PCLK/4 */ -+ ret = codec_dai->dai_ops.set_pll(codec_dai, WM8753_PLL1, -+ iis_clkrate / 4, pll_out); -+ if (ret < 0) -+ return ret; -+ -+ return 0; -+} -+ -+static int neo1973_gta02_hifi_hw_free(struct snd_pcm_substream *substream) -+{ -+ struct snd_soc_pcm_runtime *rtd = substream->private_data; -+ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai; -+ -+ /* disable the PLL */ -+ return codec_dai->dai_ops.set_pll(codec_dai, WM8753_PLL1, 0, 0); -+} -+ -+/* -+ * Neo1973 WM8753 HiFi DAI opserations. -+ */ -+static struct snd_soc_ops neo1973_gta02_hifi_ops = { -+ .hw_params = neo1973_gta02_hifi_hw_params, -+ .hw_free = neo1973_gta02_hifi_hw_free, -+}; -+ -+static int neo1973_gta02_voice_hw_params( -+ struct snd_pcm_substream *substream, -+ struct snd_pcm_hw_params *params) -+{ -+ struct snd_soc_pcm_runtime *rtd = substream->private_data; -+ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai; -+ unsigned int pcmdiv = 0; -+ int ret = 0; -+ unsigned long iis_clkrate; -+ -+ iis_clkrate = s3c24xx_i2s_get_clockrate(); -+ -+ if (params_rate(params) != 8000) -+ return -EINVAL; -+ if (params_channels(params) != 1) -+ return -EINVAL; -+ -+ pcmdiv = WM8753_PCM_DIV_6; /* 2.048 MHz */ -+ -+ /* todo: gg check mode (DSP_B) against CSR datasheet */ -+ /* set codec DAI configuration */ -+ ret = codec_dai->dai_ops.set_fmt(codec_dai, SND_SOC_DAIFMT_DSP_B | -+ SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS); -+ if (ret < 0) -+ return ret; -+ -+ /* set the codec system clock for DAC and ADC */ -+ ret = codec_dai->dai_ops.set_sysclk(codec_dai, WM8753_PCMCLK, -+ 12288000, SND_SOC_CLOCK_IN); -+ if (ret < 0) -+ return ret; -+ -+ /* set codec PCM division for sample rate */ -+ ret = codec_dai->dai_ops.set_clkdiv(codec_dai, WM8753_PCMDIV, -+ pcmdiv); -+ if (ret < 0) -+ return ret; -+ -+ /* configue and enable PLL for 12.288MHz output */ -+ ret = codec_dai->dai_ops.set_pll(codec_dai, WM8753_PLL2, -+ iis_clkrate / 4, 12288000); -+ if (ret < 0) -+ return ret; -+ -+ return 0; -+} -+ -+static int neo1973_gta02_voice_hw_free(struct snd_pcm_substream *substream) -+{ -+ struct snd_soc_pcm_runtime *rtd = substream->private_data; -+ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai; -+ -+ /* disable the PLL */ -+ return codec_dai->dai_ops.set_pll(codec_dai, WM8753_PLL2, 0, 0); -+} -+ -+static struct snd_soc_ops neo1973_gta02_voice_ops = { -+ .hw_params = neo1973_gta02_voice_hw_params, -+ .hw_free = neo1973_gta02_voice_hw_free, -+}; -+ -+#define LM4853_AMP 1 -+#define LM4853_SPK 2 -+ -+static u8 lm4853_state=0; -+ -+static int lm4853_set_state(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ int val = ucontrol->value.integer.value[0]; -+ -+ if(val) { -+ lm4853_state |= LM4853_AMP; -+ s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT,0); -+ } else { -+ lm4853_state &= ~LM4853_AMP; -+ s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT,1); -+ } -+ -+ return 0; -+} -+ -+static int lm4853_get_state(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ ucontrol->value.integer.value[0] = lm4853_state & LM4853_AMP; -+ -+ return 0; -+} -+ -+static int lm4853_set_spk(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ int val = ucontrol->value.integer.value[0]; -+ -+ if(val) { -+ lm4853_state |= LM4853_SPK; -+ s3c2410_gpio_setpin(GTA02_GPIO_HP_IN,0); -+ } else { -+ lm4853_state &= ~LM4853_SPK; -+ s3c2410_gpio_setpin(GTA02_GPIO_HP_IN,1); -+ } -+ -+ return 0; -+} -+ -+static int lm4853_get_spk(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ ucontrol->value.integer.value[0] = (lm4853_state & LM4853_SPK) >> 1; -+ -+ return 0; -+} -+ -+static int neo1973_gta02_set_stereo_out(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ int val = ucontrol->value.integer.value[0]; -+ -+ snd_soc_dapm_set_endpoint(codec, "Stereo Out", val); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_get_stereo_out(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ -+ ucontrol->value.integer.value[0] = -+ snd_soc_dapm_get_endpoint(codec, "Stereo Out"); -+ -+ return 0; -+} -+ -+ -+static int neo1973_gta02_set_gsm_out(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ int val = ucontrol->value.integer.value[0]; -+ -+ snd_soc_dapm_set_endpoint(codec, "GSM Line Out", val); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_get_gsm_out(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ -+ ucontrol->value.integer.value[0] = -+ snd_soc_dapm_get_endpoint(codec, "GSM Line Out"); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_set_gsm_in(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ int val = ucontrol->value.integer.value[0]; -+ -+ snd_soc_dapm_set_endpoint(codec, "GSM Line In", val); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_get_gsm_in(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ -+ ucontrol->value.integer.value[0] = -+ snd_soc_dapm_get_endpoint(codec, "GSM Line In"); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_set_headset_mic(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ int val = ucontrol->value.integer.value[0]; -+ -+ snd_soc_dapm_set_endpoint(codec, "Headset Mic", val); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_get_headset_mic(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ -+ ucontrol->value.integer.value[0] = -+ snd_soc_dapm_get_endpoint(codec, "Headset Mic"); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_set_handset_mic(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ int val = ucontrol->value.integer.value[0]; -+ -+ snd_soc_dapm_set_endpoint(codec, "Handset Mic", val); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_get_handset_mic(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ -+ ucontrol->value.integer.value[0] = -+ snd_soc_dapm_get_endpoint(codec, "Handset Mic"); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_set_handset_spk(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ int val = ucontrol->value.integer.value[0]; -+ -+ snd_soc_dapm_set_endpoint(codec, "Handset Spk", val); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_get_handset_spk(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ -+ ucontrol->value.integer.value[0] = -+ snd_soc_dapm_get_endpoint(codec, "Handset Spk"); -+ -+ return 0; -+} -+ -+static const struct snd_soc_dapm_widget wm8753_dapm_widgets[] = { -+ SND_SOC_DAPM_LINE("Stereo Out", NULL), -+ SND_SOC_DAPM_LINE("GSM Line Out", NULL), -+ SND_SOC_DAPM_LINE("GSM Line In", NULL), -+ SND_SOC_DAPM_MIC("Headset Mic", NULL), -+ SND_SOC_DAPM_MIC("Handset Mic", NULL), -+ SND_SOC_DAPM_SPK("Handset Spk", NULL), -+}; -+ -+ -+/* example machine audio_mapnections */ -+static const char* audio_map[][3] = { -+ -+ /* Connections to the lm4853 amp */ -+ {"Stereo Out", NULL, "LOUT1"}, -+ {"Stereo Out", NULL, "ROUT1"}, -+ -+ /* Connections to the GSM Module */ -+ {"GSM Line Out", NULL, "MONO1"}, -+ {"GSM Line Out", NULL, "MONO2"}, -+ {"RXP", NULL, "GSM Line In"}, -+ {"RXN", NULL, "GSM Line In"}, -+ -+ /* Connections to Headset */ -+ {"MIC1", NULL, "Mic Bias"}, -+ {"Mic Bias", NULL, "Headset Mic"}, -+ -+ /* Call Mic */ -+ {"MIC2", NULL, "Mic Bias"}, -+ {"MIC2N", NULL, "Mic Bias"}, -+ {"Mic Bias", NULL, "Handset Mic"}, -+ -+ /* Call Speaker */ -+ {"Handset Spk", NULL, "LOUT2"}, -+ {"Handset Spk", NULL, "ROUT2"}, -+ -+ /* Connect the ALC pins */ -+ {"ACIN", NULL, "ACOP"}, -+ -+ {NULL, NULL, NULL}, -+}; -+ -+static const struct snd_kcontrol_new wm8753_neo1973_gta02_controls[] = { -+ SOC_SINGLE_EXT("DAPM Stereo Out Switch", 0, 0, 1, 0, -+ neo1973_gta02_get_stereo_out, -+ neo1973_gta02_set_stereo_out), -+ SOC_SINGLE_EXT("DAPM GSM Line Out Switch", 1, 0, 1, 0, -+ neo1973_gta02_get_gsm_out, -+ neo1973_gta02_set_gsm_out), -+ SOC_SINGLE_EXT("DAPM GSM Line In Switch", 2, 0, 1, 0, -+ neo1973_gta02_get_gsm_in, -+ neo1973_gta02_set_gsm_in), -+ SOC_SINGLE_EXT("DAPM Headset Mic Switch", 3, 0, 1, 0, -+ neo1973_gta02_get_headset_mic, -+ neo1973_gta02_set_headset_mic), -+ SOC_SINGLE_EXT("DAPM Handset Mic Switch", 4, 0, 1, 0, -+ neo1973_gta02_get_handset_mic, -+ neo1973_gta02_set_handset_mic), -+ SOC_SINGLE_EXT("DAPM Handset Spk Switch", 5, 0, 1, 0, -+ neo1973_gta02_get_handset_spk, -+ neo1973_gta02_set_handset_spk), -+ SOC_SINGLE_EXT("Amp State Switch", 6, 0, 1, 0, -+ lm4853_get_state, -+ lm4853_set_state), -+ SOC_SINGLE_EXT("Amp Spk Switch", 7, 0, 1, 0, -+ lm4853_get_spk, -+ lm4853_set_spk), -+}; -+ -+/* -+ * This is an example machine initialisation for a wm8753 connected to a -+ * neo1973 GTA02. -+ */ -+static int neo1973_gta02_wm8753_init(struct snd_soc_codec *codec) -+{ -+ int i, err; -+ -+ /* set up NC codec pins */ -+ snd_soc_dapm_set_endpoint(codec, "OUT3", 0); -+ snd_soc_dapm_set_endpoint(codec, "OUT4", 0); -+ snd_soc_dapm_set_endpoint(codec, "LINE1", 0); -+ snd_soc_dapm_set_endpoint(codec, "LINE2", 0); -+ -+ /* Add neo1973 gta02 specific widgets */ -+ for (i = 0; i < ARRAY_SIZE(wm8753_dapm_widgets); i++) -+ snd_soc_dapm_new_control(codec, &wm8753_dapm_widgets[i]); -+ -+ /* add neo1973 gta02 specific controls */ -+ for (i = 0; i < ARRAY_SIZE(wm8753_neo1973_gta02_controls); i++) { -+ err = snd_ctl_add(codec->card, -+ snd_soc_cnew(&wm8753_neo1973_gta02_controls[i], -+ codec, NULL)); -+ if (err < 0) -+ return err; -+ } -+ -+ /* set up neo1973 gta02 specific audio path audio_mapnects */ -+ for (i = 0; audio_map[i][0] != NULL; i++) { -+ snd_soc_dapm_connect_input(codec, audio_map[i][0], -+ audio_map[i][1], audio_map[i][2]); -+ } -+ -+ /* set endpoints to default off mode */ -+ snd_soc_dapm_set_endpoint(codec, "Stereo Out", 0); -+ snd_soc_dapm_set_endpoint(codec, "GSM Line Out",0); -+ snd_soc_dapm_set_endpoint(codec, "GSM Line In", 0); -+ snd_soc_dapm_set_endpoint(codec, "Headset Mic", 0); -+ snd_soc_dapm_set_endpoint(codec, "Handset Mic", 0); -+ snd_soc_dapm_set_endpoint(codec, "Handset Spk", 0); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ return 0; -+} -+ -+/* -+ * BT Codec DAI -+ */ -+static struct snd_soc_cpu_dai bt_dai = -+{ .name = "Bluetooth", -+ .id = 0, -+ .type = SND_SOC_DAI_PCM, -+ .playback = { -+ .channels_min = 1, -+ .channels_max = 1, -+ .rates = SNDRV_PCM_RATE_8000, -+ .formats = SNDRV_PCM_FMTBIT_S16_LE,}, -+ .capture = { -+ .channels_min = 1, -+ .channels_max = 1, -+ .rates = SNDRV_PCM_RATE_8000, -+ .formats = SNDRV_PCM_FMTBIT_S16_LE,}, -+}; -+ -+static struct snd_soc_dai_link neo1973_gta02_dai[] = { -+{ /* Hifi Playback - for similatious use with voice below */ -+ .name = "WM8753", -+ .stream_name = "WM8753 HiFi", -+ .cpu_dai = &s3c24xx_i2s_dai, -+ .codec_dai = &wm8753_dai[WM8753_DAI_HIFI], -+ .init = neo1973_gta02_wm8753_init, -+ .ops = &neo1973_gta02_hifi_ops, -+}, -+{ /* Voice via BT */ -+ .name = "Bluetooth", -+ .stream_name = "Voice", -+ .cpu_dai = &bt_dai, -+ .codec_dai = &wm8753_dai[WM8753_DAI_VOICE], -+ .ops = &neo1973_gta02_voice_ops, -+}, -+}; -+ -+#ifdef CONFIG_PM -+int neo1973_gta02_suspend(struct platform_device *pdev, pm_message_t state) -+{ -+ s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT, 1); -+ -+ return 0; -+} -+ -+int neo1973_gta02_resume(struct platform_device *pdev) -+{ -+ if(lm4853_state & LM4853_AMP) -+ s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT, 0); -+ -+ return 0; -+} -+#else -+#define neo1973_gta02_suspend NULL -+#define neo1973_gta02_resume NULL -+#endif -+ -+static struct snd_soc_machine neo1973_gta02 = { -+ .name = "neo1973-gta02", -+ .suspend_pre = neo1973_gta02_suspend, -+ .resume_post = neo1973_gta02_resume, -+ .dai_link = neo1973_gta02_dai, -+ .num_links = ARRAY_SIZE(neo1973_gta02_dai), -+}; -+ -+static struct wm8753_setup_data neo1973_gta02_wm8753_setup = { -+ .i2c_address = 0x1a, -+}; -+ -+static struct snd_soc_device neo1973_gta02_snd_devdata = { -+ .machine = &neo1973_gta02, -+ .platform = &s3c24xx_soc_platform, -+ .codec_dev = &soc_codec_dev_wm8753, -+ .codec_data = &neo1973_gta02_wm8753_setup, -+}; -+ -+static struct platform_device *neo1973_gta02_snd_device; -+ -+static int __init neo1973_gta02_init(void) -+{ -+ int ret; -+ -+ if (!machine_is_neo1973_gta02()) { -+ printk(KERN_INFO -+ "Only GTA02 hardware supported by ASoc driver\n"); -+ return -ENODEV; -+ } -+ -+ neo1973_gta02_snd_device = platform_device_alloc("soc-audio", -1); -+ if (!neo1973_gta02_snd_device) -+ return -ENOMEM; -+ -+ platform_set_drvdata(neo1973_gta02_snd_device, -+ &neo1973_gta02_snd_devdata); -+ neo1973_gta02_snd_devdata.dev = &neo1973_gta02_snd_device->dev; -+ ret = platform_device_add(neo1973_gta02_snd_device); -+ -+ if (ret) -+ platform_device_put(neo1973_gta02_snd_device); -+ -+ /* Initialise GPIOs used by amp */ -+ s3c2410_gpio_cfgpin(GTA02_GPIO_HP_IN, S3C2410_GPIO_OUTPUT); -+ s3c2410_gpio_cfgpin(GTA02_GPIO_AMP_SHUT, S3C2410_GPIO_OUTPUT); -+ -+ /* Amp off by default */ -+ s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT, 1); -+ -+ /* Speaker off by default */ -+ s3c2410_gpio_setpin(GTA02_GPIO_HP_IN, 1); -+ -+ return ret; -+} -+ -+static void __exit neo1973_gta02_exit(void) -+{ -+ platform_device_unregister(neo1973_gta02_snd_device); -+} -+ -+module_init(neo1973_gta02_init); -+module_exit(neo1973_gta02_exit); -+ -+/* Module information */ -+MODULE_AUTHOR("Graeme Gregory, graeme@openmoko.org"); -+MODULE_DESCRIPTION("ALSA SoC WM8753 Neo1973 GTA02"); -+MODULE_LICENSE("GPL"); -+ -Index: linux-2.6.22/sound/soc/s3c24xx/Kconfig -=================================================================== ---- linux-2.6.22.orig/sound/soc/s3c24xx/Kconfig 2007-11-09 16:13:04.000000000 +0000 -+++ linux-2.6.22/sound/soc/s3c24xx/Kconfig 2007-11-09 16:13:08.000000000 +0000 -@@ -25,6 +25,15 @@ - Say Y if you want to add support for SoC audio on smdk2440 - with the WM8753. - -+config SND_S3C24XX_SOC_NEO1973_GTA02_WM8753 -+ tristate "SoC I2S Audio support for NEO1973 GTA02 - WM8753" -+ depends on SND_S3C24XX_SOC && MACH_NEO1973_GTA02 -+ select SND_S3C24XX_SOC_I2S -+ select SND_SOC_WM8753 -+ help -+ Say Y if you want to add support for SoC audio on neo1973 gta02 -+ with the WM8753 codec -+ - config SND_S3C24XX_SOC_SMDK2443_WM9710 - tristate "SoC AC97 Audio support for SMDK2443 - WM9710" - depends on SND_S3C24XX_SOC && MACH_SMDK2443 -Index: linux-2.6.22/sound/soc/s3c24xx/Makefile -=================================================================== ---- linux-2.6.22.orig/sound/soc/s3c24xx/Makefile 2007-11-09 16:13:04.000000000 +0000 -+++ linux-2.6.22/sound/soc/s3c24xx/Makefile 2007-11-09 16:13:08.000000000 +0000 -@@ -10,6 +10,9 @@ - # S3C24XX Machine Support - snd-soc-neo1973-wm8753-objs := neo1973_wm8753.o - snd-soc-smdk2443-wm9710-objs := smdk2443_wm9710.o -+snd-soc-neo1973-gta02-wm8753-objs := neo1973_gta02_wm8753.o - - obj-$(CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753) += snd-soc-neo1973-wm8753.o - obj-$(CONFIG_SND_S3C24XX_SOC_SMDK2443_WM9710) += snd-soc-smdk2443-wm9710.o -+obj-$(CONFIG_SND_S3C24XX_SOC_NEO1973_GTA02_WM8753) += snd-soc-neo1973-gta02-wm8753.o -+ -Index: linux-2.6.22/include/sound/soc-dapm.h -=================================================================== ---- linux-2.6.22.orig/include/sound/soc-dapm.h 2007-07-09 00:32:17.000000000 +0100 -+++ linux-2.6.22/include/sound/soc-dapm.h 2007-11-09 16:13:08.000000000 +0000 -@@ -206,6 +206,8 @@ - /* dapm audio endpoint control */ - int snd_soc_dapm_set_endpoint(struct snd_soc_codec *codec, - char *pin, int status); -+int snd_soc_dapm_get_endpoint(struct snd_soc_codec *codec, -+ char *pin); - int snd_soc_dapm_sync_endpoints(struct snd_soc_codec *codec); - - /* dapm widget types */ -Index: linux-2.6.22/sound/soc/soc-dapm.c -=================================================================== ---- linux-2.6.22.orig/sound/soc/soc-dapm.c 2007-07-09 00:32:17.000000000 +0100 -+++ linux-2.6.22/sound/soc/soc-dapm.c 2007-11-09 16:13:08.000000000 +0000 -@@ -1305,6 +1305,30 @@ - EXPORT_SYMBOL_GPL(snd_soc_dapm_set_endpoint); - - /** -+ * snd_soc_dapm_get_endpoint - get audio endpoint status -+ * @codec: audio codec -+ * @endpoint: audio signal endpoint (or start point) -+ * -+ * Get audio endpoint status - connected or disconnected. -+ * -+ * Returns status -+ */ -+int snd_soc_dapm_get_endpoint(struct snd_soc_codec *codec, -+ char *endpoint) -+{ -+ struct snd_soc_dapm_widget *w; -+ -+ list_for_each_entry(w, &codec->dapm_widgets, list) { -+ if (!strcmp(w->name, endpoint)) { -+ return w->connected; -+ } -+ } -+ -+ return 0; -+} -+EXPORT_SYMBOL_GPL(snd_soc_dapm_get_endpoint); -+ -+/** - * snd_soc_dapm_free - free dapm resources - * @socdev: SoC device - * diff --git a/packages/linux/linux-openmoko/iis-suspend.patch b/packages/linux/linux-openmoko/iis-suspend.patch deleted file mode 100644 index ab38672463..0000000000 --- a/packages/linux/linux-openmoko/iis-suspend.patch +++ /dev/null @@ -1,63 +0,0 @@ -Index: linux-2.6.22/sound/soc/s3c24xx/s3c24xx-i2s.c -=================================================================== ---- linux-2.6.22.orig/sound/soc/s3c24xx/s3c24xx-i2s.c 2007-11-09 16:13:04.000000000 +0000 -+++ linux-2.6.22/sound/soc/s3c24xx/s3c24xx-i2s.c 2007-11-09 16:17:47.000000000 +0000 -@@ -75,6 +75,10 @@ - struct s3c24xx_i2s_info { - void __iomem *regs; - struct clk *iis_clk; -+ u32 iiscon; -+ u32 iismod; -+ u32 iisfcon; -+ u32 iispsr; - }; - static struct s3c24xx_i2s_info s3c24xx_i2s; - -@@ -404,6 +408,38 @@ - return 0; - } - -+#ifdef CONFIG_PM -+int s3c24xx_i2s_suspend(struct platform_device *pdev, -+ struct snd_soc_cpu_dai *cpu_dai) -+{ -+ s3c24xx_i2s.iiscon=readl(s3c24xx_i2s.regs + S3C2410_IISCON); -+ s3c24xx_i2s.iismod=readl(s3c24xx_i2s.regs + S3C2410_IISMOD); -+ s3c24xx_i2s.iisfcon=readl(s3c24xx_i2s.regs + S3C2410_IISFCON); -+ s3c24xx_i2s.iispsr=readl(s3c24xx_i2s.regs + S3C2410_IISPSR); -+ -+ clk_disable(s3c24xx_i2s.iis_clk); -+ -+ return 0; -+} -+ -+int s3c24xx_i2s_resume(struct platform_device *pdev, -+ struct snd_soc_cpu_dai *cpu_dai) -+{ -+ clk_enable(s3c24xx_i2s.iis_clk); -+ -+ writel(s3c24xx_i2s.iiscon, s3c24xx_i2s.regs + S3C2410_IISCON); -+ writel(s3c24xx_i2s.iismod, s3c24xx_i2s.regs + S3C2410_IISMOD); -+ writel(s3c24xx_i2s.iisfcon, s3c24xx_i2s.regs + S3C2410_IISFCON); -+ writel(s3c24xx_i2s.iispsr, s3c24xx_i2s.regs + S3C2410_IISPSR); -+ -+ return 0; -+} -+#else -+#define s3c24xx_i2s_suspend NULL -+#define s3c24xx_i2s_resume NULL -+#endif -+ -+ - #define S3C24XX_I2S_RATES \ - (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_16000 | \ - SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \ -@@ -414,6 +450,8 @@ - .id = 0, - .type = SND_SOC_DAI_I2S, - .probe = s3c24xx_i2s_probe, -+ .suspend = s3c24xx_i2s_suspend, -+ .resume = s3c24xx_i2s_resume, - .playback = { - .channels_min = 2, - .channels_max = 2, diff --git a/packages/linux/linux-openmoko/s3c24xx-pcm-suspend.patch b/packages/linux/linux-openmoko/s3c24xx-pcm-suspend.patch deleted file mode 100644 index fffc685a4e..0000000000 --- a/packages/linux/linux-openmoko/s3c24xx-pcm-suspend.patch +++ /dev/null @@ -1,73 +0,0 @@ -Index: linux-2.6.22/sound/soc/s3c24xx/s3c24xx-pcm.c -=================================================================== ---- linux-2.6.22.orig/sound/soc/s3c24xx/s3c24xx-pcm.c 2007-11-09 16:28:43.000000000 +0000 -+++ linux-2.6.22/sound/soc/s3c24xx/s3c24xx-pcm.c 2007-11-09 16:33:05.000000000 +0000 -@@ -49,7 +49,9 @@ - .info = SNDRV_PCM_INFO_INTERLEAVED | - SNDRV_PCM_INFO_BLOCK_TRANSFER | - SNDRV_PCM_INFO_MMAP | -- SNDRV_PCM_INFO_MMAP_VALID, -+ SNDRV_PCM_INFO_MMAP_VALID | -+ SNDRV_PCM_INFO_PAUSE | -+ SNDRV_PCM_INFO_RESUME, - .formats = SNDRV_PCM_FMTBIT_S16_LE | - SNDRV_PCM_FMTBIT_U16_LE | - SNDRV_PCM_FMTBIT_U8 | -@@ -176,28 +178,6 @@ - } - } - -- /* channel needs configuring for mem=>device, increment memory addr, -- * sync to pclk, half-word transfers to the IIS-FIFO. */ -- if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { -- s3c2410_dma_devconfig(prtd->params->channel, -- S3C2410_DMASRC_MEM, S3C2410_DISRCC_INC | -- S3C2410_DISRCC_APB, prtd->params->dma_addr); -- -- s3c2410_dma_config(prtd->params->channel, -- prtd->params->dma_size, -- S3C2410_DCON_SYNC_PCLK | -- S3C2410_DCON_HANDSHAKE); -- } else { -- s3c2410_dma_config(prtd->params->channel, -- prtd->params->dma_size, -- S3C2410_DCON_HANDSHAKE | -- S3C2410_DCON_SYNC_PCLK); -- -- s3c2410_dma_devconfig(prtd->params->channel, -- S3C2410_DMASRC_HW, 0x3, -- prtd->params->dma_addr); -- } -- - s3c2410_dma_set_buffdone_fn(prtd->params->channel, - s3c24xx_audio_buffdone); - -@@ -246,6 +226,28 @@ - if (!prtd->params) - return 0; - -+ /* channel needs configuring for mem=>device, increment memory addr, -+ * sync to pclk, half-word transfers to the IIS-FIFO. */ -+ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { -+ s3c2410_dma_devconfig(prtd->params->channel, -+ S3C2410_DMASRC_MEM, S3C2410_DISRCC_INC | -+ S3C2410_DISRCC_APB, prtd->params->dma_addr); -+ -+ s3c2410_dma_config(prtd->params->channel, -+ prtd->params->dma_size, -+ S3C2410_DCON_SYNC_PCLK | -+ S3C2410_DCON_HANDSHAKE); -+ } else { -+ s3c2410_dma_config(prtd->params->channel, -+ prtd->params->dma_size, -+ S3C2410_DCON_HANDSHAKE | -+ S3C2410_DCON_SYNC_PCLK); -+ -+ s3c2410_dma_devconfig(prtd->params->channel, -+ S3C2410_DMASRC_HW, 0x3, -+ prtd->params->dma_addr); -+ } -+ - /* flush the DMA channel */ - s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_FLUSH); - prtd->dma_loaded = 0; diff --git a/packages/linux/linux-openmoko/soc-core-suspend.patch b/packages/linux/linux-openmoko/soc-core-suspend.patch deleted file mode 100644 index 7fb6cc7f7a..0000000000 --- a/packages/linux/linux-openmoko/soc-core-suspend.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 6c868238a5e083dca4d74439a7fd467b5c7726b0 Mon Sep 17 00:00:00 2001 -From: Liam Girdwood <liam@localhost.localdomain> -Date: Fri, 1 Jun 2007 12:56:55 +0100 -Subject: [PATCH] This fixes a bug whereby PCM's were not being suspended when the rest of the audio subsystem was suspended. - ---- - include/sound/soc.h | 3 +++ - sound/soc/soc-core.c | 8 ++++++++ - 2 files changed, 11 insertions(+), 0 deletions(-) - -Index: linux-2.6.22/include/sound/soc.h -=================================================================== ---- linux-2.6.22.orig/include/sound/soc.h 2007-07-09 00:32:17.000000000 +0100 -+++ linux-2.6.22/include/sound/soc.h 2007-11-09 16:13:08.000000000 +0000 -@@ -411,6 +411,9 @@ - - /* codec/machine specific init - e.g. add machine controls */ - int (*init)(struct snd_soc_codec *codec); -+ -+ /* DAI pcm */ -+ struct snd_pcm *pcm; - }; - - /* SoC machine */ -Index: linux-2.6.22/sound/soc/soc-core.c -=================================================================== ---- linux-2.6.22.orig/sound/soc/soc-core.c 2007-07-09 00:32:17.000000000 +0100 -+++ linux-2.6.22/sound/soc/soc-core.c 2007-11-09 16:18:45.000000000 +0000 -@@ -639,6 +639,10 @@ - dai->dai_ops.digital_mute(dai, 1); - } - -+ /* suspend all pcm's */ -+ for(i = 0; i < machine->num_links; i++) -+ snd_pcm_suspend_all(machine->dai_link[i].pcm); -+ - if (machine->suspend_pre) - machine->suspend_pre(pdev, state); - -@@ -873,6 +877,7 @@ - return ret; - } - -+ dai_link->pcm = pcm; - pcm->private_data = rtd; - soc_pcm_ops.mmap = socdev->platform->pcm_ops->mmap; - soc_pcm_ops.pointer = socdev->platform->pcm_ops->pointer; diff --git a/packages/linux/linux-openmoko_2.6.24+git.bb b/packages/linux/linux-openmoko_2.6.24+git.bb index 541fac4dd8..8b32004a0e 100644 --- a/packages/linux/linux-openmoko_2.6.24+git.bb +++ b/packages/linux/linux-openmoko_2.6.24+git.bb @@ -1,13 +1,13 @@ require linux.inc require linux-openmoko.inc -DESCRIPTION = "Linux 2.6.x (development) kernel for FIC SmartPhones shipping w/ Openmoko" +DESCRIPTION = "The Linux kernel for Openmoko SmartPhones" KERNEL_RELEASE = "2.6.24" KERNEL_VERSION = "${KERNEL_RELEASE}" PV = "${KERNEL_RELEASE}+${PR}+gitr${SRCREV}" -PR = "r7" +PR = "r8" SRC_URI = "\ git://git.openmoko.org/git/kernel.git;protocol=git;branch=stable \ @@ -18,8 +18,6 @@ SRC_URI = "\ file://0004-squashfs-Kconfig.patch;patch=1 \ file://0005-squashfs-Makefile.patch;patch=1 \ \ - file://glamo-turbo-mode.patch;patch=1 \ - \ file://defconfig-oe \ " S = "${WORKDIR}/git" diff --git a/packages/mozilla/fennec_hg.bb b/packages/mozilla/fennec_hg.bb index 4b1844832c..96d1d46a6f 100644 --- a/packages/mozilla/fennec_hg.bb +++ b/packages/mozilla/fennec_hg.bb @@ -2,10 +2,10 @@ DEPENDS += "cairo alsa-lib " # Yes, we'll need to bump PE later on :( PV = "1.0a1pre" -PR = "r5" +PR = "r6" -SRC_URI = "hg://hg.mozilla.org/;module=mozilla-central;rev=31c03e2ff02d \ - hg://hg.mozilla.org/;module=mobile-browser;rev=bcea2e901482 \ +SRC_URI = "hg://hg.mozilla.org/;module=mozilla-central;rev=7bfd2ee7016f \ + hg://hg.mozilla.org/;module=mobile-browser;rev=a48464d3ea42 \ file://jsautocfg.h \ file://jsautocfg-dontoverwrite.patch;patch=1 \ " diff --git a/packages/mozilla/files/i386/.mtn2git_empty b/packages/mozilla/files/i386/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/mozilla/files/i386/.mtn2git_empty diff --git a/packages/mozilla/files/i386/jsautocfg.h b/packages/mozilla/files/i386/jsautocfg.h new file mode 100644 index 0000000000..394271a7ea --- /dev/null +++ b/packages/mozilla/files/i386/jsautocfg.h @@ -0,0 +1,54 @@ +#ifndef js_cpucfg___ +#define js_cpucfg___ + +/* AUTOMATICALLY GENERATED - DO NOT EDIT */ + +#define IS_LITTLE_ENDIAN 1 +#undef IS_BIG_ENDIAN + +#define JS_BYTES_PER_BYTE 1L +#define JS_BYTES_PER_SHORT 2L +#define JS_BYTES_PER_INT 4L +#define JS_BYTES_PER_INT64 8L +#define JS_BYTES_PER_LONG 4L +#define JS_BYTES_PER_FLOAT 4L +#define JS_BYTES_PER_DOUBLE 8L +#define JS_BYTES_PER_WORD 4L +#define JS_BYTES_PER_DWORD 8L + +#define JS_BITS_PER_BYTE 8L +#define JS_BITS_PER_SHORT 16L +#define JS_BITS_PER_INT 32L +#define JS_BITS_PER_INT64 64L +#define JS_BITS_PER_LONG 32L +#define JS_BITS_PER_FLOAT 32L +#define JS_BITS_PER_DOUBLE 64L +#define JS_BITS_PER_WORD 32L + +#define JS_BITS_PER_BYTE_LOG2 3L +#define JS_BITS_PER_SHORT_LOG2 4L +#define JS_BITS_PER_INT_LOG2 5L +#define JS_BITS_PER_INT64_LOG2 6L +#define JS_BITS_PER_LONG_LOG2 5L +#define JS_BITS_PER_FLOAT_LOG2 5L +#define JS_BITS_PER_DOUBLE_LOG2 6L +#define JS_BITS_PER_WORD_LOG2 5L + +#define JS_ALIGN_OF_SHORT 2L +#define JS_ALIGN_OF_INT 4L +#define JS_ALIGN_OF_LONG 4L +#define JS_ALIGN_OF_INT64 4L +#define JS_ALIGN_OF_FLOAT 4L +#define JS_ALIGN_OF_DOUBLE 4L +#define JS_ALIGN_OF_POINTER 4L +#define JS_ALIGN_OF_WORD 4L + +#define JS_BYTES_PER_WORD_LOG2 2L +#define JS_BYTES_PER_DWORD_LOG2 3L +#define JS_WORDS_PER_DWORD_LOG2 1L + +#define JS_STACK_GROWTH_DIRECTION (-1) + +#define JS_HAVE_LONG_LONG + +#endif /* js_cpucfg___ */ diff --git a/packages/mozilla/files/i486/.mtn2git_empty b/packages/mozilla/files/i486/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/mozilla/files/i486/.mtn2git_empty diff --git a/packages/mozilla/files/i486/jsautocfg.h b/packages/mozilla/files/i486/jsautocfg.h new file mode 100644 index 0000000000..394271a7ea --- /dev/null +++ b/packages/mozilla/files/i486/jsautocfg.h @@ -0,0 +1,54 @@ +#ifndef js_cpucfg___ +#define js_cpucfg___ + +/* AUTOMATICALLY GENERATED - DO NOT EDIT */ + +#define IS_LITTLE_ENDIAN 1 +#undef IS_BIG_ENDIAN + +#define JS_BYTES_PER_BYTE 1L +#define JS_BYTES_PER_SHORT 2L +#define JS_BYTES_PER_INT 4L +#define JS_BYTES_PER_INT64 8L +#define JS_BYTES_PER_LONG 4L +#define JS_BYTES_PER_FLOAT 4L +#define JS_BYTES_PER_DOUBLE 8L +#define JS_BYTES_PER_WORD 4L +#define JS_BYTES_PER_DWORD 8L + +#define JS_BITS_PER_BYTE 8L +#define JS_BITS_PER_SHORT 16L +#define JS_BITS_PER_INT 32L +#define JS_BITS_PER_INT64 64L +#define JS_BITS_PER_LONG 32L +#define JS_BITS_PER_FLOAT 32L +#define JS_BITS_PER_DOUBLE 64L +#define JS_BITS_PER_WORD 32L + +#define JS_BITS_PER_BYTE_LOG2 3L +#define JS_BITS_PER_SHORT_LOG2 4L +#define JS_BITS_PER_INT_LOG2 5L +#define JS_BITS_PER_INT64_LOG2 6L +#define JS_BITS_PER_LONG_LOG2 5L +#define JS_BITS_PER_FLOAT_LOG2 5L +#define JS_BITS_PER_DOUBLE_LOG2 6L +#define JS_BITS_PER_WORD_LOG2 5L + +#define JS_ALIGN_OF_SHORT 2L +#define JS_ALIGN_OF_INT 4L +#define JS_ALIGN_OF_LONG 4L +#define JS_ALIGN_OF_INT64 4L +#define JS_ALIGN_OF_FLOAT 4L +#define JS_ALIGN_OF_DOUBLE 4L +#define JS_ALIGN_OF_POINTER 4L +#define JS_ALIGN_OF_WORD 4L + +#define JS_BYTES_PER_WORD_LOG2 2L +#define JS_BYTES_PER_DWORD_LOG2 3L +#define JS_WORDS_PER_DWORD_LOG2 1L + +#define JS_STACK_GROWTH_DIRECTION (-1) + +#define JS_HAVE_LONG_LONG + +#endif /* js_cpucfg___ */ diff --git a/packages/mozilla/files/i586/.mtn2git_empty b/packages/mozilla/files/i586/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/mozilla/files/i586/.mtn2git_empty diff --git a/packages/mozilla/files/i586/jsautocfg.h b/packages/mozilla/files/i586/jsautocfg.h new file mode 100644 index 0000000000..394271a7ea --- /dev/null +++ b/packages/mozilla/files/i586/jsautocfg.h @@ -0,0 +1,54 @@ +#ifndef js_cpucfg___ +#define js_cpucfg___ + +/* AUTOMATICALLY GENERATED - DO NOT EDIT */ + +#define IS_LITTLE_ENDIAN 1 +#undef IS_BIG_ENDIAN + +#define JS_BYTES_PER_BYTE 1L +#define JS_BYTES_PER_SHORT 2L +#define JS_BYTES_PER_INT 4L +#define JS_BYTES_PER_INT64 8L +#define JS_BYTES_PER_LONG 4L +#define JS_BYTES_PER_FLOAT 4L +#define JS_BYTES_PER_DOUBLE 8L +#define JS_BYTES_PER_WORD 4L +#define JS_BYTES_PER_DWORD 8L + +#define JS_BITS_PER_BYTE 8L +#define JS_BITS_PER_SHORT 16L +#define JS_BITS_PER_INT 32L +#define JS_BITS_PER_INT64 64L +#define JS_BITS_PER_LONG 32L +#define JS_BITS_PER_FLOAT 32L +#define JS_BITS_PER_DOUBLE 64L +#define JS_BITS_PER_WORD 32L + +#define JS_BITS_PER_BYTE_LOG2 3L +#define JS_BITS_PER_SHORT_LOG2 4L +#define JS_BITS_PER_INT_LOG2 5L +#define JS_BITS_PER_INT64_LOG2 6L +#define JS_BITS_PER_LONG_LOG2 5L +#define JS_BITS_PER_FLOAT_LOG2 5L +#define JS_BITS_PER_DOUBLE_LOG2 6L +#define JS_BITS_PER_WORD_LOG2 5L + +#define JS_ALIGN_OF_SHORT 2L +#define JS_ALIGN_OF_INT 4L +#define JS_ALIGN_OF_LONG 4L +#define JS_ALIGN_OF_INT64 4L +#define JS_ALIGN_OF_FLOAT 4L +#define JS_ALIGN_OF_DOUBLE 4L +#define JS_ALIGN_OF_POINTER 4L +#define JS_ALIGN_OF_WORD 4L + +#define JS_BYTES_PER_WORD_LOG2 2L +#define JS_BYTES_PER_DWORD_LOG2 3L +#define JS_WORDS_PER_DWORD_LOG2 1L + +#define JS_STACK_GROWTH_DIRECTION (-1) + +#define JS_HAVE_LONG_LONG + +#endif /* js_cpucfg___ */ diff --git a/packages/mozilla/files/i686/.mtn2git_empty b/packages/mozilla/files/i686/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/mozilla/files/i686/.mtn2git_empty diff --git a/packages/mozilla/files/i686/jsautocfg.h b/packages/mozilla/files/i686/jsautocfg.h new file mode 100644 index 0000000000..394271a7ea --- /dev/null +++ b/packages/mozilla/files/i686/jsautocfg.h @@ -0,0 +1,54 @@ +#ifndef js_cpucfg___ +#define js_cpucfg___ + +/* AUTOMATICALLY GENERATED - DO NOT EDIT */ + +#define IS_LITTLE_ENDIAN 1 +#undef IS_BIG_ENDIAN + +#define JS_BYTES_PER_BYTE 1L +#define JS_BYTES_PER_SHORT 2L +#define JS_BYTES_PER_INT 4L +#define JS_BYTES_PER_INT64 8L +#define JS_BYTES_PER_LONG 4L +#define JS_BYTES_PER_FLOAT 4L +#define JS_BYTES_PER_DOUBLE 8L +#define JS_BYTES_PER_WORD 4L +#define JS_BYTES_PER_DWORD 8L + +#define JS_BITS_PER_BYTE 8L +#define JS_BITS_PER_SHORT 16L +#define JS_BITS_PER_INT 32L +#define JS_BITS_PER_INT64 64L +#define JS_BITS_PER_LONG 32L +#define JS_BITS_PER_FLOAT 32L +#define JS_BITS_PER_DOUBLE 64L +#define JS_BITS_PER_WORD 32L + +#define JS_BITS_PER_BYTE_LOG2 3L +#define JS_BITS_PER_SHORT_LOG2 4L +#define JS_BITS_PER_INT_LOG2 5L +#define JS_BITS_PER_INT64_LOG2 6L +#define JS_BITS_PER_LONG_LOG2 5L +#define JS_BITS_PER_FLOAT_LOG2 5L +#define JS_BITS_PER_DOUBLE_LOG2 6L +#define JS_BITS_PER_WORD_LOG2 5L + +#define JS_ALIGN_OF_SHORT 2L +#define JS_ALIGN_OF_INT 4L +#define JS_ALIGN_OF_LONG 4L +#define JS_ALIGN_OF_INT64 4L +#define JS_ALIGN_OF_FLOAT 4L +#define JS_ALIGN_OF_DOUBLE 4L +#define JS_ALIGN_OF_POINTER 4L +#define JS_ALIGN_OF_WORD 4L + +#define JS_BYTES_PER_WORD_LOG2 2L +#define JS_BYTES_PER_DWORD_LOG2 3L +#define JS_WORDS_PER_DWORD_LOG2 1L + +#define JS_STACK_GROWTH_DIRECTION (-1) + +#define JS_HAVE_LONG_LONG + +#endif /* js_cpucfg___ */ diff --git a/packages/mplayer/files/Makefile-codec-cfg.patch b/packages/mplayer/files/Makefile-codec-cfg.patch index 84c17a9017..9ce22a8839 100644 --- a/packages/mplayer/files/Makefile-codec-cfg.patch +++ b/packages/mplayer/files/Makefile-codec-cfg.patch @@ -1,11 +1,11 @@ ---- /tmp/Makefile 2008-06-10 20:55:43.100403024 +0200 -+++ trunk/Makefile 2008-06-10 20:56:10.881647093 +0200 -@@ -731,7 +731,7 @@ - $(CC) -o $@ $^ $(LDFLAGS_MENCODER) +--- /tmp/Makefile 2008-09-24 19:24:26.000000000 +0200 ++++ trunk/Makefile 2008-09-24 19:25:01.683198000 +0200 +@@ -752,7 +752,7 @@ + $(CC) -o $@ $^ $(LDFLAGS_MPLAYER) codec-cfg$(EXESUF): codec-cfg.c codec-cfg.h help_mp.h -- $(HOST_CC) -O -I. -DCODECS2HTML -o $@ $< -+ $(BUILD_CC) -O -I. -DCODECS2HTML -o $@ $< +- $(HOST_CC) -O -DCODECS2HTML $(EXTRA_INC) -o $@ $< ++ $(BUILD_CC) -O -DCODECS2HTML $(EXTRA_INC) -o $@ $< codecs.conf.h: codec-cfg$(EXESUF) etc/codecs.conf - ./codec-cfg$(EXESUF) ./etc/codecs.conf > $@ + ./$^ > $@ diff --git a/packages/mplayer/files/armv5te/.mtn2git_empty b/packages/mplayer/files/armv5te/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/mplayer/files/armv5te/.mtn2git_empty diff --git a/packages/mplayer/files/armv5te/configh b/packages/mplayer/files/armv5te/configh new file mode 100644 index 0000000000..46c647e2d5 --- /dev/null +++ b/packages/mplayer/files/armv5te/configh @@ -0,0 +1,6 @@ +#define HAVE_LLRINT 1 +#define HAVE_ROUNDF 1 +#define ARCH_ARMV4L 1 +#define ENABLE_ARMV4L 1 +#define HAVE_ARMV5TE 1 +#define ENABLE_ARMV5TE 1 diff --git a/packages/mplayer/files/armv5te/configmak b/packages/mplayer/files/armv5te/configmak new file mode 100644 index 0000000000..aa9978515d --- /dev/null +++ b/packages/mplayer/files/armv5te/configmak @@ -0,0 +1,3 @@ +ARCH_ARMV4L=yes +HAVE_ARMV5TE=yes + diff --git a/packages/mplayer/files/armv6/.mtn2git_empty b/packages/mplayer/files/armv6/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/mplayer/files/armv6/.mtn2git_empty diff --git a/packages/mplayer/files/armv6/configh b/packages/mplayer/files/armv6/configh new file mode 100644 index 0000000000..2301e723d6 --- /dev/null +++ b/packages/mplayer/files/armv6/configh @@ -0,0 +1,8 @@ +#define HAVE_LLRINT 1 +#define HAVE_ROUNDF 1 +#define ARCH_ARMV4L 1 +#define ENABLE_ARMV4L 1 +#define HAVE_ARMV5TE 1 +#define ENABLE_ARMV5TE 1 +#define HAVE_ARMV6 1 +#define ENABLE_ARMV6 1 diff --git a/packages/mplayer/files/armv6/configmak b/packages/mplayer/files/armv6/configmak new file mode 100644 index 0000000000..4db5dc0dfd --- /dev/null +++ b/packages/mplayer/files/armv6/configmak @@ -0,0 +1,3 @@ +ARCH_ARMV4L=yes +HAVE_ARMV5TE=yes +HAVE_ARMV6=yes diff --git a/packages/mplayer/files/armv7a/.mtn2git_empty b/packages/mplayer/files/armv7a/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/mplayer/files/armv7a/.mtn2git_empty diff --git a/packages/mplayer/files/armv7a/configh b/packages/mplayer/files/armv7a/configh new file mode 100644 index 0000000000..245e40f56a --- /dev/null +++ b/packages/mplayer/files/armv7a/configh @@ -0,0 +1,14 @@ +#define HAVE_LLRINT 1 +#define HAVE_ROUNDF 1 +#define ARCH_ARMV4L 1 +#define ENABLE_ARMV4L 1 +#define HAVE_ARMV5TE 1 +#define ENABLE_ARMV5TE 1 +#define HAVE_ARMV6 1 +#define ENABLE_ARMV6 1 +#define HAVE_ARMV6T2 1 +#define ENABLE_ARMV6T2 1 +#define HAVE_ARMVFP 1 +#define ENABLE_ARMVFP 1 +#define HAVE_NEON 1 +#define ENABLE_NEON 1 diff --git a/packages/mplayer/files/armv7a/configmak b/packages/mplayer/files/armv7a/configmak new file mode 100644 index 0000000000..50d549f794 --- /dev/null +++ b/packages/mplayer/files/armv7a/configmak @@ -0,0 +1,6 @@ +ARCH_ARMV4L=yes +HAVE_ARMV5TE=yes +HAVE_ARMV6=yes +HAVE_ARMV6T2=yes +HAVE_ARMVFP=yes +HAVE_NEON=yes diff --git a/packages/mplayer/files/configh b/packages/mplayer/files/configh new file mode 100644 index 0000000000..2fe7658383 --- /dev/null +++ b/packages/mplayer/files/configh @@ -0,0 +1,2 @@ +#define HAVE_LLRINT 1 +#define HAVE_ROUNDF 1 diff --git a/packages/mplayer/files/configmak b/packages/mplayer/files/configmak new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/mplayer/files/configmak diff --git a/packages/mplayer/files/mru-neon-float-to-int16.diff b/packages/mplayer/files/mru-neon-float-to-int16.diff new file mode 100644 index 0000000000..7a874cab30 --- /dev/null +++ b/packages/mplayer/files/mru-neon-float-to-int16.diff @@ -0,0 +1,107 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Thu, 31 Jul 2008 02:35:42 +0000 (+0100) +Subject: ARM: NEON optimised float_to_int16 +X-Git-Url: http://git.mansr.com/?p=ffmpeg.mru;a=commitdiff_plain;h=f16a738cfc3307cbcba2f9c8aff4b5aa43144731 + +ARM: NEON optimised float_to_int16 +--- + +diff --git a/libavcodec/armv4l/dsputil_neon.c b/libavcodec/armv4l/dsputil_neon.c +index 6dbe835..b584e5b 100644 +--- a/libavcodec/armv4l/dsputil_neon.c ++++ b/libavcodec/armv4l/dsputil_neon.c +@@ -91,6 +91,9 @@ void ff_h264_h_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha, + void ff_h264_idct_add_neon(uint8_t *dst, DCTELEM *block, int stride); + void ff_h264_idct_dc_add_neon(uint8_t *dst, DCTELEM *block, int stride); + ++void ff_float_to_int16_neon(int16_t *, const float *, long); ++void ff_float_to_int16_interleave_neon(int16_t *, const float **, long, int); ++ + void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + { + c->put_pixels_tab[0][0] = ff_put_pixels16_neon; +@@ -158,4 +161,7 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + + c->h264_idct_add = ff_h264_idct_add_neon; + c->h264_idct_dc_add = ff_h264_idct_dc_add_neon; ++ ++ c->float_to_int16 = ff_float_to_int16_neon; ++ c->float_to_int16_interleave = ff_float_to_int16_interleave_neon; + } +diff --git a/libavcodec/armv4l/dsputil_neon_s.S b/libavcodec/armv4l/dsputil_neon_s.S +index fc5e401..44f75ba 100644 +--- a/libavcodec/armv4l/dsputil_neon_s.S ++++ b/libavcodec/armv4l/dsputil_neon_s.S +@@ -252,3 +252,72 @@ + defun2 put_pixels8_x2, _no_rnd, vhadd.u8 + defun2 put_pixels8_y2, _no_rnd, vhadd.u8 + defun2 put_pixels8_xy2, _no_rnd, vshrn.u16, 1 ++ ++extern ff_float_to_int16_neon ++ dmb ++1: vld1.64 {d0-d3}, [r1,:128]! ++ vcvt.s32.f32 q2, q0 ++ vcvt.s32.f32 q3, q1 ++ subs r2, r2, #8 ++ vqmovn.s32 d4, q2 ++ vqmovn.s32 d5, q3 ++ vst1.64 {d4-d5}, [r0,:128]! ++ bgt 1b ++ bx lr ++ .endfunc ++ ++extern ff_float_to_int16_interleave_neon ++ cmp r3, #2 ++ ldrlt r1, [r1] ++ blt ff_float_to_int16_neon ++ bne 2f ++ ++ ldr ip, [r1] ++ ldr r1, [r1, #4] ++ vld1.64 {d0-d3}, [ip,:128]! ++ vld1.64 {d4-d7}, [r1,:128]! ++ dmb ++1: vcvt.s32.f32 q8, q0 ++ vcvt.s32.f32 q9, q1 ++ vcvt.s32.f32 q10, q2 ++ vcvt.s32.f32 q11, q3 ++ subs r2, r2, #8 ++ vqmovn.s32 d16, q8 ++ vqmovn.s32 d17, q9 ++ vqmovn.s32 d18, q10 ++ vqmovn.s32 d19, q11 ++ beq 1f ++ vld1.64 {d0-d3}, [ip,:128]! ++ vld1.64 {d4-d7}, [r1,:128]! ++ vst2.16 {d16-d19}, [r0,:64]! ++ b 1b ++1: vst2.16 {d16-d19}, [r0,:64]! ++ bx lr ++ ++2: push {r4,r5,lr} ++ lsls r4, r3, #1 ++ dmb ++ b 4f ++3: vld1.64 {d0-d3}, [ip,:128]! ++ vcvt.s32.f32 q2, q0 ++ vcvt.s32.f32 q3, q1 ++ subs lr, lr, #8 ++ vqmovn.s32 d4, q2 ++ vqmovn.s32 d5, q3 ++ vst1.16 {d4[0]}, [r5,:16], r4 ++ vst1.16 {d4[1]}, [r5,:16], r4 ++ vst1.16 {d4[2]}, [r5,:16], r4 ++ vst1.16 {d4[3]}, [r5,:16], r4 ++ vst1.16 {d5[0]}, [r5,:16], r4 ++ vst1.16 {d5[1]}, [r5,:16], r4 ++ vst1.16 {d5[2]}, [r5,:16], r4 ++ vst1.16 {d5[3]}, [r5,:16], r4 ++ bgt 3b ++ subs r3, r3, #1 ++4: ldr ip, [r1], #4 ++ mov lr, r2 ++ mov r5, r0 ++ add r0, r0, #2 ++ bne 3b ++ pop {r4,r5,pc} ++ .endfunc diff --git a/packages/mplayer/files/mru-neon-h264-chrome.diff b/packages/mplayer/files/mru-neon-h264-chrome.diff new file mode 100644 index 0000000000..cb6c4ff991 --- /dev/null +++ b/packages/mplayer/files/mru-neon-h264-chrome.diff @@ -0,0 +1,364 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Fri, 11 Jul 2008 01:20:07 +0000 (+0100) +Subject: ARM: NEON optimised {put,avg}_h264_chroma_mc[48] +X-Git-Url: http://git.mansr.com/?p=ffmpeg.mru;a=commitdiff_plain;h=d3aa8f93b8a0061e0c3ac12aeed055961abfc113 + +ARM: NEON optimised {put,avg}_h264_chroma_mc[48] +--- + +diff --git a/libavcodec/Makefile b/libavcodec/Makefile +index 7fa02fa..36ba158 100644 +--- a/libavcodec/Makefile ++++ b/libavcodec/Makefile +@@ -437,6 +437,7 @@ OBJS-$(HAVE_NEON) += armv4l/dsputil_neon.o \ + + ASM_OBJS-$(HAVE_NEON) += armv4l/dsputil_neon_s.o \ + armv4l/simple_idct_neon.o \ ++ armv4l/h264dsp_neon.o \ + + OBJS-$(HAVE_VIS) += sparc/dsputil_vis.o \ + sparc/simple_idct_vis.o \ +diff --git a/libavcodec/armv4l/dsputil_neon.c b/libavcodec/armv4l/dsputil_neon.c +index 8a10dde..a6d86cd 100644 +--- a/libavcodec/armv4l/dsputil_neon.c ++++ b/libavcodec/armv4l/dsputil_neon.c +@@ -42,6 +42,12 @@ void ff_put_pixels8_xy2_no_rnd_neon(uint8_t *, const uint8_t *, int, int); + void ff_put_h264_qpel16_mc00_neon(uint8_t *, uint8_t *, int); + void ff_put_h264_qpel8_mc00_neon(uint8_t *, uint8_t *, int); + ++void ff_put_h264_chroma_mc8_neon(uint8_t *, uint8_t *, int, int, int, int); ++void ff_put_h264_chroma_mc4_neon(uint8_t *, uint8_t *, int, int, int, int); ++ ++void ff_avg_h264_chroma_mc8_neon(uint8_t *, uint8_t *, int, int, int, int); ++void ff_avg_h264_chroma_mc4_neon(uint8_t *, uint8_t *, int, int, int, int); ++ + void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + { + c->put_pixels_tab[0][0] = ff_put_pixels16_neon; +@@ -62,6 +68,12 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + c->put_no_rnd_pixels_tab[1][2] = ff_put_pixels8_y2_no_rnd_neon; + c->put_no_rnd_pixels_tab[1][3] = ff_put_pixels8_xy2_no_rnd_neon; + ++ c->put_h264_chroma_pixels_tab[0] = ff_put_h264_chroma_mc8_neon; ++ c->put_h264_chroma_pixels_tab[1] = ff_put_h264_chroma_mc4_neon; ++ ++ c->avg_h264_chroma_pixels_tab[0] = ff_avg_h264_chroma_mc8_neon; ++ c->avg_h264_chroma_pixels_tab[1] = ff_avg_h264_chroma_mc4_neon; ++ + c->put_h264_qpel_pixels_tab[0][0] = ff_put_h264_qpel16_mc00_neon; + c->put_h264_qpel_pixels_tab[1][0] = ff_put_h264_qpel8_mc00_neon; + } +diff --git a/libavcodec/armv4l/h264dsp_neon.S b/libavcodec/armv4l/h264dsp_neon.S +new file mode 100644 +index 0000000..28d9aa7 +--- /dev/null ++++ b/libavcodec/armv4l/h264dsp_neon.S +@@ -0,0 +1,308 @@ ++/* ++ * Copyright (c) 2008 Mans Rullgard <mans@mansr.com> ++ * ++ * This file is part of FFmpeg. ++ * ++ * FFmpeg is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * FFmpeg is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with FFmpeg; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++ .fpu neon ++ ++/* chroma_mc8(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) */ ++ .macro h264_chroma_mc8 avg=0 ++ push {r4-r7, lr} ++ ldrd r4, [sp, #20] ++.if \avg ++ mov lr, r0 ++.endif ++ pld [r1] ++ pld [r1, r2] ++ ++ muls r7, r4, r5 ++ rsb r6, r7, r5, lsl #3 ++ rsb ip, r7, r4, lsl #3 ++ sub r4, r7, r4, lsl #3 ++ sub r4, r4, r5, lsl #3 ++ add r4, r4, #64 ++ ++ dmb ++ ++ beq 2f ++ ++ add r5, r1, r2 ++ ++ vdup.8 d0, r4 ++ lsl r4, r2, #1 ++ vdup.8 d1, ip ++ vld1.64 {d4, d5}, [r1], r4 ++ vdup.8 d2, r6 ++ vld1.64 {d6, d7}, [r5], r4 ++ vdup.8 d3, r7 ++ ++ vext.8 d5, d4, d5, #1 ++ vext.8 d7, d6, d7, #1 ++ ++1: pld [r5] ++ vmull.u8 q8, d4, d0 ++ vmlal.u8 q8, d5, d1 ++ vld1.64 {d4, d5}, [r1], r4 ++ vmlal.u8 q8, d6, d2 ++ vext.8 d5, d4, d5, #1 ++ vmlal.u8 q8, d7, d3 ++ vmull.u8 q9, d6, d0 ++ subs r3, r3, #2 ++ vmlal.u8 q9, d7, d1 ++ vmlal.u8 q9, d4, d2 ++ vmlal.u8 q9, d5, d3 ++ vrshrn.u16 d16, q8, #6 ++ vld1.64 {d6, d7}, [r5], r4 ++ pld [r1] ++ vrshrn.u16 d17, q9, #6 ++.if \avg ++ vld1.64 {d20}, [lr,:64], r2 ++ vld1.64 {d21}, [lr,:64], r2 ++ vrhadd.u8 q8, q8, q10 ++.endif ++ vext.8 d7, d6, d7, #1 ++ vst1.64 {d16}, [r0,:64], r2 ++ vst1.64 {d17}, [r0,:64], r2 ++ bgt 1b ++ ++ pop {r4-r7, pc} ++ ++2: tst r6, r6 ++ add ip, ip, r6 ++ vdup.8 d0, r4 ++ vdup.8 d1, ip ++ ++ beq 4f ++ ++ add r5, r1, r2 ++ lsl r4, r2, #1 ++ vld1.64 {d4}, [r1], r4 ++ vld1.64 {d6}, [r5], r4 ++ ++3: pld [r5] ++ vmull.u8 q8, d4, d0 ++ vmlal.u8 q8, d6, d1 ++ vld1.64 {d4}, [r1], r4 ++ vmull.u8 q9, d6, d0 ++ vmlal.u8 q9, d4, d1 ++ vld1.64 {d6}, [r5], r4 ++ vrshrn.u16 d16, q8, #6 ++ vrshrn.u16 d17, q9, #6 ++.if \avg ++ vld1.64 {d20}, [lr,:64], r2 ++ vld1.64 {d21}, [lr,:64], r2 ++ vrhadd.u8 q8, q8, q10 ++.endif ++ subs r3, r3, #2 ++ pld [r1] ++ vst1.64 {d16}, [r0,:64], r2 ++ vst1.64 {d17}, [r0,:64], r2 ++ bgt 3b ++ ++ pop {r4-r7, pc} ++ ++4: vld1.64 {d4, d5}, [r1], r2 ++ vld1.64 {d6, d7}, [r1], r2 ++ vext.8 d5, d4, d5, #1 ++ vext.8 d7, d6, d7, #1 ++ ++5: pld [r1] ++ subs r3, r3, #2 ++ vmull.u8 q8, d4, d0 ++ vmlal.u8 q8, d5, d1 ++ vld1.64 {d4, d5}, [r1], r2 ++ vmull.u8 q9, d6, d0 ++ vmlal.u8 q9, d7, d1 ++ pld [r1] ++ vext.8 d5, d4, d5, #1 ++ vrshrn.u16 d16, q8, #6 ++ vrshrn.u16 d17, q9, #6 ++.if \avg ++ vld1.64 {d20}, [lr,:64], r2 ++ vld1.64 {d21}, [lr,:64], r2 ++ vrhadd.u8 q8, q8, q10 ++.endif ++ vld1.64 {d6, d7}, [r1], r2 ++ vext.8 d7, d6, d7, #1 ++ vst1.64 {d16}, [r0,:64], r2 ++ vst1.64 {d17}, [r0,:64], r2 ++ bgt 5b ++ ++ pop {r4-r7, pc} ++ .endm ++ ++/* chroma_mc4(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) */ ++ .macro h264_chroma_mc4 avg=0 ++ push {r4-r7, lr} ++ ldrd r4, [sp, #20] ++.if \avg ++ mov lr, r0 ++.endif ++ pld [r1] ++ pld [r1, r2] ++ ++ muls r7, r4, r5 ++ rsb r6, r7, r5, lsl #3 ++ rsb ip, r7, r4, lsl #3 ++ sub r4, r7, r4, lsl #3 ++ sub r4, r4, r5, lsl #3 ++ add r4, r4, #64 ++ ++ dmb ++ ++ beq 2f ++ ++ add r5, r1, r2 ++ ++ vdup.8 d0, r4 ++ lsl r4, r2, #1 ++ vdup.8 d1, ip ++ vld1.64 {d4}, [r1], r4 ++ vdup.8 d2, r6 ++ vld1.64 {d6}, [r5], r4 ++ vdup.8 d3, r7 ++ ++ vext.8 d5, d4, d5, #1 ++ vext.8 d7, d6, d7, #1 ++ vtrn.32 d4, d5 ++ vtrn.32 d6, d7 ++ ++ vtrn.32 d0, d1 ++ vtrn.32 d2, d3 ++ ++1: pld [r5] ++ vmull.u8 q8, d4, d0 ++ vmlal.u8 q8, d6, d2 ++ vld1.64 {d4}, [r1], r4 ++ vext.8 d5, d4, d5, #1 ++ vtrn.32 d4, d5 ++ vmull.u8 q9, d6, d0 ++ vmlal.u8 q9, d4, d2 ++ vld1.64 {d6}, [r5], r4 ++ vadd.i16 d16, d16, d17 ++ vadd.i16 d17, d18, d19 ++ vrshrn.u16 d16, q8, #6 ++ subs r3, r3, #2 ++ pld [r1] ++.if \avg ++ vld1.32 {d20[0]}, [lr,:32], r2 ++ vld1.32 {d20[1]}, [lr,:32], r2 ++ vrhadd.u8 d16, d16, d20 ++.endif ++ vext.8 d7, d6, d7, #1 ++ vtrn.32 d6, d7 ++ vst1.32 {d16[0]}, [r0,:32], r2 ++ vst1.32 {d16[1]}, [r0,:32], r2 ++ bgt 1b ++ ++ pop {r4-r7, pc} ++ ++2: tst r6, r6 ++ add ip, ip, r6 ++ vdup.8 d0, r4 ++ vdup.8 d1, ip ++ vtrn.32 d0, d1 ++ ++ beq 4f ++ ++ vext.32 d1, d0, d1, #1 ++ add r5, r1, r2 ++ lsl r4, r2, #1 ++ vld1.32 {d4[0]}, [r1], r4 ++ vld1.32 {d4[1]}, [r5], r4 ++ ++3: pld [r5] ++ vmull.u8 q8, d4, d0 ++ vld1.32 {d4[0]}, [r1], r4 ++ vmull.u8 q9, d4, d1 ++ vld1.32 {d4[1]}, [r5], r4 ++ vadd.i16 d16, d16, d17 ++ vadd.i16 d17, d18, d19 ++ vrshrn.u16 d16, q8, #6 ++.if \avg ++ vld1.32 {d20[0]}, [lr,:32], r2 ++ vld1.32 {d20[1]}, [lr,:32], r2 ++ vrhadd.u8 d16, d16, d20 ++.endif ++ subs r3, r3, #2 ++ pld [r1] ++ vst1.32 {d16[0]}, [r0,:32], r2 ++ vst1.32 {d16[1]}, [r0,:32], r2 ++ bgt 3b ++ ++ pop {r4-r7, pc} ++ ++4: vld1.64 {d4}, [r1], r2 ++ vld1.64 {d6}, [r1], r2 ++ vext.8 d5, d4, d5, #1 ++ vext.8 d7, d6, d7, #1 ++ vtrn.32 d4, d5 ++ vtrn.32 d6, d7 ++ ++5: vmull.u8 q8, d4, d0 ++ vmull.u8 q9, d6, d0 ++ subs r3, r3, #2 ++ vld1.64 {d4}, [r1], r2 ++ vext.8 d5, d4, d5, #1 ++ vtrn.32 d4, d5 ++ vadd.i16 d16, d16, d17 ++ vadd.i16 d17, d18, d19 ++ pld [r1] ++ vrshrn.u16 d16, q8, #6 ++.if \avg ++ vld1.32 {d20[0]}, [lr,:32], r2 ++ vld1.32 {d20[1]}, [lr,:32], r2 ++ vrhadd.u8 d16, d16, d20 ++.endif ++ vld1.64 {d6}, [r1], r2 ++ vext.8 d7, d6, d7, #1 ++ vtrn.32 d6, d7 ++ pld [r1] ++ vst1.32 {d16[0]}, [r0,:32], r2 ++ vst1.32 {d16[1]}, [r0,:32], r2 ++ bgt 5b ++ ++ pop {r4-r7, pc} ++ .endm ++ ++ .text ++ .align ++ ++ .global ff_put_h264_chroma_mc8_neon ++ .func ff_put_h264_chroma_mc8_neon ++ff_put_h264_chroma_mc8_neon: ++ h264_chroma_mc8 ++ .endfunc ++ ++ .global ff_avg_h264_chroma_mc8_neon ++ .func ff_avg_h264_chroma_mc8_neon ++ff_avg_h264_chroma_mc8_neon: ++ h264_chroma_mc8 avg=1 ++ .endfunc ++ ++ .global ff_put_h264_chroma_mc4_neon ++ .func ff_put_h264_chroma_mc4_neon ++ff_put_h264_chroma_mc4_neon: ++ h264_chroma_mc4 ++ .endfunc ++ ++ .global ff_avg_h264_chroma_mc4_neon ++ .func ff_avg_h264_chroma_mc4_neon ++ff_avg_h264_chroma_mc4_neon: ++ h264_chroma_mc4 avg=1 ++ .endfunc diff --git a/packages/mplayer/files/mru-neon-h264-loopfilter.diff b/packages/mplayer/files/mru-neon-h264-loopfilter.diff new file mode 100644 index 0000000000..056702517b --- /dev/null +++ b/packages/mplayer/files/mru-neon-h264-loopfilter.diff @@ -0,0 +1,346 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Fri, 15 Aug 2008 00:02:55 +0000 (+0100) +Subject: ARM: NEON optimised H.264 loop filter +X-Git-Url: http://git.mansr.com/?p=ffmpeg.mru;a=commitdiff_plain;h=0c1b6bb0814587bd4c8a895c6d7dc2dd4cc2841a + +ARM: NEON optimised H.264 loop filter +--- + +diff --git a/libavcodec/armv4l/dsputil_neon.c b/libavcodec/armv4l/dsputil_neon.c +index a6d86cd..68ecbe8 100644 +--- a/libavcodec/armv4l/dsputil_neon.c ++++ b/libavcodec/armv4l/dsputil_neon.c +@@ -48,6 +48,15 @@ void ff_put_h264_chroma_mc4_neon(uint8_t *, uint8_t *, int, int, int, int); + void ff_avg_h264_chroma_mc8_neon(uint8_t *, uint8_t *, int, int, int, int); + void ff_avg_h264_chroma_mc4_neon(uint8_t *, uint8_t *, int, int, int, int); + ++void ff_h264_v_loop_filter_luma_neon(uint8_t *pix, int stride, int alpha, ++ int beta, int8_t *tc0); ++void ff_h264_h_loop_filter_luma_neon(uint8_t *pix, int stride, int alpha, ++ int beta, int8_t *tc0); ++void ff_h264_v_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha, ++ int beta, int8_t *tc0); ++void ff_h264_h_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha, ++ int beta, int8_t *tc0); ++ + void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + { + c->put_pixels_tab[0][0] = ff_put_pixels16_neon; +@@ -76,4 +85,9 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + + c->put_h264_qpel_pixels_tab[0][0] = ff_put_h264_qpel16_mc00_neon; + c->put_h264_qpel_pixels_tab[1][0] = ff_put_h264_qpel8_mc00_neon; ++ ++ c->h264_v_loop_filter_luma = ff_h264_v_loop_filter_luma_neon; ++ c->h264_h_loop_filter_luma = ff_h264_h_loop_filter_luma_neon; ++ c->h264_v_loop_filter_chroma = ff_h264_v_loop_filter_chroma_neon; ++ c->h264_h_loop_filter_chroma = ff_h264_h_loop_filter_chroma_neon; + } +diff --git a/libavcodec/armv4l/h264dsp_neon.S b/libavcodec/armv4l/h264dsp_neon.S +index 28d9aa7..ac793b2 100644 +--- a/libavcodec/armv4l/h264dsp_neon.S ++++ b/libavcodec/armv4l/h264dsp_neon.S +@@ -306,3 +306,303 @@ ff_put_h264_chroma_mc4_neon: + ff_avg_h264_chroma_mc4_neon: + h264_chroma_mc4 avg=1 + .endfunc ++ ++ /* H.264 loop filter */ ++ ++ .macro h264_loop_filter_start ++ ldr ip, [sp] ++ tst r2, r2 ++ ldr ip, [ip] ++ tstne r3, r3 ++ vmov.32 d24[0], ip ++ and ip, ip, ip, lsl #16 ++ bxeq lr ++ ands ip, ip, ip, lsl #8 ++ bxlt lr ++ .endm ++ ++ .macro align_push_regs ++ and ip, sp, #15 ++ add ip, ip, #32 ++ sub sp, sp, ip ++ dmb ++ vst1.64 {d12-d15}, [sp,:128] ++ sub sp, sp, #32 ++ vst1.64 {d8-d11}, [sp,:128] ++ .endm ++ ++ .macro align_pop_regs ++ vld1.64 {d8-d11}, [sp,:128]! ++ vld1.64 {d12-d15}, [sp,:128], ip ++ .endm ++ ++ .macro h264_loop_filter_luma ++ vdup.8 q11, r2 @ alpha ++ vmovl.u8 q12, d24 ++ vabd.u8 q6, q8, q0 @ abs(p0 - q0) ++ vmovl.u16 q12, d24 ++ vabd.u8 q14, q9, q8 @ abs(p1 - p0) ++ vsli.16 q12, q12, #8 ++ vabd.u8 q15, q1, q0 @ abs(q1 - q0) ++ vsli.32 q12, q12, #16 ++ vclt.u8 q6, q6, q11 @ < alpha ++ vdup.8 q11, r3 @ beta ++ vclt.s8 q7, q12, #0 ++ vclt.u8 q14, q14, q11 @ < beta ++ vclt.u8 q15, q15, q11 @ < beta ++ vbic q6, q6, q7 ++ vabd.u8 q4, q10, q8 @ abs(p2 - p0) ++ vand q6, q6, q14 ++ vabd.u8 q5, q2, q0 @ abs(q2 - q0) ++ vclt.u8 q4, q4, q11 @ < beta ++ vand q6, q6, q15 ++ vclt.u8 q5, q5, q11 @ < beta ++ vand q4, q4, q6 ++ vand q5, q5, q6 ++ vand q12, q12, q6 ++ vrhadd.u8 q14, q8, q0 ++ vsub.i8 q6, q12, q4 ++ vqadd.u8 q7, q9, q12 ++ vhadd.u8 q10, q10, q14 ++ vsub.i8 q6, q6, q5 ++ vhadd.u8 q14, q2, q14 ++ vmin.u8 q7, q7, q10 ++ vqsub.u8 q11, q9, q12 ++ vqadd.u8 q2, q1, q12 ++ vmax.u8 q7, q7, q11 ++ vqsub.u8 q11, q1, q12 ++ vmin.u8 q14, q2, q14 ++ vmovl.u8 q2, d0 ++ vmax.u8 q14, q14, q11 ++ vmovl.u8 q10, d1 ++ vsubw.u8 q2, q2, d16 ++ vsubw.u8 q10, q10, d17 ++ vshl.i16 q2, q2, #2 ++ vshl.i16 q10, q10, #2 ++ vaddw.u8 q2, q2, d18 ++ vaddw.u8 q10, q10, d19 ++ vsubw.u8 q2, q2, d2 ++ vsubw.u8 q10, q10, d3 ++ vrshrn.i16 d4, q2, #3 ++ vrshrn.i16 d5, q10, #3 ++ vbsl q4, q7, q9 ++ vbsl q5, q14, q1 ++ vneg.s8 q7, q6 ++ vmovl.u8 q14, d16 ++ vmin.s8 q2, q2, q6 ++ vmovl.u8 q6, d17 ++ vmax.s8 q2, q2, q7 ++ vmovl.u8 q11, d0 ++ vmovl.u8 q12, d1 ++ vaddw.s8 q14, q14, d4 ++ vaddw.s8 q6, q6, d5 ++ vsubw.s8 q11, q11, d4 ++ vsubw.s8 q12, q12, d5 ++ vqmovun.s16 d16, q14 ++ vqmovun.s16 d17, q6 ++ vqmovun.s16 d0, q11 ++ vqmovun.s16 d1, q12 ++ .endm ++ ++ .global ff_h264_v_loop_filter_luma_neon ++ .func ff_h264_v_loop_filter_luma_neon ++ff_h264_v_loop_filter_luma_neon: ++ h264_loop_filter_start ++ ++ vld1.64 {d0, d1}, [r0,:128], r1 ++ vld1.64 {d2, d3}, [r0,:128], r1 ++ vld1.64 {d4, d5}, [r0,:128], r1 ++ sub r0, r0, r1, lsl #2 ++ sub r0, r0, r1, lsl #1 ++ vld1.64 {d20,d21}, [r0,:128], r1 ++ vld1.64 {d18,d19}, [r0,:128], r1 ++ vld1.64 {d16,d17}, [r0,:128], r1 ++ ++ align_push_regs ++ ++ h264_loop_filter_luma ++ ++ sub r0, r0, r1, lsl #1 ++ vst1.64 {d8, d9}, [r0,:128], r1 ++ vst1.64 {d16,d17}, [r0,:128], r1 ++ vst1.64 {d0, d1}, [r0,:128], r1 ++ vst1.64 {d10,d11}, [r0,:128] ++ ++ align_pop_regs ++ bx lr ++ .endfunc ++ ++ .global ff_h264_h_loop_filter_luma_neon ++ .func ff_h264_h_loop_filter_luma_neon ++ff_h264_h_loop_filter_luma_neon: ++ h264_loop_filter_start ++ ++ sub r0, r0, #4 ++ vld1.64 {d6}, [r0], r1 ++ vld1.64 {d20}, [r0], r1 ++ vld1.64 {d18}, [r0], r1 ++ vld1.64 {d16}, [r0], r1 ++ vld1.64 {d0}, [r0], r1 ++ vld1.64 {d2}, [r0], r1 ++ vld1.64 {d4}, [r0], r1 ++ vld1.64 {d26}, [r0], r1 ++ vld1.64 {d7}, [r0], r1 ++ vld1.64 {d21}, [r0], r1 ++ vld1.64 {d19}, [r0], r1 ++ vld1.64 {d17}, [r0], r1 ++ vld1.64 {d1}, [r0], r1 ++ vld1.64 {d3}, [r0], r1 ++ vld1.64 {d5}, [r0], r1 ++ vld1.64 {d27}, [r0], r1 ++ ++ vtrn.32 q3, q0 ++ vtrn.32 q10, q1 ++ vtrn.32 q9, q2 ++ vtrn.32 q8, q13 ++ vtrn.16 q3, q9 ++ vtrn.16 q10, q8 ++ vtrn.16 q0, q2 ++ vtrn.16 q1, q13 ++ vtrn.8 q3, q10 ++ vtrn.8 q9, q8 ++ vtrn.8 q0, q1 ++ vtrn.8 q2, q13 ++ ++ align_push_regs ++ sub sp, sp, #16 ++ vst1.64 {d4, d5}, [sp,:128] ++ sub sp, sp, #16 ++ vst1.64 {d20,d21}, [sp,:128] ++ ++ h264_loop_filter_luma ++ ++ vld1.64 {d20,d21}, [sp,:128]! ++ vld1.64 {d4, d5}, [sp,:128]! ++ ++ vtrn.32 q3, q0 ++ vtrn.32 q10, q5 ++ vtrn.32 q4, q2 ++ vtrn.32 q8, q13 ++ vtrn.16 q3, q4 ++ vtrn.16 q10, q8 ++ vtrn.16 q0, q2 ++ vtrn.16 q5, q13 ++ vtrn.8 q3, q10 ++ vtrn.8 q4, q8 ++ vtrn.8 q0, q5 ++ vtrn.8 q2, q13 ++ ++ sub r0, r0, r1, lsl #4 ++ vst1.64 {d6}, [r0], r1 ++ vst1.64 {d20}, [r0], r1 ++ vst1.64 {d8}, [r0], r1 ++ vst1.64 {d16}, [r0], r1 ++ vst1.64 {d0}, [r0], r1 ++ vst1.64 {d10}, [r0], r1 ++ vst1.64 {d4}, [r0], r1 ++ vst1.64 {d26}, [r0], r1 ++ vst1.64 {d7}, [r0], r1 ++ vst1.64 {d21}, [r0], r1 ++ vst1.64 {d9}, [r0], r1 ++ vst1.64 {d17}, [r0], r1 ++ vst1.64 {d1}, [r0], r1 ++ vst1.64 {d11}, [r0], r1 ++ vst1.64 {d5}, [r0], r1 ++ vst1.64 {d27}, [r0], r1 ++ ++ align_pop_regs ++ bx lr ++ .endfunc ++ ++ .macro h264_loop_filter_chroma ++ vdup.8 d22, r2 @ alpha ++ vmovl.u8 q12, d24 ++ vabd.u8 d26, d16, d0 @ abs(p0 - q0) ++ vmovl.u8 q2, d0 ++ vabd.u8 d28, d18, d16 @ abs(p1 - p0) ++ vsubw.u8 q2, q2, d16 ++ vsli.16 d24, d24, #8 ++ vshl.i16 q2, q2, #2 ++ vabd.u8 d30, d2, d0 @ abs(q1 - q0) ++ vaddw.u8 q2, q2, d18 ++ vclt.u8 d26, d26, d22 @ < alpha ++ vsubw.u8 q2, q2, d2 ++ vdup.8 d22, r3 @ beta ++ vclt.s8 d25, d24, #0 ++ vrshrn.i16 d4, q2, #3 ++ vclt.u8 d28, d28, d22 @ < beta ++ vbic d26, d26, d25 ++ vclt.u8 d30, d30, d22 @ < beta ++ vand d26, d26, d28 ++ vneg.s8 d25, d24 ++ vand d26, d26, d30 ++ vmin.s8 d4, d4, d24 ++ vmovl.u8 q14, d16 ++ vand d4, d4, d26 ++ vmax.s8 d4, d4, d25 ++ vmovl.u8 q11, d0 ++ vaddw.s8 q14, q14, d4 ++ vsubw.s8 q11, q11, d4 ++ vqmovun.s16 d16, q14 ++ vqmovun.s16 d0, q11 ++ .endm ++ ++ .global ff_h264_v_loop_filter_chroma_neon ++ .func ff_h264_v_loop_filter_chroma_neon ++ff_h264_v_loop_filter_chroma_neon: ++ h264_loop_filter_start ++ ++ sub r0, r0, r1, lsl #1 ++ vld1.64 {d18}, [r0,:64], r1 ++ vld1.64 {d16}, [r0,:64], r1 ++ vld1.64 {d0}, [r0,:64], r1 ++ vld1.64 {d2}, [r0,:64] ++ ++ h264_loop_filter_chroma ++ ++ sub r0, r0, r1, lsl #1 ++ vst1.64 {d16}, [r0,:64], r1 ++ vst1.64 {d0}, [r0,:64], r1 ++ ++ bx lr ++ .endfunc ++ ++ .global ff_h264_h_loop_filter_chroma_neon ++ .func ff_h264_h_loop_filter_chroma_neon ++ff_h264_h_loop_filter_chroma_neon: ++ h264_loop_filter_start ++ ++ sub r0, r0, #2 ++ vld1.32 {d18[0]}, [r0], r1 ++ vld1.32 {d16[0]}, [r0], r1 ++ vld1.32 {d0[0]}, [r0], r1 ++ vld1.32 {d2[0]}, [r0], r1 ++ vld1.32 {d18[1]}, [r0], r1 ++ vld1.32 {d16[1]}, [r0], r1 ++ vld1.32 {d0[1]}, [r0], r1 ++ vld1.32 {d2[1]}, [r0], r1 ++ ++ vtrn.16 d18, d0 ++ vtrn.16 d16, d2 ++ vtrn.8 d18, d16 ++ vtrn.8 d0, d2 ++ ++ h264_loop_filter_chroma ++ ++ vtrn.16 d18, d0 ++ vtrn.16 d16, d2 ++ vtrn.8 d18, d16 ++ vtrn.8 d0, d2 ++ ++ sub r0, r0, r1, lsl #3 ++ vst1.32 {d18[0]}, [r0], r1 ++ vst1.32 {d16[0]}, [r0], r1 ++ vst1.32 {d0[0]}, [r0], r1 ++ vst1.32 {d2[0]}, [r0], r1 ++ vst1.32 {d18[1]}, [r0], r1 ++ vst1.32 {d16[1]}, [r0], r1 ++ vst1.32 {d0[1]}, [r0], r1 ++ vst1.32 {d2[1]}, [r0], r1 ++ ++ bx lr ++ .endfunc diff --git a/packages/mplayer/files/mru-neon-h264-qpel.diff b/packages/mplayer/files/mru-neon-h264-qpel.diff new file mode 100644 index 0000000000..6ed479b19b --- /dev/null +++ b/packages/mplayer/files/mru-neon-h264-qpel.diff @@ -0,0 +1,1040 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Sat, 23 Aug 2008 00:24:04 +0000 (+0100) +Subject: ARM: NEON optimised H.264 8x8 and 16x16 qpel MC +X-Git-Url: http://git.mansr.com/?p=ffmpeg.mru;a=commitdiff_plain;h=55661fd933572f67248c0730f6c75a6db0f0eb6a + +ARM: NEON optimised H.264 8x8 and 16x16 qpel MC +--- + +diff --git a/libavcodec/armv4l/dsputil_neon.c b/libavcodec/armv4l/dsputil_neon.c +index 68ecbe8..a932aa9 100644 +--- a/libavcodec/armv4l/dsputil_neon.c ++++ b/libavcodec/armv4l/dsputil_neon.c +@@ -40,7 +40,38 @@ void ff_put_pixels8_y2_no_rnd_neon(uint8_t *, const uint8_t *, int, int); + void ff_put_pixels8_xy2_no_rnd_neon(uint8_t *, const uint8_t *, int, int); + + void ff_put_h264_qpel16_mc00_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc10_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc20_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc30_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc01_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc11_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc21_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc31_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc02_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc12_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc22_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc32_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc03_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc13_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc23_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel16_mc33_neon(uint8_t *, uint8_t *, int); ++ + void ff_put_h264_qpel8_mc00_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc10_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc20_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc30_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc01_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc11_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc21_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc31_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc02_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc12_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc22_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc32_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc03_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc13_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc23_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc33_neon(uint8_t *, uint8_t *, int); + + void ff_put_h264_chroma_mc8_neon(uint8_t *, uint8_t *, int, int, int, int); + void ff_put_h264_chroma_mc4_neon(uint8_t *, uint8_t *, int, int, int, int); +@@ -83,8 +114,39 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + c->avg_h264_chroma_pixels_tab[0] = ff_avg_h264_chroma_mc8_neon; + c->avg_h264_chroma_pixels_tab[1] = ff_avg_h264_chroma_mc4_neon; + +- c->put_h264_qpel_pixels_tab[0][0] = ff_put_h264_qpel16_mc00_neon; +- c->put_h264_qpel_pixels_tab[1][0] = ff_put_h264_qpel8_mc00_neon; ++ c->put_h264_qpel_pixels_tab[0][ 0] = ff_put_h264_qpel16_mc00_neon; ++ c->put_h264_qpel_pixels_tab[0][ 1] = ff_put_h264_qpel16_mc10_neon; ++ c->put_h264_qpel_pixels_tab[0][ 2] = ff_put_h264_qpel16_mc20_neon; ++ c->put_h264_qpel_pixels_tab[0][ 3] = ff_put_h264_qpel16_mc30_neon; ++ c->put_h264_qpel_pixels_tab[0][ 4] = ff_put_h264_qpel16_mc01_neon; ++ c->put_h264_qpel_pixels_tab[0][ 5] = ff_put_h264_qpel16_mc11_neon; ++ c->put_h264_qpel_pixels_tab[0][ 6] = ff_put_h264_qpel16_mc21_neon; ++ c->put_h264_qpel_pixels_tab[0][ 7] = ff_put_h264_qpel16_mc31_neon; ++ c->put_h264_qpel_pixels_tab[0][ 8] = ff_put_h264_qpel16_mc02_neon; ++ c->put_h264_qpel_pixels_tab[0][ 9] = ff_put_h264_qpel16_mc12_neon; ++ c->put_h264_qpel_pixels_tab[0][10] = ff_put_h264_qpel16_mc22_neon; ++ c->put_h264_qpel_pixels_tab[0][11] = ff_put_h264_qpel16_mc32_neon; ++ c->put_h264_qpel_pixels_tab[0][12] = ff_put_h264_qpel16_mc03_neon; ++ c->put_h264_qpel_pixels_tab[0][13] = ff_put_h264_qpel16_mc13_neon; ++ c->put_h264_qpel_pixels_tab[0][14] = ff_put_h264_qpel16_mc23_neon; ++ c->put_h264_qpel_pixels_tab[0][15] = ff_put_h264_qpel16_mc33_neon; ++ ++ c->put_h264_qpel_pixels_tab[1][ 0] = ff_put_h264_qpel8_mc00_neon; ++ c->put_h264_qpel_pixels_tab[1][ 1] = ff_put_h264_qpel8_mc10_neon; ++ c->put_h264_qpel_pixels_tab[1][ 2] = ff_put_h264_qpel8_mc20_neon; ++ c->put_h264_qpel_pixels_tab[1][ 3] = ff_put_h264_qpel8_mc30_neon; ++ c->put_h264_qpel_pixels_tab[1][ 4] = ff_put_h264_qpel8_mc01_neon; ++ c->put_h264_qpel_pixels_tab[1][ 5] = ff_put_h264_qpel8_mc11_neon; ++ c->put_h264_qpel_pixels_tab[1][ 6] = ff_put_h264_qpel8_mc21_neon; ++ c->put_h264_qpel_pixels_tab[1][ 7] = ff_put_h264_qpel8_mc31_neon; ++ c->put_h264_qpel_pixels_tab[1][ 8] = ff_put_h264_qpel8_mc02_neon; ++ c->put_h264_qpel_pixels_tab[1][ 9] = ff_put_h264_qpel8_mc12_neon; ++ c->put_h264_qpel_pixels_tab[1][10] = ff_put_h264_qpel8_mc22_neon; ++ c->put_h264_qpel_pixels_tab[1][11] = ff_put_h264_qpel8_mc32_neon; ++ c->put_h264_qpel_pixels_tab[1][12] = ff_put_h264_qpel8_mc03_neon; ++ c->put_h264_qpel_pixels_tab[1][13] = ff_put_h264_qpel8_mc13_neon; ++ c->put_h264_qpel_pixels_tab[1][14] = ff_put_h264_qpel8_mc23_neon; ++ c->put_h264_qpel_pixels_tab[1][15] = ff_put_h264_qpel8_mc33_neon; + + c->h264_v_loop_filter_luma = ff_h264_v_loop_filter_luma_neon; + c->h264_h_loop_filter_luma = ff_h264_h_loop_filter_luma_neon; +diff --git a/libavcodec/armv4l/h264dsp_neon.S b/libavcodec/armv4l/h264dsp_neon.S +index ac793b2..398e9c8 100644 +--- a/libavcodec/armv4l/h264dsp_neon.S ++++ b/libavcodec/armv4l/h264dsp_neon.S +@@ -20,6 +20,39 @@ + + .fpu neon + ++ .macro transpose_8x8 r0 r1 r2 r3 r4 r5 r6 r7 ++ vtrn.32 \r0, \r4 ++ vtrn.32 \r1, \r5 ++ vtrn.32 \r2, \r6 ++ vtrn.32 \r3, \r7 ++ vtrn.16 \r0, \r2 ++ vtrn.16 \r1, \r3 ++ vtrn.16 \r4, \r6 ++ vtrn.16 \r5, \r7 ++ vtrn.8 \r0, \r1 ++ vtrn.8 \r2, \r3 ++ vtrn.8 \r4, \r5 ++ vtrn.8 \r6, \r7 ++ .endm ++ ++ .macro swap4 r0 r1 r2 r3 r4 r5 r6 r7 ++ vswp \r0, \r4 ++ vswp \r1, \r5 ++ vswp \r2, \r6 ++ vswp \r3, \r7 ++ .endm ++ ++ .macro transpose16_4x4 r0 r1 r2 r3 r4 r5 r6 r7 ++ vtrn.32 \r0, \r2 ++ vtrn.32 \r1, \r3 ++ vtrn.32 \r4, \r6 ++ vtrn.32 \r5, \r7 ++ vtrn.16 \r0, \r1 ++ vtrn.16 \r2, \r3 ++ vtrn.16 \r4, \r5 ++ vtrn.16 \r6, \r7 ++ .endm ++ + /* chroma_mc8(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) */ + .macro h264_chroma_mc8 avg=0 + push {r4-r7, lr} +@@ -455,18 +488,7 @@ ff_h264_h_loop_filter_luma_neon: + vld1.64 {d5}, [r0], r1 + vld1.64 {d27}, [r0], r1 + +- vtrn.32 q3, q0 +- vtrn.32 q10, q1 +- vtrn.32 q9, q2 +- vtrn.32 q8, q13 +- vtrn.16 q3, q9 +- vtrn.16 q10, q8 +- vtrn.16 q0, q2 +- vtrn.16 q1, q13 +- vtrn.8 q3, q10 +- vtrn.8 q9, q8 +- vtrn.8 q0, q1 +- vtrn.8 q2, q13 ++ transpose_8x8 q3, q10, q9, q8, q0, q1, q2, q13 + + align_push_regs + sub sp, sp, #16 +@@ -479,18 +501,7 @@ ff_h264_h_loop_filter_luma_neon: + vld1.64 {d20,d21}, [sp,:128]! + vld1.64 {d4, d5}, [sp,:128]! + +- vtrn.32 q3, q0 +- vtrn.32 q10, q5 +- vtrn.32 q4, q2 +- vtrn.32 q8, q13 +- vtrn.16 q3, q4 +- vtrn.16 q10, q8 +- vtrn.16 q0, q2 +- vtrn.16 q5, q13 +- vtrn.8 q3, q10 +- vtrn.8 q4, q8 +- vtrn.8 q0, q5 +- vtrn.8 q2, q13 ++ transpose_8x8 q3, q10, q4, q8, q0, q5, q2, q13 + + sub r0, r0, r1, lsl #4 + vst1.64 {d6}, [r0], r1 +@@ -606,3 +617,862 @@ ff_h264_h_loop_filter_chroma_neon: + + bx lr + .endfunc ++ ++ /* H.264 qpel MC */ ++ ++ .macro lowpass_8 r0, r1, r2, r3, d0, d1, narrow=1 ++ vext.8 d4, \r0, \r1, #1 ++ vext.8 d2, \r0, \r1, #2 ++ vext.8 d3, \r0, \r1, #3 ++ vext.8 d5, \r0, \r1, #4 ++ vext.8 d6, \r0, \r1, #5 ++ ++ vext.8 d20, \r2, \r3, #1 ++ vext.8 d18, \r2, \r3, #2 ++ vext.8 d19, \r2, \r3, #3 ++ vext.8 d21, \r2, \r3, #4 ++ vext.8 d7, \r2, \r3, #5 ++ ++ vaddl.u8 q1, d2, d3 ++ vaddl.u8 q2, d4, d5 ++ vaddl.u8 q0, \r0, d6 ++ vaddl.u8 q9, d18, d19 ++ vaddl.u8 q10, d20, d21 ++ vaddl.u8 q8, \r2, d7 ++ ++ vshl.i16 q3, q1, #4 ++ vshl.i16 q1, q1, #2 ++ vshl.i16 q15, q2, #2 ++ vadd.i16 q1, q1, q3 ++ vadd.i16 q2, q2, q15 ++ ++ vshl.i16 q3, q9, #4 ++ vshl.i16 q9, q9, #2 ++ vshl.i16 q15, q10, #2 ++ vadd.i16 q9, q9, q3 ++ vadd.i16 q10, q10, q15 ++ ++ vsub.i16 q1, q1, q2 ++ vsub.i16 q9, q9, q10 ++.if \narrow ++ vadd.i16 q1, q1, q0 ++ vadd.i16 q9, q9, q8 ++ vqrshrun.s16 \d0, q1, #5 ++ vqrshrun.s16 \d1, q9, #5 ++.else ++ vadd.i16 \d0, q1, q0 ++ vadd.i16 \d1, q9, q8 ++.endif ++ .endm ++ ++ .macro lowpass_8_1 r0, r1, d0, narrow=1 ++ vext.8 d4, \r0, \r1, #1 ++ vext.8 d2, \r0, \r1, #2 ++ vext.8 d3, \r0, \r1, #3 ++ vext.8 d5, \r0, \r1, #4 ++ vext.8 d6, \r0, \r1, #5 ++ ++ vaddl.u8 q1, d2, d3 ++ vaddl.u8 q2, d4, d5 ++ vaddl.u8 q0, \r0, d6 ++ ++ vshl.i16 q3, q1, #4 ++ vshl.i16 q1, q1, #2 ++ vshl.i16 q15, q2, #2 ++ vadd.i16 q1, q1, q3 ++ vadd.i16 q2, q2, q15 ++ ++ vadd.i16 q1, q1, q0 ++.if \narrow ++ vsub.i16 q1, q1, q2 ++ vqrshrun.s16 \d0, q1, #5 ++.else ++ vsub.i16 \d0, q1, q2 ++.endif ++ .endm ++ ++ .macro lowpass_8.16 r0, r1, l0, h0, l1, h1, d ++ vext.16 q2, \r0, \r1, #1 ++ vext.16 q1, \r0, \r1, #2 ++ vext.16 q0, \r0, \r1, #3 ++ vext.16 q3, \r0, \r1, #4 ++ vext.16 \r1, \r0, \r1, #5 ++ ++ vaddl.s16 q9, d2, d0 ++ vaddl.s16 q1, d3, d1 ++ vaddl.s16 q10, d4, d6 ++ vaddl.s16 q2, d5, d7 ++ vaddl.s16 q0, \h0, \h1 ++ vaddl.s16 q8, \l0, \l1 ++ ++ vshl.i32 q3, q9, #4 ++ vshl.i32 q9, q9, #2 ++ vshl.i32 q15, q10, #2 ++ vadd.i32 q9, q9, q3 ++ vadd.i32 q10, q10, q15 ++ ++ vshl.i32 q3, q1, #4 ++ vshl.i32 q1, q1, #2 ++ vshl.i32 q15, q2, #2 ++ vadd.i32 q1, q1, q3 ++ vadd.i32 q2, q2, q15 ++ ++ vadd.i32 q9, q9, q8 ++ vsub.i32 q9, q9, q10 ++ ++ vadd.i32 q1, q1, q0 ++ vsub.i32 q1, q1, q2 ++ ++ vrshrn.s32 d18, q9, #10 ++ vrshrn.s32 d19, q1, #10 ++ ++ vqmovun.s16 \d, q9 ++ .endm ++ ++ .func put_h264_qpel16_h_lowpass_neon_packed ++put_h264_qpel16_h_lowpass_neon_packed: ++ mov r4, lr ++ mov ip, #16 ++ mov r3, #8 ++ bl put_h264_qpel8_h_lowpass_neon ++ sub r1, r1, r2, lsl #4 ++ add r1, r1, #8 ++ mov ip, #16 ++ mov lr, r4 ++ b put_h264_qpel8_h_lowpass_neon ++ .endfunc ++ ++ .func put_h264_qpel16_h_lowpass_neon ++put_h264_qpel16_h_lowpass_neon: ++ push {lr} ++ mov ip, #16 ++ dmb ++ bl put_h264_qpel8_h_lowpass_neon ++ sub r0, r0, r3, lsl #4 ++ sub r1, r1, r2, lsl #4 ++ add r0, r0, #8 ++ add r1, r1, #8 ++ mov ip, #16 ++ pop {lr} ++ .endfunc ++ ++ .func put_h264_qpel8_h_lowpass_neon ++put_h264_qpel8_h_lowpass_neon: ++1: vld1.64 {d0, d1}, [r1], r2 ++ vld1.64 {d16,d17}, [r1], r2 ++ subs ip, ip, #2 ++ lowpass_8 d0, d1, d16, d17, d0, d16 ++ vst1.64 {d0}, [r0,:64], r3 ++ vst1.64 {d16}, [r0,:64], r3 ++ bne 1b ++ bx lr ++ .endfunc ++ ++ .func put_h264_qpel16_h_lowpass_l2_neon ++put_h264_qpel16_h_lowpass_l2_neon: ++ push {lr} ++ mov ip, #16 ++ dmb ++ bl put_h264_qpel8_h_lowpass_l2_neon ++ sub r0, r0, r2, lsl #4 ++ sub r1, r1, r2, lsl #4 ++ sub r3, r3, r2, lsl #4 ++ add r0, r0, #8 ++ add r1, r1, #8 ++ add r3, r3, #8 ++ mov ip, #16 ++ pop {lr} ++ .endfunc ++ ++ .func put_h264_qpel8_h_lowpass_l2_neon ++put_h264_qpel8_h_lowpass_l2_neon: ++1: vld1.64 {d0, d1}, [r1], r2 ++ vld1.64 {d16,d17}, [r1], r2 ++ vld1.64 {d28}, [r3], r2 ++ vld1.64 {d29}, [r3], r2 ++ subs ip, ip, #2 ++ lowpass_8 d0, d1, d16, d17, d0, d1 ++ vrhadd.u8 q0, q0, q14 ++ vst1.64 {d0}, [r0,:64], r2 ++ vst1.64 {d1}, [r0,:64], r2 ++ bne 1b ++ bx lr ++ .endfunc ++ ++ .func put_h264_qpel16_v_lowpass_neon_packed ++put_h264_qpel16_v_lowpass_neon_packed: ++ mov r4, lr ++ mov r2, #8 ++ bl put_h264_qpel8_v_lowpass_neon ++ sub r1, r1, r3, lsl #2 ++ bl put_h264_qpel8_v_lowpass_neon ++ sub r1, r1, r3, lsl #4 ++ sub r1, r1, r3, lsl #2 ++ add r1, r1, #8 ++ bl put_h264_qpel8_v_lowpass_neon ++ sub r1, r1, r3, lsl #2 ++ mov lr, r4 ++ b put_h264_qpel8_v_lowpass_neon ++ .endfunc ++ ++ .func put_h264_qpel16_v_lowpass_neon ++put_h264_qpel16_v_lowpass_neon: ++ mov r4, lr ++ bl put_h264_qpel8_v_lowpass_neon ++ sub r1, r1, r3, lsl #2 ++ bl put_h264_qpel8_v_lowpass_neon ++ sub r0, r0, r2, lsl #4 ++ add r0, r0, #8 ++ sub r1, r1, r3, lsl #4 ++ sub r1, r1, r3, lsl #2 ++ add r1, r1, #8 ++ bl put_h264_qpel8_v_lowpass_neon ++ sub r1, r1, r3, lsl #2 ++ mov lr, r4 ++ .endfunc ++ ++ .func put_h264_qpel8_v_lowpass_neon ++put_h264_qpel8_v_lowpass_neon: ++ vld1.64 {d8}, [r1], r3 ++ vld1.64 {d10}, [r1], r3 ++ vld1.64 {d12}, [r1], r3 ++ vld1.64 {d14}, [r1], r3 ++ vld1.64 {d22}, [r1], r3 ++ vld1.64 {d24}, [r1], r3 ++ vld1.64 {d26}, [r1], r3 ++ vld1.64 {d28}, [r1], r3 ++ vld1.64 {d9}, [r1], r3 ++ vld1.64 {d11}, [r1], r3 ++ vld1.64 {d13}, [r1], r3 ++ vld1.64 {d15}, [r1], r3 ++ vld1.64 {d23}, [r1] ++ ++ transpose_8x8 q4, q5, q6, q7, q11, q12, q13, q14 ++ lowpass_8 d8, d9, d10, d11, d8, d10 ++ lowpass_8 d12, d13, d14, d15, d12, d14 ++ lowpass_8 d22, d23, d24, d25, d22, d24 ++ lowpass_8 d26, d27, d28, d29, d26, d28 ++ transpose_8x8 d8, d10, d12, d14, d22, d24, d26, d28 ++ ++ vst1.64 {d8}, [r0,:64], r2 ++ vst1.64 {d10}, [r0,:64], r2 ++ vst1.64 {d12}, [r0,:64], r2 ++ vst1.64 {d14}, [r0,:64], r2 ++ vst1.64 {d22}, [r0,:64], r2 ++ vst1.64 {d24}, [r0,:64], r2 ++ vst1.64 {d26}, [r0,:64], r2 ++ vst1.64 {d28}, [r0,:64], r2 ++ ++ bx lr ++ .endfunc ++ ++ .func put_h264_qpel16_v_lowpass_l2_neon ++put_h264_qpel16_v_lowpass_l2_neon: ++ mov r4, lr ++ bl put_h264_qpel8_v_lowpass_l2_neon ++ sub r1, r1, r3, lsl #2 ++ bl put_h264_qpel8_v_lowpass_l2_neon ++ sub r0, r0, r3, lsl #4 ++ sub ip, ip, r2, lsl #4 ++ add r0, r0, #8 ++ add ip, ip, #8 ++ sub r1, r1, r3, lsl #4 ++ sub r1, r1, r3, lsl #2 ++ add r1, r1, #8 ++ bl put_h264_qpel8_v_lowpass_l2_neon ++ sub r1, r1, r3, lsl #2 ++ mov lr, r4 ++ .endfunc ++ ++ .func put_h264_qpel8_v_lowpass_l2_neon ++put_h264_qpel8_v_lowpass_l2_neon: ++ vld1.64 {d8}, [r1], r3 ++ vld1.64 {d10}, [r1], r3 ++ vld1.64 {d12}, [r1], r3 ++ vld1.64 {d14}, [r1], r3 ++ vld1.64 {d22}, [r1], r3 ++ vld1.64 {d24}, [r1], r3 ++ vld1.64 {d26}, [r1], r3 ++ vld1.64 {d28}, [r1], r3 ++ vld1.64 {d9}, [r1], r3 ++ vld1.64 {d11}, [r1], r3 ++ vld1.64 {d13}, [r1], r3 ++ vld1.64 {d15}, [r1], r3 ++ vld1.64 {d23}, [r1] ++ ++ transpose_8x8 q4, q5, q6, q7, q11, q12, q13, q14 ++ lowpass_8 d8, d9, d10, d11, d8, d9 ++ lowpass_8 d12, d13, d14, d15, d12, d13 ++ lowpass_8 d22, d23, d24, d25, d22, d23 ++ lowpass_8 d26, d27, d28, d29, d26, d27 ++ transpose_8x8 d8, d9, d12, d13, d22, d23, d26, d27 ++ ++ vld1.64 {d0}, [ip], r2 ++ vld1.64 {d1}, [ip], r2 ++ vld1.64 {d2}, [ip], r2 ++ vld1.64 {d3}, [ip], r2 ++ vld1.64 {d4}, [ip], r2 ++ vrhadd.u8 q0, q0, q4 ++ vld1.64 {d5}, [ip], r2 ++ vrhadd.u8 q1, q1, q6 ++ vld1.64 {d6}, [ip], r2 ++ vrhadd.u8 q2, q2, q11 ++ vld1.64 {d7}, [ip], r2 ++ ++ vst1.64 {d0}, [r0,:64], r3 ++ vst1.64 {d1}, [r0,:64], r3 ++ vrhadd.u8 q3, q3, q13 ++ vst1.64 {d2}, [r0,:64], r3 ++ vst1.64 {d3}, [r0,:64], r3 ++ vst1.64 {d4}, [r0,:64], r3 ++ vst1.64 {d5}, [r0,:64], r3 ++ vst1.64 {d6}, [r0,:64], r3 ++ vst1.64 {d7}, [r0,:64], r3 ++ ++ bx lr ++ .endfunc ++ ++ .func put_h264_qpel8_hv_lowpass_neon_top ++put_h264_qpel8_hv_lowpass_neon_top: ++ mov ip, #12 ++1: vld1.64 {d0, d1}, [r1], r3 ++ vld1.64 {d16,d17}, [r1], r3 ++ subs ip, ip, #2 ++ lowpass_8 d0, d1, d16, d17, q0, q1, narrow=0 ++ vst1.64 {d0-d3}, [r4,:128]! ++ bne 1b ++ ++ vld1.64 {d0, d1}, [r1] ++ lowpass_8_1 d0, d1, q12, narrow=0 ++ ++ mov ip, #-16 ++ add r4, r4, ip ++ vld1.64 {d30,d31}, [r4,:128], ip ++ vld1.64 {d20,d21}, [r4,:128], ip ++ vld1.64 {d18,d19}, [r4,:128], ip ++ vld1.64 {d16,d17}, [r4,:128], ip ++ vld1.64 {d14,d15}, [r4,:128], ip ++ vld1.64 {d12,d13}, [r4,:128], ip ++ vld1.64 {d10,d11}, [r4,:128], ip ++ vld1.64 {d8, d9}, [r4,:128], ip ++ vld1.64 {d6, d7}, [r4,:128], ip ++ vld1.64 {d4, d5}, [r4,:128], ip ++ vld1.64 {d2, d3}, [r4,:128], ip ++ vld1.64 {d0, d1}, [r4,:128] ++ ++ swap4 d1, d3, d5, d7, d8, d10, d12, d14 ++ transpose16_4x4 q0, q1, q2, q3, q4, q5, q6, q7 ++ ++ swap4 d17, d19, d21, d31, d24, d26, d28, d22 ++ transpose16_4x4 q8, q9, q10, q15, q12, q13, q14, q11 ++ ++ vst1.64 {d30,d31}, [r4,:128]! ++ vst1.64 {d6, d7}, [r4,:128]! ++ vst1.64 {d20,d21}, [r4,:128]! ++ vst1.64 {d4, d5}, [r4,:128]! ++ vst1.64 {d18,d19}, [r4,:128]! ++ vst1.64 {d2, d3}, [r4,:128]! ++ vst1.64 {d16,d17}, [r4,:128]! ++ vst1.64 {d0, d1}, [r4,:128] ++ ++ lowpass_8.16 q4, q12, d8, d9, d24, d25, d8 ++ lowpass_8.16 q5, q13, d10, d11, d26, d27, d9 ++ lowpass_8.16 q6, q14, d12, d13, d28, d29, d10 ++ lowpass_8.16 q7, q11, d14, d15, d22, d23, d11 ++ ++ vld1.64 {d16,d17}, [r4,:128], ip ++ vld1.64 {d30,d31}, [r4,:128], ip ++ lowpass_8.16 q8, q15, d16, d17, d30, d31, d12 ++ vld1.64 {d16,d17}, [r4,:128], ip ++ vld1.64 {d30,d31}, [r4,:128], ip ++ lowpass_8.16 q8, q15, d16, d17, d30, d31, d13 ++ vld1.64 {d16,d17}, [r4,:128], ip ++ vld1.64 {d30,d31}, [r4,:128], ip ++ lowpass_8.16 q8, q15, d16, d17, d30, d31, d14 ++ vld1.64 {d16,d17}, [r4,:128], ip ++ vld1.64 {d30,d31}, [r4,:128] ++ lowpass_8.16 q8, q15, d16, d17, d30, d31, d15 ++ ++ transpose_8x8 d12, d13, d14, d15, d8, d9, d10, d11 ++ ++ bx lr ++ .endfunc ++ ++ .func put_h264_qpel8_hv_lowpass_neon ++put_h264_qpel8_hv_lowpass_neon: ++ mov r10, lr ++ bl put_h264_qpel8_hv_lowpass_neon_top ++ vst1.64 {d12}, [r0,:64], r2 ++ vst1.64 {d13}, [r0,:64], r2 ++ vst1.64 {d14}, [r0,:64], r2 ++ vst1.64 {d15}, [r0,:64], r2 ++ vst1.64 {d8}, [r0,:64], r2 ++ vst1.64 {d9}, [r0,:64], r2 ++ vst1.64 {d10}, [r0,:64], r2 ++ vst1.64 {d11}, [r0,:64], r2 ++ ++ mov lr, r10 ++ bx lr ++ .endfunc ++ ++ .func put_h264_qpel8_hv_lowpass_l2_neon ++put_h264_qpel8_hv_lowpass_l2_neon: ++ mov r10, lr ++ bl put_h264_qpel8_hv_lowpass_neon_top ++ ++ vld1.64 {d0, d1}, [r2,:128]! ++ vld1.64 {d2, d3}, [r2,:128]! ++ vrhadd.u8 q0, q0, q6 ++ vld1.64 {d4, d5}, [r2,:128]! ++ vrhadd.u8 q1, q1, q7 ++ vld1.64 {d6, d7}, [r2,:128]! ++ vrhadd.u8 q2, q2, q4 ++ ++ vst1.64 {d0}, [r0,:64], r3 ++ vrhadd.u8 q3, q3, q5 ++ vst1.64 {d1}, [r0,:64], r3 ++ vst1.64 {d2}, [r0,:64], r3 ++ vst1.64 {d3}, [r0,:64], r3 ++ vst1.64 {d4}, [r0,:64], r3 ++ vst1.64 {d5}, [r0,:64], r3 ++ vst1.64 {d6}, [r0,:64], r3 ++ vst1.64 {d7}, [r0,:64], r3 ++ ++ mov lr, r10 ++ bx lr ++ .endfunc ++ ++ .func put_h264_qpel16_hv_lowpass_neon ++put_h264_qpel16_hv_lowpass_neon: ++ mov r9, lr ++ bl put_h264_qpel8_hv_lowpass_neon ++ sub r1, r1, r3, lsl #2 ++ bl put_h264_qpel8_hv_lowpass_neon ++ sub r1, r1, r3, lsl #4 ++ sub r1, r1, r3, lsl #2 ++ add r1, r1, #8 ++ sub r0, r0, r2, lsl #4 ++ add r0, r0, #8 ++ bl put_h264_qpel8_hv_lowpass_neon ++ sub r1, r1, r3, lsl #2 ++ mov lr, r9 ++ b put_h264_qpel8_hv_lowpass_neon ++ .endfunc ++ ++ .func put_h264_qpel16_hv_lowpass_l2_neon ++put_h264_qpel16_hv_lowpass_l2_neon: ++ mov r9, lr ++ sub r2, r4, #256 ++ bl put_h264_qpel8_hv_lowpass_l2_neon ++ sub r1, r1, r3, lsl #2 ++ bl put_h264_qpel8_hv_lowpass_l2_neon ++ sub r1, r1, r3, lsl #4 ++ sub r1, r1, r3, lsl #2 ++ add r1, r1, #8 ++ sub r0, r0, r3, lsl #4 ++ add r0, r0, #8 ++ bl put_h264_qpel8_hv_lowpass_l2_neon ++ sub r1, r1, r3, lsl #2 ++ mov lr, r9 ++ b put_h264_qpel8_hv_lowpass_l2_neon ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc10_neon ++ .func ff_put_h264_qpel8_mc10_neon ++ff_put_h264_qpel8_mc10_neon: ++ mov r3, r1 ++ sub r1, r1, #2 ++ mov ip, #8 ++ dmb ++ b put_h264_qpel8_h_lowpass_l2_neon ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc20_neon ++ .func ff_put_h264_qpel8_mc20_neon ++ff_put_h264_qpel8_mc20_neon: ++ sub r1, r1, #2 ++ mov r3, r2 ++ mov ip, #8 ++ dmb ++ b put_h264_qpel8_h_lowpass_neon ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc30_neon ++ .func ff_put_h264_qpel8_mc30_neon ++ff_put_h264_qpel8_mc30_neon: ++ add r3, r1, #1 ++ sub r1, r1, #2 ++ mov ip, #8 ++ dmb ++ b put_h264_qpel8_h_lowpass_l2_neon ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc01_neon ++ .func ff_put_h264_qpel8_mc01_neon ++ff_put_h264_qpel8_mc01_neon: ++ push {lr} ++ mov ip, r1 ++put_h264_qpel8_mc01: ++ mov r3, r2 ++ sub r1, r1, r2, lsl #1 ++ dmb ++ vpush {d8-d15} ++ bl put_h264_qpel8_v_lowpass_l2_neon ++ vpop {d8-d15} ++ pop {pc} ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc11_neon ++ .func ff_put_h264_qpel8_mc11_neon ++ff_put_h264_qpel8_mc11_neon: ++ push {r0, r1, r2, lr} ++put_h264_qpel8_mc11: ++ sub sp, sp, #64 ++ mov r0, sp ++ sub r1, r1, #2 ++ mov r3, #8 ++ mov ip, #8 ++ dmb ++ vpush {d8-d15} ++ bl put_h264_qpel8_h_lowpass_neon ++ ldrd r0, [sp, #128] ++ mov r3, r2 ++ add ip, sp, #64 ++ sub r1, r1, r2, lsl #1 ++ mov r2, #8 ++ bl put_h264_qpel8_v_lowpass_l2_neon ++ vpop {d8-d15} ++ add sp, sp, #76 ++ pop {pc} ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc21_neon ++ .func ff_put_h264_qpel8_mc21_neon ++ff_put_h264_qpel8_mc21_neon: ++ push {r0, r1, r4, r10, r11, lr} ++put_h264_qpel8_mc21: ++ mov r11, sp ++ bic sp, sp, #15 ++ sub sp, sp, #(8*8+16*12) ++ sub r1, r1, #2 ++ mov r3, #8 ++ mov r0, sp ++ mov ip, #8 ++ dmb ++ vpush {d8-d15} ++ bl put_h264_qpel8_h_lowpass_neon ++ mov r4, r0 ++ ldrd r0, [r11] ++ sub r1, r1, r2, lsl #1 ++ sub r1, r1, #2 ++ mov r3, r2 ++ sub r2, r4, #64 ++ bl put_h264_qpel8_hv_lowpass_l2_neon ++ vpop {d8-d15} ++ add sp, r11, #8 ++ pop {r4, r10, r11, pc} ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc31_neon ++ .func ff_put_h264_qpel8_mc31_neon ++ff_put_h264_qpel8_mc31_neon: ++ add r1, r1, #1 ++ push {r0, r1, r2, lr} ++ sub r1, r1, #1 ++ b put_h264_qpel8_mc11 ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc02_neon ++ .func ff_put_h264_qpel8_mc02_neon ++ff_put_h264_qpel8_mc02_neon: ++ push {lr} ++ sub r1, r1, r2, lsl #1 ++ mov r3, r2 ++ dmb ++ vpush {d8-d15} ++ bl put_h264_qpel8_v_lowpass_neon ++ vpop {d8-d15} ++ pop {pc} ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc12_neon ++ .func ff_put_h264_qpel8_mc12_neon ++ff_put_h264_qpel8_mc12_neon: ++ push {r0, r1, r4, r10, r11, lr} ++put_h264_qpel8_mc12: ++ mov r11, sp ++ bic sp, sp, #15 ++ sub sp, sp, #(8*8+16*12) ++ sub r1, r1, r2, lsl #1 ++ mov r3, r2 ++ mov r2, #8 ++ mov r0, sp ++ dmb ++ vpush {d8-d15} ++ bl put_h264_qpel8_v_lowpass_neon ++ mov r4, r0 ++ ldrd r0, [r11] ++ sub r1, r1, r3, lsl #1 ++ sub r1, r1, #2 ++ sub r2, r4, #64 ++ bl put_h264_qpel8_hv_lowpass_l2_neon ++ vpop {d8-d15} ++ add sp, r11, #8 ++ pop {r4, r10, r11, pc} ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc22_neon ++ .func ff_put_h264_qpel8_mc22_neon ++ff_put_h264_qpel8_mc22_neon: ++ push {r4, r10, r11, lr} ++ mov r11, sp ++ bic sp, sp, #15 ++ sub r1, r1, r2, lsl #1 ++ sub r1, r1, #2 ++ mov r3, r2 ++ sub sp, sp, #(16*12) ++ mov r4, sp ++ dmb ++ vpush {d8-d15} ++ bl put_h264_qpel8_hv_lowpass_neon ++ vpop {d8-d15} ++ mov sp, r11 ++ pop {r4, r10, r11, pc} ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc32_neon ++ .func ff_put_h264_qpel8_mc32_neon ++ff_put_h264_qpel8_mc32_neon: ++ push {r0, r1, r4, r10, r11, lr} ++ add r1, r1, #1 ++ b put_h264_qpel8_mc12 ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc03_neon ++ .func ff_put_h264_qpel8_mc03_neon ++ff_put_h264_qpel8_mc03_neon: ++ push {lr} ++ add ip, r1, r2 ++ b put_h264_qpel8_mc01 ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc13_neon ++ .func ff_put_h264_qpel8_mc13_neon ++ff_put_h264_qpel8_mc13_neon: ++ push {r0, r1, r2, lr} ++ add r1, r1, r2 ++ b put_h264_qpel8_mc11 ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc23_neon ++ .func ff_put_h264_qpel8_mc23_neon ++ff_put_h264_qpel8_mc23_neon: ++ push {r0, r1, r4, r10, r11, lr} ++ add r1, r1, r2 ++ b put_h264_qpel8_mc21 ++ .endfunc ++ ++ .global ff_put_h264_qpel8_mc33_neon ++ .func ff_put_h264_qpel8_mc33_neon ++ff_put_h264_qpel8_mc33_neon: ++ add r1, r1, #1 ++ push {r0, r1, r2, lr} ++ add r1, r1, r2 ++ sub r1, r1, #1 ++ b put_h264_qpel8_mc11 ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc10_neon ++ .func ff_put_h264_qpel16_mc10_neon ++ff_put_h264_qpel16_mc10_neon: ++ mov r3, r1 ++ sub r1, r1, #2 ++ b put_h264_qpel16_h_lowpass_l2_neon ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc20_neon ++ .func ff_put_h264_qpel16_mc20_neon ++ff_put_h264_qpel16_mc20_neon: ++ sub r1, r1, #2 ++ mov r3, r2 ++ b put_h264_qpel16_h_lowpass_neon ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc30_neon ++ .func ff_put_h264_qpel16_mc30_neon ++ff_put_h264_qpel16_mc30_neon: ++ add r3, r1, #1 ++ sub r1, r1, #2 ++ b put_h264_qpel16_h_lowpass_l2_neon ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc01_neon ++ .func ff_put_h264_qpel16_mc01_neon ++ff_put_h264_qpel16_mc01_neon: ++ push {r4, lr} ++ mov ip, r1 ++put_h264_qpel16_mc01: ++ mov r3, r2 ++ sub r1, r1, r2, lsl #1 ++ dmb ++ vpush {d8-d15} ++ bl put_h264_qpel16_v_lowpass_l2_neon ++ vpop {d8-d15} ++ pop {r4, pc} ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc11_neon ++ .func ff_put_h264_qpel16_mc11_neon ++ff_put_h264_qpel16_mc11_neon: ++ push {r0, r1, r4, lr} ++put_h264_qpel16_mc11: ++ sub sp, sp, #256 ++ mov r0, sp ++ sub r1, r1, #2 ++ mov r3, #16 ++ dmb ++ vpush {d8-d15} ++ bl put_h264_qpel16_h_lowpass_neon ++ add r0, sp, #256 ++ ldrd r0, [r0, #64] ++ mov r3, r2 ++ add ip, sp, #64 ++ sub r1, r1, r2, lsl #1 ++ mov r2, #16 ++ bl put_h264_qpel16_v_lowpass_l2_neon ++ vpop {d8-d15} ++ add sp, sp, #(256+8) ++ pop {r4, pc} ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc21_neon ++ .func ff_put_h264_qpel16_mc21_neon ++ff_put_h264_qpel16_mc21_neon: ++ push {r0, r1, r4-r5, r9-r11, lr} ++put_h264_qpel16_mc21: ++ mov r11, sp ++ bic sp, sp, #15 ++ sub sp, sp, #(16*16+16*12) ++ sub r1, r1, #2 ++ mov r0, sp ++ dmb ++ vpush {d8-d15} ++ bl put_h264_qpel16_h_lowpass_neon_packed ++ mov r4, r0 ++ ldrd r0, [r11] ++ sub r1, r1, r2, lsl #1 ++ sub r1, r1, #2 ++ mov r3, r2 ++ bl put_h264_qpel16_hv_lowpass_l2_neon ++ vpop {d8-d15} ++ add sp, r11, #8 ++ pop {r4-r5, r9-r11, pc} ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc31_neon ++ .func ff_put_h264_qpel16_mc31_neon ++ff_put_h264_qpel16_mc31_neon: ++ add r1, r1, #1 ++ push {r0, r1, r4, lr} ++ sub r1, r1, #1 ++ b put_h264_qpel16_mc11 ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc02_neon ++ .func ff_put_h264_qpel16_mc02_neon ++ff_put_h264_qpel16_mc02_neon: ++ push {r4, lr} ++ sub r1, r1, r2, lsl #1 ++ mov r3, r2 ++ dmb ++ vpush {d8-d15} ++ bl put_h264_qpel16_v_lowpass_neon ++ vpop {d8-d15} ++ pop {r4, pc} ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc12_neon ++ .func ff_put_h264_qpel16_mc12_neon ++ff_put_h264_qpel16_mc12_neon: ++ push {r0, r1, r4-r5, r9-r11, lr} ++put_h264_qpel16_mc12: ++ mov r11, sp ++ bic sp, sp, #15 ++ sub sp, sp, #(16*16+16*12) ++ sub r1, r1, r2, lsl #1 ++ mov r0, sp ++ mov r3, r2 ++ dmb ++ vpush {d8-d15} ++ bl put_h264_qpel16_v_lowpass_neon_packed ++ mov r4, r0 ++ ldrd r0, [r11] ++ sub r1, r1, r3, lsl #1 ++ sub r1, r1, #2 ++ mov r2, r3 ++ bl put_h264_qpel16_hv_lowpass_l2_neon ++ vpop {d8-d15} ++ add sp, r11, #8 ++ pop {r4-r5, r9-r11, pc} ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc22_neon ++ .func ff_put_h264_qpel16_mc22_neon ++ff_put_h264_qpel16_mc22_neon: ++ push {r4, r9-r11, lr} ++ mov r11, sp ++ bic sp, sp, #15 ++ sub r1, r1, r2, lsl #1 ++ sub r1, r1, #2 ++ mov r3, r2 ++ sub sp, sp, #(16*12) ++ mov r4, sp ++ dmb ++ vpush {d8-d15} ++ bl put_h264_qpel16_hv_lowpass_neon ++ vpop {d8-d15} ++ mov sp, r11 ++ pop {r4, r9-r11, pc} ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc32_neon ++ .func ff_put_h264_qpel16_mc32_neon ++ff_put_h264_qpel16_mc32_neon: ++ push {r0, r1, r4-r5, r9-r11, lr} ++ add r1, r1, #1 ++ b put_h264_qpel16_mc12 ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc03_neon ++ .func ff_put_h264_qpel16_mc03_neon ++ff_put_h264_qpel16_mc03_neon: ++ push {r4, lr} ++ add ip, r1, r2 ++ b put_h264_qpel16_mc01 ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc13_neon ++ .func ff_put_h264_qpel16_mc13_neon ++ff_put_h264_qpel16_mc13_neon: ++ push {r0, r1, r4, lr} ++ add r1, r1, r2 ++ b put_h264_qpel16_mc11 ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc23_neon ++ .func ff_put_h264_qpel16_mc23_neon ++ff_put_h264_qpel16_mc23_neon: ++ push {r0, r1, r4-r5, r9-r11, lr} ++ add r1, r1, r2 ++ b put_h264_qpel16_mc21 ++ .endfunc ++ ++ .global ff_put_h264_qpel16_mc33_neon ++ .func ff_put_h264_qpel16_mc33_neon ++ff_put_h264_qpel16_mc33_neon: ++ add r1, r1, #1 ++ push {r0, r1, r4, lr} ++ add r1, r1, r2 ++ sub r1, r1, #1 ++ b put_h264_qpel16_mc11 ++ .endfunc diff --git a/packages/mplayer/files/mru-neon-h264idct-dc.diff b/packages/mplayer/files/mru-neon-h264idct-dc.diff new file mode 100644 index 0000000000..9f316b1b5b --- /dev/null +++ b/packages/mplayer/files/mru-neon-h264idct-dc.diff @@ -0,0 +1,55 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Mon, 25 Aug 2008 00:05:54 +0000 (+0100) +Subject: ARM: NEON optimised h264_idct_dc_add +X-Git-Url: http://git.mansr.com/?p=ffmpeg.mru;a=commitdiff_plain;h=1097c36b47b5019b2a8668f82796ffe76f482408 + +ARM: NEON optimised h264_idct_dc_add +--- + +diff --git a/libavcodec/armv4l/dsputil_neon.c b/libavcodec/armv4l/dsputil_neon.c +index 74f9b4d..6dbe835 100644 +--- a/libavcodec/armv4l/dsputil_neon.c ++++ b/libavcodec/armv4l/dsputil_neon.c +@@ -89,6 +89,7 @@ void ff_h264_h_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha, + int beta, int8_t *tc0); + + void ff_h264_idct_add_neon(uint8_t *dst, DCTELEM *block, int stride); ++void ff_h264_idct_dc_add_neon(uint8_t *dst, DCTELEM *block, int stride); + + void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + { +@@ -156,4 +157,5 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + c->h264_h_loop_filter_chroma = ff_h264_h_loop_filter_chroma_neon; + + c->h264_idct_add = ff_h264_idct_add_neon; ++ c->h264_idct_dc_add = ff_h264_idct_dc_add_neon; + } +diff --git a/libavcodec/armv4l/h264idct_neon.S b/libavcodec/armv4l/h264idct_neon.S +index 8f456f3..34e217f 100644 +--- a/libavcodec/armv4l/h264idct_neon.S ++++ b/libavcodec/armv4l/h264idct_neon.S +@@ -75,3 +75,24 @@ ff_h264_idct_add_neon: + + bx lr + .endfunc ++ ++ .global ff_h264_idct_dc_add_neon ++ .func ff_h264_idct_dc_add_neon ++ff_h264_idct_dc_add_neon: ++ vld1.16 {d2[],d3[]}, [r1,:16] ++ vrshr.s16 q1, q1, #6 ++ vld1.32 {d0[0]}, [r0,:32], r2 ++ vld1.32 {d0[1]}, [r0,:32], r2 ++ vaddw.u8 q2, q1, d0 ++ vld1.32 {d1[0]}, [r0,:32], r2 ++ vld1.32 {d1[1]}, [r0,:32], r2 ++ vaddw.u8 q1, q1, d1 ++ vqmovun.s16 d0, q2 ++ vqmovun.s16 d1, q1 ++ sub r0, r0, r2, lsl #2 ++ vst1.32 {d0[0]}, [r0,:32], r2 ++ vst1.32 {d0[1]}, [r0,:32], r2 ++ vst1.32 {d1[0]}, [r0,:32], r2 ++ vst1.32 {d1[1]}, [r0,:32], r2 ++ bx lr ++ .endfunc diff --git a/packages/mplayer/files/mru-neon-h264idctadd.diff b/packages/mplayer/files/mru-neon-h264idctadd.diff new file mode 100644 index 0000000000..0f0931fbff --- /dev/null +++ b/packages/mplayer/files/mru-neon-h264idctadd.diff @@ -0,0 +1,123 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Sun, 24 Aug 2008 21:27:49 +0000 (+0100) +Subject: ARM: NEON optimised h264_idct_add +X-Git-Url: http://git.mansr.com/?p=ffmpeg.mru;a=commitdiff_plain;h=ebfab90234268bb35600a06e9982ca1358ea43f3 + +ARM: NEON optimised h264_idct_add +--- + +diff --git a/libavcodec/Makefile b/libavcodec/Makefile +index 36ba158..053e752 100644 +--- a/libavcodec/Makefile ++++ b/libavcodec/Makefile +@@ -438,6 +438,7 @@ OBJS-$(HAVE_NEON) += armv4l/dsputil_neon.o \ + ASM_OBJS-$(HAVE_NEON) += armv4l/dsputil_neon_s.o \ + armv4l/simple_idct_neon.o \ + armv4l/h264dsp_neon.o \ ++ armv4l/h264idct_neon.o \ + + OBJS-$(HAVE_VIS) += sparc/dsputil_vis.o \ + sparc/simple_idct_vis.o \ +diff --git a/libavcodec/armv4l/dsputil_neon.c b/libavcodec/armv4l/dsputil_neon.c +index a932aa9..74f9b4d 100644 +--- a/libavcodec/armv4l/dsputil_neon.c ++++ b/libavcodec/armv4l/dsputil_neon.c +@@ -88,6 +88,8 @@ void ff_h264_v_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha, + void ff_h264_h_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha, + int beta, int8_t *tc0); + ++void ff_h264_idct_add_neon(uint8_t *dst, DCTELEM *block, int stride); ++ + void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + { + c->put_pixels_tab[0][0] = ff_put_pixels16_neon; +@@ -152,4 +154,6 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + c->h264_h_loop_filter_luma = ff_h264_h_loop_filter_luma_neon; + c->h264_v_loop_filter_chroma = ff_h264_v_loop_filter_chroma_neon; + c->h264_h_loop_filter_chroma = ff_h264_h_loop_filter_chroma_neon; ++ ++ c->h264_idct_add = ff_h264_idct_add_neon; + } +diff --git a/libavcodec/armv4l/h264idct_neon.S b/libavcodec/armv4l/h264idct_neon.S +new file mode 100644 +index 0000000..8f456f3 +--- /dev/null ++++ b/libavcodec/armv4l/h264idct_neon.S +@@ -0,0 +1,77 @@ ++/* ++ * Copyright (c) 2008 Mans Rullgard <mans@mansr.com> ++ * ++ * This file is part of FFmpeg. ++ * ++ * FFmpeg is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * FFmpeg is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with FFmpeg; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++ .fpu neon ++ ++ .text ++ ++ .global ff_h264_idct_add_neon ++ .func ff_h264_idct_add_neon ++ff_h264_idct_add_neon: ++ mov r3, #(1<<5) ++ vmov.i16 d16, #0 ++ vmov.16 d16[0], r3 ++ vld1.64 {d0-d3}, [r1,:128] ++ vadd.i16 d0, d0, d16 ++ ++ vswp d1, d2 ++ vadd.i16 d4, d0, d1 ++ vshr.s16 q8, q1, #1 ++ vsub.i16 d5, d0, d1 ++ vadd.i16 d6, d2, d17 ++ vsub.i16 d7, d16, d3 ++ vadd.i16 q0, q2, q3 ++ vsub.i16 q1, q2, q3 ++ ++ vtrn.16 d0, d1 ++ vtrn.16 d3, d2 ++ vtrn.32 d0, d3 ++ vtrn.32 d1, d2 ++ ++ vadd.i16 d4, d0, d3 ++ vld1.32 {d18[0]}, [r0,:32], r2 ++ vswp d1, d3 ++ vshr.s16 q8, q1, #1 ++ vld1.32 {d19[1]}, [r0,:32], r2 ++ vsub.i16 d5, d0, d1 ++ vld1.32 {d18[1]}, [r0,:32], r2 ++ vadd.i16 d6, d16, d3 ++ vld1.32 {d19[0]}, [r0,:32], r2 ++ vsub.i16 d7, d2, d17 ++ sub r0, r0, r2, lsl #2 ++ vadd.i16 q0, q2, q3 ++ vsub.i16 q1, q2, q3 ++ ++ vshr.s16 q0, q0, #6 ++ vshr.s16 q1, q1, #6 ++ ++ vaddw.u8 q0, q0, d18 ++ vaddw.u8 q1, q1, d19 ++ ++ vqmovun.s16 d0, q0 ++ vqmovun.s16 d1, q1 ++ ++ vst1.32 {d0[0]}, [r0,:32], r2 ++ vst1.32 {d1[1]}, [r0,:32], r2 ++ vst1.32 {d0[1]}, [r0,:32], r2 ++ vst1.32 {d1[0]}, [r0,:32], r2 ++ ++ bx lr ++ .endfunc diff --git a/packages/mplayer/files/mru-neon-put-pixels.diff b/packages/mplayer/files/mru-neon-put-pixels.diff new file mode 100644 index 0000000000..85650d913b --- /dev/null +++ b/packages/mplayer/files/mru-neon-put-pixels.diff @@ -0,0 +1,376 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Fri, 13 Jun 2008 01:21:58 +0000 (+0100) +Subject: ARM: NEON optimised put_pixels functions +X-Git-Url: http://git.mansr.com/?p=ffmpeg.mru;a=commitdiff_plain;h=86410ed1948118a29c70946d5294df9feb04dfef + +ARM: NEON optimised put_pixels functions +--- + +diff --git a/libavcodec/Makefile b/libavcodec/Makefile +index d91185e..27746df 100644 +--- a/libavcodec/Makefile ++++ b/libavcodec/Makefile +@@ -433,6 +433,10 @@ ASM_OBJS-$(HAVE_ARMV5TE) += armv4l/simple_idct_armv5te.o \ + + ASM_OBJS-$(HAVE_ARMV6) += armv4l/simple_idct_armv6.o \ + ++OBJS-$(HAVE_NEON) += armv4l/dsputil_neon.o \ ++ ++ASM_OBJS-$(HAVE_NEON) += armv4l/dsputil_neon_s.o \ ++ + OBJS-$(HAVE_VIS) += sparc/dsputil_vis.o \ + sparc/simple_idct_vis.o \ + +diff --git a/libavcodec/armv4l/dsputil_arm.c b/libavcodec/armv4l/dsputil_arm.c +index 100b89e..89b51e7 100644 +--- a/libavcodec/armv4l/dsputil_arm.c ++++ b/libavcodec/armv4l/dsputil_arm.c +@@ -26,6 +26,7 @@ + + extern void dsputil_init_iwmmxt(DSPContext* c, AVCodecContext *avctx); + extern void ff_float_init_arm_vfp(DSPContext* c, AVCodecContext *avctx); ++extern void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx); + + extern void j_rev_dct_ARM(DCTELEM *data); + extern void simple_idct_ARM(DCTELEM *data); +@@ -302,4 +303,7 @@ void dsputil_init_armv4l(DSPContext* c, AVCodecContext *avctx) + #ifdef HAVE_ARMVFP + ff_float_init_arm_vfp(c, avctx); + #endif ++#ifdef HAVE_NEON ++ ff_dsputil_init_neon(c, avctx); ++#endif + } +diff --git a/libavcodec/armv4l/dsputil_neon.c b/libavcodec/armv4l/dsputil_neon.c +new file mode 100644 +index 0000000..8a10dde +--- /dev/null ++++ b/libavcodec/armv4l/dsputil_neon.c +@@ -0,0 +1,67 @@ ++/* ++ * ARM NEON optimised DSP functions ++ * Copyright (c) 2008 Mans Rullgard <mans@mansr.com> ++ * ++ * This file is part of FFmpeg. ++ * ++ * FFmpeg is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * FFmpeg is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with FFmpeg; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++#include <stdint.h> ++ ++#include "libavcodec/avcodec.h" ++#include "libavcodec/dsputil.h" ++ ++void ff_put_pixels16_neon(uint8_t *, const uint8_t *, int, int); ++void ff_put_pixels16_x2_neon(uint8_t *, const uint8_t *, int, int); ++void ff_put_pixels16_y2_neon(uint8_t *, const uint8_t *, int, int); ++void ff_put_pixels16_xy2_neon(uint8_t *, const uint8_t *, int, int); ++void ff_put_pixels8_neon(uint8_t *, const uint8_t *, int, int); ++void ff_put_pixels8_x2_neon(uint8_t *, const uint8_t *, int, int); ++void ff_put_pixels8_y2_neon(uint8_t *, const uint8_t *, int, int); ++void ff_put_pixels8_xy2_neon(uint8_t *, const uint8_t *, int, int); ++void ff_put_pixels16_x2_no_rnd_neon(uint8_t *, const uint8_t *, int, int); ++void ff_put_pixels16_y2_no_rnd_neon(uint8_t *, const uint8_t *, int, int); ++void ff_put_pixels16_xy2_no_rnd_neon(uint8_t *, const uint8_t *, int, int); ++void ff_put_pixels8_x2_no_rnd_neon(uint8_t *, const uint8_t *, int, int); ++void ff_put_pixels8_y2_no_rnd_neon(uint8_t *, const uint8_t *, int, int); ++void ff_put_pixels8_xy2_no_rnd_neon(uint8_t *, const uint8_t *, int, int); ++ ++void ff_put_h264_qpel16_mc00_neon(uint8_t *, uint8_t *, int); ++void ff_put_h264_qpel8_mc00_neon(uint8_t *, uint8_t *, int); ++ ++void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) ++{ ++ c->put_pixels_tab[0][0] = ff_put_pixels16_neon; ++ c->put_pixels_tab[0][1] = ff_put_pixels16_x2_neon; ++ c->put_pixels_tab[0][2] = ff_put_pixels16_y2_neon; ++ c->put_pixels_tab[0][3] = ff_put_pixels16_xy2_neon; ++ c->put_pixels_tab[1][0] = ff_put_pixels8_neon; ++ c->put_pixels_tab[1][1] = ff_put_pixels8_x2_neon; ++ c->put_pixels_tab[1][2] = ff_put_pixels8_y2_neon; ++ c->put_pixels_tab[1][3] = ff_put_pixels8_xy2_neon; ++ ++ c->put_no_rnd_pixels_tab[0][0] = ff_put_pixels16_neon; ++ c->put_no_rnd_pixels_tab[0][1] = ff_put_pixels16_x2_no_rnd_neon; ++ c->put_no_rnd_pixels_tab[0][2] = ff_put_pixels16_y2_no_rnd_neon; ++ c->put_no_rnd_pixels_tab[0][3] = ff_put_pixels16_xy2_no_rnd_neon; ++ c->put_no_rnd_pixels_tab[1][0] = ff_put_pixels8_neon; ++ c->put_no_rnd_pixels_tab[1][1] = ff_put_pixels8_x2_no_rnd_neon; ++ c->put_no_rnd_pixels_tab[1][2] = ff_put_pixels8_y2_no_rnd_neon; ++ c->put_no_rnd_pixels_tab[1][3] = ff_put_pixels8_xy2_no_rnd_neon; ++ ++ c->put_h264_qpel_pixels_tab[0][0] = ff_put_h264_qpel16_mc00_neon; ++ c->put_h264_qpel_pixels_tab[1][0] = ff_put_h264_qpel8_mc00_neon; ++} +diff --git a/libavcodec/armv4l/dsputil_neon_s.S b/libavcodec/armv4l/dsputil_neon_s.S +new file mode 100644 +index 0000000..fc5e401 +--- /dev/null ++++ b/libavcodec/armv4l/dsputil_neon_s.S +@@ -0,0 +1,254 @@ ++/* ++ * ARM NEON optimised DSP functions ++ * Copyright (c) 2008 Mans Rullgard <mans@mansr.com> ++ * ++ * This file is part of FFmpeg. ++ * ++ * FFmpeg is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * FFmpeg is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with FFmpeg; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++ .fpu neon ++ .text ++ ++ .macro put_pixels16 ++ dmb ++1: vld1.64 {d0, d1}, [r1], r2 ++ vld1.64 {d2, d3}, [r1], r2 ++ vld1.64 {d4, d5}, [r1], r2 ++ vld1.64 {d6, d7}, [r1], r2 ++ pld [r1] ++ subs r3, r3, #4 ++ vst1.64 {d0, d1}, [r0,:128], r2 ++ vst1.64 {d2, d3}, [r0,:128], r2 ++ vst1.64 {d4, d5}, [r0,:128], r2 ++ vst1.64 {d6, d7}, [r0,:128], r2 ++ bne 1b ++ bx lr ++ .endm ++ ++ .macro put_pixels16_x2 vhadd=vrhadd.u8 ++ dmb ++1: vld1.64 {d0-d2}, [r1], r2 ++ vld1.64 {d4-d6}, [r1], r2 ++ pld [r1] ++ subs r3, r3, #2 ++ vext.8 q1, q0, q1, #1 ++ vext.8 q3, q2, q3, #1 ++ \vhadd q0, q0, q1 ++ \vhadd q2, q2, q3 ++ vst1.64 {d0, d1}, [r0,:128], r2 ++ vst1.64 {d4, d5}, [r0,:128], r2 ++ bne 1b ++ bx lr ++ .endm ++ ++ .macro put_pixels16_y2 vhadd=vrhadd.u8 ++ push {lr} ++ add ip, r1, r2 ++ lsl lr, r2, #1 ++ vld1.64 {d0, d1}, [r1], lr ++ vld1.64 {d2, d3}, [ip], lr ++ dmb ++1: subs r3, r3, #2 ++ \vhadd q2, q0, q1 ++ vld1.64 {d0, d1}, [r1], lr ++ vst1.64 {d4, d5}, [r0,:128], r2 ++ \vhadd q2, q0, q1 ++ vld1.64 {d2, d3}, [ip], lr ++ vst1.64 {d4, d5}, [r0,:128], r2 ++ bne 1b ++ pop {pc} ++ .endm ++ ++ .macro put_pixels16_xy2 vshrn=vrshrn.u16 no_rnd=0 ++ push {lr} ++ lsl lr, r2, #1 ++ add ip, r1, r2 ++ vld1.64 {d0-d2}, [r1], lr ++ vld1.64 {d4-d6}, [ip], lr ++ .if \no_rnd ++ vmov.i16 q13, #1 ++ .endif ++ pld [r1] ++ pld [ip] ++ vext.8 q1, q0, q1, #1 ++ vext.8 q3, q2, q3, #1 ++ vaddl.u8 q8, d0, d2 ++ vaddl.u8 q10, d1, d3 ++ vaddl.u8 q9, d4, d6 ++ vaddl.u8 q11, d5, d7 ++ dmb ++1: subs r3, r3, #2 ++ vld1.64 {d0-d2}, [r1], lr ++ vadd.u16 q12, q8, q9 ++ pld [r1] ++ .if \no_rnd ++ vadd.u16 q12, q12, q13 ++ .endif ++ vext.8 q15, q0, q1, #1 ++ vadd.u16 q1 , q10, q11 ++ \vshrn d28, q12, #2 ++ .if \no_rnd ++ vadd.u16 q1, q1, q13 ++ .endif ++ \vshrn d29, q1, #2 ++ vaddl.u8 q8, d0, d30 ++ vld1.64 {d2-d4}, [ip], lr ++ vaddl.u8 q10, d1, d31 ++ vst1.64 {d28,d29}, [r0,:128], r2 ++ vadd.u16 q12, q8, q9 ++ pld [ip] ++ .if \no_rnd ++ vadd.u16 q12, q12, q13 ++ .endif ++ vext.8 q2, q1, q2, #1 ++ vadd.u16 q0, q10, q11 ++ \vshrn d30, q12, #2 ++ .if \no_rnd ++ vadd.u16 q0, q0, q13 ++ .endif ++ \vshrn d31, q0, #2 ++ vaddl.u8 q9, d2, d4 ++ vaddl.u8 q11, d3, d5 ++ vst1.64 {d30,d31}, [r0,:128], r2 ++ bgt 1b ++ pop {pc} ++ .endm ++ ++ .macro put_pixels8 ++ dmb ++1: vld1.64 {d0}, [r1], r2 ++ vld1.64 {d1}, [r1], r2 ++ vld1.64 {d2}, [r1], r2 ++ vld1.64 {d3}, [r1], r2 ++ subs r3, r3, #4 ++ vst1.64 {d0}, [r0,:64], r2 ++ vst1.64 {d1}, [r0,:64], r2 ++ vst1.64 {d2}, [r0,:64], r2 ++ vst1.64 {d3}, [r0,:64], r2 ++ bne 1b ++ bx lr ++ .endm ++ ++ .macro put_pixels8_x2 vhadd=vrhadd.u8 ++ dmb ++1: vld1.64 {d0, d1}, [r1], r2 ++ vld1.64 {d2, d3}, [r1], r2 ++ pld [r1] ++ subs r3, r3, #2 ++ vext.8 d1, d0, d1, #1 ++ vext.8 d3, d2, d3, #1 ++ vswp d1, d2 ++ \vhadd q0, q0, q1 ++ vst1.64 {d0}, [r0,:64], r2 ++ vst1.64 {d1}, [r0,:64], r2 ++ bne 1b ++ bx lr ++ .endm ++ ++ .macro put_pixels8_y2 vhadd=vrhadd.u8 ++ push {lr} ++ add ip, r1, r2 ++ lsl lr, r2, #1 ++ vld1.64 {d0}, [r1], lr ++ vld1.64 {d1}, [ip], lr ++ dmb ++1: subs r3, r3, #2 ++ \vhadd d4, d0, d1 ++ vld1.64 {d0}, [r1], lr ++ vst1.64 {d4}, [r0,:64], r2 ++ \vhadd d4, d0, d1 ++ vld1.64 {d1}, [ip], lr ++ vst1.64 {d4}, [r0,:64], r2 ++ bne 1b ++ pop {pc} ++ .endm ++ ++ .macro put_pixels8_xy2 vshrn=vrshrn.u16 no_rnd=0 ++ push {lr} ++ lsl lr, r2, #1 ++ add ip, r1, r2 ++ vld1.64 {d0, d1}, [r1], lr ++ vld1.64 {d2, d3}, [ip], lr ++ .if \no_rnd ++ vmov.i16 q11, #1 ++ .endif ++ pld [r1] ++ pld [ip] ++ vext.8 d4, d0, d1, #1 ++ vext.8 d6, d2, d3, #1 ++ vaddl.u8 q8, d0, d4 ++ vaddl.u8 q9, d2, d6 ++ dmb ++1: subs r3, r3, #2 ++ vld1.64 {d0, d1}, [r1], lr ++ pld [r1] ++ vadd.u16 q10, q8, q9 ++ vext.8 d4, d0, d1, #1 ++ .if \no_rnd ++ vadd.u16 q10, q10, q11 ++ .endif ++ vaddl.u8 q8, d0, d4 ++ \vshrn d5, q10, #2 ++ vld1.64 {d2, d3}, [ip], lr ++ vadd.u16 q10, q8, q9 ++ pld [ip] ++ .if \no_rnd ++ vadd.u16 q10, q10, q11 ++ .endif ++ vst1.64 {d5}, [r0,:64], r2 ++ \vshrn d7, q10, #2 ++ vext.8 d6, d2, d3, #1 ++ vaddl.u8 q9, d2, d6 ++ vst1.64 {d7}, [r0,:64], r2 ++ bgt 1b ++ pop {pc} ++ .endm ++ ++ .macro extern name ++ .global \name ++ .type \name, %function ++ .func \name ++\name: ++ .endm ++ ++ .macro defun name suf rnd_op args:vararg ++ extern ff_\name\suf\()_neon ++ \name \rnd_op \args ++ .endfunc ++ .endm ++ ++ .macro defun2 name args:vararg ++ defun \name ++ defun \name \args ++ .endm ++ ++ extern ff_put_h264_qpel16_mc00_neon ++ mov r3, #16 ++ .endfunc ++ ++ defun put_pixels16 ++ defun2 put_pixels16_x2, _no_rnd, vhadd.u8 ++ defun2 put_pixels16_y2, _no_rnd, vhadd.u8 ++ defun2 put_pixels16_xy2, _no_rnd, vshrn.u16, 1 ++ ++ extern ff_put_h264_qpel8_mc00_neon ++ mov r3, #8 ++ .endfunc ++ ++ defun put_pixels8 ++ defun2 put_pixels8_x2, _no_rnd, vhadd.u8 ++ defun2 put_pixels8_y2, _no_rnd, vhadd.u8 ++ defun2 put_pixels8_xy2, _no_rnd, vshrn.u16, 1 diff --git a/packages/mplayer/files/mru-neon-simple-idct.diff b/packages/mplayer/files/mru-neon-simple-idct.diff new file mode 100644 index 0000000000..772a1fd972 --- /dev/null +++ b/packages/mplayer/files/mru-neon-simple-idct.diff @@ -0,0 +1,501 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Thu, 26 Jun 2008 18:37:40 +0000 (+0100) +Subject: ARM: NEON optimised simple_idct +X-Git-Url: http://git.mansr.com/?p=ffmpeg.mru;a=commitdiff_plain;h=215b9eaa8cf0195908c92f373c018320736ec106 + +ARM: NEON optimised simple_idct +--- + +diff --git a/libavcodec/Makefile b/libavcodec/Makefile +index 27746df..7fa02fa 100644 +--- a/libavcodec/Makefile ++++ b/libavcodec/Makefile +@@ -436,6 +436,7 @@ ASM_OBJS-$(HAVE_ARMV6) += armv4l/simple_idct_armv6.o \ + OBJS-$(HAVE_NEON) += armv4l/dsputil_neon.o \ + + ASM_OBJS-$(HAVE_NEON) += armv4l/dsputil_neon_s.o \ ++ armv4l/simple_idct_neon.o \ + + OBJS-$(HAVE_VIS) += sparc/dsputil_vis.o \ + sparc/simple_idct_vis.o \ +diff --git a/libavcodec/armv4l/dsputil_arm.c b/libavcodec/armv4l/dsputil_arm.c +index 89b51e7..942c0de 100644 +--- a/libavcodec/armv4l/dsputil_arm.c ++++ b/libavcodec/armv4l/dsputil_arm.c +@@ -43,6 +43,12 @@ extern void ff_simple_idct_put_armv6(uint8_t *dest, int line_size, + extern void ff_simple_idct_add_armv6(uint8_t *dest, int line_size, + DCTELEM *data); + ++extern void ff_simple_idct_neon(DCTELEM *data); ++extern void ff_simple_idct_put_neon(uint8_t *dest, int line_size, ++ DCTELEM *data); ++extern void ff_simple_idct_add_neon(uint8_t *dest, int line_size, ++ DCTELEM *data); ++ + /* XXX: local hack */ + static void (*ff_put_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); + static void (*ff_add_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); +@@ -233,6 +239,8 @@ void dsputil_init_armv4l(DSPContext* c, AVCodecContext *avctx) + if(idct_algo == FF_IDCT_AUTO){ + #if defined(HAVE_IPP) + idct_algo = FF_IDCT_IPP; ++#elif defined(HAVE_NEON) ++ idct_algo = FF_IDCT_SIMPLENEON; + #elif defined(HAVE_ARMV6) + idct_algo = FF_IDCT_SIMPLEARMV6; + #elif defined(HAVE_ARMV5TE) +@@ -273,6 +281,13 @@ void dsputil_init_armv4l(DSPContext* c, AVCodecContext *avctx) + c->idct = simple_idct_ipp; + c->idct_permutation_type= FF_NO_IDCT_PERM; + #endif ++#ifdef HAVE_NEON ++ } else if (idct_algo==FF_IDCT_SIMPLENEON){ ++ c->idct_put= ff_simple_idct_put_neon; ++ c->idct_add= ff_simple_idct_add_neon; ++ c->idct = ff_simple_idct_neon; ++ c->idct_permutation_type = FF_PARTTRANS_IDCT_PERM; ++#endif + } + } + +diff --git a/libavcodec/armv4l/simple_idct_neon.S b/libavcodec/armv4l/simple_idct_neon.S +new file mode 100644 +index 0000000..44701f8 +--- /dev/null ++++ b/libavcodec/armv4l/simple_idct_neon.S +@@ -0,0 +1,411 @@ ++/* ++ * ARM NEON IDCT ++ * ++ * Copyright (c) 2008 Mans Rullgard <mans@mansr.com> ++ * ++ * Based on Simple IDCT ++ * Copyright (c) 2001 Michael Niedermayer <michaelni@gmx.at> ++ * ++ * This file is part of FFmpeg. ++ * ++ * FFmpeg is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * FFmpeg is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with FFmpeg; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++#define W1 22725 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 ++#define W2 21407 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 ++#define W3 19266 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 ++#define W4 16383 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 ++#define W5 12873 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 ++#define W6 8867 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 ++#define W7 4520 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 ++#define W4c ((1<<(COL_SHIFT-1))/W4) ++#define ROW_SHIFT 11 ++#define COL_SHIFT 20 ++ ++#define w1 d0[0] ++#define w2 d0[1] ++#define w3 d0[2] ++#define w4 d0[3] ++#define w5 d1[0] ++#define w6 d1[1] ++#define w7 d1[2] ++#define w4c d1[3] ++ ++ .fpu neon ++ ++ .macro idct_col4_top ++ vmull.s16 q7, d6, w2 /* q9 = W2 * col[2] */ ++ vmull.s16 q8, d6, w6 /* q10 = W6 * col[2] */ ++ vmull.s16 q9, d4, w1 /* q9 = W1 * col[1] */ ++ vadd.i32 q11, q15, q7 ++ vmull.s16 q10, d4, w3 /* q10 = W3 * col[1] */ ++ vadd.i32 q12, q15, q8 ++ vmull.s16 q5, d4, w5 /* q5 = W5 * col[1] */ ++ vsub.i32 q13, q15, q8 ++ vmull.s16 q6, d4, w7 /* q6 = W7 * col[1] */ ++ vsub.i32 q14, q15, q7 ++ ++ vmlal.s16 q9, d8, w3 /* q9 += W3 * col[3] */ ++ vmlsl.s16 q10, d8, w7 /* q10 -= W7 * col[3] */ ++ vmlsl.s16 q5, d8, w1 /* q5 -= W1 * col[3] */ ++ vmlsl.s16 q6, d8, w5 /* q6 -= W5 * col[3] */ ++ .endm ++ ++ .text ++ .align ++ .type idct_row4_neon, %function ++ .func idct_row4_neon ++idct_row4_neon: ++ vmov.i32 q15, #(1<<(ROW_SHIFT-1)) ++ vld1.64 {d2-d5}, [a3,:128]! ++ vmlal.s16 q15, d2, w4 /* q15 += W4 * col[0] */ ++ vld1.64 {d6,d7}, [a3,:128]! ++ vorr d10, d3, d5 ++ vld1.64 {d8,d9}, [a3,:128]! ++ add a3, a3, #-64 ++ ++ vorr d11, d7, d9 ++ vorr d10, d10, d11 ++ vmov a4, v1, d10 ++ ++ idct_col4_top ++ ++ orrs a4, a4, v1 ++ beq 1f ++ ++ vmull.s16 q7, d3, w4 /* q7 = W4 * col[4] */ ++ vmlal.s16 q9, d5, w5 /* q9 += W5 * col[5] */ ++ vmlsl.s16 q10, d5, w1 /* q10 -= W1 * col[5] */ ++ vmull.s16 q8, d7, w2 /* q8 = W2 * col[6] */ ++ vmlal.s16 q5, d5, w7 /* q5 += W7 * col[5] */ ++ vadd.i32 q11, q11, q7 ++ vsub.i32 q12, q12, q7 ++ vsub.i32 q13, q13, q7 ++ vadd.i32 q14, q14, q7 ++ vmlal.s16 q6, d5, w3 /* q6 += W3 * col[5] */ ++ vmull.s16 q7, d7, w6 /* q7 = W6 * col[6] */ ++ vmlal.s16 q9, d9, w7 ++ vmlsl.s16 q10, d9, w5 ++ vmlal.s16 q5, d9, w3 ++ vmlsl.s16 q6, d9, w1 ++ vadd.i32 q11, q11, q7 ++ vsub.i32 q12, q12, q8 ++ vadd.i32 q13, q13, q8 ++ vsub.i32 q14, q14, q7 ++ ++1: vadd.i32 q3, q11, q9 ++ vadd.i32 q4, q12, q10 ++ vshrn.i32 d2, q3, #ROW_SHIFT ++ vshrn.i32 d4, q4, #ROW_SHIFT ++ vadd.i32 q7, q13, q5 ++ vadd.i32 q8, q14, q6 ++ vtrn.16 d2, d4 ++ vshrn.i32 d6, q7, #ROW_SHIFT ++ vshrn.i32 d8, q8, #ROW_SHIFT ++ vsub.i32 q14, q14, q6 ++ vsub.i32 q11, q11, q9 ++ vtrn.16 d6, d8 ++ vsub.i32 q13, q13, q5 ++ vshrn.i32 d3, q14, #ROW_SHIFT ++ vtrn.32 d2, d6 ++ vsub.i32 q12, q12, q10 ++ vtrn.32 d4, d8 ++ vshrn.i32 d5, q13, #ROW_SHIFT ++ vshrn.i32 d7, q12, #ROW_SHIFT ++ vshrn.i32 d9, q11, #ROW_SHIFT ++ ++ vtrn.16 d3, d5 ++ vtrn.16 d7, d9 ++ vtrn.32 d3, d7 ++ vtrn.32 d5, d9 ++ ++ vst1.64 {d2-d5}, [a3,:128]! ++ vst1.64 {d6-d9}, [a3,:128]! ++ ++ bx lr ++ .endfunc ++ ++ .align ++ .type idct_col4_neon, %function ++ .func idct_col4_neon ++idct_col4_neon: ++ mov ip, #16 ++ vld1.64 {d2}, [a3,:64], ip /* d2 = col[0] */ ++ vdup.16 d30, w4c ++ vld1.64 {d4}, [a3,:64], ip /* d3 = col[1] */ ++ vadd.i16 d30, d30, d2 ++ vld1.64 {d6}, [a3,:64], ip /* d4 = col[2] */ ++ vmull.s16 q15, d30, w4 /* q15 = W4*(col[0]+(1<<COL_SHIFT-1)/W4)*/ ++ vld1.64 {d8}, [a3,:64], ip /* d5 = col[3] */ ++ ++ ldrd v1, [a3] ++ ldrd v3, [a3, #16] ++ orrs v1, v1, v2 ++ ++ idct_col4_top ++ addeq a3, a3, #16 ++ beq 1f ++ ++ vld1.64 {d3}, [a3,:64], ip /* d6 = col[4] */ ++ vmull.s16 q7, d3, w4 /* q7 = W4 * col[4] */ ++ vadd.i32 q11, q11, q7 ++ vsub.i32 q12, q12, q7 ++ vsub.i32 q13, q13, q7 ++ vadd.i32 q14, q14, q7 ++ ++1: orrs v3, v3, v4 ++ ldrd v1, [a3, #16] ++ addeq a3, a3, #16 ++ beq 2f ++ ++ vld1.64 {d5}, [a3,:64], ip /* d7 = col[5] */ ++ vmlal.s16 q9, d5, w5 /* q9 += W5 * col[5] */ ++ vmlsl.s16 q10, d5, w1 /* q10 -= W1 * col[5] */ ++ vmlal.s16 q5, d5, w7 /* q5 += W7 * col[5] */ ++ vmlal.s16 q6, d5, w3 /* q6 += W3 * col[5] */ ++ ++2: orrs v1, v1, v2 ++ ldrd v1, [a3, #16] ++ addeq a3, a3, #16 ++ beq 3f ++ ++ vld1.64 {d7}, [a3,:64], ip /* d8 = col[6] */ ++ vmull.s16 q7, d7, w6 /* q7 = W6 * col[6] */ ++ vmull.s16 q8, d7, w2 /* q8 = W2 * col[6] */ ++ vadd.i32 q11, q11, q7 ++ vsub.i32 q14, q14, q7 ++ vsub.i32 q12, q12, q8 ++ vadd.i32 q13, q13, q8 ++ ++3: orrs v1, v1, v2 ++ addeq a3, a3, #16 ++ beq 4f ++ ++ vld1.64 {d9}, [a3,:64], ip /* d9 = col[7] */ ++ vmlal.s16 q9, d9, w7 ++ vmlsl.s16 q10, d9, w5 ++ vmlal.s16 q5, d9, w3 ++ vmlsl.s16 q6, d9, w1 ++ ++4: vadd.i32 q3, q11, q9 ++ vadd.i32 q4, q12, q10 ++ vadd.i32 q7, q13, q5 ++ vadd.i32 q8, q14, q6 ++ vsub.i32 q11, q11, q9 ++ vsub.i32 q12, q12, q10 ++ vsub.i32 q13, q13, q5 ++ vsub.i32 q14, q14, q6 ++ ++ bx lr ++ .endfunc ++ ++ .macro idct_col4_st16 ++ vshr.s32 q2, q3, #COL_SHIFT ++ vshr.s32 q3, q4, #COL_SHIFT ++ vmovn.i32 d2, q2 ++ vshr.s32 q4, q7, #COL_SHIFT ++ vmovn.i32 d3, q3 ++ vshr.s32 q5, q8, #COL_SHIFT ++ vmovn.i32 d4, q4 ++ vshr.s32 q6, q14, #COL_SHIFT ++ vmovn.i32 d5, q5 ++ vshr.s32 q7, q13, #COL_SHIFT ++ vmovn.i32 d6, q6 ++ vshr.s32 q8, q12, #COL_SHIFT ++ vmovn.i32 d7, q7 ++ vshr.s32 q9, q11, #COL_SHIFT ++ vmovn.i32 d8, q8 ++ vmovn.i32 d9, q9 ++ ++ mov ip, #16 ++ vst1.64 {d2}, [a3,:64], ip ++ vst1.64 {d3}, [a3,:64], ip ++ vst1.64 {d4}, [a3,:64], ip ++ vst1.64 {d5}, [a3,:64], ip ++ vst1.64 {d6}, [a3,:64], ip ++ vst1.64 {d7}, [a3,:64], ip ++ vst1.64 {d8}, [a3,:64], ip ++ vst1.64 {d9}, [a3,:64], ip ++ .endm ++ ++ .align ++ .type idct_col4_add8, %function ++ .func idct_col4_add8 ++idct_col4_add8: ++ mov ip, a1 ++ ++ vshr.s32 q2, q3, #COL_SHIFT ++ vshr.s32 q3, q4, #COL_SHIFT ++ vmovn.i32 d2, q2 ++ vshr.s32 q4, q7, #COL_SHIFT ++ vmovn.i32 d3, q3 ++ vshr.s32 q5, q8, #COL_SHIFT ++ vmovn.i32 d4, q4 ++ vshr.s32 q6, q14, #COL_SHIFT ++ vmovn.i32 d5, q5 ++ vld1.32 {d10[0]}, [a1,:32], a2 ++ vshr.s32 q7, q13, #COL_SHIFT ++ vld1.32 {d10[1]}, [a1,:32], a2 ++ vmovn.i32 d6, q6 ++ vld1.32 {d11[0]}, [a1,:32], a2 ++ vshr.s32 q8, q12, #COL_SHIFT ++ vld1.32 {d11[1]}, [a1,:32], a2 ++ vaddw.u8 q1, q1, d10 ++ vld1.32 {d12[0]}, [a1,:32], a2 ++ vmovn.i32 d7, q7 ++ vld1.32 {d12[1]}, [a1,:32], a2 ++ vqmovun.s16 d2, q1 ++ vld1.32 {d13[0]}, [a1,:32], a2 ++ vshr.s32 q9, q11, #COL_SHIFT ++ vaddw.u8 q2, q2, d11 ++ vld1.32 {d13[1]}, [a1,:32], a2 ++ vaddw.u8 q3, q3, d12 ++ vst1.32 {d2[0]}, [ip,:32], a2 ++ vqmovun.s16 d3, q2 ++ vst1.32 {d2[1]}, [ip,:32], a2 ++ vmovn.i32 d8, q8 ++ vmovn.i32 d9, q9 ++ vst1.32 {d3[0]}, [ip,:32], a2 ++ vqmovun.s16 d4, q3 ++ vst1.32 {d3[1]}, [ip,:32], a2 ++ vaddw.u8 q4, q4, d13 ++ vst1.32 {d4[0]}, [ip,:32], a2 ++ vqmovun.s16 d5, q4 ++ vst1.32 {d4[1]}, [ip,:32], a2 ++ vst1.32 {d5[0]}, [ip,:32], a2 ++ vst1.32 {d5[1]}, [ip,:32], a2 ++ ++ bx lr ++ .endfunc ++ ++ .type idct_col4_st8, %function ++ .func idct_col4_st8 ++idct_col4_st8: ++ vshr.s32 q2, q3, #COL_SHIFT ++ vshr.s32 q3, q4, #COL_SHIFT ++ vmovn.i32 d2, q2 ++ vshr.s32 q4, q7, #COL_SHIFT ++ vmovn.i32 d3, q3 ++ vshr.s32 q5, q8, #COL_SHIFT ++ vqmovun.s16 d2, q1 ++ vmovn.i32 d4, q4 ++ vshr.s32 q6, q14, #COL_SHIFT ++ vst1.32 {d2[0]}, [a1,:32], a2 ++ vmovn.i32 d5, q5 ++ vshr.s32 q7, q13, #COL_SHIFT ++ vst1.32 {d2[1]}, [a1,:32], a2 ++ vmovn.i32 d6, q6 ++ vqmovun.s16 d3, q2 ++ vshr.s32 q8, q12, #COL_SHIFT ++ vmovn.i32 d7, q7 ++ vshr.s32 q9, q11, #COL_SHIFT ++ vst1.32 {d3[0]}, [a1,:32], a2 ++ vqmovun.s16 d4, q3 ++ vst1.32 {d3[1]}, [a1,:32], a2 ++ vmovn.i32 d8, q8 ++ vmovn.i32 d9, q9 ++ vst1.32 {d4[0]}, [a1,:32], a2 ++ vst1.32 {d4[1]}, [a1,:32], a2 ++ vqmovun.s16 d5, q4 ++ vst1.32 {d5[0]}, [a1,:32], a2 ++ vst1.32 {d5[1]}, [a1,:32], a2 ++ ++ bx lr ++ .endfunc ++ ++ .align 4 ++const: .short W1, W2, W3, W4, W5, W6, W7, W4c ++ ++ .macro idct_start data ++ push {v1-v4, lr} ++ pld [\data] ++ pld [\data, #64] ++ dmb ++ vpush {d8-d15} ++ adr a4, const ++ vld1.64 {d0,d1}, [a4,:128] ++ .endm ++ ++ .macro idct_end ++ vpop {d8-d15} ++ pop {v1-v4, pc} ++ .endm ++ ++ .align ++ .global ff_simple_idct_neon ++ .type ff_simple_idct_neon, %function ++ .func ff_simple_idct_neon ++/* void ff_simple_idct_neon(DCTELEM *data); */ ++ff_simple_idct_neon: ++ idct_start a1 ++ ++ mov a3, a1 ++ bl idct_row4_neon ++ bl idct_row4_neon ++ add a3, a3, #-128 ++ bl idct_col4_neon ++ add a3, a3, #-128 ++ idct_col4_st16 ++ add a3, a3, #-120 ++ bl idct_col4_neon ++ add a3, a3, #-128 ++ idct_col4_st16 ++ ++ idct_end ++ .endfunc ++ ++ .align ++ .global ff_simple_idct_put_neon ++ .type ff_simple_idct_put_neon, %function ++ .func ff_simple_idct_put_neon ++/* void ff_simple_idct_put_neon(uint8_t *dst, int line_size, DCTELEM *data); */ ++ff_simple_idct_put_neon: ++ idct_start a3 ++ ++ bl idct_row4_neon ++ bl idct_row4_neon ++ add a3, a3, #-128 ++ bl idct_col4_neon ++ bl idct_col4_st8 ++ sub a1, a1, a2, lsl #3 ++ add a1, a1, #4 ++ add a3, a3, #-120 ++ bl idct_col4_neon ++ bl idct_col4_st8 ++ ++ idct_end ++ .endfunc ++ ++ .align ++ .global ff_simple_idct_add_neon ++ .type ff_simple_idct_add_neon, %function ++ .func ff_simple_idct_add_neon ++/* void ff_simple_idct_add_neon(uint8_t *dst, int line_size, DCTELEM *data); */ ++ff_simple_idct_add_neon: ++ idct_start a3 ++ ++ bl idct_row4_neon ++ bl idct_row4_neon ++ add a3, a3, #-128 ++ bl idct_col4_neon ++ bl idct_col4_add8 ++ sub a1, a1, a2, lsl #3 ++ add a1, a1, #4 ++ add a3, a3, #-120 ++ bl idct_col4_neon ++ bl idct_col4_add8 ++ ++ idct_end ++ .endfunc +diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h +index 76522c4..43e2ef3 100644 +--- a/libavcodec/avcodec.h ++++ b/libavcodec/avcodec.h +@@ -1352,6 +1352,7 @@ typedef struct AVCodecContext { + #define FF_IDCT_SIMPLEVIS 18 + #define FF_IDCT_WMV2 19 + #define FF_IDCT_FAAN 20 ++#define FF_IDCT_SIMPLENEON 21 + + /** + * slice count +diff --git a/libavcodec/utils.c b/libavcodec/utils.c +index cf00d25..3d1afcf 100644 +--- a/libavcodec/utils.c ++++ b/libavcodec/utils.c +@@ -549,6 +549,7 @@ static const AVOption options[]={ + {"simplearm", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SIMPLEARM, INT_MIN, INT_MAX, V|E|D, "idct"}, + {"simplearmv5te", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SIMPLEARMV5TE, INT_MIN, INT_MAX, V|E|D, "idct"}, + {"simplearmv6", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SIMPLEARMV6, INT_MIN, INT_MAX, V|E|D, "idct"}, ++{"simpleneon", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SIMPLENEON, INT_MIN, INT_MAX, V|E|D, "idct"}, + {"h264", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_H264, INT_MIN, INT_MAX, V|E|D, "idct"}, + {"vp3", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_VP3, INT_MIN, INT_MAX, V|E|D, "idct"}, + {"ipp", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_IPP, INT_MIN, INT_MAX, V|E|D, "idct"}, diff --git a/packages/mplayer/files/mru-neon-vector-fmul-window.diff b/packages/mplayer/files/mru-neon-vector-fmul-window.diff new file mode 100644 index 0000000000..03ac55bc56 --- /dev/null +++ b/packages/mplayer/files/mru-neon-vector-fmul-window.diff @@ -0,0 +1,86 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Sun, 3 Aug 2008 16:46:43 +0000 (+0100) +Subject: ARM: NEON optimised vector_fmul_window +X-Git-Url: http://git.mansr.com/?p=ffmpeg.mru;a=commitdiff_plain;h=98feb31064dccfd16ce189ff4aec9ccedddf6b04 + +ARM: NEON optimised vector_fmul_window +--- + +diff --git a/libavcodec/armv4l/dsputil_neon.c b/libavcodec/armv4l/dsputil_neon.c +index f9d32c0..6c44940 100644 +--- a/libavcodec/armv4l/dsputil_neon.c ++++ b/libavcodec/armv4l/dsputil_neon.c +@@ -91,6 +91,10 @@ void ff_h264_h_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha, + void ff_h264_idct_add_neon(uint8_t *dst, DCTELEM *block, int stride); + void ff_h264_idct_dc_add_neon(uint8_t *dst, DCTELEM *block, int stride); + ++void ff_vector_fmul_window_neon(float *dst, const float *src0, ++ const float *src1, const float *win, ++ float add_bias, int len); ++ + void ff_float_to_int16_neon(int16_t *, const float *, long); + void ff_float_to_int16_interleave_neon(int16_t *, const float **, long, int); + +@@ -164,6 +168,8 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + c->h264_idct_add = ff_h264_idct_add_neon; + c->h264_idct_dc_add = ff_h264_idct_dc_add_neon; + ++ c->vector_fmul_window = ff_vector_fmul_window_neon; ++ + c->float_to_int16 = ff_float_to_int16_neon; + c->float_to_int16_interleave = ff_float_to_int16_interleave_neon; + +diff --git a/libavcodec/armv4l/dsputil_neon_s.S b/libavcodec/armv4l/dsputil_neon_s.S +index 6a54803..49a09b8 100644 +--- a/libavcodec/armv4l/dsputil_neon_s.S ++++ b/libavcodec/armv4l/dsputil_neon_s.S +@@ -324,6 +324,49 @@ extern ff_float_to_int16_interleave_neon + pop {r4,r5,pc} + .endfunc + ++extern ff_vector_fmul_window_neon ++ vld1.32 {d16[],d17[]}, [sp,:32] ++ push {r4,r5,lr} ++ ldr lr, [sp, #16] ++ sub r2, r2, #8 ++ sub r5, lr, #2 ++ add r2, r2, r5, lsl #2 ++ add r4, r3, r5, lsl #3 ++ add ip, r0, r5, lsl #3 ++ mov r5, #-16 ++ dmb ++ vld1.64 {d0,d1}, [r1,:128]! ++ vld1.64 {d2,d3}, [r2,:128], r5 ++ vld1.64 {d4,d5}, [r3,:128]! ++ vld1.64 {d6,d7}, [r4,:128], r5 ++1: vmov q10, q8 ++ vmov q11, q8 ++ vmla.f32 q11, q0, q2 ++ vrev64.32 q3, q3 ++ vswp d6, d7 ++ vmla.f32 q10, q0, q3 ++ vrev64.32 q1, q1 ++ vswp d2, d3 ++ subs lr, lr, #4 ++ vmla.f32 q11, q1, q3 ++ vmls.f32 q10, q1, q2 ++ beq 2f ++ vld1.64 {d0,d1}, [r1,:128]! ++ vld1.64 {d2,d3}, [r2,:128], r5 ++ vld1.64 {d4,d5}, [r3,:128]! ++ vld1.64 {d6,d7}, [r4,:128], r5 ++ vrev64.32 q11, q11 ++ vswp d22, d23 ++ vst1.64 {d20,d21}, [r0,:128]! ++ vst1.64 {d22,d23}, [ip,:128], r5 ++ b 1b ++2: vrev64.32 q11, q11 ++ vswp d22, d23 ++ vst1.64 {d20,d21}, [r0,:128]! ++ vst1.64 {d22,d23}, [ip,:128], r5 ++ pop {r4,r5,pc} ++ .endfunc ++ + #ifdef CONFIG_VORBIS_DECODER + extern ff_vorbis_inverse_coupling_neon + vmov.i32 q10, #(1<<31) diff --git a/packages/mplayer/files/mru-neon-vector-fmul.diff b/packages/mplayer/files/mru-neon-vector-fmul.diff new file mode 100644 index 0000000000..2710f10443 --- /dev/null +++ b/packages/mplayer/files/mru-neon-vector-fmul.diff @@ -0,0 +1,56 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Sun, 3 Aug 2008 17:13:06 +0000 (+0100) +Subject: ARM: NEON optimised vector_fmul +X-Git-Url: http://git.mansr.com/?p=ffmpeg.mru;a=commitdiff_plain;h=ba46eb14e3be96b627fd096aacaa4dbb2e186281 + +ARM: NEON optimised vector_fmul +--- + +diff --git a/libavcodec/armv4l/dsputil_neon.c b/libavcodec/armv4l/dsputil_neon.c +index 6c44940..c6fc173 100644 +--- a/libavcodec/armv4l/dsputil_neon.c ++++ b/libavcodec/armv4l/dsputil_neon.c +@@ -91,6 +91,7 @@ void ff_h264_h_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha, + void ff_h264_idct_add_neon(uint8_t *dst, DCTELEM *block, int stride); + void ff_h264_idct_dc_add_neon(uint8_t *dst, DCTELEM *block, int stride); + ++void ff_vector_fmul_neon(float *dst, const float *src, int len); + void ff_vector_fmul_window_neon(float *dst, const float *src0, + const float *src1, const float *win, + float add_bias, int len); +@@ -168,6 +169,7 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + c->h264_idct_add = ff_h264_idct_add_neon; + c->h264_idct_dc_add = ff_h264_idct_dc_add_neon; + ++ c->vector_fmul = ff_vector_fmul_neon; + c->vector_fmul_window = ff_vector_fmul_window_neon; + + c->float_to_int16 = ff_float_to_int16_neon; +diff --git a/libavcodec/armv4l/dsputil_neon_s.S b/libavcodec/armv4l/dsputil_neon_s.S +index 49a09b8..7310700 100644 +--- a/libavcodec/armv4l/dsputil_neon_s.S ++++ b/libavcodec/armv4l/dsputil_neon_s.S +@@ -324,6 +324,23 @@ extern ff_float_to_int16_interleave_neon + pop {r4,r5,pc} + .endfunc + ++extern ff_vector_fmul_neon ++ mov r3, r0 ++ vld1.64 {d0-d3}, [r0,:128]! ++ vld1.64 {d4-d7}, [r1,:128]! ++ dmb ++1: subs r2, r2, #8 ++ vmul.f32 q8, q0, q2 ++ vmul.f32 q9, q1, q3 ++ beq 2f ++ vld1.64 {d0-d3}, [r0,:128]! ++ vld1.64 {d4-d7}, [r1,:128]! ++ vst1.64 {d16-d19}, [r3,:128]! ++ b 1b ++2: vst1.64 {d16-d19}, [r3,:128]! ++ bx lr ++ .endfunc ++ + extern ff_vector_fmul_window_neon + vld1.32 {d16[],d17[]}, [sp,:32] + push {r4,r5,lr} diff --git a/packages/mplayer/files/mru-neon-vorbis-inverse.diff b/packages/mplayer/files/mru-neon-vorbis-inverse.diff new file mode 100644 index 0000000000..6cd5dc0134 --- /dev/null +++ b/packages/mplayer/files/mru-neon-vorbis-inverse.diff @@ -0,0 +1,68 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Fri, 1 Aug 2008 02:28:34 +0000 (+0100) +Subject: ARM: NEON optimised vorbis_inverse_coupling +X-Git-Url: http://git.mansr.com/?p=ffmpeg.mru;a=commitdiff_plain;h=ac234c5ad52d8478be5aaa7c276e423873453d8b + +ARM: NEON optimised vorbis_inverse_coupling +--- + +diff --git a/libavcodec/armv4l/dsputil_neon.c b/libavcodec/armv4l/dsputil_neon.c +index b584e5b..f9d32c0 100644 +--- a/libavcodec/armv4l/dsputil_neon.c ++++ b/libavcodec/armv4l/dsputil_neon.c +@@ -94,6 +94,8 @@ void ff_h264_idct_dc_add_neon(uint8_t *dst, DCTELEM *block, int stride); + void ff_float_to_int16_neon(int16_t *, const float *, long); + void ff_float_to_int16_interleave_neon(int16_t *, const float **, long, int); + ++void ff_vorbis_inverse_coupling_neon(float *mag, float *ang, int blocksize); ++ + void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + { + c->put_pixels_tab[0][0] = ff_put_pixels16_neon; +@@ -164,4 +166,8 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) + + c->float_to_int16 = ff_float_to_int16_neon; + c->float_to_int16_interleave = ff_float_to_int16_interleave_neon; ++ ++#ifdef CONFIG_VORBIS_DECODER ++ c->vorbis_inverse_coupling = ff_vorbis_inverse_coupling_neon; ++#endif + } +diff --git a/libavcodec/armv4l/dsputil_neon_s.S b/libavcodec/armv4l/dsputil_neon_s.S +index 44f75ba..6a54803 100644 +--- a/libavcodec/armv4l/dsputil_neon_s.S ++++ b/libavcodec/armv4l/dsputil_neon_s.S +@@ -19,6 +19,8 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + ++#include "config.h" ++ + .fpu neon + .text + +@@ -321,3 +323,24 @@ extern ff_float_to_int16_interleave_neon + bne 3b + pop {r4,r5,pc} + .endfunc ++ ++#ifdef CONFIG_VORBIS_DECODER ++extern ff_vorbis_inverse_coupling_neon ++ vmov.i32 q10, #(1<<31) ++ dmb ++1: vld1.64 {d2,d3}, [r1,:128] ++ vld1.64 {d0,d1}, [r0,:128] ++ vcle.f32 q8, q1, #0 ++ vand q9, q0, q10 ++ veor q1, q1, q9 ++ vand q2, q1, q8 ++ vbic q3, q1, q8 ++ vadd.f32 q1, q0, q2 ++ vsub.f32 q0, q0, q3 ++ subs r2, r2, #4 ++ vst1.64 {d0,d1}, [r1,:128]! ++ vst1.64 {d2,d3}, [r0,:128]! ++ bgt 1b ++ bx lr ++ .endfunc ++#endif diff --git a/packages/mplayer/mplayer_svn.bb b/packages/mplayer/mplayer_svn.bb index 741f9e27d9..923c9abf68 100644 --- a/packages/mplayer/mplayer_svn.bb +++ b/packages/mplayer/mplayer_svn.bb @@ -2,29 +2,28 @@ DESCRIPTION = "Open Source multimedia player." SECTION = "multimedia" PRIORITY = "optional" HOMEPAGE = "http://www.mplayerhq.hu/" -DEPENDS = "virtual/libsdl xsp libmad zlib libpng jpeg liba52 freetype fontconfig alsa-lib lzo ncurses lame libxv virtual/libx11" -DEPENDS_append_c7x0 = " libw100 " -DEPENDS_append_hx4700 = " libw100 " +DEPENDS = "virtual/libsdl ffmpeg xsp libmad zlib libpng jpeg liba52 freetype fontconfig alsa-lib lzo ncurses lame libxv virtual/libx11" RDEPENDS = "mplayer-common" LICENSE = "GPL" SRC_URI = "svn://svn.mplayerhq.hu/mplayer;module=trunk \ - file://vo_w100.c \ - file://vo_w100_api.h \ - file://vo_w100_fb.h \ - file://vo_pxa.c \ - file://vo_pxa.h \ - file://simple_idct_armv5te.S \ file://Makefile-codec-cfg.patch;patch=1 \ - file://w100-configure-svn.patch;patch=1 \ - file://w100-video_out.patch;patch=1 \ - file://w100-mplayer.patch;patch= \ file://pld-onlyarm5.patch;patch=1 \ file://makefile-nostrip-svn.patch;patch=1 \ - file://mplayer-imageon-svn.patch;patch=1 \ - file://imageon-video_out.patch;patch=1 \ - file://pxa_configure.patch;patch=1 \ - file://pxa-video_out.patch;patch=1 " + file://mru-neon-put-pixels.diff;patch=1 \ + file://mru-neon-simple-idct.diff;patch=1 \ + file://mru-neon-h264-chrome.diff;patch=1 \ + file://mru-neon-h264-loopfilter.diff;patch=1 \ + file://mru-neon-h264-qpel.diff;patch=1 \ + file://mru-neon-h264idctadd.diff;patch=1 \ + file://mru-neon-h264idct-dc.diff;patch=1 \ + file://mru-neon-float-to-int16.diff;patch=1 \ + file://mru-neon-vorbis-inverse.diff;patch=1 \ + file://mru-neon-vector-fmul-window.diff;patch=1 \ + file://mru-neon-vector-fmul.diff;patch=1 \ + file://configh \ + file://configmak \ + " # This is required for the collie machine only as all stacks in that # machine seem to be set to executable by the toolchain. If someone @@ -42,6 +41,7 @@ RREPLACES_${PN} = "mplayer-atty" PV = "0.0+1.0rc2+svnr${SRCREV}" PR = "r5" DEFAULT_PREFERENCE = "-1" +DEFAULT_PREFERENCE_armv7a = "1" PARALLEL_MAKE = "" @@ -68,12 +68,11 @@ EXTRA_OECONF = " \ --disable-joystick \ --disable-vm \ --disable-xf86keysym \ - --disable-tv \ - --disable-tv-v4l2 \ + --enable-tv \ + --enable-tv-v4l2 \ --disable-tv-bsdbt848 \ --enable-rtc \ --enable-network \ - --disable-winsock2 \ --disable-smb \ --disable-live \ --disable-dvdnav \ @@ -87,7 +86,6 @@ EXTRA_OECONF = " \ --disable-fribidi \ --disable-enca \ --disable-macosx \ - --disable-macosx-finder-support \ --disable-macosx-bundle \ --disable-ftp \ --disable-vstream \ @@ -173,8 +171,6 @@ EXTRA_OECONF = " \ EXTRA_OECONF_append_arm = " --disable-decoder=vorbis_decoder \ --disable-encoder=vorbis_encoder" -EXTRA_OECONF_append_c7x0 = " --enable-imageon " -EXTRA_OECONF_append_hx4700 = " --enable-imageon " EXTRA_OECONF_append_armv6 = " --enable-armv6 " EXTRA_OECONF_append_armv7a = "--enable-armv6 " @@ -188,7 +184,7 @@ PACKAGE_ARCH = "${@base_contains('MACHINE_FEATURES', 'iwmmxt', 'iwmmxt', '${MY_A MY_TARGET_CC_ARCH := "${TARGET_CC_ARCH}" TARGET_CC_ARCH = "${@base_contains('MACHINE_FEATURES', 'iwmmxt', '-march=iwmmxt -mtune=iwmmxt', '${MY_TARGET_CC_ARCH}',d)}" -EXTRA_OECONF_append = " ${@base_contains('MACHINE_FEATURES', 'iwmmxt', '--enable-pxa --enable-iwmmxt', '',d)} " +EXTRA_OECONF_append = " ${@base_contains('MACHINE_FEATURES', 'iwmmxt', ' --enable-iwmmxt', '',d)} " EXTRA_OECONF_append = " ${@base_contains('MACHINE_FEATURES', 'x86', '--enable-runtime-cpudetection', '',d)} " FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O4 -ffast-math" @@ -196,19 +192,16 @@ FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -ftree-vectorize -fomit-f BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}" do_configure() { - cp ${WORKDIR}/vo_w100.c ${S}/libvo - cp ${WORKDIR}/vo_w100_api.h ${S}/libvo - cp ${WORKDIR}/vo_w100_fb.h ${S}/libvo - cp ${WORKDIR}/vo_pxa.c ${S}/libvo - cp ${WORKDIR}/vo_pxa.h ${S}/libvo - cp ${WORKDIR}/simple_idct_armv5te.S ${S}/libavcodec/armv4l/ - sed -i 's|/usr/include|${STAGING_INCDIR}|g' ${S}/configure sed -i 's|/usr/lib|${STAGING_LIBDIR}|g' ${S}/configure sed -i 's|/usr/\S*include[\w/]*||g' ${S}/configure sed -i 's|/usr/\S*lib[\w/]*||g' ${S}/configure ./configure ${EXTRA_OECONF} + + cat ${WORKDIR}/configh >> ${S}/config.h + cat ${WORKDIR}/configmak ${OPTSMAK} >> ${S}/config.mak + } do_compile () { diff --git a/packages/wesnoth/wesnoth_svn.bb b/packages/obsolete/wesnoth_svn.bb index 430abe7d0f..430abe7d0f 100644 --- a/packages/wesnoth/wesnoth_svn.bb +++ b/packages/obsolete/wesnoth_svn.bb diff --git a/packages/openttd/files/openttd_0.6.0-buildfix.patch b/packages/openttd/files/openttd_0.6.2-buildfix.patch index d815cfc9c6..483ff492a9 100644 --- a/packages/openttd/files/openttd_0.6.0-buildfix.patch +++ b/packages/openttd/files/openttd_0.6.2-buildfix.patch @@ -1,8 +1,8 @@ -Index: openttd-0.6.0-beta4/config.lib +Index: openttd-0.6.2/config.lib =================================================================== ---- openttd-0.6.0-beta4.orig/config.lib 2008-02-20 20:24:58.000000000 +0100 -+++ openttd-0.6.0-beta4/config.lib 2008-02-20 20:26:55.000000000 +0100 -@@ -1255,7 +1255,7 @@ +--- openttd-0.6.2.orig/config.lib 2008-08-02 01:52:22.000000000 +0200 ++++ openttd-0.6.2/config.lib 2008-09-23 08:57:53.000000000 +0200 +@@ -1247,7 +1247,7 @@ if [ -z "$6" ]; then compiler="$3" else @@ -11,7 +11,7 @@ Index: openttd-0.6.0-beta4/config.lib fi machine=`eval $compiler $9 2>/dev/null` ret=$? -@@ -1271,11 +1271,6 @@ +@@ -1263,11 +1263,6 @@ exit 1 fi diff --git a/packages/openttd/openttd.inc b/packages/openttd/openttd.inc index a27da0fd4c..b1a5e956d7 100644 --- a/packages/openttd/openttd.inc +++ b/packages/openttd/openttd.inc @@ -9,7 +9,7 @@ LICENSE = "GPLv2" DEPENDS = "libsdl-net libpng zlib freetype fontconfig" -SRC_URI = "${SOURCEFORGE_MIRROR}/openttd/openttd-${PV}-source.tar.bz2" +SRC_URI = "http://binaries.openttd.org/releases/${PV}/${P}-source.tar.bz2" APPIMAGE = "media/openttd.48.png" @@ -30,7 +30,7 @@ do_configure() { --prefix-dir=${prefix} \ --binary-dir=bin \ --with-midi=/bin/true \ - --with-zlib \ + --with-zlib=${STAGING_LIBDIR} \ --with-png \ --with-freetype \ --cc-build=gcc \ diff --git a/packages/openttd/openttd_0.6.0.bb b/packages/openttd/openttd_0.6.0.bb deleted file mode 100644 index 893551ac59..0000000000 --- a/packages/openttd/openttd_0.6.0.bb +++ /dev/null @@ -1,8 +0,0 @@ -require openttd.inc - -PR = "r1" - -SRC_URI += "file://openttd_0.6.0-buildfix.patch;patch=1" - - - diff --git a/packages/openttd/openttd_0.6.2.bb b/packages/openttd/openttd_0.6.2.bb new file mode 100644 index 0000000000..a8a06738f4 --- /dev/null +++ b/packages/openttd/openttd_0.6.2.bb @@ -0,0 +1,9 @@ +require openttd.inc + +PR = "r0" + +# When upgrading this recipe make sure to refresh this patch. +SRC_URI += "file://openttd_${PV}-buildfix.patch;patch=1" + + + diff --git a/packages/python/python-pycairo/.mtn2git_empty b/packages/python/python-pycairo/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/python/python-pycairo/.mtn2git_empty diff --git a/packages/python/python-pycairo/fix-setup-py.patch b/packages/python/python-pycairo/fix-setup-py.patch new file mode 100644 index 0000000000..6165184448 --- /dev/null +++ b/packages/python/python-pycairo/fix-setup-py.patch @@ -0,0 +1,24 @@ +diff -urN pycairo-1.4.0.orig/setup.py pycairo-1.4.0/setup.py +--- pycairo-1.4.0.orig/setup.py 2007-03-14 10:53:30.000000000 +0100 ++++ pycairo-1.4.0/setup.py 2008-09-23 18:55:25.000000000 +0200 +@@ -37,20 +37,6 @@ + runtime_library_dirs = pkg_config_parse('--libs-only-L', 'cairo') + + pkgconfig_file='pycairo.pc' +-print 'creating %s' % pkgconfig_file +-fo = open (pkgconfig_file, 'w') +-fo.write ("""\ +-prefix=%s +- +-Name: Pycairo +-Description: Python bindings for cairo +-Version: %s +-Requires: cairo +-Cflags: -I${prefix}/include/pycairo +-Libs: +-""" % (sys.prefix, pycairo_version) +- ) +-fo.close() + + cairo = dic.Extension( + name = 'cairo._cairo', diff --git a/packages/python/python-pycairo_1.4.0.bb b/packages/python/python-pycairo_1.4.0.bb index 9bb2fdfcd8..bd3c1a7aa0 100644 --- a/packages/python/python-pycairo_1.4.0.bb +++ b/packages/python/python-pycairo_1.4.0.bb @@ -3,17 +3,19 @@ SECTION = "python-devel" HOMEPAGE = "http://cairographics.org/pycairo" LICENSE = "LGPL MPL" DEPENDS = "cairo" -PR = "ml1" +PR = "ml2" -SRC_URI = "http://cairographics.org/releases/pycairo-${PV}.tar.gz" +SRC_URI = "http://cairographics.org/releases/pycairo-${PV}.tar.gz \ + file://fix-setup-py.patch;patch=1" S = "${WORKDIR}/pycairo-${PV}" inherit distutils pkgconfig +do_configure_append() { + sed -e 's:@prefix@:${prefix}:' -e 's:@includedir@:\$\{prefix\}/include:' -e 's:@VERSION@:${PV}:' pycairo.pc.in > pycairo.pc +} + do_stage() { install -d ${STAGING_INCDIR} install -m 0644 cairo/pycairo.h ${STAGING_INCDIR} - - # nasty pkgconfig fix necessary here - sed -i -e s,${STAGING_DIR_NATIVE},, pycairo.pc } diff --git a/packages/remoko/.mtn2git_empty b/packages/remoko/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/remoko/.mtn2git_empty diff --git a/packages/remoko/remoko-server_svn.bb b/packages/remoko/remoko-server_svn.bb new file mode 100644 index 0000000000..6e049d7c70 --- /dev/null +++ b/packages/remoko/remoko-server_svn.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "The Remoko HID Server" +HOMEPAGE = "http://code.google.com/p/remoko/" +AUTHOR = "Valério Valério" +LICENSE = "GPL" +SECTION = "console/network" +PV = "0.2+svn${SRCREV}" + +SRC_URI = "svn://remoko.googlecode.com/svn/trunk;module=BT_HID_Server;proto=http" +S = "${WORKDIR}/BT_HID_Server" + +inherit autotools diff --git a/packages/remoko/remoko_svn.bb b/packages/remoko/remoko_svn.bb new file mode 100644 index 0000000000..551a54b79e --- /dev/null +++ b/packages/remoko/remoko_svn.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "Remoko -- Bluetooth Remote Control" +HOMEPAGE = "http://code.google.com/p/remoko/" +AUTHOR = "Valério Valério" +LICENSE = "GPL" +SECTION = "console/network" +DEPENDS = "edje-native" +PV = "0.3.1+svn${SRCREV}" + +SRC_URI = "svn://remoko.googlecode.com/svn/trunk;module=BT_HID_UI;proto=http" +S = "${WORKDIR}/BT_HID_UI" + +inherit distutils + +RDEPENDS = "remoko-server python-evas python-ecore python-edje python-edbus" +FILES_${PN} += "${datadir}" diff --git a/packages/smpeg/smpeg/as-fix.patch b/packages/smpeg/smpeg/as-fix.patch new file mode 100644 index 0000000000..1a747018e5 --- /dev/null +++ b/packages/smpeg/smpeg/as-fix.patch @@ -0,0 +1,18 @@ +--- + configure.in | 1 + + 1 file changed, 1 insertion(+) + +--- trunk.orig/configure.in ++++ trunk/configure.in +@@ -54,10 +54,11 @@ AC_PROG_MAKE_SET + AC_PROG_CC + AC_PROG_CXX + AC_LIBTOOL_WIN32_DLL + AM_PROG_LIBTOOL + AC_PROG_INSTALL ++AM_PROG_AS + + dnl Ugh. + AS="$CC" + CCAS="$CC" + AC_SUBST(AS) diff --git a/packages/smpeg/smpeg/compile.patch b/packages/smpeg/smpeg/compile.patch index 86ec4fca45..563334c972 100644 --- a/packages/smpeg/smpeg/compile.patch +++ b/packages/smpeg/smpeg/compile.patch @@ -3,17 +3,6 @@ # Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher # ---- smpeg/Makefile.am~compile 2002-09-26 01:24:04.000000000 -0400 -+++ smpeg/Makefile.am 2004-03-05 09:31:19.000000000 -0500 -@@ -4,7 +4,7 @@ - # These are the subdirectories that are always built - SUBDIRS = audio video - --CXXLD = cc -+CXXLD = $(CC) - - bin_SCRIPTS = smpeg-config - --- smpeg/MPEGaudio.h~compile 2006-06-10 22:41:41.000000000 +0200 +++ smpeg/MPEGaudio.h 2006-06-10 22:41:51.000000000 +0200 @@ -34,6 +34,9 @@ diff --git a/packages/smpeg/smpeg_svn.bb b/packages/smpeg/smpeg_svn.bb new file mode 100644 index 0000000000..e6c0f6444a --- /dev/null +++ b/packages/smpeg/smpeg_svn.bb @@ -0,0 +1,50 @@ +DESCRIPTION = "SMPEG is a general purpose MPEG video/audio \ +player for Linux based on the mpeg_play and SPLAY MPEG decoders." +LICENSE = "LGPL" +SECTION = "libs/multimedia" +DEPENDS = "virtual/libsdl" +PROVIDES = "smpeg" +PV = "0.4.5+rsvn${SRCREV}" +SRCREV = "370" + +SRC_URI = "svn://svn.icculus.org/smpeg/;module=trunk \ + file://m4.patch;patch=1 \ + file://as-fix.patch;patch=1" + +S = "${WORKDIR}/trunk" + +inherit autotools + +export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config" + +CFLAGS_append = " -I${STAGING_INCDIR}/SDL" +EXTRA_OECONF = "--disable-gtktest --disable-opengl-player --without-x \ + --without-gtk --disable-gtk-player" + +do_configure_prepend () { + touch NEWS AUTHORS ChangeLog + rm -f acinclude.m4 +} + +do_stage() { + oe_libinstall -so -C .libs libsmpeg-0.4 ${STAGING_LIBDIR} + ln -sf libsmpeg-0.4.so ${STAGING_LIBDIR}/libsmpeg.so + + for f in "*.h" + do + install -m 0644 ${f} ${STAGING_INCDIR}/SDL + done + + cat smpeg-config | sed -e "s,-I/usr/include/SDL,-I${STAGING_INCDIR}/SDL," \ + | sed -e "s,-I/usr/include/smpeg, ," \ + | sed -e "s,libdirs ,mickey_is_cool ," \ + | sed -e "s,-lSDL ,-lSDL-1.2 , "> ${STAGING_BINDIR_CROSS}/smpeg-config + chmod a+rx ${STAGING_BINDIR_CROSS}/smpeg-config +} + +PACKAGES =+ "plaympeg " +SECTION_plaympeg = "console/multimedia" +FILES_${PN} = "${libdir}" +FILES_plaympeg = "${bindir}/plaympeg" +FILES_${PN}-dev += "${bindir}" + diff --git a/packages/starling/starling_svn.bb b/packages/starling/starling_svn.bb index 7969cd84f0..937a73b1c1 100644 --- a/packages/starling/starling_svn.bb +++ b/packages/starling/starling_svn.bb @@ -3,21 +3,24 @@ SECTION = "gpe/multimedia" PRIORITY = "optional" LICENSE = "GPL" DEPENDS = "gtk+ gstreamer gst-plugins-good gst-plugins-bad esound sqlite libsoup" -RDEPENDS = "esd \ - gst-plugin-audioconvert \ - gst-plugin-esd \ - gst-plugin-typefindfunctions \ - gst-plugin-decodebin \ - gst-plugin-volume" -RRECOMMENDS = "gst-plugin-mad \ - gst-plugin-modplug \ - gst-plugin-ivorbis \ - gst-plugin-tcp" - -PV = "0.2+svn${SRCDATE}" +PV = "0.2+svnr${SRCREV}" inherit gpe autotools SRC_URI = "${GPE_EXTRA_SVN}" - S = "${WORKDIR}/${PN}" + +RDEPENDS = "\ + esd \ + gst-plugin-audioconvert \ + gst-plugin-esd \ + gst-plugin-typefindfunctions \ + gst-plugin-decodebin \ + gst-plugin-volume \ +" +RRECOMMENDS = "\ + gst-plugin-mad \ + gst-plugin-modplug \ + gst-plugin-ivorbis \ + gst-plugin-tcp \ +" diff --git a/packages/ttf-fonts/ttf-arphic-uming_20080216.bb b/packages/ttf-fonts/ttf-arphic-uming_20080216.bb new file mode 100644 index 0000000000..6c2da7b669 --- /dev/null +++ b/packages/ttf-fonts/ttf-arphic-uming_20080216.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "Unicode Mingti (printed) TrueType Font" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/CJKUnifonts" +LICENSE = "${PN}" +SRC_DISTRIBUTE_LICENSES += "${PN}" +RPROVIDES = "virtual/chinese-font" +PR = "r0" + +SRC_URI = \ +"http://archive.ubuntu.com/ubuntu/pool/main/t/ttf-arphic-uming/ttf-arphic-uming_0.2.${PV}.1.orig.tar.gz" +S = "${WORKDIR}" + +require ttf.inc + +FILES_${PN} = "${datadir}" + diff --git a/packages/ttf-fonts/ttf.inc b/packages/ttf-fonts/ttf.inc index 00363c565f..98bd5b820d 100644 --- a/packages/ttf-fonts/ttf.inc +++ b/packages/ttf-fonts/ttf.inc @@ -4,7 +4,12 @@ RRECOMMENDS += "font-update-common" do_install() { install -d ${D}${datadir}/fonts/truetype/ - install -m 0644 ${S}/*.ttf ${D}${datadir}/fonts/truetype/ + if [ -e *.ttf ]; then + install -m 0644 *.ttf ${D}${datadir}/fonts/truetype/ + fi + if [ -e *.ttc ]; then + install -m 0644 *.ttc ${D}${datadir}/fonts/truetype/ + fi } pkg_postinst_append() { diff --git a/packages/udev/udev-124/init b/packages/udev/udev-124/init index 8d6e1eacf6..b78a07b20f 100644 --- a/packages/udev/udev-124/init +++ b/packages/udev/udev-124/init @@ -28,7 +28,7 @@ export ACTION=add echo -n "Starting udev" # mount the tmpfs on /dev, if not already done -LANG=C awk "\$2 == \"/dev\" && \$3 == \"tmpfs\" { exit 1 }" /proc/mounts && { +LANG=C awk "\$2 == \"/dev\" && \$4 == \"tmpfs\" { exit 1 }" /proc/mounts && { mount -n -o mode=0755 -t tmpfs none "/dev" mkdir -m 0755 /dev/pts mkdir -m 0755 /dev/shm diff --git a/packages/udev/udev_124.bb b/packages/udev/udev_124.bb index ef880f6c04..e34da011dc 100644 --- a/packages/udev/udev_124.bb +++ b/packages/udev/udev_124.bb @@ -3,7 +3,7 @@ DESCRIPTION = "udev is a daemon which dynamically creates and removes device nod the hotplug package and requires a kernel not older than 2.6.12." RPROVIDES_${PN} = "hotplug" -PR = "r7" +PR = "r8" SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \ file://noasmlinkage.patch;patch=1 \ diff --git a/packages/v86d/v86d_0.1.5.bb b/packages/v86d/v86d_0.1.8.bb index 12b7718279..bb91e386a1 100644 --- a/packages/v86d/v86d_0.1.5.bb +++ b/packages/v86d/v86d_0.1.8.bb @@ -1,18 +1,23 @@ DESCRIPTION = "User support binary for the uvesafb kernel module" SRC_URI = "http://dev.gentoo.org/~spock/projects/uvesafb/archive/v86d-${PV}.tar.bz2 \ file://fbsetup" -DEPENDS = "virtual/kernel" +DEPENDS = "virtual/kernel klibc" LICENSE = "GPLv2" -PR = "r3" +PR = "r0" RRECOMMENDS_${PN} = "kernel-module-uvesafb" PACKAGE_ARCH = "${MACHINE_ARCH}" -COMPATIBLE_MACHINE = "(qemux86|bootcdx86)" +COMPATIBLE_MACHINE = "(qemux86|bootcdx86|i586-generic)" INITSCRIPT_NAME = "fbsetup" INITSCRIPT_PARAMS = "start 0 S ." +export CC=${TARGET_PREFIX}klcc + +# klcc doesn't work with -isystem +export TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}/${layout_includedir}" + do_configure () { ./configure --default } diff --git a/packages/vnc/tightvnc_1.3.9.bb b/packages/vnc/tightvnc_1.3.9.bb new file mode 100644 index 0000000000..ec6a7057d9 --- /dev/null +++ b/packages/vnc/tightvnc_1.3.9.bb @@ -0,0 +1,25 @@ +DESCRIPTION-${PN}-viewer = "A lightweight VNC viewer" +HOMEPAGE = "http://www.tightvnc.com/" +DEPENDS = "virtual/libx11 zlib libxmu libxaw" +LICENSE = "GPL" + +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/vnc-tight/${PN}-${PV}_unixsrc.tar.gz \ + file://Makefile" + +S = "${WORKDIR}/vnc_unixsrc/vncviewer/" + +PACKAGES = "${PN}-viewer-dbg ${PN}-viewer" +FILES_${PN}-viewer-dbg = "${bindir}/.debug" +FILES_${PN}-viewer = "${bindir}/${PN}viewer" + +do_compile () { + install ${WORKDIR}/Makefile ${S} + oe_runmake +} + +do_install () { + install -d ${D}${bindir} + install ${PN}viewer ${D}${bindir} +} diff --git a/packages/vnc/tightvnc_1.3dev7.bb b/packages/vnc/tightvnc_1.3dev7.bb deleted file mode 100644 index 64d9748755..0000000000 --- a/packages/vnc/tightvnc_1.3dev7.bb +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "A Unix VNC client" -HOMEPAGE = "http://www.tightvnc.com/" -DEPENDS = "virtual/libx11 zlib libxmu libxaw" -LICENSE = "GPL" - -SRC_URI = "${SOURCEFORGE_MIRROR}/vnc-tight/tightvnc-1.3dev7_unixsrc.tar.gz \ - file://Makefile" - -S = "${WORKDIR}/vnc_unixsrc/vncviewer/" - -PACKAGES = "tightvncviewer-dbg tightvncviewer" -FILES_tightvncviewer = "/usr/bin/tightvncviewer" - -do_compile () { - install ${WORKDIR}/Makefile ${S} - oe_runmake -} - -do_install () { - install -d ${D}${bindir} - install tightvncviewer ${D}${bindir} -} - diff --git a/packages/wesnoth/wesnoth_1.4.5.bb b/packages/wesnoth/wesnoth_1.4.5.bb new file mode 100644 index 0000000000..2c08a89bee --- /dev/null +++ b/packages/wesnoth/wesnoth_1.4.5.bb @@ -0,0 +1,151 @@ +DESCRIPTION = "The Battle for Wesnoth is a turn-based strategy game with a fantasy theme." +HOMEPAGE = "http://www.wesnoth.org/" +SECTION = "games" +LICENSE = "GPL" + +DEPENDS = "freetype libsdl-image libsdl-mixer libsdl-net libsdl-ttf zlib boost imagemagick-native" + +PR = "r2" + +SRC_URI = "${SOURCEFORGE_MIRROR}/wesnoth/${PN}-${PV}.tar.bz2" + +EXTRA_OECONF = "\ + --enable-tinygui \ + --enable-editor \ + --enable-lowmem \ + --with-boost=${STAGING_INCDIR} \ + --with-freetype=${STAGING_INCDIR} \ + --without-fribidi \ + --disable-python \ +" + +inherit autotools + +PACKAGES = "wesnoth-editor wesnoth-doc wesnoth-music wesnoth-sounds \ + wesnoth-aoi wesnoth-did wesnoth-ei wesnoth-httt wesnoth-l \ + wesnoth-nr wesnoth-sof wesnoth-sotbe wesnoth-thot wesnoth-trow \ + wesnoth-tsg wesnoth-tb wesnoth-utbs \ + wesnoth-data \ + wesnoth-all-campaigns \ + wesnoth-all \ + wesnoth wesnoth-dbg \ + " + +DESCRIPTION_wesnoth-editor = "Map Editor for The Battle for Wesnoth" +DESCRIPTION_wesnoth-all = "The Battle for Wesnoth with all campaigns, music and sounds" +DESCRIPTION_wesnoth-all-campaigns = "The Battle for Wesnoth with all campaigns." +DESCRIPTION_wesnoth-sounds = "Optional sound package for The Battle for Wesnoth" +DESCRIPTION_wesnoth-music = "Optional music package for The Battle for Wesnoth" +DESCRIPTION_wesnoth-data = "Mandatory data package for The Battle for Wesnoth" + +do_install_append() { + # icons directory should not be packaged/installed + if [ -d ${D}${datadir}/wesnoth/icons ]; then + rm -rf ${D}${datadir}/wesnoth/icons + fi +} + +RDEPENDS_wesnoth = "wesnoth-data" + +RDEPENDS_wesnoth-editor = "wesnoth-data" + +RDEPENDS_wesnoth-all-campaigns = "wesnoth \ + wesnoth-aoi wesnoth-did wesnoth-ei wesnoth-httt wesnoth-l \ + wesnoth-nr wesnoth-sof wesnoth-sotbe wesnoth-thot wesnoth-trow \ + wesnoth-tsg wesnoth-tb wesnoth-utbs" + +# Installing wesnoth-all should pull everything in (like in Debian). +RDEPENDS_wesnoth-all = "wesnoth wesnoth-sounds wesnoth-music" + +FILES_wesnoth-music = "\ + ${datadir}/wesnoth/data/core/music \ +" + +FILES_wesnoth-sounds = "\ + ${datadir}/wesnoth/data/core/sounds \ +" + +# Picks up remaining translations and data. Must be packaged after +# wesnoth-music, wesnoth-sounds and all campaigns. +FILES_wesnoth-data = "\ + ${datadir}/wesnoth/sounds \ + ${datadir}/wesnoth/images \ + ${datadir}/wesnoth/data \ + ${datadir}/wesnoth/fonts \ + ${datadir}/wesnoth/translations \ +" + +FILES_${PN} = "\ + ${bindir}/wesnoth \ + ${datadir}/icons \ + ${datadir}/applications \ +" + +FILES_wesnoth-editor = "\ + ${bindir}/wesnoth_editor \ +" + +FILES_wesnoth-aoi = "\ + ${datadir}/wesnoth/data/campaigns/An_Orcish_Incursion \ + ${datadir}/wesnoth/translations/*/LC_MESSAGES/wesnoth-aoi.mo \ +" + +FILES_wesnoth-did = "\ + ${datadir}/wesnoth/data/campaigns/Descent_Into_Darkness \ + ${datadir}/wesnoth/translations/*/LC_MESSAGES/wesnoth-did.mo \ +" + +FILES_wesnoth-ei = "\ + ${datadir}/wesnoth/data/campaigns/Eastern_Invasion \ + ${datadir}/wesnoth/translations/*/LC_MESSAGES/wesnoth-ei.mo \ +" + +FILES_wesnoth-httt = "\ + ${datadir}/wesnoth/data/campaigns/Heir_To_The_Throne \ + ${datadir}/wesnoth/translations/*/LC_MESSAGES/wesnoth-httt.mo \ +" + +FILES_wesnoth-l = "\ + ${datadir}/wesnoth/data/campaigns/Liberty \ + ${datadir}/wesnoth/translations/*/LC_MESSAGES/wesnoth-l.mo \ +" + +FILES_wesnoth-nr = "\ + ${datadir}/wesnoth/data/campaigns/Northern_Rebirth \ + ${datadir}/wesnoth/translations/*/LC_MESSAGES/wesnoth-nr.mo \ +" + +FILES_wesnoth-sof = "\ + ${datadir}/wesnoth/data/campaigns/Sceptre_Of_Fire \ + ${datadir}/wesnoth/translations/*/LC_MESSAGES/wesnoth-sof.mo \ +" + +FILES_wesnoth-sotbe = "\ + ${datadir}/wesnoth/data/campaigns/Son_Of_The_Black_Eye \ + ${datadir}/wesnoth/translations/*/LC_MESSAGES/wesnoth-sotbe.mo \ +" + +FILES_wesnoth-thot = "\ + ${datadir}/wesnoth/data/campaigns/The_Hammer_Of_Thursagan \ + ${datadir}/wesnoth/translations/*/LC_MESSAGES/wesnoth-thot.mo \ +" + +FILES_wesnoth-trow = "\ + ${datadir}/wesnoth/data/campaigns/The_Rise_Of_Wesnoth \ + ${datadir}/wesnoth/translations/*/LC_MESSAGES/wesnoth-trow.mo \ +" + +FILES_wesnoth-tsg = "\ + ${datadir}/wesnoth/data/campaigns/The_South_Guard \ + ${datadir}/wesnoth/translations/*/LC_MESSAGES/wesnoth-tsg.mo \ +" + +FILES_wesnoth-tb = "\ + ${datadir}/wesnoth/data/campaigns/Two_Brothers \ + ${datadir}/wesnoth/translations/*/LC_MESSAGES/wesnoth-tb.mo \ +" + +FILES_wesnoth-utbs = "\ + ${datadir}/wesnoth/data/campaigns/Under_the_Burning_Suns \ + ${datadir}/wesnoth/translations/*/LC_MESSAGES/wesnoth-utbs.mo \ +" diff --git a/packages/wolf3d/.mtn2git_empty b/packages/wolf3d/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/wolf3d/.mtn2git_empty diff --git a/packages/wolf3d/wolf4sdl_1.6.bb b/packages/wolf3d/wolf4sdl_1.6.bb new file mode 100644 index 0000000000..2e3483b164 --- /dev/null +++ b/packages/wolf3d/wolf4sdl_1.6.bb @@ -0,0 +1,17 @@ +LICENSE = "Various" +DESCRIPTION = "Wolfenstein3d game engine" +DEPENDS = "virtual/libsdl libsdl-mixer" + +SRC_URI = "http://www.stud.uni-karlsruhe.de/~uvaue/chaos/bins/Wolf4SDL-${PV}-src.zip" + +S = "${WORKDIR}/Wolf4SDL-1.6-src" + +TARGET_CFLAGS_append = " -lSDL -lSDL_mixer -I${STAGING_INCDIR} -I${STAGING_INCDIR}/SDL" + +do_compile() { + oe_runmake -e Q= PREFIX=${prefix} +} + +do_install() { + oe_runmake -e Q= PREFIX=${D}/${prefix} install +} diff --git a/packages/wpa-supplicant/wpa-gui_0.6.4.bb b/packages/wpa-supplicant/wpa-gui_0.6.4.bb new file mode 100644 index 0000000000..6f63958288 --- /dev/null +++ b/packages/wpa-supplicant/wpa-gui_0.6.4.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Qt interface for choosing which configured network to connect \ +to. It also provides a method for browsing 802.11 SSID scan results, an event \ +history log of messages generated by wpa_supplicant, and a method to add or \ +edit wpa_supplicant networks." +SECTION = "network" +LICENSE = "GPL BSD" +HOMEPAGE = "http://hostap.epitest.fi/wpa_supplicant/" +RDEPENDS = "wpa-supplicant" + +SRC_URI = "http://hostap.epitest.fi/releases/wpa_supplicant-${PV}.tar.gz " + +S = "${WORKDIR}/wpa_supplicant-${PV}/wpa_supplicant/wpa_gui" + +inherit qt4x11 + +EXTRA_QMAKEVARS_POST += "CONFIG+=thread" + +do_install () { + install -d ${D}${sbindir} + install -m 755 wpa_gui ${D}${sbindir} +} diff --git a/packages/wxwidgets/wxbase-2.8.9/.mtn2git_empty b/packages/wxwidgets/wxbase-2.8.9/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/wxwidgets/wxbase-2.8.9/.mtn2git_empty diff --git a/packages/wxwidgets/wxbase-2.8.7/Makefile.in.patch b/packages/wxwidgets/wxbase-2.8.9/Makefile.in.patch index 2c495d7884..4081212bc5 100644 --- a/packages/wxwidgets/wxbase-2.8.7/Makefile.in.patch +++ b/packages/wxwidgets/wxbase-2.8.9/Makefile.in.patch @@ -1,6 +1,6 @@ ---- wxBase-2.8.7/Makefile.in.old 2008-03-30 01:04:57.000000000 -0500 -+++ wxBase-2.8.7/Makefile.in 2008-03-30 01:05:58.000000000 -0500 -@@ -11331,13 +11331,11 @@ COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p = +--- wxBase-2.8.9/Makefile.in.old 2008-09-22 10:13:30.000000000 -0500 ++++ wxBase-2.8.9/Makefile.in 2008-09-22 10:17:44.000000000 -0500 +@@ -11339,13 +11339,11 @@ COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p = ### Targets: ### @@ -12,7 +12,7 @@ $(INSTALL_DIR) $(DESTDIR)$(datadir)/aclocal (cd $(srcdir) ; $(INSTALL_DATA) wxwin.m4 $(DESTDIR)$(datadir)/aclocal) - $(INSTALL_DIR) $(DESTDIR)$(datadir)/bakefile/presets -- (cd $(srcdir)/build/bakefiles/wxpresets/presets/ ; $(INSTALL_DATA) wx.bkl wx_unix.bkl wx_win32.bkl $(DESTDIR)$(datadir)/bakefile/presets) +- (cd $(srcdir)/build/bakefiles/wxpresets/presets ; $(INSTALL_DATA) wx.bkl wx_unix.bkl wx_win32.bkl $(DESTDIR)$(datadir)/bakefile/presets) $(INSTALL_DIR) $(DESTDIR)$(libdir)/wx/include/$(TOOLCHAIN_FULLNAME)/wx for f in setup.h $(RCDEFS_H); do \ if test ! -d $(DESTDIR)$(libdir)/wx/include/$(TOOLCHAIN_FULLNAME)/wx/`dirname $$f` ; then \ diff --git a/packages/wxwidgets/wxbase_2.8.7.bb b/packages/wxwidgets/wxbase_2.8.9.bb index 816b96de6e..bb46a52a88 100644 --- a/packages/wxwidgets/wxbase_2.8.7.bb +++ b/packages/wxwidgets/wxbase_2.8.9.bb @@ -6,7 +6,10 @@ PR = "r0" SRC_URI += "file://Makefile.in.patch;patch=1" -EXTRA_OECONF = " --disable-gui --enable-largefile --without-subdirs " +EXTRA_OECONF = " --disable-gui \ + --enable-largefile \ + --enable-gpe \ + --without-subdirs" LEAD_SONAME = "libwx_base-2.8.so" diff --git a/packages/wxwidgets/wxwidgets_2.8.7.bb b/packages/wxwidgets/wxwidgets_2.8.9.bb index 8e8d3565fd..8e8d3565fd 100644 --- a/packages/wxwidgets/wxwidgets_2.8.7.bb +++ b/packages/wxwidgets/wxwidgets_2.8.9.bb diff --git a/packages/xorg-font/xorg-font-common.inc b/packages/xorg-font/xorg-font-common.inc index 09489b1cf8..429b9907c0 100644 --- a/packages/xorg-font/xorg-font-common.inc +++ b/packages/xorg-font/xorg-font-common.inc @@ -13,6 +13,12 @@ inherit autotools pkgconfig FILES_${PN} += " ${libdir}/X11/fonts" +do_configure_prepend() { + if [ -f "${S}"/configure.ac ] ; then + sed -i "s#^MAPFILES_PATH=.*#MAPFILES_PATH=\"${STAGING_DIR_TARGET}/\$(pkg-config --variable=mapdir fontutil)\"#g" "${S}"/configure.ac + fi +} + do_install_append() { find ${D}${libdir}/X11/fonts -type f -name fonts.dir | xargs rm -f find ${D}${libdir}/X11/fonts -type f -name fonts.scale | xargs rm -f diff --git a/packages/zbedic/libbedic_1.1.bb b/packages/zbedic/libbedic_1.1.bb index 8036af6b78..9d2193d4ee 100644 --- a/packages/zbedic/libbedic_1.1.bb +++ b/packages/zbedic/libbedic_1.1.bb @@ -1,4 +1,4 @@ -DESCRIPTION = "Library for bedic dictionary" +DESCRIPTION = "Library to handle bedic dictionary" HOMEPAGE = "http://bedic.sourceforge.net/" AUTHOR = "Rafal Mantiuk <rafm@users.sourceforge.net>" SECTION = "opie/libs" diff --git a/packages/zbedic/zbedic/opie-icons.patch b/packages/zbedic/zbedic/opie-icons.patch index 1e028d5210..cd320b3b1d 100644 --- a/packages/zbedic/zbedic/opie-icons.patch +++ b/packages/zbedic/zbedic/opie-icons.patch @@ -1,16 +1,14 @@ -Index: zbedic/src/zbedic.cpp -=================================================================== ---- zbedic.orig/src/zbedic.cpp 2006-03-15 11:24:12.000000000 +0100 -+++ zbedic/src/zbedic.cpp 2006-03-15 11:30:21.000000000 +0100 -@@ -129,9 +129,9 @@ - // ========== create actions +--- zbedic/src/zbedic.cpp.old 2008-09-20 14:36:24.000000000 -0500 ++++ zbedic/src/zbedic.cpp 2008-09-20 14:37:21.000000000 -0500 +@@ -142,9 +142,9 @@ ZBEDic::ZBEDic(QWidget *parent, const ch action[TB_SwitchDictionaries] = createAction( tr( "Switch dictionaries" ), "zbedic/switch_dictionary", SLOT(switchToPreviousDict()), CTRL+Key_S ); -- action[TB_Back] = createAction( tr( "History previous" ), "zbedic/back", -+ action[TB_Back] = createAction( tr( "History previous" ), "back", + action[TB_ShowHistory] = createAction( tr( "Show history" ), "zbedic/history", SLOT(showHistoryPopup()), CTRL+Key_H ); +- action[TB_Back] = createAction( tr( "Go back" ), "zbedic/back", ++ action[TB_Back] = createAction( tr( "Go back" ), "back", SLOT(navigationPrevious()), Key_End ); -- action[TB_Forward] = createAction( tr( "History next" ), "zbedic/forward", -+ action[TB_Forward] = createAction( tr( "History next" ), "forward", +- action[TB_Forward] = createAction( tr( "Go forward" ), "zbedic/forward", ++ action[TB_Forward] = createAction( tr( "Go forward" ), "forward", SLOT(navigationNext()), Key_Home ); action[TB_LookupSelection] = createAction( tr( "Lookup selection" ), "zbedic/lookup_selection", SLOT(lookupSelection()), CTRL+Key_L ); diff --git a/packages/zbedic/zbedic/qtopia17.patch b/packages/zbedic/zbedic/qtopia17.patch index 7b890aab8d..749fde2c7e 100644 --- a/packages/zbedic/zbedic/qtopia17.patch +++ b/packages/zbedic/zbedic/qtopia17.patch @@ -1,23 +1,21 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- zbedic/src/main.cpp~compilefix -+++ zbedic/src/main.cpp -@@ -25,5 +25,13 @@ - #include "zbedic.h" - #include <qtopia/qpeapplication.h> +--- zbedic/src/main.cpp.old 2008-09-20 14:40:57.000000000 -0500 ++++ zbedic/src/main.cpp 2008-09-20 14:51:11.000000000 -0500 +@@ -48,8 +48,16 @@ int main( int argc, char **argv ) + + #include <qpe/qpeapplication.h> -QTOPIA_ADD_APPLICATION("zbedic", ZBEDic) -QTOPIA_MAIN -+//QTOPIA_ADD_APPLICATION("zbedic", ZBEDic) -+//QTOPIA_MAIN -+ +int main(int argc, char** argv) +{ -+ QPEApplication a( argc, argv ); -+ ZBEDic* myapp = new ZBEDic(); -+ a.showMainWidget( myapp ); -+ a.exec(); ++ QPEApplication app( argc, argv ); ++ ++ ZBEDic mainWindow( NULL, NULL ); ++ app.setMainWidget( &mainWindow ); ++ ++ mainWindow.show(); ++ return app.exec(); +} + + #endif + diff --git a/packages/zbedic/zbedic/version.patch b/packages/zbedic/zbedic/version.patch deleted file mode 100644 index 913e201dc7..0000000000 --- a/packages/zbedic/zbedic/version.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: zbedic/src/settings.cpp -=================================================================== ---- zbedic.orig/src/settings.cpp 2006-03-15 11:24:11.000000000 +0100 -+++ zbedic/src/settings.cpp 2006-03-15 15:03:55.000000000 +0100 -@@ -117,7 +117,7 @@ - - ZBEDicSettings::ZBEDicSettings( QWidget *parent ): QTabDialog( parent, "options", true ) - { -- setCaption( tr( "ZBEDic Settings (v. " VERSION ")" ) ); -+ setCaption( tr( "ZBEDic Settings (v. 1.0)" ) ); - - } - diff --git a/packages/zbedic/zbedic_1.2.bb b/packages/zbedic/zbedic_1.2.bb index afdfdd5350..61348c32f2 100644 --- a/packages/zbedic/zbedic_1.2.bb +++ b/packages/zbedic/zbedic_1.2.bb @@ -1,21 +1,23 @@ DESCRIPTION = "A dictionary application for Qt/E based Palmtop Environments" +HOMEPAGE = "http://bedic.sourceforge.net/" +AUTHOR = "Rafal Mantiuk <rafm@users.sourceforge.net>" SECTION = "opie/applications" PRIORITY = "optional" LICENSE = "GPL" DEPENDS = "libbedic" APPTYPE = "binary" APPDESKTOP = "${WORKDIR}/misc" -PR = "r2" +PR = "r3" -SRC_URI = "${SOURCEFORGE_MIRROR}/bedic/zbedic_${PV}-0.tgz \ +SRC_URI = "${SOURCEFORGE_MIRROR}/bedic/zbedic_${PV}-2.tgz \ file://opie-icons.patch;patch=1 \ - file://version.patch;patch=1 \ file://qtopia17.patch;patch=1" S = "${WORKDIR}" inherit opie export OE_QMAKE_LINK="${CXX}" +export OE_QMAKE_CXXFLAGS=" -DVERSION=\\"${PV}.2\\" -DPREFIX_PATH=\\"/usr\\"" EXTRA_QMAKEVARS_POST += "INCLUDEPATH+=${STAGING_INCDIR}/libbedic LIBS+=-lbedic LIBS+=-lsqlite3 TARGET=zbedic" @@ -38,5 +40,6 @@ do_install() { rm ${D}${palmtopdir}/pics/zbedic/forward.png } -PACKAGES =+ "zbedic-help-en" -FILES_zbedic-help-en = "${palmtopdir}/help/html/*" +PACKAGES = "${PN}-dbg ${PN}-doc ${PN} ${PN}-dev" + +FILES_${PN}-doc += "${palmtopdir}/help" diff --git a/packages/zlib/zlib-native_1.2.3.bb b/packages/zlib/zlib-native_1.2.3.bb index 246bf2835c..d7e0777f34 100644 --- a/packages/zlib/zlib-native_1.2.3.bb +++ b/packages/zlib/zlib-native_1.2.3.bb @@ -1,12 +1,5 @@ require zlib_${PV}.bb ZLIB_EXTRA = "" -inherit native - -do_stage() { - install -m 0644 zlib.h ${STAGING_INCDIR}/zlib.h - install -m 0644 zconf.h ${STAGING_INCDIR}/zconf.h - oe_libinstall -a -so libz ${STAGING_LIBDIR} -} - - DEPENDS = "libtool-native" + +inherit native diff --git a/packages/zlib/zlib-sdk.inc b/packages/zlib/zlib-sdk.inc deleted file mode 100644 index a5901300ee..0000000000 --- a/packages/zlib/zlib-sdk.inc +++ /dev/null @@ -1,9 +0,0 @@ -ZLIB_EXTRA = "" -inherit sdk - -do_stage() { - install -d ${STAGING_INCDIR} - install -m 0644 zlib.h ${STAGING_INCDIR}/zlib.h - install -m 0644 zconf.h ${STAGING_INCDIR}/zconf.h - oe_libinstall -a -so libz ${STAGING_LIBDIR} -} diff --git a/packages/zlib/zlib-sdk_1.2.3.bb b/packages/zlib/zlib-sdk_1.2.3.bb index b6e15c3ae2..48633950ad 100644 --- a/packages/zlib/zlib-sdk_1.2.3.bb +++ b/packages/zlib/zlib-sdk_1.2.3.bb @@ -1,2 +1,4 @@ require zlib_${PV}.bb -require zlib-sdk.inc +LIB_EXTRA = "" + +inherit sdk diff --git a/packages/zlib/zlib_1.2.3.bb b/packages/zlib/zlib_1.2.3.bb index 1f96816ae8..d4efeb08c8 100644 --- a/packages/zlib/zlib_1.2.3.bb +++ b/packages/zlib/zlib_1.2.3.bb @@ -3,7 +3,7 @@ SECTION = "libs" PRIORITY = "required" HOMEPAGE = "http://www.gzip.org/zlib/" LICENSE = "zlib" -PR="r4" +PR="r5" SRC_URI = "http://www.zlib.net/zlib-1.2.3.tar.bz2 \ file://visibility.patch;patch=1 \ @@ -13,19 +13,8 @@ S = "${WORKDIR}/zlib-${PV}" DEPENDS = "libtool-cross" -inherit autotools pkgconfig +inherit autotools do_stage() { - install -m 0644 zlib.h ${STAGING_INCDIR}/zlib.h - install -m 0644 zconf.h ${STAGING_INCDIR}/zconf.h - oe_libinstall -a -so libz ${STAGING_LIBDIR} -} - -do_install() { - install -d ${D}${prefix} ${D}${includedir} ${D}${libdir} - oe_runmake "prefix=${D}${prefix}" \ - "exec_prefix=${D}${exec_prefix}" \ - "man3dir=${D}${mandir}/man3" \ - "includedir=${D}${includedir}" \ - "libdir=${D}${libdir}" install + autotools_stage_all } |