summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2008-09-24 19:39:46 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2008-09-24 19:39:46 +0000
commitffdc33ee9f98213b0206cbbd8496ec3b48ae1c8f (patch)
treeb83355fd177bb16b3309ba991b02d2815c42d7c1
parent4f7b18b2325b460f224f13ad1f562ee4489e9e56 (diff)
parent1afd7b0bd9371f8bb52f7f63edcbca4e4e2af998 (diff)
merge of '2e75cbd37f40c36e60bc1e60a02e967304b6b338'
and '887e1a4016c96ca69eca2047591511a955459515'
-rw-r--r--MAINTAINERS4
-rw-r--r--classes/oestats-client.bbclass8
-rw-r--r--classes/pkgconfig.bbclass7
-rw-r--r--conf/distro/angstrom-2008.1.conf4
-rw-r--r--conf/distro/chinook-compat.conf1
-rw-r--r--conf/distro/include/angstrom-2008-preferred-versions.inc4
-rw-r--r--conf/distro/include/preferred-om-2008-versions.inc5
-rw-r--r--conf/distro/include/sane-srcrevs.inc8
-rw-r--r--conf/machine/c7x0.conf2
-rw-r--r--conf/machine/include/zaurus-2.6.inc2
-rwxr-xr-xcontrib/angstrom/build-feeds.sh2
-rw-r--r--packages/abiword/abiword-embedded_2.6.4.bb8
-rw-r--r--packages/accelges/.mtn2git_empty (renamed from packages/classpath/classpath-minimal-0.97.2/.mtn2git_empty)0
-rw-r--r--packages/accelges/accelges_svn.bb13
-rw-r--r--packages/aufs/aufs_cvs.bb2
-rw-r--r--packages/base-files/base-files_3.0.14.bb2
-rw-r--r--packages/boost/boost_1.34.1.bb152
-rw-r--r--packages/classpath/classpath-minimal-0.97.2/autotools.patch13
-rw-r--r--packages/classpath/classpath-minimal_0.97.2.bb2
-rw-r--r--packages/classpath/classpath-native-0.97.2/autotools.patch13
-rw-r--r--packages/classpath/classpath-native.inc11
-rw-r--r--packages/classpath/classpath.inc2
-rw-r--r--packages/cnc/openredalert/gcc43-fix.patch13
-rw-r--r--packages/cnc/openredalert_r438.bb3
-rw-r--r--packages/cowsay/.mtn2git_empty (renamed from packages/classpath/classpath-native-0.97.2/.mtn2git_empty)0
-rw-r--r--packages/cowsay/xcowsay_1.1.bb8
-rw-r--r--packages/ecj/ecj-bootstrap-native.bb (renamed from packages/ecj/ecj-bootstrap-native_3.3.2.bb)8
-rw-r--r--packages/ecj/ecj-bootstrap-native_3.3.bb38
-rw-r--r--packages/ecj/ecj-bootstrap-native_3.4.bb38
-rw-r--r--packages/ecj/ecj-initial.bb31
-rw-r--r--packages/ecj/ecj-initial_3.3.2.bb84
-rw-r--r--packages/ecj/ecj-initial_3.4.bb84
-rw-r--r--packages/ecj/libecj-bootstrap.inc (renamed from packages/ecj/ecj-initial_3.3.bb)29
-rw-r--r--packages/ecj/libecj-bootstrap_3.3.2.bb6
-rw-r--r--packages/ecj/libecj-bootstrap_3.3.bb6
-rw-r--r--packages/ecj/libecj-bootstrap_3.4.bb6
-rw-r--r--packages/freesmartphone/frameworkd_git.bb2
-rw-r--r--packages/freesmartphone/gsm0710muxd_git.bb2
-rw-r--r--packages/freesmartphone/gsmd2_git.bb2
-rw-r--r--packages/freesmartphone/illume-theme-freesmartphone_git.bb2
-rw-r--r--packages/freesmartphone/zhone_git.bb2
-rw-r--r--packages/gcc/gcc-cross-initial_csl-arm-2007q3.bb6
-rw-r--r--packages/gcc/gcc-cross-initial_csl-arm-2008q1.bb6
-rw-r--r--packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb6
-rw-r--r--packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb6
-rw-r--r--packages/gcc/gcc-cross-sdk_csl-arm-2007q3.bb7
-rw-r--r--packages/glib-2.0/glib-2.0-2.18.1/.mtn2git_empty (renamed from packages/wxwidgets/wxbase-2.8.7/.mtn2git_empty)0
-rw-r--r--packages/glib-2.0/glib-2.0-2.18.1/configure-libtool.patch34
-rw-r--r--packages/glib-2.0/glib-2.0-native_2.18.0.bb6
-rw-r--r--packages/glib-2.0/glib-2.0_2.18.1.bb11
-rw-r--r--packages/gnome/gnome-games_2.23.6.bb2
-rw-r--r--packages/gnome/orbit2/pkgconfig-fix.patch12
-rw-r--r--packages/gnome/orbit2_2.14.12.bb13
-rw-r--r--packages/gnumeric/gnumeric_1.8.2.bb2
-rw-r--r--packages/gnumeric/gnumeric_1.8.3.bb2
-rw-r--r--packages/gtk+/gtk+-2.14.2/.mtn2git_empty0
-rw-r--r--packages/gtk+/gtk+-2.14.2/hardcoded_libtool.patch31
-rw-r--r--packages/gtk+/gtk+-2.14.2/no-demos.patch10
-rw-r--r--packages/gtk+/gtk+-2.14.2/run-iconcache.patch19
-rw-r--r--packages/gtk+/gtk+-2.14.2/toggle-font.diff100
-rw-r--r--packages/gtk+/gtk+_2.14.2.bb40
-rw-r--r--packages/initscripts/initscripts_1.0.bb7
-rw-r--r--packages/klibc/klibc-common.inc5
-rw-r--r--packages/klibc/klibc-utils-static_1.5.bb2
-rw-r--r--packages/klibc/klibc_1.5.bb2
-rw-r--r--packages/leafpad/leafpad_0.8.15.bb20
-rw-r--r--packages/liboil/liboil-0.3.15/.mtn2git_empty0
-rw-r--r--packages/liboil/liboil-0.3.15/autotools.patch46
-rw-r--r--packages/liboil/liboil_0.3.15.bb6
-rw-r--r--packages/libopie/libopie2/c7x0_w100_disable.patch20
-rw-r--r--packages/libopie/libopie2_1.2.3.bb5
-rw-r--r--packages/libsdl/libsdl-gfx_2.0.17.bb17
-rw-r--r--packages/libtool/libtool-sdk_2.2.4.bb3
-rw-r--r--packages/linux/linux-2.6.25/at32stk1000/defconfig64
-rw-r--r--packages/linux/linux-ezx_2.6.21.bb2
-rw-r--r--packages/linux/linux-openezx-devel_svn.bb1
-rw-r--r--packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics-2.6.22.5.patch91
-rw-r--r--packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics.patch97
-rw-r--r--packages/linux/linux-openmoko/fix-gta01-flowcontrol2-2.6.22.5.patch193
-rw-r--r--packages/linux/linux-openmoko/glamo-report-vram-size-to-userspace.patch67
-rw-r--r--packages/linux/linux-openmoko/glamo-turbo-mode.patch32
-rw-r--r--packages/linux/linux-openmoko/gta-vibro-pwm-suspend.patch27
-rw-r--r--packages/linux/linux-openmoko/gta02-sound.patch754
-rw-r--r--packages/linux/linux-openmoko/iis-suspend.patch63
-rw-r--r--packages/linux/linux-openmoko/s3c24xx-pcm-suspend.patch73
-rw-r--r--packages/linux/linux-openmoko/soc-core-suspend.patch47
-rw-r--r--packages/linux/linux-openmoko_2.6.24+git.bb6
-rw-r--r--packages/mozilla/fennec_hg.bb6
-rw-r--r--packages/mozilla/files/i386/.mtn2git_empty0
-rw-r--r--packages/mozilla/files/i386/jsautocfg.h54
-rw-r--r--packages/mozilla/files/i486/.mtn2git_empty0
-rw-r--r--packages/mozilla/files/i486/jsautocfg.h54
-rw-r--r--packages/mozilla/files/i586/.mtn2git_empty0
-rw-r--r--packages/mozilla/files/i586/jsautocfg.h54
-rw-r--r--packages/mozilla/files/i686/.mtn2git_empty0
-rw-r--r--packages/mozilla/files/i686/jsautocfg.h54
-rw-r--r--packages/mplayer/files/Makefile-codec-cfg.patch14
-rw-r--r--packages/mplayer/files/armv5te/.mtn2git_empty0
-rw-r--r--packages/mplayer/files/armv5te/configh6
-rw-r--r--packages/mplayer/files/armv5te/configmak3
-rw-r--r--packages/mplayer/files/armv6/.mtn2git_empty0
-rw-r--r--packages/mplayer/files/armv6/configh8
-rw-r--r--packages/mplayer/files/armv6/configmak3
-rw-r--r--packages/mplayer/files/armv7a/.mtn2git_empty0
-rw-r--r--packages/mplayer/files/armv7a/configh14
-rw-r--r--packages/mplayer/files/armv7a/configmak6
-rw-r--r--packages/mplayer/files/configh2
-rw-r--r--packages/mplayer/files/configmak0
-rw-r--r--packages/mplayer/files/mru-neon-float-to-int16.diff107
-rw-r--r--packages/mplayer/files/mru-neon-h264-chrome.diff364
-rw-r--r--packages/mplayer/files/mru-neon-h264-loopfilter.diff346
-rw-r--r--packages/mplayer/files/mru-neon-h264-qpel.diff1040
-rw-r--r--packages/mplayer/files/mru-neon-h264idct-dc.diff55
-rw-r--r--packages/mplayer/files/mru-neon-h264idctadd.diff123
-rw-r--r--packages/mplayer/files/mru-neon-put-pixels.diff376
-rw-r--r--packages/mplayer/files/mru-neon-simple-idct.diff501
-rw-r--r--packages/mplayer/files/mru-neon-vector-fmul-window.diff86
-rw-r--r--packages/mplayer/files/mru-neon-vector-fmul.diff56
-rw-r--r--packages/mplayer/files/mru-neon-vorbis-inverse.diff68
-rw-r--r--packages/mplayer/mplayer_svn.bb53
-rw-r--r--packages/obsolete/wesnoth_svn.bb (renamed from packages/wesnoth/wesnoth_svn.bb)0
-rw-r--r--packages/openttd/files/openttd_0.6.2-buildfix.patch (renamed from packages/openttd/files/openttd_0.6.0-buildfix.patch)10
-rw-r--r--packages/openttd/openttd.inc4
-rw-r--r--packages/openttd/openttd_0.6.0.bb8
-rw-r--r--packages/openttd/openttd_0.6.2.bb9
-rw-r--r--packages/python/python-pycairo/.mtn2git_empty0
-rw-r--r--packages/python/python-pycairo/fix-setup-py.patch24
-rw-r--r--packages/python/python-pycairo_1.4.0.bb12
-rw-r--r--packages/remoko/.mtn2git_empty0
-rw-r--r--packages/remoko/remoko-server_svn.bb11
-rw-r--r--packages/remoko/remoko_svn.bb15
-rw-r--r--packages/smpeg/smpeg/as-fix.patch18
-rw-r--r--packages/smpeg/smpeg/compile.patch11
-rw-r--r--packages/smpeg/smpeg_svn.bb50
-rw-r--r--packages/starling/starling_svn.bb29
-rw-r--r--packages/ttf-fonts/ttf-arphic-uming_20080216.bb15
-rw-r--r--packages/ttf-fonts/ttf.inc7
-rw-r--r--packages/udev/udev-124/init2
-rw-r--r--packages/udev/udev_124.bb2
-rw-r--r--packages/v86d/v86d_0.1.8.bb (renamed from packages/v86d/v86d_0.1.5.bb)11
-rw-r--r--packages/vnc/tightvnc_1.3.9.bb25
-rw-r--r--packages/vnc/tightvnc_1.3dev7.bb23
-rw-r--r--packages/wesnoth/wesnoth_1.4.5.bb151
-rw-r--r--packages/wolf3d/.mtn2git_empty0
-rw-r--r--packages/wolf3d/wolf4sdl_1.6.bb17
-rw-r--r--packages/wpa-supplicant/wpa-gui_0.6.4.bb21
-rw-r--r--packages/wxwidgets/wxbase-2.8.9/.mtn2git_empty0
-rw-r--r--packages/wxwidgets/wxbase-2.8.9/Makefile.in.patch (renamed from packages/wxwidgets/wxbase-2.8.7/Makefile.in.patch)8
-rw-r--r--packages/wxwidgets/wxbase_2.8.9.bb (renamed from packages/wxwidgets/wxbase_2.8.7.bb)5
-rw-r--r--packages/wxwidgets/wxwidgets_2.8.9.bb (renamed from packages/wxwidgets/wxwidgets_2.8.7.bb)0
-rw-r--r--packages/xorg-font/xorg-font-common.inc6
-rw-r--r--packages/zbedic/libbedic_1.1.bb2
-rw-r--r--packages/zbedic/zbedic/opie-icons.patch18
-rw-r--r--packages/zbedic/zbedic/qtopia17.patch32
-rw-r--r--packages/zbedic/zbedic/version.patch13
-rw-r--r--packages/zbedic/zbedic_1.2.bb13
-rw-r--r--packages/zlib/zlib-native_1.2.3.bb11
-rw-r--r--packages/zlib/zlib-sdk.inc9
-rw-r--r--packages/zlib/zlib-sdk_1.2.3.bb4
-rw-r--r--packages/zlib/zlib_1.2.3.bb17
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(&gta01_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
}