diff options
Diffstat (limited to 'packages')
137 files changed, 4013 insertions, 1913 deletions
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/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 060dd3f540..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 () { diff --git a/packages/classpath/classpath-tools-native.bb b/packages/classpath/classpath-tools-native.bb new file mode 100644 index 0000000000..df5df33407 --- /dev/null +++ b/packages/classpath/classpath-tools-native.bb @@ -0,0 +1,7 @@ +# Java recipes which need gjar, gjavah and so on need to depend on this +# recipe. +# This makes sure we not only have the tools' bytecode but also a proper +# interpreter that can run it. +DESCRIPTION = "Provides working jar, javah etc. from the GNU Classpath project" + +DEPENDS = "virtual/java-native classpath-native" 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/fso-gpsd_git.bb b/packages/freesmartphone/fso-gpsd_git.bb index 2f99ea9760..85cb5194b5 100644 --- a/packages/freesmartphone/fso-gpsd_git.bb +++ b/packages/freesmartphone/fso-gpsd_git.bb @@ -2,10 +2,14 @@ DESCRIPTION = "gspd compatibility layer for frameworkd" LICENSE = "GPL" SECTION = "network" DEPENDS = "dbus-glib" -PV = "0.5+gitr${SRCREV}" +PV = "0.6+${PR}+gitr${SRCREV}" PR = "r0" SRC_URI = "${FREESMARTPHONE_GIT}/fso-gpsd.git;protocol=git;branch=master" S = "${WORKDIR}/git" inherit autotools + +RPROVIDES_${PN} = "gpsd" +RCONFLICTS_${PN} = "gpsd" +RREPLACES_${PN} = "gpsd" 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/classpath/classpath-native-0.97.2/.mtn2git_empty b/packages/glib-2.0/glib-2.0-2.18.1/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/classpath/classpath-native-0.97.2/.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-python-desktop_2.23.0.bb b/packages/gnome/gnome-python-desktop_2.23.0.bb index 054718d944..45209b2923 100644 --- a/packages/gnome/gnome-python-desktop_2.23.0.bb +++ b/packages/gnome/gnome-python-desktop_2.23.0.bb @@ -7,6 +7,8 @@ inherit gnome distutils-base SRC_URI += "file://acinclude.m4" +EXTRA_OECONF += "--with-python-includes=${STAGING_INCDIR}/../" + do_configure_prepend() { install -m 0644 ${WORKDIR}/acinclude.m4 ${S}/ } diff --git a/packages/tangogps/files/.mtn2git_empty b/packages/gtk+/gtk+-2.14.2/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/tangogps/files/.mtn2git_empty +++ 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/images/fso-image.bb b/packages/images/fso-image.bb index 15075f022c..d65a01500d 100644 --- a/packages/images/fso-image.bb +++ b/packages/images/fso-image.bb @@ -80,7 +80,7 @@ GTK_INSTALL = "\ openmoko-calculator2 \ openmoko-terminal2 \ gpe-scap \ - tangogps-fso \ + tangogps \ " GAMES_INSTALL = "\ diff --git a/packages/javasqlite/javasqlite_20080130.bb b/packages/javasqlite/javasqlite_20080130.bb index c6de994c67..3137fba4d4 100644 --- a/packages/javasqlite/javasqlite_20080130.bb +++ b/packages/javasqlite/javasqlite_20080130.bb @@ -8,7 +8,7 @@ SRC_URI = "\ http://www.ch-werner.de/javasqlite/javasqlite-${PV}.tar.gz \ file://build-fix.patch;patch=1" -DEPENDS = "virtual/javac-native fastjar-native classpath-native javasqlite-mkconst-native classpath sqlite sqlite3" +DEPENDS = "virtual/javac-native fastjar-native classpath-tools-native javasqlite-mkconst-native classpath sqlite sqlite3" RDEPENDS_${JPN} = "lib${PN}-jni" inherit java-library autotools diff --git a/packages/libmatthew/libmatthew.inc b/packages/libmatthew/libmatthew.inc index d7a483e25f..d68b78ad0d 100644 --- a/packages/libmatthew/libmatthew.inc +++ b/packages/libmatthew/libmatthew.inc @@ -3,7 +3,7 @@ AUTHOR = "Matthew Johnson <web@matthew.ath.cx>" HOMEPAGE = "http://www.matthew.ath.cx/projects/java" SECTION = "libs" LICENSE = "LGPL" -DEPENDS = "classpath-native classpath fastjar-native virtual/javac-native" +DEPENDS = "classpath-tools-native classpath" S = "${WORKDIR}/libmatthew-java-${PV}" diff --git a/packages/wxwidgets/wxbase-2.8.7/.mtn2git_empty b/packages/liboil/liboil-0.3.15/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/wxwidgets/wxbase-2.8.7/.mtn2git_empty +++ 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..53501e3991 --- /dev/null +++ b/packages/liboil/liboil-0.3.15/autotools.patch @@ -0,0 +1,21 @@ +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-25 13:44:18.633758105 +0200 +@@ -187,16 +187,6 @@ + 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) +-fi +-AC_SUBST(VFP_CFLAGS) +- + #AS_COMPILER_FLAG(["-fasm-blocks"], HAVE_ASM_BLOCKS=yes, HAVE_ASM_BLOCKS=no) + HAVE_ASM_BLOCKS=no + if test "x$HAVE_ASM_BLOCKS" = "xyes" diff --git a/packages/liboil/liboil_0.3.15.bb b/packages/liboil/liboil_0.3.15.bb index d6a29f0c0f..338121ac66 100644 --- a/packages/liboil/liboil_0.3.15.bb +++ b/packages/liboil/liboil_0.3.15.bb @@ -1,10 +1,12 @@ DESCRIPTION = "Liboil is a library of simple functions that are optimized for various CPUs." HOMEPAGE = "http://liboil.freedesktop.org/" LICENSE = "various" +PR = "r2" DEPENDS = "glib-2.0" SRC_URI = "http://liboil.freedesktop.org/download/${P}.tar.gz \ + file://autotools.patch;patch=1 \ " inherit autotools pkgconfig 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-omap/beagleboard/beagle-asoc.diff b/packages/linux/linux-omap/beagleboard/beagle-asoc.diff new file mode 100644 index 0000000000..6763d85c32 --- /dev/null +++ b/packages/linux/linux-omap/beagleboard/beagle-asoc.diff @@ -0,0 +1,212 @@ +From: Felipe Contreras <felipe.contreras@gmail.com> +To: linux-omap@vger.kernel.org +Cc: Felipe Contreras <felipe.contreras@gmail.com> +Subject: [PATCH] alsa: add Beagleboard SoC configuration. + +This is exactly the same as the overo configuration. It might make sense +to have them in a single one. + +Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> +--- + +This was suggested by Koen Kooi. + + sound/soc/omap/Kconfig | 8 ++ + sound/soc/omap/Makefile | 2 + + sound/soc/omap/omap3beagle.c | 149 ++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 159 insertions(+), 0 deletions(-) + create mode 100644 sound/soc/omap/omap3beagle.c + +diff --git a/sound/soc/omap/Kconfig b/sound/soc/omap/Kconfig +index d7b8939..ebad024 100644 +--- a/sound/soc/omap/Kconfig ++++ b/sound/soc/omap/Kconfig +@@ -22,3 +22,11 @@ config SND_OMAP_SOC_OVERO + help + Say Y if you want to add support for SoC audio on the Gumstix Overo. + ++config SND_OMAP_SOC_OMAP3_BEAGLE ++ tristate "SoC Audio support for OMAP3 Beagle" ++ depends on SND_OMAP_SOC && MACH_OMAP3_BEAGLE ++ select SND_OMAP_SOC_MCBSP ++ select SND_SOC_TWL4030 ++ help ++ Say Y if you want to add support for SoC audio on the Beagleboard. ++ +diff --git a/sound/soc/omap/Makefile b/sound/soc/omap/Makefile +index b96b97b..09fd0bb 100644 +--- a/sound/soc/omap/Makefile ++++ b/sound/soc/omap/Makefile +@@ -8,7 +8,9 @@ obj-$(CONFIG_SND_OMAP_SOC_MCBSP) += snd-soc-omap-mcbsp.o + # OMAP Machine Support + snd-soc-n810-objs := n810.o + snd-soc-overo-objs := overo.o ++snd-soc-omap3beagle-objs := omap3beagle.o + + obj-$(CONFIG_SND_OMAP_SOC_N810) += snd-soc-n810.o + obj-$(CONFIG_SND_OMAP_SOC_OVERO) += snd-soc-overo.o ++obj-$(CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE) += snd-soc-omap3beagle.o + +diff --git a/sound/soc/omap/omap3beagle.c b/sound/soc/omap/omap3beagle.c +new file mode 100644 +index 0000000..1d0e398 +--- /dev/null ++++ b/sound/soc/omap/omap3beagle.c +@@ -0,0 +1,149 @@ ++/* ++ * omap3beagle.c -- SoC audio for OMAP3 Beagle ++ * ++ * Author: Steve Sakoman <steve@sakoman.com> ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * version 2 as published by the Free Software Foundation. ++ * ++ * This program 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 ++ * General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ++ * 02110-1301 USA ++ * ++ */ ++ ++#include <linux/clk.h> ++#include <linux/platform_device.h> ++#include <sound/core.h> ++#include <sound/pcm.h> ++#include <sound/soc.h> ++#include <sound/soc-dapm.h> ++ ++#include <asm/mach-types.h> ++#include <mach/hardware.h> ++#include <mach/gpio.h> ++#include <mach/mcbsp.h> ++ ++#include "omap-mcbsp.h" ++#include "omap-pcm.h" ++#include "../codecs/twl4030.h" ++ ++static int omap3beagle_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_dai *codec_dai = rtd->dai->codec_dai; ++ struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; ++ int ret; ++ ++ /* Set codec DAI configuration */ ++ ret = snd_soc_dai_set_fmt(codec_dai, ++ SND_SOC_DAIFMT_I2S | ++ SND_SOC_DAIFMT_NB_NF | ++ SND_SOC_DAIFMT_CBM_CFM); ++ if (ret < 0) { ++ printk(KERN_ERR "can't set codec DAI configuration\n"); ++ return ret; ++ } ++ ++ /* Set cpu DAI configuration */ ++ ret = snd_soc_dai_set_fmt(cpu_dai, ++ SND_SOC_DAIFMT_I2S | ++ SND_SOC_DAIFMT_NB_NF | ++ SND_SOC_DAIFMT_CBM_CFM); ++ if (ret < 0) { ++ printk(KERN_ERR "can't set cpu DAI configuration\n"); ++ return ret; ++ } ++ ++ /* Set the codec system clock for DAC and ADC */ ++ ret = snd_soc_dai_set_sysclk(codec_dai, 0, 26000000, ++ SND_SOC_CLOCK_IN); ++ if (ret < 0) { ++ printk(KERN_ERR "can't set codec system clock\n"); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static struct snd_soc_ops omap3beagle_ops = { ++ .hw_params = omap3beagle_hw_params, ++}; ++ ++/* Digital audio interface glue - connects codec <--> CPU */ ++static struct snd_soc_dai_link omap3beagle_dai = { ++ .name = "TWL4030", ++ .stream_name = "TWL4030", ++ .cpu_dai = &omap_mcbsp_dai[0], ++ .codec_dai = &twl4030_dai, ++ .ops = &omap3beagle_ops, ++}; ++ ++/* Audio machine driver */ ++static struct snd_soc_machine snd_soc_machine_omap3beagle = { ++ .name = "omap3beagle", ++ .dai_link = &omap3beagle_dai, ++ .num_links = 1, ++}; ++ ++/* Audio subsystem */ ++static struct snd_soc_device omap3beagle_snd_devdata = { ++ .machine = &snd_soc_machine_omap3beagle, ++ .platform = &omap_soc_platform, ++ .codec_dev = &soc_codec_dev_twl4030, ++}; ++ ++static struct platform_device *omap3beagle_snd_device; ++ ++static int __init omap3beagle_soc_init(void) ++{ ++ int ret; ++ ++ printk(KERN_INFO "OMAP3 Beagle SoC init\n"); ++ if (!machine_is_omap3_beagle()) { ++ printk(KERN_ERR "Not OMAP3 Beagle!\n"); ++ return -ENODEV; ++ } ++ ++ omap3beagle_snd_device = platform_device_alloc("soc-audio", -1); ++ if (!omap3beagle_snd_device) { ++ printk(KERN_ERR "Platform device allocation failed\n"); ++ return -ENOMEM; ++ } ++ ++ platform_set_drvdata(omap3beagle_snd_device, &omap3beagle_snd_devdata); ++ omap3beagle_snd_devdata.dev = &omap3beagle_snd_device->dev; ++ *(unsigned int *)omap3beagle_dai.cpu_dai->private_data = 1; /* McBSP2 */ ++ ++ ret = platform_device_add(omap3beagle_snd_device); ++ if (ret) ++ goto err1; ++ ++ return 0; ++ ++err1: ++ printk(KERN_ERR "Unable to add platform device\n"); ++ platform_device_put(omap3beagle_snd_device); ++ ++ return ret; ++} ++ ++static void __exit omap3beagle_soc_exit(void) ++{ ++ platform_device_unregister(omap3beagle_snd_device); ++} ++ ++module_init(omap3beagle_soc_init); ++module_exit(omap3beagle_soc_exit); ++ ++MODULE_AUTHOR("Steve Sakoman <steve@sakoman.com>"); ++MODULE_DESCRIPTION("ALSA SoC OMAP3 Beagle"); ++MODULE_LICENSE("GPL"); +-- +1.6.0.1 + +-- +To unsubscribe from this list: send the line "unsubscribe linux-omap" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html + diff --git a/packages/linux/linux-omap/beagleboard/defconfig b/packages/linux/linux-omap/beagleboard/defconfig index 7de6a0aa90..9b9b941da1 100644 --- a/packages/linux/linux-omap/beagleboard/defconfig +++ b/packages/linux/linux-omap/beagleboard/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.27-rc5-omap1 -# Thu Sep 4 18:30:13 2008 +# Linux kernel version: 2.6.27-rc7-omap1 +# Thu Sep 25 12:46:23 2008 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -215,6 +215,7 @@ CONFIG_ARCH_OMAP3430=y # CONFIG_MACH_OMAP_3430SDP is not set # CONFIG_MACH_OMAP3EVM is not set CONFIG_MACH_OMAP3_BEAGLE=y +# CONFIG_MACH_OVERO is not set CONFIG_OMAP_TICK_GPTIMER=12 # @@ -329,7 +330,7 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y CONFIG_VFP=y CONFIG_VFPv3=y CONFIG_NEON=y -CONFIG_ARM_ERRATUM_451034=y +CONFIG_ARM_ERRATUM_451034=n # # Userspace binary formats @@ -920,7 +921,6 @@ CONFIG_GPIOLIB=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y - # # I2C GPIO expanders: # @@ -1267,7 +1267,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_OMAP=y CONFIG_FB_OMAP_VIDEO_MODE="1024x768@60" # CONFIG_FB_OMAP_LCDC_EXTERNAL is not set -CONFIG_OMAP_FB_LCD_OMAP3BEAGLE=y # CONFIG_FB_OMAP_BOOTLOADER_INIT is not set CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=8 # CONFIG_BACKLIGHT_LCD_SUPPORT is not set @@ -1333,6 +1332,9 @@ CONFIG_SND_USB_CAIAQ=m CONFIG_SND_USB_CAIAQ_INPUT=y CONFIG_SND_SOC=y CONFIG_SND_OMAP_SOC=y +CONFIG_SND_OMAP_SOC_MCBSP=y +CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y +CONFIG_SND_SOC_TWL4030=y # CONFIG_SOUND_PRIME is not set CONFIG_HID_SUPPORT=y CONFIG_HID=y @@ -1361,7 +1363,7 @@ CONFIG_USB_DEVICEFS=y CONFIG_USB_DEVICE_CLASS=y # CONFIG_USB_DYNAMIC_MINORS is not set CONFIG_USB_SUSPEND=y -CONFIG_USB_OTG=y +# CONFIG_USB_OTG is not set # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set CONFIG_USB_MON=y @@ -1386,14 +1388,13 @@ CONFIG_USB_MUSB_SOC=y # # OMAP 343x high speed USB support # -# CONFIG_USB_MUSB_HOST is not set +CONFIG_USB_MUSB_HOST=y # CONFIG_USB_MUSB_PERIPHERAL is not set -CONFIG_USB_MUSB_OTG=y -CONFIG_USB_GADGET_MUSB_HDRC=y +# CONFIG_USB_MUSB_OTG is not set +# CONFIG_USB_GADGET_MUSB_HDRC is not set CONFIG_USB_MUSB_HDRC_HCD=y # CONFIG_MUSB_PIO_ONLY is not set CONFIG_USB_INVENTRA_DMA=y -CONFIG_MUSB_USE_SYSTEM_DMA_RX=y # CONFIG_USB_TI_CPPI_DMA is not set # CONFIG_USB_MUSB_DEBUG is not set @@ -1527,7 +1528,8 @@ CONFIG_USB_GADGET_SELECTED=y # CONFIG_USB_GADGET_FSL_USB2 is not set # CONFIG_USB_GADGET_NET2280 is not set # CONFIG_USB_GADGET_PXA25X is not set -# CONFIG_USB_GADGET_M66592 is not set +CONFIG_USB_GADGET_M66592=y +CONFIG_USB_M66592=y # CONFIG_USB_GADGET_PXA27X is not set # CONFIG_USB_GADGET_GOKU is not set # CONFIG_USB_GADGET_LH7A40X is not set diff --git a/packages/linux/linux-omap_git.bb b/packages/linux/linux-omap_git.bb index 05448f1c23..ec9e2c0f9c 100644 --- a/packages/linux/linux-omap_git.bb +++ b/packages/linux/linux-omap_git.bb @@ -6,16 +6,15 @@ KERNEL_IMAGETYPE = "uImage" COMPATIBLE_MACHINE = "omap5912osk|omap1710h3|omap2430sdp|omap2420h4|beagleboard|omap3evm" -SRCREV = "de1121fdb899f762" +SRCREV = "9d1dff8638c9e96a401e1885f9948662e9ff9636" PV = "2.6.26+2.6.27-rc6+${PR}+git${SRCREV}" -PR = "r5" +PR = "r7" SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git;protocol=git \ file://defconfig" SRC_URI_append = " \ - file://timer-suppression.patch;patch=1 \ file://no-empty-flash-warnings.patch;patch=1 \ file://oprofile-0.9.3.armv7.diff;patch=1 \ file://no-cortex-deadlock.patch;patch=1 \ @@ -31,7 +30,6 @@ SRC_URI_append = " \ file://mru-improve-pixclock-config.diff;patch=1 \ file://mru-make-video-timings-selectable.diff;patch=1 \ file://mru-enable-overlay-optimalization.diff;patch=1 \ - file://strongly-ordered-memory.diff;patch=1 \ " temporarely-disabled = " \ @@ -39,7 +37,8 @@ temporarely-disabled = " \ " SRC_URI_append_beagleboard = " file://logo_linux_clut224.ppm \ - " + file://beagle-asoc.diff;patch=1 \ + " SRC_URI_append_omap3evm = " \ file://OMAP3EVM_TWL4030-Keypad-irq-error-fix.patch;patch=1 \ diff --git a/packages/linux/linux-openezx-devel_svn.bb b/packages/linux/linux-openezx-devel_svn.bb index 6c0af7cfb6..17156535ea 100644 --- a/packages/linux/linux-openezx-devel_svn.bb +++ b/packages/linux/linux-openezx-devel_svn.bb @@ -55,6 +55,7 @@ CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDL do_prepatch() { mv ${WORKDIR}/${KERNEL_PATCHES}/defconfig-${MACHINE} ${WORKDIR}/defconfig +# mv ${WORKDIR}/defconfig-${MACHINE} ${WORKDIR}/defconfig mv ${WORKDIR}/${KERNEL_PATCHES} ${S}/patches && cd ${S} && quilt push -av mv patches patches.openezx mv .pc .pc.old diff --git a/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics-2.6.22.5.patch b/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics-2.6.22.5.patch deleted file mode 100644 index cc74c0e289..0000000000 --- a/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics-2.6.22.5.patch +++ /dev/null @@ -1,91 +0,0 @@ -Index: linux-2.6.22.5/drivers/input/evdev.c -=================================================================== ---- linux-2.6.22.5.orig/drivers/input/evdev.c -+++ linux-2.6.22.5/drivers/input/evdev.c -@@ -28,7 +28,7 @@ struct evdev { - char name[16]; - struct input_handle handle; - wait_queue_head_t wait; -- struct evdev_client *grab; -+ int grab; - struct list_head client_list; - }; - -@@ -36,6 +36,7 @@ struct evdev_client { - struct input_event buffer[EVDEV_BUFFER_SIZE]; - int head; - int tail; -+ int grab; - struct fasync_struct *fasync; - struct evdev *evdev; - struct list_head node; -@@ -48,8 +49,7 @@ static void evdev_event(struct input_han - struct evdev *evdev = handle->private; - struct evdev_client *client; - -- if (evdev->grab) { -- client = evdev->grab; -+ list_for_each_entry(client, &evdev->client_list, node) { - - do_gettimeofday(&client->buffer[client->head].time); - client->buffer[client->head].type = type; -@@ -58,17 +58,7 @@ static void evdev_event(struct input_han - client->head = (client->head + 1) & (EVDEV_BUFFER_SIZE - 1); - - kill_fasync(&client->fasync, SIGIO, POLL_IN); -- } else -- list_for_each_entry(client, &evdev->client_list, node) { -- -- do_gettimeofday(&client->buffer[client->head].time); -- client->buffer[client->head].type = type; -- client->buffer[client->head].code = code; -- client->buffer[client->head].value = value; -- client->head = (client->head + 1) & (EVDEV_BUFFER_SIZE - 1); -- -- kill_fasync(&client->fasync, SIGIO, POLL_IN); -- } -+ } - - wake_up_interruptible(&evdev->wait); - } -@@ -105,9 +95,10 @@ static int evdev_release(struct inode *i - struct evdev_client *client = file->private_data; - struct evdev *evdev = client->evdev; - -- if (evdev->grab == client) { -- input_release_device(&evdev->handle); -- evdev->grab = NULL; -+ if (client->grab) { -+ if(!--evdev->grab && evdev->exist) -+ input_release_device(&evdev->handle); -+ client->grab = 0; - } - - evdev_fasync(-1, file, 0); -@@ -488,17 +479,19 @@ static long evdev_ioctl_handler(struct f - - case EVIOCGRAB: - if (p) { -- if (evdev->grab) -- return -EBUSY; -- if (input_grab_device(&evdev->handle)) -+ if (client->grab) - return -EBUSY; -- evdev->grab = client; -+ if (!evdev->grab++) -+ if (input_grab_device(&evdev->handle)) -+ return -EBUSY; -+ client->grab = 0; - return 0; - } else { -- if (evdev->grab != client) -+ if (!client->grab) - return -EINVAL; -- input_release_device(&evdev->handle); -- evdev->grab = NULL; -+ if (!--evdev->grab) -+ input_release_device(&evdev->handle); -+ client->grab = 0; - return 0; - } - diff --git a/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics.patch b/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics.patch deleted file mode 100644 index 3c96faa271..0000000000 --- a/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics.patch +++ /dev/null @@ -1,97 +0,0 @@ -diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c -index 12c7ab8..c7e741b 100644 ---- a/drivers/input/evdev.c -+++ b/drivers/input/evdev.c -@@ -29,7 +29,7 @@ struct evdev { - char name[16]; - struct input_handle handle; - wait_queue_head_t wait; -- struct evdev_list *grab; -+ int grab; - struct list_head list; - }; - -@@ -37,6 +37,7 @@ struct evdev_list { - struct input_event buffer[EVDEV_BUFFER_SIZE]; - int head; - int tail; -+ int grab; - struct fasync_struct *fasync; - struct evdev *evdev; - struct list_head node; -@@ -49,8 +50,7 @@ static void evdev_event(struct input_han - struct evdev *evdev = handle->private; - struct evdev_list *list; - -- if (evdev->grab) { -- list = evdev->grab; -+ list_for_each_entry(list, &evdev->list, node) { - - do_gettimeofday(&list->buffer[list->head].time); - list->buffer[list->head].type = type; -@@ -59,17 +59,7 @@ static void evdev_event(struct input_han - list->head = (list->head + 1) & (EVDEV_BUFFER_SIZE - 1); - - kill_fasync(&list->fasync, SIGIO, POLL_IN); -- } else -- list_for_each_entry(list, &evdev->list, node) { -- -- do_gettimeofday(&list->buffer[list->head].time); -- list->buffer[list->head].type = type; -- list->buffer[list->head].code = code; -- list->buffer[list->head].value = value; -- list->head = (list->head + 1) & (EVDEV_BUFFER_SIZE - 1); -- -- kill_fasync(&list->fasync, SIGIO, POLL_IN); -- } -+ } - - wake_up_interruptible(&evdev->wait); - } -@@ -104,9 +94,10 @@ static int evdev_release(struct inode * - { - struct evdev_list *list = file->private_data; - -- if (list->evdev->grab == list) { -- input_release_device(&list->evdev->handle); -- list->evdev->grab = NULL; -+ if (list->grab) { -+ if(!--list->evdev->grab && list->evdev->exist) -+ input_release_device(&list->evdev->handle); -+ list->grab = 0; - } - - evdev_fasync(-1, file, 0); -@@ -483,17 +474,19 @@ static long evdev_ioctl_handler(struct f - - case EVIOCGRAB: - if (p) { -- if (evdev->grab) -- return -EBUSY; -- if (input_grab_device(&evdev->handle)) -+ if (list->grab) - return -EBUSY; -- evdev->grab = list; -+ if (!evdev->grab++) -+ if (input_grab_device(&evdev->handle)) -+ return -EBUSY; -+ list->grab = 0; - return 0; - } else { -- if (evdev->grab != list) -+ if (!list->grab) - return -EINVAL; -- input_release_device(&evdev->handle); -- evdev->grab = NULL; -+ if (!--evdev->grab) -+ input_release_device(&evdev->handle); -+ list->grab = 0; - return 0; - } - -- -To unsubscribe from this list: send the line "unsubscribe linux-kernel" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html -Please read the FAQ at http://www.tux.org/lkml/ - diff --git a/packages/linux/linux-openmoko/fix-gta01-flowcontrol2-2.6.22.5.patch b/packages/linux/linux-openmoko/fix-gta01-flowcontrol2-2.6.22.5.patch deleted file mode 100644 index ddb58f0cdb..0000000000 --- a/packages/linux/linux-openmoko/fix-gta01-flowcontrol2-2.6.22.5.patch +++ /dev/null @@ -1,193 +0,0 @@ ---- linux-2.6.22.5/arch/arm/common/gta01_pm_gsm.c.orig 2007-09-27 11:23:20.000000000 -0500 -+++ linux-2.6.22.5/arch/arm/common/gta01_pm_gsm.c 2007-09-27 21:09:00.000000000 -0500 -@@ -23,6 +23,9 @@ - #include <asm/arch/gta01.h> - #include <asm/arch/gta02.h> - -+#include <linux/serial_core.h> -+void s3c24xx_set_flow_control(struct uart_port *port, int fc_on); -+ - struct gta01pm_priv { - int gpio_ngsm_en; - struct console *con; -@@ -49,6 +52,23 @@ - static ssize_t gsm_read(struct device *dev, struct device_attribute *attr, - char *buf) - { -+ struct uart_driver *udrive = NULL; -+ struct uart_state *ustate = NULL; -+ struct uart_port *uport = NULL; -+ -+ if (gta01_gsm.con) { -+ udrive = gta01_gsm.con->data; -+ if (udrive) { -+ ustate = udrive->state; -+ if (ustate) { -+ uport = ustate->port; -+ } -+ } -+ } -+ printk("gsm: gsm_read of \"%s\"\n", attr->attr.name); -+ printk("gsm: con=%p udrive=%p ustate=%p uport=%p\n", -+ gta01_gsm.con, udrive, ustate, uport); -+ - if (!strcmp(attr->attr.name, "power_on")) { - if (s3c2410_gpio_getpin(GTA01_GPIO_MODEM_ON)) - goto out_1; -@@ -58,6 +78,24 @@ - } else if (!strcmp(attr->attr.name, "download")) { - if (s3c2410_gpio_getpin(GTA01_GPIO_MODEM_DNLOAD)) - goto out_1; -+ } else if (!strcmp(attr->attr.name, "flowcontrol")) { -+ if (uport) { -+ if (uport->unused[2] & 0x2) { -+ if (uport->unused[2] & 0x1) { -+ printk("gsm: flow control allowed and on\n"); -+ goto out_1; -+ } else { -+ printk("gsm: flow control allowed and not on\n"); -+ } -+ } else { -+ if (uport->unused[2] & 0x1) -+ printk("gsm: flow control not allowed, " -+ "but is pending\n"); -+ else -+ printk("gsm: flow control not allowed, " -+ "not pending\n"); -+ } -+ } - } - - return strlcpy(buf, "0\n", 3); -@@ -68,10 +106,26 @@ - static ssize_t gsm_write(struct device *dev, struct device_attribute *attr, - const char *buf, size_t count) - { -+ struct uart_driver *udrive = NULL; -+ struct uart_state *ustate = NULL; -+ struct uart_port *uport = NULL; -+ static int was_on = 0; - unsigned long on = simple_strtoul(buf, NULL, 10); - -+ if (gta01_gsm.con) { -+ udrive = gta01_gsm.con->data; -+ if (udrive) { -+ ustate = udrive->state; -+ if (ustate) { -+ uport = ustate->port; -+ } -+ } -+ } -+ printk("gsm: con=%p udrive=%p ustate=%p uport=%p\n", -+ gta01_gsm.con, udrive, ustate, uport); -+ - if (!strcmp(attr->attr.name, "power_on")) { -- if (on) { -+ if (on && !was_on) { - if (gta01_gsm.con) { - dev_info(dev, "powering up GSM, thus " - "disconnecting serial console\n"); -@@ -83,7 +137,24 @@ - s3c2410_gpio_setpin(gta01_gsm.gpio_ngsm_en, 0); - - s3c2410_gpio_setpin(GTA01_GPIO_MODEM_ON, 1); -- } else { -+ -+ if (uport) { -+ /* set any pending flow-control mode */ -+ uport->unused[2] |= 0x2; -+ s3c24xx_set_flow_control(uport, -+ (uport->unused[2] & 0x1)); -+ dev_info(dev, "flow control allowed\n"); -+ } -+ -+ was_on = 1; -+ -+ } else if (!on && was_on) { -+ if (uport) { -+ uport->unused[2] &= ~0x2; -+ s3c24xx_set_flow_control(uport, 0); -+ dev_info(dev, "flow control not allowed\n"); -+ } -+ - s3c2410_gpio_setpin(GTA01_GPIO_MODEM_ON, 0); - - if (gta01_gsm.gpio_ngsm_en) -@@ -95,6 +166,8 @@ - dev_info(dev, "powered down GSM, thus enabling " - "serial console\n"); - } -+ -+ was_on = 0; - } - } else if (!strcmp(attr->attr.name, "reset")) { - s3c2410_gpio_setpin(GTA01_GPIO_MODEM_RST, on); -@@ -105,6 +178,7 @@ - return count; - } - -+static DEVICE_ATTR(flowcontrol, 0644, gsm_read, gsm_write); - static DEVICE_ATTR(power_on, 0644, gsm_read, gsm_write); - static DEVICE_ATTR(reset, 0644, gsm_read, gsm_write); - static DEVICE_ATTR(download, 0644, gsm_read, gsm_write); -@@ -136,6 +210,7 @@ - #endif - - static struct attribute *gta01_gsm_sysfs_entries[] = { -+ &dev_attr_flowcontrol.attr, - &dev_attr_power_on.attr, - &dev_attr_reset.attr, - NULL, ---- linux-2.6.22.5/drivers/serial/s3c2410.c.orig 2007-09-27 11:23:27.000000000 -0500 -+++ linux-2.6.22.5/drivers/serial/s3c2410.c 2007-09-27 21:07:21.000000000 -0500 -@@ -80,6 +80,8 @@ - - #include <asm/arch/regs-serial.h> - #include <asm/arch/regs-gpio.h> -+#include <asm/mach-types.h> -+#include <asm/arch/gta01.h> - - /* structures */ - -@@ -729,6 +731,17 @@ - return best->quot; - } - -+/* This routine is called whenever the gta01 modem/console switches */ -+void s3c24xx_set_flow_control(struct uart_port *port, int fc_on) -+{ -+ unsigned int umcon; -+ if (machine_is_neo1973_gta01() && port) { -+ umcon = (fc_on) ? S3C2410_UMCOM_AFC : 0; -+ wr_regl(port, S3C2410_UMCON, umcon); -+ } -+} -+EXPORT_SYMBOL(s3c24xx_set_flow_control); -+ - static void s3c24xx_serial_set_termios(struct uart_port *port, - struct ktermios *termios, - struct ktermios *old) -@@ -803,6 +816,23 @@ - - umcon = (termios->c_cflag & CRTSCTS) ? S3C2410_UMCOM_AFC : 0; - -+ /* -+ * Custom handling of flow control on hwport 0 for the GTA01: -+ * Save the desired state for flow control, but if the port -+ * is being used as a console, then do not actually enable -+ * flow control unless the flag permiting us to do so is set. -+ */ -+ if (machine_is_neo1973_gta01() && (cfg->hwport == 0)) { -+ if (umcon) -+ port->unused[2] |= 0x1; -+ else -+ port->unused[2] &= ~0x1; -+ if (port->cons && (port->cons->index >= 0)) { -+ if (!(port->unused[2] & 0x2)) -+ umcon = 0; -+ } -+ } -+ - if (termios->c_cflag & PARENB) { - if (termios->c_cflag & PARODD) - ulcon |= S3C2410_LCON_PODD; diff --git a/packages/linux/linux-openmoko/glamo-report-vram-size-to-userspace.patch b/packages/linux/linux-openmoko/glamo-report-vram-size-to-userspace.patch deleted file mode 100644 index 563923e71c..0000000000 --- a/packages/linux/linux-openmoko/glamo-report-vram-size-to-userspace.patch +++ /dev/null @@ -1,67 +0,0 @@ -From ff1564e5100eeccd53ee6b007813ea722f8cf8b6 Mon Sep 17 00:00:00 2001 -From: Chia-I Wu <olv@openmoko.com> -Date: Mon, 1 Oct 2007 21:16:46 +0800 -Subject: [PATCH] glamo: report vram size to userspace - -Set fb_fix_screeninfo.smem_len to RESSIZE(fb_res). This is not the real -vram size, as it is a hardcoded value in glamo-core.c for now. ---- - drivers/video/glamo/glamo-fb.c | 13 +++++-------- - 1 files changed, 5 insertions(+), 8 deletions(-) - -diff --git a/drivers/video/glamo/glamo-fb.c b/drivers/video/glamo/glamo-fb.c -index 451de75..160a5b1 100644 ---- a/drivers/video/glamo/glamo-fb.c -+++ b/drivers/video/glamo/glamo-fb.c -@@ -54,8 +54,6 @@ - - #define RESSIZE(ressource) (((ressource)->end - (ressource)->start)+1) - --#define GLAMO_FB_ALLOC (640*480*2) -- - struct glamofb_handle { - struct fb_info *fb; - struct device *dev; -@@ -224,7 +222,6 @@ static int glamofb_set_par(struct fb_info *info) - } - - glamo->fb->fix.line_length = (var->width * var->bits_per_pixel) / 8; -- glamo->fb->fix.smem_len = info->fix.line_length * var->yres_virtual; - - return 0; - } -@@ -453,7 +450,7 @@ static int __init glamofb_probe(struct platform_device *pdev) - } - - glamofb->fb_res = request_mem_region(glamofb->fb_res->start, -- GLAMO_FB_ALLOC, pdev->name); -+ RESSIZE(glamofb->fb_res), pdev->name); - if (!glamofb->fb_res) { - dev_err(&pdev->dev, "failed to request vram region\n"); - goto out_release_reg; -@@ -467,6 +464,7 @@ static int __init glamofb_probe(struct platform_device *pdev) - goto out_release_fb; - } - fbinfo->fix.smem_start = (unsigned long) glamofb->fb_res->start; -+ fbinfo->fix.smem_len = RESSIZE(glamofb->fb_res); - - fbinfo->screen_base = ioremap(glamofb->fb_res->start, - RESSIZE(glamofb->fb_res)); -@@ -522,11 +520,10 @@ static int __init glamofb_probe(struct platform_device *pdev) - fbinfo->var.green.length = 6; - fbinfo->var.blue.length = 5; - fbinfo->var.transp.length = 0; -- fbinfo->fix.smem_len = mach_info->xres.max * -- mach_info->yres.max * -- mach_info->bpp.max / 8; - -- memset(fbinfo->screen_base, 0, fbinfo->fix.smem_len); -+ memset(fbinfo->screen_base, 0, mach_info->xres.max * -+ mach_info->yres.max * -+ mach_info->bpp.max / 8); - - glamo_engine_enable(mach_info->glamo, GLAMO_ENGINE_LCD); - glamo_engine_reset(mach_info->glamo, GLAMO_ENGINE_LCD); --- -1.5.3.1 - diff --git a/packages/linux/linux-openmoko/glamo-turbo-mode.patch b/packages/linux/linux-openmoko/glamo-turbo-mode.patch deleted file mode 100644 index 4f03c967ec..0000000000 --- a/packages/linux/linux-openmoko/glamo-turbo-mode.patch +++ /dev/null @@ -1,32 +0,0 @@ -X-Git-Url: http://git.openmoko.org/?p=kernel.git;a=blobdiff_plain;f=drivers%2Fmfd%2Fglamo%2Fglamo-core.c;fp=drivers%2Fmfd%2Fglamo%2Fglamo-core.c;h=bc91178ba609fbb99343eca212e7dda85e110d7c;hp=2619c5fc9fc3a189232504b97d3f024249bd9a72;hb=b920e3309db7e4f733499dc724a0dfba310edc5c;hpb=c1768ad6cc5b11eeda4394f68fbaedd03eea3354 - -diff --git a/drivers/mfd/glamo/glamo-core.c b/drivers/mfd/glamo/glamo-core.c -index 2619c5f..bc91178 100644 ---- a/drivers/mfd/glamo/glamo-core.c -+++ b/drivers/mfd/glamo/glamo-core.c -@@ -740,7 +740,11 @@ static struct glamo_script glamo_init_script[] = { - { GLAMO_REG_CLOCK_GEN7, 0x0101 }, - { GLAMO_REG_CLOCK_GEN8, 0x0100 }, - { GLAMO_REG_CLOCK_HOST, 0x000d }, -- { 0x200, 0x0ef0 }, -+ /* -+ * b7..b4 = 0 = no wait states on read or write -+ * b0 = 1 select PLL2 for Host interface, b1 = enable it -+ */ -+ { 0x200, 0x0e03 }, - { 0x202, 0x07ff }, - { 0x212, 0x0000 }, - { 0x214, 0x4000 }, -@@ -750,11 +754,7 @@ static struct glamo_script glamo_init_script[] = { - * more efficiency when 640x480" */ - { GLAMO_REG_MEM_TYPE, 0x0c74 }, /* 8MB, 16 word pg wr+rd */ - { GLAMO_REG_MEM_GEN, 0xafaf }, /* 63 grants min + max */ -- /* -- * the register below originally 0x0108 makes unreliable Glamo MMC -- * write operations. Cranked to 0x05ad to add a wait state, the -- * unreliability is not seen after 4GB of write / read testing -- */ -+ - { GLAMO_REG_MEM_TIMING1, 0x0108 }, - { GLAMO_REG_MEM_TIMING2, 0x0010 }, /* Taa = 3 MCLK */ - { GLAMO_REG_MEM_TIMING3, 0x0000 }, diff --git a/packages/linux/linux-openmoko/gta-vibro-pwm-suspend.patch b/packages/linux/linux-openmoko/gta-vibro-pwm-suspend.patch deleted file mode 100644 index a98f5c8ca5..0000000000 --- a/packages/linux/linux-openmoko/gta-vibro-pwm-suspend.patch +++ /dev/null @@ -1,27 +0,0 @@ -Index: linux-2.6.22/drivers/leds/leds-gta01.c -=================================================================== ---- linux-2.6.22.orig/drivers/leds/leds-gta01.c 2007-11-09 16:27:03.000000000 +0000 -+++ linux-2.6.22/drivers/leds/leds-gta01.c 2007-11-09 16:27:13.000000000 +0000 -@@ -33,6 +33,8 @@ - struct s3c2410_pwm pwm; - }; - -+static int gta01vib_init_hw(struct gta01_vib_priv *vp); -+ - static inline struct gta01_vib_priv *pdev_to_vpriv(struct platform_device *dev) - { - return platform_get_drvdata(dev); -@@ -80,7 +82,13 @@ - - static int gta01vib_resume(struct platform_device *dev) - { -+ struct gta01_vib_priv *vp = pdev_to_vpriv(dev); -+ - led_classdev_resume(>a01_vib_led); -+ -+ if (vp->has_pwm) -+ gta01vib_init_hw(vp); -+ - return 0; - } - #endif diff --git a/packages/linux/linux-openmoko/gta02-sound.patch b/packages/linux/linux-openmoko/gta02-sound.patch deleted file mode 100644 index f742c77303..0000000000 --- a/packages/linux/linux-openmoko/gta02-sound.patch +++ /dev/null @@ -1,754 +0,0 @@ -Index: linux-2.6.22/sound/soc/s3c24xx/neo1973_gta02_wm8753.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/sound/soc/s3c24xx/neo1973_gta02_wm8753.c 2007-11-09 16:21:35.000000000 +0000 -@@ -0,0 +1,667 @@ -+/* -+ * neo1973_gta02_wm8753.c -- SoC audio for Neo1973 -+ * -+ * Copyright 2007 OpenMoko Inc -+ * Author: Graeme Gregory <graeme@openmoko.org> -+ * Copyright 2007 Wolfson Microelectronics PLC. -+ * Author: Graeme Gregory <linux@wolfsonmicro.com> -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ * -+ * Revision history -+ * 06th Nov 2007 Changed from GTA01 to GTA02 -+ * 20th Jan 2007 Initial version. -+ * 05th Feb 2007 Rename all to Neo1973 -+ * -+ */ -+ -+#include <linux/module.h> -+#include <linux/moduleparam.h> -+#include <linux/timer.h> -+#include <linux/interrupt.h> -+#include <linux/platform_device.h> -+#include <linux/i2c.h> -+#include <sound/driver.h> -+#include <sound/core.h> -+#include <sound/pcm.h> -+#include <sound/soc.h> -+#include <sound/soc-dapm.h> -+ -+#include <asm/mach-types.h> -+#include <asm/hardware/scoop.h> -+#include <asm/arch/regs-iis.h> -+#include <asm/arch/regs-clock.h> -+#include <asm/arch/regs-gpio.h> -+#include <asm/hardware.h> -+#include <asm/arch/audio.h> -+#include <asm/io.h> -+#include <asm/arch/spi-gpio.h> -+#include <asm/arch/regs-gpioj.h> -+#include <asm/arch/gta02.h> -+#include "../codecs/wm8753.h" -+#include "s3c24xx-pcm.h" -+#include "s3c24xx-i2s.h" -+ -+/* define the scenarios */ -+#define NEO_AUDIO_OFF 0 -+#define NEO_GSM_CALL_AUDIO_HANDSET 1 -+#define NEO_GSM_CALL_AUDIO_HEADSET 2 -+#define NEO_GSM_CALL_AUDIO_BLUETOOTH 3 -+#define NEO_STEREO_TO_SPEAKERS 4 -+#define NEO_STEREO_TO_HEADPHONES 5 -+#define NEO_CAPTURE_HANDSET 6 -+#define NEO_CAPTURE_HEADSET 7 -+#define NEO_CAPTURE_BLUETOOTH 8 -+#define NEO_STEREO_TO_HANDSET_SPK 9 -+ -+static struct snd_soc_machine neo1973_gta02; -+ -+static int neo1973_gta02_hifi_hw_params(struct snd_pcm_substream *substream, -+ struct snd_pcm_hw_params *params) -+{ -+ struct snd_soc_pcm_runtime *rtd = substream->private_data; -+ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai; -+ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai; -+ unsigned int pll_out = 0, bclk = 0; -+ int ret = 0; -+ unsigned long iis_clkrate; -+ -+ iis_clkrate = s3c24xx_i2s_get_clockrate(); -+ -+ switch (params_rate(params)) { -+ case 8000: -+ case 16000: -+ pll_out = 12288000; -+ break; -+ case 48000: -+ bclk = WM8753_BCLK_DIV_4; -+ pll_out = 12288000; -+ break; -+ case 96000: -+ bclk = WM8753_BCLK_DIV_2; -+ pll_out = 12288000; -+ break; -+ case 11025: -+ bclk = WM8753_BCLK_DIV_16; -+ pll_out = 11289600; -+ break; -+ case 22050: -+ bclk = WM8753_BCLK_DIV_8; -+ pll_out = 11289600; -+ break; -+ case 44100: -+ bclk = WM8753_BCLK_DIV_4; -+ pll_out = 11289600; -+ break; -+ case 88200: -+ bclk = WM8753_BCLK_DIV_2; -+ pll_out = 11289600; -+ break; -+ } -+ -+ /* set codec DAI configuration */ -+ ret = codec_dai->dai_ops.set_fmt(codec_dai, -+ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | -+ SND_SOC_DAIFMT_CBM_CFM); -+ if (ret < 0) -+ return ret; -+ -+ /* set cpu DAI configuration */ -+ ret = cpu_dai->dai_ops.set_fmt(cpu_dai, -+ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | -+ SND_SOC_DAIFMT_CBM_CFM); -+ if (ret < 0) -+ return ret; -+ -+ /* set the codec system clock for DAC and ADC */ -+ ret = codec_dai->dai_ops.set_sysclk(codec_dai, WM8753_MCLK, pll_out, -+ SND_SOC_CLOCK_IN); -+ if (ret < 0) -+ return ret; -+ -+ /* set MCLK division for sample rate */ -+ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_MCLK, -+ S3C2410_IISMOD_32FS ); -+ if (ret < 0) -+ return ret; -+ -+ /* set codec BCLK division for sample rate */ -+ ret = codec_dai->dai_ops.set_clkdiv(codec_dai, -+ WM8753_BCLKDIV, bclk); -+ if (ret < 0) -+ return ret; -+ -+ /* set prescaler division for sample rate */ -+ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER, -+ S3C24XX_PRESCALE(4,4)); -+ if (ret < 0) -+ return ret; -+ -+ /* codec PLL input is PCLK/4 */ -+ ret = codec_dai->dai_ops.set_pll(codec_dai, WM8753_PLL1, -+ iis_clkrate / 4, pll_out); -+ if (ret < 0) -+ return ret; -+ -+ return 0; -+} -+ -+static int neo1973_gta02_hifi_hw_free(struct snd_pcm_substream *substream) -+{ -+ struct snd_soc_pcm_runtime *rtd = substream->private_data; -+ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai; -+ -+ /* disable the PLL */ -+ return codec_dai->dai_ops.set_pll(codec_dai, WM8753_PLL1, 0, 0); -+} -+ -+/* -+ * Neo1973 WM8753 HiFi DAI opserations. -+ */ -+static struct snd_soc_ops neo1973_gta02_hifi_ops = { -+ .hw_params = neo1973_gta02_hifi_hw_params, -+ .hw_free = neo1973_gta02_hifi_hw_free, -+}; -+ -+static int neo1973_gta02_voice_hw_params( -+ struct snd_pcm_substream *substream, -+ struct snd_pcm_hw_params *params) -+{ -+ struct snd_soc_pcm_runtime *rtd = substream->private_data; -+ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai; -+ unsigned int pcmdiv = 0; -+ int ret = 0; -+ unsigned long iis_clkrate; -+ -+ iis_clkrate = s3c24xx_i2s_get_clockrate(); -+ -+ if (params_rate(params) != 8000) -+ return -EINVAL; -+ if (params_channels(params) != 1) -+ return -EINVAL; -+ -+ pcmdiv = WM8753_PCM_DIV_6; /* 2.048 MHz */ -+ -+ /* todo: gg check mode (DSP_B) against CSR datasheet */ -+ /* set codec DAI configuration */ -+ ret = codec_dai->dai_ops.set_fmt(codec_dai, SND_SOC_DAIFMT_DSP_B | -+ SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS); -+ if (ret < 0) -+ return ret; -+ -+ /* set the codec system clock for DAC and ADC */ -+ ret = codec_dai->dai_ops.set_sysclk(codec_dai, WM8753_PCMCLK, -+ 12288000, SND_SOC_CLOCK_IN); -+ if (ret < 0) -+ return ret; -+ -+ /* set codec PCM division for sample rate */ -+ ret = codec_dai->dai_ops.set_clkdiv(codec_dai, WM8753_PCMDIV, -+ pcmdiv); -+ if (ret < 0) -+ return ret; -+ -+ /* configue and enable PLL for 12.288MHz output */ -+ ret = codec_dai->dai_ops.set_pll(codec_dai, WM8753_PLL2, -+ iis_clkrate / 4, 12288000); -+ if (ret < 0) -+ return ret; -+ -+ return 0; -+} -+ -+static int neo1973_gta02_voice_hw_free(struct snd_pcm_substream *substream) -+{ -+ struct snd_soc_pcm_runtime *rtd = substream->private_data; -+ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai; -+ -+ /* disable the PLL */ -+ return codec_dai->dai_ops.set_pll(codec_dai, WM8753_PLL2, 0, 0); -+} -+ -+static struct snd_soc_ops neo1973_gta02_voice_ops = { -+ .hw_params = neo1973_gta02_voice_hw_params, -+ .hw_free = neo1973_gta02_voice_hw_free, -+}; -+ -+#define LM4853_AMP 1 -+#define LM4853_SPK 2 -+ -+static u8 lm4853_state=0; -+ -+static int lm4853_set_state(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ int val = ucontrol->value.integer.value[0]; -+ -+ if(val) { -+ lm4853_state |= LM4853_AMP; -+ s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT,0); -+ } else { -+ lm4853_state &= ~LM4853_AMP; -+ s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT,1); -+ } -+ -+ return 0; -+} -+ -+static int lm4853_get_state(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ ucontrol->value.integer.value[0] = lm4853_state & LM4853_AMP; -+ -+ return 0; -+} -+ -+static int lm4853_set_spk(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ int val = ucontrol->value.integer.value[0]; -+ -+ if(val) { -+ lm4853_state |= LM4853_SPK; -+ s3c2410_gpio_setpin(GTA02_GPIO_HP_IN,0); -+ } else { -+ lm4853_state &= ~LM4853_SPK; -+ s3c2410_gpio_setpin(GTA02_GPIO_HP_IN,1); -+ } -+ -+ return 0; -+} -+ -+static int lm4853_get_spk(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ ucontrol->value.integer.value[0] = (lm4853_state & LM4853_SPK) >> 1; -+ -+ return 0; -+} -+ -+static int neo1973_gta02_set_stereo_out(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ int val = ucontrol->value.integer.value[0]; -+ -+ snd_soc_dapm_set_endpoint(codec, "Stereo Out", val); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_get_stereo_out(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ -+ ucontrol->value.integer.value[0] = -+ snd_soc_dapm_get_endpoint(codec, "Stereo Out"); -+ -+ return 0; -+} -+ -+ -+static int neo1973_gta02_set_gsm_out(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ int val = ucontrol->value.integer.value[0]; -+ -+ snd_soc_dapm_set_endpoint(codec, "GSM Line Out", val); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_get_gsm_out(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ -+ ucontrol->value.integer.value[0] = -+ snd_soc_dapm_get_endpoint(codec, "GSM Line Out"); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_set_gsm_in(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ int val = ucontrol->value.integer.value[0]; -+ -+ snd_soc_dapm_set_endpoint(codec, "GSM Line In", val); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_get_gsm_in(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ -+ ucontrol->value.integer.value[0] = -+ snd_soc_dapm_get_endpoint(codec, "GSM Line In"); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_set_headset_mic(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ int val = ucontrol->value.integer.value[0]; -+ -+ snd_soc_dapm_set_endpoint(codec, "Headset Mic", val); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_get_headset_mic(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ -+ ucontrol->value.integer.value[0] = -+ snd_soc_dapm_get_endpoint(codec, "Headset Mic"); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_set_handset_mic(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ int val = ucontrol->value.integer.value[0]; -+ -+ snd_soc_dapm_set_endpoint(codec, "Handset Mic", val); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_get_handset_mic(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ -+ ucontrol->value.integer.value[0] = -+ snd_soc_dapm_get_endpoint(codec, "Handset Mic"); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_set_handset_spk(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ int val = ucontrol->value.integer.value[0]; -+ -+ snd_soc_dapm_set_endpoint(codec, "Handset Spk", val); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ -+ return 0; -+} -+ -+static int neo1973_gta02_get_handset_spk(struct snd_kcontrol *kcontrol, -+ struct snd_ctl_elem_value *ucontrol) -+{ -+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); -+ -+ ucontrol->value.integer.value[0] = -+ snd_soc_dapm_get_endpoint(codec, "Handset Spk"); -+ -+ return 0; -+} -+ -+static const struct snd_soc_dapm_widget wm8753_dapm_widgets[] = { -+ SND_SOC_DAPM_LINE("Stereo Out", NULL), -+ SND_SOC_DAPM_LINE("GSM Line Out", NULL), -+ SND_SOC_DAPM_LINE("GSM Line In", NULL), -+ SND_SOC_DAPM_MIC("Headset Mic", NULL), -+ SND_SOC_DAPM_MIC("Handset Mic", NULL), -+ SND_SOC_DAPM_SPK("Handset Spk", NULL), -+}; -+ -+ -+/* example machine audio_mapnections */ -+static const char* audio_map[][3] = { -+ -+ /* Connections to the lm4853 amp */ -+ {"Stereo Out", NULL, "LOUT1"}, -+ {"Stereo Out", NULL, "ROUT1"}, -+ -+ /* Connections to the GSM Module */ -+ {"GSM Line Out", NULL, "MONO1"}, -+ {"GSM Line Out", NULL, "MONO2"}, -+ {"RXP", NULL, "GSM Line In"}, -+ {"RXN", NULL, "GSM Line In"}, -+ -+ /* Connections to Headset */ -+ {"MIC1", NULL, "Mic Bias"}, -+ {"Mic Bias", NULL, "Headset Mic"}, -+ -+ /* Call Mic */ -+ {"MIC2", NULL, "Mic Bias"}, -+ {"MIC2N", NULL, "Mic Bias"}, -+ {"Mic Bias", NULL, "Handset Mic"}, -+ -+ /* Call Speaker */ -+ {"Handset Spk", NULL, "LOUT2"}, -+ {"Handset Spk", NULL, "ROUT2"}, -+ -+ /* Connect the ALC pins */ -+ {"ACIN", NULL, "ACOP"}, -+ -+ {NULL, NULL, NULL}, -+}; -+ -+static const struct snd_kcontrol_new wm8753_neo1973_gta02_controls[] = { -+ SOC_SINGLE_EXT("DAPM Stereo Out Switch", 0, 0, 1, 0, -+ neo1973_gta02_get_stereo_out, -+ neo1973_gta02_set_stereo_out), -+ SOC_SINGLE_EXT("DAPM GSM Line Out Switch", 1, 0, 1, 0, -+ neo1973_gta02_get_gsm_out, -+ neo1973_gta02_set_gsm_out), -+ SOC_SINGLE_EXT("DAPM GSM Line In Switch", 2, 0, 1, 0, -+ neo1973_gta02_get_gsm_in, -+ neo1973_gta02_set_gsm_in), -+ SOC_SINGLE_EXT("DAPM Headset Mic Switch", 3, 0, 1, 0, -+ neo1973_gta02_get_headset_mic, -+ neo1973_gta02_set_headset_mic), -+ SOC_SINGLE_EXT("DAPM Handset Mic Switch", 4, 0, 1, 0, -+ neo1973_gta02_get_handset_mic, -+ neo1973_gta02_set_handset_mic), -+ SOC_SINGLE_EXT("DAPM Handset Spk Switch", 5, 0, 1, 0, -+ neo1973_gta02_get_handset_spk, -+ neo1973_gta02_set_handset_spk), -+ SOC_SINGLE_EXT("Amp State Switch", 6, 0, 1, 0, -+ lm4853_get_state, -+ lm4853_set_state), -+ SOC_SINGLE_EXT("Amp Spk Switch", 7, 0, 1, 0, -+ lm4853_get_spk, -+ lm4853_set_spk), -+}; -+ -+/* -+ * This is an example machine initialisation for a wm8753 connected to a -+ * neo1973 GTA02. -+ */ -+static int neo1973_gta02_wm8753_init(struct snd_soc_codec *codec) -+{ -+ int i, err; -+ -+ /* set up NC codec pins */ -+ snd_soc_dapm_set_endpoint(codec, "OUT3", 0); -+ snd_soc_dapm_set_endpoint(codec, "OUT4", 0); -+ snd_soc_dapm_set_endpoint(codec, "LINE1", 0); -+ snd_soc_dapm_set_endpoint(codec, "LINE2", 0); -+ -+ /* Add neo1973 gta02 specific widgets */ -+ for (i = 0; i < ARRAY_SIZE(wm8753_dapm_widgets); i++) -+ snd_soc_dapm_new_control(codec, &wm8753_dapm_widgets[i]); -+ -+ /* add neo1973 gta02 specific controls */ -+ for (i = 0; i < ARRAY_SIZE(wm8753_neo1973_gta02_controls); i++) { -+ err = snd_ctl_add(codec->card, -+ snd_soc_cnew(&wm8753_neo1973_gta02_controls[i], -+ codec, NULL)); -+ if (err < 0) -+ return err; -+ } -+ -+ /* set up neo1973 gta02 specific audio path audio_mapnects */ -+ for (i = 0; audio_map[i][0] != NULL; i++) { -+ snd_soc_dapm_connect_input(codec, audio_map[i][0], -+ audio_map[i][1], audio_map[i][2]); -+ } -+ -+ /* set endpoints to default off mode */ -+ snd_soc_dapm_set_endpoint(codec, "Stereo Out", 0); -+ snd_soc_dapm_set_endpoint(codec, "GSM Line Out",0); -+ snd_soc_dapm_set_endpoint(codec, "GSM Line In", 0); -+ snd_soc_dapm_set_endpoint(codec, "Headset Mic", 0); -+ snd_soc_dapm_set_endpoint(codec, "Handset Mic", 0); -+ snd_soc_dapm_set_endpoint(codec, "Handset Spk", 0); -+ -+ snd_soc_dapm_sync_endpoints(codec); -+ return 0; -+} -+ -+/* -+ * BT Codec DAI -+ */ -+static struct snd_soc_cpu_dai bt_dai = -+{ .name = "Bluetooth", -+ .id = 0, -+ .type = SND_SOC_DAI_PCM, -+ .playback = { -+ .channels_min = 1, -+ .channels_max = 1, -+ .rates = SNDRV_PCM_RATE_8000, -+ .formats = SNDRV_PCM_FMTBIT_S16_LE,}, -+ .capture = { -+ .channels_min = 1, -+ .channels_max = 1, -+ .rates = SNDRV_PCM_RATE_8000, -+ .formats = SNDRV_PCM_FMTBIT_S16_LE,}, -+}; -+ -+static struct snd_soc_dai_link neo1973_gta02_dai[] = { -+{ /* Hifi Playback - for similatious use with voice below */ -+ .name = "WM8753", -+ .stream_name = "WM8753 HiFi", -+ .cpu_dai = &s3c24xx_i2s_dai, -+ .codec_dai = &wm8753_dai[WM8753_DAI_HIFI], -+ .init = neo1973_gta02_wm8753_init, -+ .ops = &neo1973_gta02_hifi_ops, -+}, -+{ /* Voice via BT */ -+ .name = "Bluetooth", -+ .stream_name = "Voice", -+ .cpu_dai = &bt_dai, -+ .codec_dai = &wm8753_dai[WM8753_DAI_VOICE], -+ .ops = &neo1973_gta02_voice_ops, -+}, -+}; -+ -+#ifdef CONFIG_PM -+int neo1973_gta02_suspend(struct platform_device *pdev, pm_message_t state) -+{ -+ s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT, 1); -+ -+ return 0; -+} -+ -+int neo1973_gta02_resume(struct platform_device *pdev) -+{ -+ if(lm4853_state & LM4853_AMP) -+ s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT, 0); -+ -+ return 0; -+} -+#else -+#define neo1973_gta02_suspend NULL -+#define neo1973_gta02_resume NULL -+#endif -+ -+static struct snd_soc_machine neo1973_gta02 = { -+ .name = "neo1973-gta02", -+ .suspend_pre = neo1973_gta02_suspend, -+ .resume_post = neo1973_gta02_resume, -+ .dai_link = neo1973_gta02_dai, -+ .num_links = ARRAY_SIZE(neo1973_gta02_dai), -+}; -+ -+static struct wm8753_setup_data neo1973_gta02_wm8753_setup = { -+ .i2c_address = 0x1a, -+}; -+ -+static struct snd_soc_device neo1973_gta02_snd_devdata = { -+ .machine = &neo1973_gta02, -+ .platform = &s3c24xx_soc_platform, -+ .codec_dev = &soc_codec_dev_wm8753, -+ .codec_data = &neo1973_gta02_wm8753_setup, -+}; -+ -+static struct platform_device *neo1973_gta02_snd_device; -+ -+static int __init neo1973_gta02_init(void) -+{ -+ int ret; -+ -+ if (!machine_is_neo1973_gta02()) { -+ printk(KERN_INFO -+ "Only GTA02 hardware supported by ASoc driver\n"); -+ return -ENODEV; -+ } -+ -+ neo1973_gta02_snd_device = platform_device_alloc("soc-audio", -1); -+ if (!neo1973_gta02_snd_device) -+ return -ENOMEM; -+ -+ platform_set_drvdata(neo1973_gta02_snd_device, -+ &neo1973_gta02_snd_devdata); -+ neo1973_gta02_snd_devdata.dev = &neo1973_gta02_snd_device->dev; -+ ret = platform_device_add(neo1973_gta02_snd_device); -+ -+ if (ret) -+ platform_device_put(neo1973_gta02_snd_device); -+ -+ /* Initialise GPIOs used by amp */ -+ s3c2410_gpio_cfgpin(GTA02_GPIO_HP_IN, S3C2410_GPIO_OUTPUT); -+ s3c2410_gpio_cfgpin(GTA02_GPIO_AMP_SHUT, S3C2410_GPIO_OUTPUT); -+ -+ /* Amp off by default */ -+ s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT, 1); -+ -+ /* Speaker off by default */ -+ s3c2410_gpio_setpin(GTA02_GPIO_HP_IN, 1); -+ -+ return ret; -+} -+ -+static void __exit neo1973_gta02_exit(void) -+{ -+ platform_device_unregister(neo1973_gta02_snd_device); -+} -+ -+module_init(neo1973_gta02_init); -+module_exit(neo1973_gta02_exit); -+ -+/* Module information */ -+MODULE_AUTHOR("Graeme Gregory, graeme@openmoko.org"); -+MODULE_DESCRIPTION("ALSA SoC WM8753 Neo1973 GTA02"); -+MODULE_LICENSE("GPL"); -+ -Index: linux-2.6.22/sound/soc/s3c24xx/Kconfig -=================================================================== ---- linux-2.6.22.orig/sound/soc/s3c24xx/Kconfig 2007-11-09 16:13:04.000000000 +0000 -+++ linux-2.6.22/sound/soc/s3c24xx/Kconfig 2007-11-09 16:13:08.000000000 +0000 -@@ -25,6 +25,15 @@ - Say Y if you want to add support for SoC audio on smdk2440 - with the WM8753. - -+config SND_S3C24XX_SOC_NEO1973_GTA02_WM8753 -+ tristate "SoC I2S Audio support for NEO1973 GTA02 - WM8753" -+ depends on SND_S3C24XX_SOC && MACH_NEO1973_GTA02 -+ select SND_S3C24XX_SOC_I2S -+ select SND_SOC_WM8753 -+ help -+ Say Y if you want to add support for SoC audio on neo1973 gta02 -+ with the WM8753 codec -+ - config SND_S3C24XX_SOC_SMDK2443_WM9710 - tristate "SoC AC97 Audio support for SMDK2443 - WM9710" - depends on SND_S3C24XX_SOC && MACH_SMDK2443 -Index: linux-2.6.22/sound/soc/s3c24xx/Makefile -=================================================================== ---- linux-2.6.22.orig/sound/soc/s3c24xx/Makefile 2007-11-09 16:13:04.000000000 +0000 -+++ linux-2.6.22/sound/soc/s3c24xx/Makefile 2007-11-09 16:13:08.000000000 +0000 -@@ -10,6 +10,9 @@ - # S3C24XX Machine Support - snd-soc-neo1973-wm8753-objs := neo1973_wm8753.o - snd-soc-smdk2443-wm9710-objs := smdk2443_wm9710.o -+snd-soc-neo1973-gta02-wm8753-objs := neo1973_gta02_wm8753.o - - obj-$(CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753) += snd-soc-neo1973-wm8753.o - obj-$(CONFIG_SND_S3C24XX_SOC_SMDK2443_WM9710) += snd-soc-smdk2443-wm9710.o -+obj-$(CONFIG_SND_S3C24XX_SOC_NEO1973_GTA02_WM8753) += snd-soc-neo1973-gta02-wm8753.o -+ -Index: linux-2.6.22/include/sound/soc-dapm.h -=================================================================== ---- linux-2.6.22.orig/include/sound/soc-dapm.h 2007-07-09 00:32:17.000000000 +0100 -+++ linux-2.6.22/include/sound/soc-dapm.h 2007-11-09 16:13:08.000000000 +0000 -@@ -206,6 +206,8 @@ - /* dapm audio endpoint control */ - int snd_soc_dapm_set_endpoint(struct snd_soc_codec *codec, - char *pin, int status); -+int snd_soc_dapm_get_endpoint(struct snd_soc_codec *codec, -+ char *pin); - int snd_soc_dapm_sync_endpoints(struct snd_soc_codec *codec); - - /* dapm widget types */ -Index: linux-2.6.22/sound/soc/soc-dapm.c -=================================================================== ---- linux-2.6.22.orig/sound/soc/soc-dapm.c 2007-07-09 00:32:17.000000000 +0100 -+++ linux-2.6.22/sound/soc/soc-dapm.c 2007-11-09 16:13:08.000000000 +0000 -@@ -1305,6 +1305,30 @@ - EXPORT_SYMBOL_GPL(snd_soc_dapm_set_endpoint); - - /** -+ * snd_soc_dapm_get_endpoint - get audio endpoint status -+ * @codec: audio codec -+ * @endpoint: audio signal endpoint (or start point) -+ * -+ * Get audio endpoint status - connected or disconnected. -+ * -+ * Returns status -+ */ -+int snd_soc_dapm_get_endpoint(struct snd_soc_codec *codec, -+ char *endpoint) -+{ -+ struct snd_soc_dapm_widget *w; -+ -+ list_for_each_entry(w, &codec->dapm_widgets, list) { -+ if (!strcmp(w->name, endpoint)) { -+ return w->connected; -+ } -+ } -+ -+ return 0; -+} -+EXPORT_SYMBOL_GPL(snd_soc_dapm_get_endpoint); -+ -+/** - * snd_soc_dapm_free - free dapm resources - * @socdev: SoC device - * diff --git a/packages/linux/linux-openmoko/iis-suspend.patch b/packages/linux/linux-openmoko/iis-suspend.patch deleted file mode 100644 index ab38672463..0000000000 --- a/packages/linux/linux-openmoko/iis-suspend.patch +++ /dev/null @@ -1,63 +0,0 @@ -Index: linux-2.6.22/sound/soc/s3c24xx/s3c24xx-i2s.c -=================================================================== ---- linux-2.6.22.orig/sound/soc/s3c24xx/s3c24xx-i2s.c 2007-11-09 16:13:04.000000000 +0000 -+++ linux-2.6.22/sound/soc/s3c24xx/s3c24xx-i2s.c 2007-11-09 16:17:47.000000000 +0000 -@@ -75,6 +75,10 @@ - struct s3c24xx_i2s_info { - void __iomem *regs; - struct clk *iis_clk; -+ u32 iiscon; -+ u32 iismod; -+ u32 iisfcon; -+ u32 iispsr; - }; - static struct s3c24xx_i2s_info s3c24xx_i2s; - -@@ -404,6 +408,38 @@ - return 0; - } - -+#ifdef CONFIG_PM -+int s3c24xx_i2s_suspend(struct platform_device *pdev, -+ struct snd_soc_cpu_dai *cpu_dai) -+{ -+ s3c24xx_i2s.iiscon=readl(s3c24xx_i2s.regs + S3C2410_IISCON); -+ s3c24xx_i2s.iismod=readl(s3c24xx_i2s.regs + S3C2410_IISMOD); -+ s3c24xx_i2s.iisfcon=readl(s3c24xx_i2s.regs + S3C2410_IISFCON); -+ s3c24xx_i2s.iispsr=readl(s3c24xx_i2s.regs + S3C2410_IISPSR); -+ -+ clk_disable(s3c24xx_i2s.iis_clk); -+ -+ return 0; -+} -+ -+int s3c24xx_i2s_resume(struct platform_device *pdev, -+ struct snd_soc_cpu_dai *cpu_dai) -+{ -+ clk_enable(s3c24xx_i2s.iis_clk); -+ -+ writel(s3c24xx_i2s.iiscon, s3c24xx_i2s.regs + S3C2410_IISCON); -+ writel(s3c24xx_i2s.iismod, s3c24xx_i2s.regs + S3C2410_IISMOD); -+ writel(s3c24xx_i2s.iisfcon, s3c24xx_i2s.regs + S3C2410_IISFCON); -+ writel(s3c24xx_i2s.iispsr, s3c24xx_i2s.regs + S3C2410_IISPSR); -+ -+ return 0; -+} -+#else -+#define s3c24xx_i2s_suspend NULL -+#define s3c24xx_i2s_resume NULL -+#endif -+ -+ - #define S3C24XX_I2S_RATES \ - (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_16000 | \ - SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \ -@@ -414,6 +450,8 @@ - .id = 0, - .type = SND_SOC_DAI_I2S, - .probe = s3c24xx_i2s_probe, -+ .suspend = s3c24xx_i2s_suspend, -+ .resume = s3c24xx_i2s_resume, - .playback = { - .channels_min = 2, - .channels_max = 2, diff --git a/packages/linux/linux-openmoko/s3c24xx-pcm-suspend.patch b/packages/linux/linux-openmoko/s3c24xx-pcm-suspend.patch deleted file mode 100644 index fffc685a4e..0000000000 --- a/packages/linux/linux-openmoko/s3c24xx-pcm-suspend.patch +++ /dev/null @@ -1,73 +0,0 @@ -Index: linux-2.6.22/sound/soc/s3c24xx/s3c24xx-pcm.c -=================================================================== ---- linux-2.6.22.orig/sound/soc/s3c24xx/s3c24xx-pcm.c 2007-11-09 16:28:43.000000000 +0000 -+++ linux-2.6.22/sound/soc/s3c24xx/s3c24xx-pcm.c 2007-11-09 16:33:05.000000000 +0000 -@@ -49,7 +49,9 @@ - .info = SNDRV_PCM_INFO_INTERLEAVED | - SNDRV_PCM_INFO_BLOCK_TRANSFER | - SNDRV_PCM_INFO_MMAP | -- SNDRV_PCM_INFO_MMAP_VALID, -+ SNDRV_PCM_INFO_MMAP_VALID | -+ SNDRV_PCM_INFO_PAUSE | -+ SNDRV_PCM_INFO_RESUME, - .formats = SNDRV_PCM_FMTBIT_S16_LE | - SNDRV_PCM_FMTBIT_U16_LE | - SNDRV_PCM_FMTBIT_U8 | -@@ -176,28 +178,6 @@ - } - } - -- /* channel needs configuring for mem=>device, increment memory addr, -- * sync to pclk, half-word transfers to the IIS-FIFO. */ -- if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { -- s3c2410_dma_devconfig(prtd->params->channel, -- S3C2410_DMASRC_MEM, S3C2410_DISRCC_INC | -- S3C2410_DISRCC_APB, prtd->params->dma_addr); -- -- s3c2410_dma_config(prtd->params->channel, -- prtd->params->dma_size, -- S3C2410_DCON_SYNC_PCLK | -- S3C2410_DCON_HANDSHAKE); -- } else { -- s3c2410_dma_config(prtd->params->channel, -- prtd->params->dma_size, -- S3C2410_DCON_HANDSHAKE | -- S3C2410_DCON_SYNC_PCLK); -- -- s3c2410_dma_devconfig(prtd->params->channel, -- S3C2410_DMASRC_HW, 0x3, -- prtd->params->dma_addr); -- } -- - s3c2410_dma_set_buffdone_fn(prtd->params->channel, - s3c24xx_audio_buffdone); - -@@ -246,6 +226,28 @@ - if (!prtd->params) - return 0; - -+ /* channel needs configuring for mem=>device, increment memory addr, -+ * sync to pclk, half-word transfers to the IIS-FIFO. */ -+ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { -+ s3c2410_dma_devconfig(prtd->params->channel, -+ S3C2410_DMASRC_MEM, S3C2410_DISRCC_INC | -+ S3C2410_DISRCC_APB, prtd->params->dma_addr); -+ -+ s3c2410_dma_config(prtd->params->channel, -+ prtd->params->dma_size, -+ S3C2410_DCON_SYNC_PCLK | -+ S3C2410_DCON_HANDSHAKE); -+ } else { -+ s3c2410_dma_config(prtd->params->channel, -+ prtd->params->dma_size, -+ S3C2410_DCON_HANDSHAKE | -+ S3C2410_DCON_SYNC_PCLK); -+ -+ s3c2410_dma_devconfig(prtd->params->channel, -+ S3C2410_DMASRC_HW, 0x3, -+ prtd->params->dma_addr); -+ } -+ - /* flush the DMA channel */ - s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_FLUSH); - prtd->dma_loaded = 0; diff --git a/packages/linux/linux-openmoko/soc-core-suspend.patch b/packages/linux/linux-openmoko/soc-core-suspend.patch deleted file mode 100644 index 7fb6cc7f7a..0000000000 --- a/packages/linux/linux-openmoko/soc-core-suspend.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 6c868238a5e083dca4d74439a7fd467b5c7726b0 Mon Sep 17 00:00:00 2001 -From: Liam Girdwood <liam@localhost.localdomain> -Date: Fri, 1 Jun 2007 12:56:55 +0100 -Subject: [PATCH] This fixes a bug whereby PCM's were not being suspended when the rest of the audio subsystem was suspended. - ---- - include/sound/soc.h | 3 +++ - sound/soc/soc-core.c | 8 ++++++++ - 2 files changed, 11 insertions(+), 0 deletions(-) - -Index: linux-2.6.22/include/sound/soc.h -=================================================================== ---- linux-2.6.22.orig/include/sound/soc.h 2007-07-09 00:32:17.000000000 +0100 -+++ linux-2.6.22/include/sound/soc.h 2007-11-09 16:13:08.000000000 +0000 -@@ -411,6 +411,9 @@ - - /* codec/machine specific init - e.g. add machine controls */ - int (*init)(struct snd_soc_codec *codec); -+ -+ /* DAI pcm */ -+ struct snd_pcm *pcm; - }; - - /* SoC machine */ -Index: linux-2.6.22/sound/soc/soc-core.c -=================================================================== ---- linux-2.6.22.orig/sound/soc/soc-core.c 2007-07-09 00:32:17.000000000 +0100 -+++ linux-2.6.22/sound/soc/soc-core.c 2007-11-09 16:18:45.000000000 +0000 -@@ -639,6 +639,10 @@ - dai->dai_ops.digital_mute(dai, 1); - } - -+ /* suspend all pcm's */ -+ for(i = 0; i < machine->num_links; i++) -+ snd_pcm_suspend_all(machine->dai_link[i].pcm); -+ - if (machine->suspend_pre) - machine->suspend_pre(pdev, state); - -@@ -873,6 +877,7 @@ - return ret; - } - -+ dai_link->pcm = pcm; - pcm->private_data = rtd; - soc_pcm_ops.mmap = socdev->platform->pcm_ops->mmap; - soc_pcm_ops.pointer = socdev->platform->pcm_ops->pointer; diff --git a/packages/linux/linux-openmoko_2.6.24+git.bb b/packages/linux/linux-openmoko_2.6.24+git.bb index 541fac4dd8..8b32004a0e 100644 --- a/packages/linux/linux-openmoko_2.6.24+git.bb +++ b/packages/linux/linux-openmoko_2.6.24+git.bb @@ -1,13 +1,13 @@ require linux.inc require linux-openmoko.inc -DESCRIPTION = "Linux 2.6.x (development) kernel for FIC SmartPhones shipping w/ Openmoko" +DESCRIPTION = "The Linux kernel for Openmoko SmartPhones" KERNEL_RELEASE = "2.6.24" KERNEL_VERSION = "${KERNEL_RELEASE}" PV = "${KERNEL_RELEASE}+${PR}+gitr${SRCREV}" -PR = "r7" +PR = "r8" SRC_URI = "\ git://git.openmoko.org/git/kernel.git;protocol=git;branch=stable \ @@ -18,8 +18,6 @@ SRC_URI = "\ file://0004-squashfs-Kconfig.patch;patch=1 \ file://0005-squashfs-Makefile.patch;patch=1 \ \ - file://glamo-turbo-mode.patch;patch=1 \ - \ file://defconfig-oe \ " S = "${WORKDIR}/git" diff --git a/packages/mesa/mesa-common-old.inc b/packages/mesa/mesa-common-old.inc new file mode 100644 index 0000000000..18e9b4ebed --- /dev/null +++ b/packages/mesa/mesa-common-old.inc @@ -0,0 +1,9 @@ +SECTION = "x11" + +SRC_URI = "${SOURCEFORGE_MIRROR}/mesa3d/MesaLib-${PV}.tar.bz2 \ + file://mklib-rpath-link.patch;patch=1" +S = "${WORKDIR}/Mesa-${PV}" + +LICENSE = "LGPL" + +DEPENDS = "makedepend-native xf86vidmodeproto glproto virtual/libx11 libxext libxxf86vm libxi libxmu libice" diff --git a/packages/mesa/mesa-common.inc b/packages/mesa/mesa-common.inc index 18e9b4ebed..ebfb920b87 100644 --- a/packages/mesa/mesa-common.inc +++ b/packages/mesa/mesa-common.inc @@ -1,9 +1,24 @@ SECTION = "x11" +DESCRIPTION = "An open source implementation of the OpenGL spec" +HOMEPAGE = "http://mesa3d.org" +LICENSE = "MIT" + SRC_URI = "${SOURCEFORGE_MIRROR}/mesa3d/MesaLib-${PV}.tar.bz2 \ - file://mklib-rpath-link.patch;patch=1" + ${SOURCEFORGE_MIRROR}/mesa3d/MesaDemos-${PV}.tar.bz2 " S = "${WORKDIR}/Mesa-${PV}" -LICENSE = "LGPL" +PROVIDES = "virtual/libgl" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--disable-glu \ + --disable-glw \ + --disable-glut \ + --enable-glx-tls" + +do_stage() { + autotools_stage_all +} + -DEPENDS = "makedepend-native xf86vidmodeproto glproto virtual/libx11 libxext libxxf86vm libxi libxmu libice" diff --git a/packages/mesa/mesa-dri_6.5.2.bb b/packages/mesa/mesa-dri_6.5.2.bb index c39a3eb5b9..f94ea8b3d2 100644 --- a/packages/mesa/mesa-dri_6.5.2.bb +++ b/packages/mesa/mesa-dri_6.5.2.bb @@ -1,4 +1,4 @@ -include mesa-common.inc +include mesa-common-old.inc SRC_URI += " file://mklib-cross.patch;patch=1" diff --git a/packages/mesa/mesa-dri_7.0.3.bb b/packages/mesa/mesa-dri_7.0.3.bb index 7617b87cd7..330efb23af 100644 --- a/packages/mesa/mesa-dri_7.0.3.bb +++ b/packages/mesa/mesa-dri_7.0.3.bb @@ -1,4 +1,4 @@ -include mesa-common.inc +include mesa-common-old.inc # suppress mklib-rpath-link patch from mesa-common SRC_URI = "${SOURCEFORGE_MIRROR}/mesa3d/MesaLib-${PV}.tar.bz2 file://mklib-cross.patch;patch=1" diff --git a/packages/mesa/mesa-dri_7.2.bb b/packages/mesa/mesa-dri_7.2.bb new file mode 100644 index 0000000000..8dfc7f83d3 --- /dev/null +++ b/packages/mesa/mesa-dri_7.2.bb @@ -0,0 +1,28 @@ +include mesa-common.inc + +PROTO_DEPS = "xf86driproto glproto dri2proto" +LIB_DEPS = "libdrm virtual/libx11 libxext libxxf86vm libxdamage libxfixes" + +DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}" + +PE = "1" +PR = "r3" + +# most of our targets do not have DRI so will use mesa-xlib +DEFAULT_PREFERENCE = "-1" + +# ASUS EeePC 901 has DRI support so use mesa-dri by default +DEFAULT_PREFERENCE_eee901 = "1" + +PACKAGES =+ "${PN}-xprogs" + +FILES_${PN} += "${libdir}/dri/*.so" +FILES_${PN}-dbg += "${libdir}/dri/.debug/*" +FILES_${PN}-xprogs = "${bindir}/glxdemo ${bindir}/glxgears ${bindir}/glxheads ${bindir}/glxinfo" + +EXTRA_OECONF += "--with-driver=dri --with-dri-drivers=${MACHINE_DRI_MODULES}" + +do_install_append () { + install -d ${D}/usr/bin + install -m 0755 ${S}/progs/xdemos/{glxdemo,glxgears,glxheads,glxinfo} ${D}/usr/bin/ +} diff --git a/packages/mesa/mesa-dri_git.bb b/packages/mesa/mesa-dri_git.bb new file mode 100644 index 0000000000..d9e61d8a5c --- /dev/null +++ b/packages/mesa/mesa-dri_git.bb @@ -0,0 +1,20 @@ +include mesa-common.inc + +PROTO_DEPS = "xf86driproto glproto dri2proto" +LIB_DEPS = "libdrm virtual/libx11 libxext libxxf86vm libxdamage libxfixes" + +DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}" + +PV = "7.2+git${SRCREV}" +PR = "r1" + +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "git://anongit.freedesktop.org/git/mesa/mesa;protocol=git" +S = "${WORKDIR}/git" + +FILES_${PN} += "${libdir}/dri/*.so" +FILES_${PN}-dbg += "${libdir}/dri/.debug/*" + +EXTRA_OECONF += "--with-driver=dri --with-dri-drivers=${MACHINE_DRI_MODULES}" + diff --git a/packages/mesa/mesa-mesa.inc b/packages/mesa/mesa-mesa.inc index d794f0c097..48d171d50d 100644 --- a/packages/mesa/mesa-mesa.inc +++ b/packages/mesa/mesa-mesa.inc @@ -1,4 +1,4 @@ -include mesa-common.inc +include mesa-common-old.inc PACKAGES =+ "libglu libglu-dev libosmesa libosmesa-dev libgl libgl-dev" diff --git a/packages/mesa/mesa-xlib_7.2.bb b/packages/mesa/mesa-xlib_7.2.bb new file mode 100644 index 0000000000..069446904c --- /dev/null +++ b/packages/mesa/mesa-xlib_7.2.bb @@ -0,0 +1,20 @@ +include mesa-common.inc + +PROTO_DEPS = "xf86driproto glproto" +LIB_DEPS = "virtual/libx11 libxext libxxf86vm libxdamage libxfixes" + +DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}" + +PE = "1" +PR = "r3" + +EXTRA_OECONF += "--with-driver=xlib" + +PACKAGES =+ "${PN}-xprogs" + +FILES_${PN}-xprogs = "${bindir}/glxdemo ${bindir}/glxgears ${bindir}/glxheads ${bindir}/glxinfo" + +do_install_append () { + install -d ${D}/${bindir} + install -m 0755 ${S}/progs/xdemos/{glxdemo,glxgears,glxheads,glxinfo} ${D}/${bindir} +} diff --git a/packages/mesa/mesa_7.2.bb b/packages/mesa/mesa_7.2.bb new file mode 100644 index 0000000000..5f8c4bc892 --- /dev/null +++ b/packages/mesa/mesa_7.2.bb @@ -0,0 +1,2 @@ +# This is a dummy package so OE can use the poky mesa files +require mesa-xlib_${PV}.bb diff --git a/packages/midpath/midpath-common.inc b/packages/midpath/midpath-common.inc index 1690b4fc44..0c320e4408 100644 --- a/packages/midpath/midpath-common.inc +++ b/packages/midpath/midpath-common.inc @@ -5,7 +5,7 @@ LICENSE = "GPL" PRIORITY = "optional" SECTION = "interpreters" -DEPENDS = "virtual/javac-native classpath-native classpath fastjar-native" +DEPENDS = "virtual/javac-native classpath-tools-native classpath fastjar-native" GLIBJ_ZIP = "${STAGING_DATADIR}/classpath/glibj.zip" 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/phoneme/phoneme-advanced.inc b/packages/phoneme/phoneme-advanced.inc index a6b2951517..b5be402ac7 100644 --- a/packages/phoneme/phoneme-advanced.inc +++ b/packages/phoneme/phoneme-advanced.inc @@ -3,7 +3,7 @@ LICENSE = "GPLv2" HOMEPAGE = "https://phoneme.dev.java.net" AUTHOR = "Sun Microsystems, Inc." -DEPENDS = "classpath-native virtual/javac-native linux-libc-headers" +DEPENDS = "classpath-tools-native virtual/javac-native linux-libc-headers" inherit java update-alternatives diff --git a/packages/qpe-nmap/.mtn2git_empty b/packages/qpe-nmap/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/qpe-nmap/.mtn2git_empty diff --git a/packages/qpe-nmap/qpe-nmap_0.02.bb b/packages/qpe-nmap/qpe-nmap_0.02.bb new file mode 100644 index 0000000000..43cd451957 --- /dev/null +++ b/packages/qpe-nmap/qpe-nmap_0.02.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "A frontend for the nmap port scanner, Qt/Embedded Palmtop Environment" +SECTION = "opie/applications" +PRIORITY = "optional" +LICENSE = "GPL" +RDEPENDS = "nmap" +PR = "r0" + +SRC_URI = "http://www.bluelightning.org/qpe-nmap/files/qpe-nmap-${PV}.tar.bz2" + +APPNAME = "qpe-nmap" +APPTYPE = "binary" +APPDESKTOP = "${WORKDIR}" + +S = "${WORKDIR}/qpe-nmap" + +inherit opie + +do_install () { + install -d ${D}${palmtopdir}/pics/${APPNAME}/ + install -m 0644 ${WORKDIR}/qpe-nmap/ipk/opt/QtPalmtop/pics/qpe-nmap.png ${D}${palmtopdir}/pics/ + install -d ${D}${palmtopdir}/apps/Applications/ + install -m 0644 ${WORKDIR}/qpe-nmap/ipk/opt/QtPalmtop/apps/Applications/qpe-nmap.desktop ${D}${palmtopdir}/apps/Applications/ +} + 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/rxtx/rxtx_2.1-7r2.bb b/packages/rxtx/rxtx_2.1-7r2.bb index 0630d498d6..9b4f9fa4fa 100644 --- a/packages/rxtx/rxtx_2.1-7r2.bb +++ b/packages/rxtx/rxtx_2.1-7r2.bb @@ -5,7 +5,7 @@ HOMEPAGE = "http://rxtx.org" PR = "r1" -DEPENDS = "classpath classpath-native virtual/javac-native" +DEPENDS = "classpath classpath-tools-native" inherit autotools java-library diff --git a/packages/sqlitejdbc/sqlitejdbc_041.bb b/packages/sqlitejdbc/sqlitejdbc_041.bb index c2ab0f9b23..ef3fee36fd 100644 --- a/packages/sqlitejdbc/sqlitejdbc_041.bb +++ b/packages/sqlitejdbc/sqlitejdbc_041.bb @@ -12,7 +12,7 @@ S = "${WORKDIR}/${PN}-v${PV}" inherit java-library -DEPENDS = "classpath-native fastjar-native sqlite3 classpath" +DEPENDS = "classpath-tools-native sqlite3 classpath" RDEPENDS_${JPN} = "libsqlitejdbc-jni" do_unpackpost() { 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/swt/swt-gtk.inc b/packages/swt/swt-gtk.inc index 56e77faefa..0bdaaab932 100644 --- a/packages/swt/swt-gtk.inc +++ b/packages/swt/swt-gtk.inc @@ -3,7 +3,7 @@ LICENSE = "CPL MPL LGPL" inherit java-library -DEPENDS = "classpath-native cairo gtk+ atk libxtst" +DEPENDS = "classpath-tools-native cairo gtk+ atk libxtst" S = "${WORKDIR}/swt-source" diff --git a/packages/tangogps/files/0002-Get-GPS-data-via-the-gypsy-interface.patch b/packages/tangogps/files/0002-Get-GPS-data-via-the-gypsy-interface.patch deleted file mode 100644 index d5b673dfca..0000000000 --- a/packages/tangogps/files/0002-Get-GPS-data-via-the-gypsy-interface.patch +++ /dev/null @@ -1,182 +0,0 @@ -From aab817f5f2d66f1ef1e710eb6b698865d14b7fc2 Mon Sep 17 00:00:00 2001 -From: Daniel Willmann <daniel@totalueberwachung.de> -Date: Mon, 21 Jul 2008 04:33:59 +0200 -Subject: [PATCH] Get GPS data via the gypsy interface. - Except for the time (which ogpsd doesn't send periodically) the interface - is implemented. - ---- - configure.in | 2 +- - src/gps_functions.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++ - src/gps_functions.h | 3 +- - src/init.c | 6 ++- - 4 files changed, 103 insertions(+), 4 deletions(-) - -diff --git a/configure.in b/configure.in -index 3661a57..cf06033 100644 ---- a/configure.in -+++ b/configure.in -@@ -23,7 +23,7 @@ AM_GLIB_GNU_GETTEXT - - AM_PROG_LIBTOOL - --PKG_CHECK_MODULES(PACKAGE, [gtk+-2.0 gdk-2.0 gconf-2.0]) -+PKG_CHECK_MODULES(PACKAGE, [gtk+-2.0 gdk-2.0 gconf-2.0 gypsy]) - AC_SUBST(PACKAGE_CFLAGS) - AC_SUBST(PACKAGE_LIBS) - -diff --git a/src/gps_functions.c b/src/gps_functions.c -index bafbc18..57646e1 100644 ---- a/src/gps_functions.c -+++ b/src/gps_functions.c -@@ -4,6 +4,13 @@ - # include <config.h> - #endif - -+#include <gypsy/gypsy-control.h> -+#include <gypsy/gypsy-device.h> -+#include <gypsy/gypsy-position.h> -+#include <gypsy/gypsy-accuracy.h> -+#include <gypsy/gypsy-course.h> -+#include <gypsy/gypsy-satellite.h> -+ - #include <glib.h> - #include <glib/gprintf.h> - -@@ -630,3 +637,92 @@ get_gps() - - - } -+ -+static void on_fix_status_changed(GypsyDevice *device, GypsyDeviceFixStatus status, void *user_data) -+{ -+ gpsdata->fix.mode = status; -+ gpsdata->valid = status > 1; -+} -+ -+static void on_position_changed(GypsyPosition *position, GypsyPositionFields fields_set, -+ int timestamp, double latitude, double longitude, double altitude, void *user_data) -+{ -+ if (gpsdata->valid) { -+ gpsdata->fix.latitude = latitude; -+ gpsdata->fix.longitude = longitude; -+ gpsdata->fix.altitude = altitude; -+ } -+} -+ -+static void on_accuracy_changed(GypsyAccuracy *accuracy, int fields, double pdop, -+ double hdop, double vdop, void *user_data) -+{ -+ gpsdata->hdop = hdop; -+} -+ -+static void on_course_changed(GypsyCourse *course, GypsyCourseFields fields_set, -+ int timestamp, double speed, double direction, double climb, void *user_data) -+{ -+ gpsdata->fix.speed = speed/3.6; -+ gpsdata->fix.track = direction; -+} -+ -+static void on_satellites_changed(GypsySatellite *sat, GPtrArray *sats, void *user_data) -+{ -+ int i; -+ -+ gpsdata->satellites_used = 0; -+ gpsdata->satellites_inview = sats->len; -+ for (i = 0; i < sats->len; i++) { -+ GypsySatelliteDetails *details = sats->pdata[i]; -+ -+ if (details->in_use) { -+ gpsdata->satellites_used++; -+ } -+ } -+} -+ -+// typedef struct { -+// double time; /* Time of update, seconds since Unix epoch */ -+// int mode; /* Mode of fix */ -+// double latitude; /* Latitude in degrees (valid if mode >= 2) */ -+// double longitude; /* Longitude in degrees (valid if mode >= 2) */ -+// double altitude; /* Altitude in meters (valid if mode == 3) */ -+// double track; /* Course made good (relative to true north) */ -+// double speed; /* Speed over ground, meters/sec */ -+// double bearing; /* in radian */ -+// } gps_fix_t; -+// -+// typedef struct { -+// gps_fix_t fix; -+// int satellites_used; -+// int satellites_inview; -+// double hdop; -+// gboolean valid; -+// } gps_data_t; -+ -+ -+#define GYPSY_OBJ_PATH "/org/freedesktop/Gypsy" -+ -+int setup_gypsy() { -+ gpsdata = g_new0(gps_data_t,1); -+ -+ GypsyControl *gyctrl = gypsy_control_get_default(); -+ GypsyDevice *gydevice = gypsy_device_new(GYPSY_OBJ_PATH); -+ GypsyPosition *gypos = gypsy_position_new(GYPSY_OBJ_PATH); -+ GypsyAccuracy *gyacc = gypsy_accuracy_new(GYPSY_OBJ_PATH); -+ GypsyCourse *gycourse = gypsy_course_new(GYPSY_OBJ_PATH); -+ GypsySatellite *gysat = gypsy_satellite_new(GYPSY_OBJ_PATH); -+ -+ g_signal_connect(gydevice, "fix-status-changed", G_CALLBACK(on_fix_status_changed), NULL); -+ g_signal_connect(gypos, "position-changed", G_CALLBACK(on_position_changed), NULL); -+ g_signal_connect(gyacc, "accuracy-changed", G_CALLBACK(on_accuracy_changed), NULL); -+ g_signal_connect(gycourse, "course-changed", G_CALLBACK(on_course_changed), NULL); -+ g_signal_connect(gysat, "satellites-changed", G_CALLBACK(on_satellites_changed), NULL); -+ -+ gpsdata->fix.mode = gypsy_device_get_fix_status(gydevice, NULL); -+ gpsdata->valid = gpsdata->fix.mode > 1; -+ -+ return 1; -+} -+ -diff --git a/src/gps_functions.h b/src/gps_functions.h -index 1090565..207b39f 100644 ---- a/src/gps_functions.h -+++ b/src/gps_functions.h -@@ -1,4 +1,5 @@ -- -+int -+setup_gypsy(); - - void - get_gps(); -diff --git a/src/init.c b/src/init.c -index 46ca583..c557ce4 100644 ---- a/src/init.c -+++ b/src/init.c -@@ -26,7 +26,7 @@ - #include "wp.h" - - FILE *fp = NULL; -- -+int have_gypsy = 0; - - - void -@@ -197,7 +197,8 @@ cb_gps_timer() - - printf("timer called\n"); - -- get_gps(); -+ if (!have_gypsy) -+ get_gps(); - - - if(gpsdata) -@@ -868,5 +869,6 @@ init() - gtk_label_set_text(GTK_LABEL(widget), "V: " VERSION " (C) Marcus Bauer, GPLv2"); - #endif - -+ have_gypsy = setup_gypsy(); - timer = g_timeout_add (1000,cb_gps_timer,data); - } --- -1.5.4.5 - diff --git a/packages/tangogps/files/0003-Try-to-request-the-GPS-resource-from-ousaged.patch b/packages/tangogps/files/0003-Try-to-request-the-GPS-resource-from-ousaged.patch deleted file mode 100644 index 09b2c2ad8a..0000000000 --- a/packages/tangogps/files/0003-Try-to-request-the-GPS-resource-from-ousaged.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 2562a173716141cd9ea5c227dfa52f04ce4205f8 Mon Sep 17 00:00:00 2001 -From: Daniel Willmann <daniel@totalueberwachung.de> -Date: Tue, 22 Jul 2008 00:22:58 +0200 -Subject: [PATCH] Try to request the GPS resource from ousaged - ---- - configure.in | 2 +- - src/gps_functions.c | 22 ++++++++++++++++++++++ - 2 files changed, 23 insertions(+), 1 deletions(-) - -diff --git a/configure.in b/configure.in -index cf06033..2bc3cf9 100644 ---- a/configure.in -+++ b/configure.in -@@ -23,7 +23,7 @@ AM_GLIB_GNU_GETTEXT - - AM_PROG_LIBTOOL - --PKG_CHECK_MODULES(PACKAGE, [gtk+-2.0 gdk-2.0 gconf-2.0 gypsy]) -+PKG_CHECK_MODULES(PACKAGE, [gtk+-2.0 gdk-2.0 gconf-2.0 dbus-glib-1 gypsy]) - AC_SUBST(PACKAGE_CFLAGS) - AC_SUBST(PACKAGE_LIBS) - -diff --git a/src/gps_functions.c b/src/gps_functions.c -index 57646e1..0802e67 100644 ---- a/src/gps_functions.c -+++ b/src/gps_functions.c -@@ -11,6 +11,7 @@ - #include <gypsy/gypsy-course.h> - #include <gypsy/gypsy-satellite.h> - -+#include <dbus/dbus-glib.h> - #include <glib.h> - #include <glib/gprintf.h> - -@@ -705,6 +706,11 @@ static void on_satellites_changed(GypsySatellite *sat, GPtrArray *sats, void *u - #define GYPSY_OBJ_PATH "/org/freedesktop/Gypsy" - - int setup_gypsy() { -+ DBusGConnection *connection; -+ DBusGProxy *proxy; -+ GError *error; -+ int result; -+ - gpsdata = g_new0(gps_data_t,1); - - GypsyControl *gyctrl = gypsy_control_get_default(); -@@ -723,6 +729,22 @@ int setup_gypsy() { - gpsdata->fix.mode = gypsy_device_get_fix_status(gydevice, NULL); - gpsdata->valid = gpsdata->fix.mode > 1; - -+ error = NULL; -+ connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); -+ if (connection == NULL) { -+ g_printerr ("Failed to open connection to bus: %s\n", -+ error->message); -+ g_error_free (error); -+ proxy = NULL; -+ } -+ -+ proxy = dbus_g_proxy_new_for_name (connection, -+ "org.freesmartphone.ousaged", -+ "/org/freesmartphone/Usage", -+ "org.freesmartphone.Usage"); -+ -+ dbus_g_proxy_call (proxy, "RequestResource", &error, G_TYPE_STRING, "GPS", G_TYPE_INVALID, G_TYPE_BOOLEAN, &result, G_TYPE_INVALID); -+ - return 1; - } - --- -1.5.4.5 - diff --git a/packages/tangogps/files/0004-Update-fix-timestamp-from-gypsy.patch b/packages/tangogps/files/0004-Update-fix-timestamp-from-gypsy.patch deleted file mode 100644 index d427108cc7..0000000000 --- a/packages/tangogps/files/0004-Update-fix-timestamp-from-gypsy.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- tangogps-0.9.2/src/gps_functions.c~ 2008-08-15 05:54:26.000000000 +0930 -+++ tangogps-0.9.2/src/gps_functions.c 2008-08-15 23:29:19.000000000 +0930 -@@ -649,6 +649,7 @@ - int timestamp, double latitude, double longitude, double altitude, void *user_data) - { - if (gpsdata->valid) { -+ gpsdata->fix.time = timestamp; - gpsdata->fix.latitude = latitude; - gpsdata->fix.longitude = longitude; - gpsdata->fix.altitude = altitude; -@@ -664,6 +665,7 @@ - static void on_course_changed(GypsyCourse *course, GypsyCourseFields fields_set, - int timestamp, double speed, double direction, double climb, void *user_data) - { -+ gpsdata->fix.time = timestamp; - gpsdata->fix.speed = speed/3.6; - gpsdata->fix.track = direction; - } diff --git a/packages/tangogps/tangogps-fso_0.9.2.bb b/packages/tangogps/tangogps-fso_0.9.2.bb deleted file mode 100644 index 22b65e7f4a..0000000000 --- a/packages/tangogps/tangogps-fso_0.9.2.bb +++ /dev/null @@ -1,11 +0,0 @@ -require tangogps.inc - -PR = "r1" - -RDEPENDS = "frameworkd" - -SRC_URI += "\ - file://0002-Get-GPS-data-via-the-gypsy-interface.patch;patch=1 \ - file://0003-Try-to-request-the-GPS-resource-from-ousaged.patch;patch=1 \ - file://0004-Update-fix-timestamp-from-gypsy.patch;patch=1 \ -" diff --git a/packages/tangogps/tangogps.inc b/packages/tangogps/tangogps.inc index 4c9e427cdd..90789377d1 100644 --- a/packages/tangogps/tangogps.inc +++ b/packages/tangogps/tangogps.inc @@ -4,10 +4,12 @@ HOMEPAGE = "http://tangogps.org/" SECTION = "x11/applications" LICENSE = "GPLv2" PRIORITY = "optional" -DEPENDS = "curl gtk+ gconf gypsy" -RRECOMMENDS = "gpsd" +DEPENDS = "curl gtk+ gconf sqlite3" SRC_URI = "http://www.tangogps.org/downloads/tangogps-${PV}.tar.gz" S = "${WORKDIR}/tangogps-${PV}" inherit autotools pkgconfig + +RRECOMMENDS = "gpsd" + diff --git a/packages/tangogps/tangogps_0.9.0.3.bb b/packages/tangogps/tangogps_0.9.0.3.bb deleted file mode 100644 index a023594b53..0000000000 --- a/packages/tangogps/tangogps_0.9.0.3.bb +++ /dev/null @@ -1,5 +0,0 @@ -require tangogps.inc - -DEPENDS += "gpsd" -RDEPENDS = "gpsd" -PR = "r2" diff --git a/packages/tangogps/tangogps_0.9.3.bb b/packages/tangogps/tangogps_0.9.3.bb index 83465c1da9..59020fd6bd 100644 --- a/packages/tangogps/tangogps_0.9.3.bb +++ b/packages/tangogps/tangogps_0.9.3.bb @@ -1,4 +1,3 @@ require tangogps.inc +PR = "r3" -DEPENDS += "sqlite3" -PR = "r1" 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/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/xkbd/xkbd_0.8.15.bb b/packages/xkbd/xkbd_0.8.15.bb index cd41bc68f1..370d1eaa85 100644 --- a/packages/xkbd/xkbd_0.8.15.bb +++ b/packages/xkbd/xkbd_0.8.15.bb @@ -1,4 +1,4 @@ -SRC_URI = "http://handhelds.org/~mallum/xkbd/xkbd-${PV}-CVS.tar.gz \ +SRC_URI = "http://www.angstrom-distribution.org/unstable/sources/xkbd-${PV}-CVS.tar.gz \ file://libtool-lossage.patch;patch=1;pnum=1 \ file://fix-equalsign.patch;patch=1 \ file://fix-circumkey.patch;patch=1 \ diff --git a/packages/xorg-proto/bigreqsproto-sdk_1.0.2.bb b/packages/xorg-proto/bigreqsproto-sdk_1.0.2.bb new file mode 100644 index 0000000000..057013f92f --- /dev/null +++ b/packages/xorg-proto/bigreqsproto-sdk_1.0.2.bb @@ -0,0 +1,3 @@ +require bigreqsproto_${PV}.bb + +inherit sdk diff --git a/packages/xorg-proto/bigreqsproto_1.0.2.bb b/packages/xorg-proto/bigreqsproto_1.0.2.bb index 9f09fff7b7..ffe3bce8d8 100644 --- a/packages/xorg-proto/bigreqsproto_1.0.2.bb +++ b/packages/xorg-proto/bigreqsproto_1.0.2.bb @@ -2,3 +2,5 @@ require xorg-proto-common.inc PR = "r1" PE = "1" + +XORG_PN = "bigreqsproto" diff --git a/packages/xorg-proto/compositeproto_0.4.bb b/packages/xorg-proto/compositeproto_0.4.bb index f74413c551..b7bb50e579 100644 --- a/packages/xorg-proto/compositeproto_0.4.bb +++ b/packages/xorg-proto/compositeproto_0.4.bb @@ -2,3 +2,5 @@ require xorg-proto-common.inc CONFLICTS = "compositeext" PE = "1" + +XORG_PN = "compositeproto" diff --git a/packages/xorg-proto/damageproto_1.1.0.bb b/packages/xorg-proto/damageproto_1.1.0.bb index 202ec2874f..e7abb316ed 100644 --- a/packages/xorg-proto/damageproto_1.1.0.bb +++ b/packages/xorg-proto/damageproto_1.1.0.bb @@ -3,3 +3,5 @@ require xorg-proto-common.inc CONFLICTS = "damageext" PR = "r1" PE = "1" + +XORG_PN = "damageproto" diff --git a/packages/xorg-proto/fixesproto_4.0.bb b/packages/xorg-proto/fixesproto_4.0.bb index 1bc36e00da..f9bc9d9e3c 100644 --- a/packages/xorg-proto/fixesproto_4.0.bb +++ b/packages/xorg-proto/fixesproto_4.0.bb @@ -3,3 +3,5 @@ require xorg-proto-common.inc CONFLICTS = "fixesext" PR = "r1" PE = "1" + +XORG_PN = "fixesproto" diff --git a/packages/xorg-proto/glproto_1.4.9.bb b/packages/xorg-proto/glproto_1.4.9.bb index 037b4205ca..9f09fff7b7 100644 --- a/packages/xorg-proto/glproto_1.4.9.bb +++ b/packages/xorg-proto/glproto_1.4.9.bb @@ -1,3 +1,4 @@ require xorg-proto-common.inc -DESCRIPTION = "X11 OpenGL extension wire protocol" + +PR = "r1" PE = "1" diff --git a/packages/xorg-proto/inputproto-sdk_1.4.4.bb b/packages/xorg-proto/inputproto-sdk_1.4.4.bb new file mode 100644 index 0000000000..f0e1985bf9 --- /dev/null +++ b/packages/xorg-proto/inputproto-sdk_1.4.4.bb @@ -0,0 +1,3 @@ +require inputproto_${PV}.bb + +inherit sdk diff --git a/packages/xorg-proto/inputproto_1.4.4.bb b/packages/xorg-proto/inputproto_1.4.4.bb new file mode 100644 index 0000000000..e3a8b09f2b --- /dev/null +++ b/packages/xorg-proto/inputproto_1.4.4.bb @@ -0,0 +1,6 @@ +require xorg-proto-common.inc + +PR = "r1" +PE = "1" + +XORG_PN = "inputproto" diff --git a/packages/xorg-proto/kbproto-sdk_1.0.3.bb b/packages/xorg-proto/kbproto-sdk_1.0.3.bb new file mode 100644 index 0000000000..b821e4522e --- /dev/null +++ b/packages/xorg-proto/kbproto-sdk_1.0.3.bb @@ -0,0 +1,3 @@ +require kbproto_${PV}.bb + +inherit sdk diff --git a/packages/xorg-proto/kbproto_1.0.3.bb b/packages/xorg-proto/kbproto_1.0.3.bb index 9f09fff7b7..b3e9ffc365 100644 --- a/packages/xorg-proto/kbproto_1.0.3.bb +++ b/packages/xorg-proto/kbproto_1.0.3.bb @@ -2,3 +2,5 @@ require xorg-proto-common.inc PR = "r1" PE = "1" + +XORG_PN = "kbproto" diff --git a/packages/xorg-proto/printproto_1.0.4.bb b/packages/xorg-proto/printproto_1.0.4.bb index 3637929316..9f09fff7b7 100644 --- a/packages/xorg-proto/printproto_1.0.4.bb +++ b/packages/xorg-proto/printproto_1.0.4.bb @@ -1,3 +1,4 @@ require xorg-proto-common.inc +PR = "r1" PE = "1" diff --git a/packages/xorg-proto/randrproto-sdk_1.2.1.bb b/packages/xorg-proto/randrproto-sdk_1.2.1.bb new file mode 100644 index 0000000000..2759cb00cc --- /dev/null +++ b/packages/xorg-proto/randrproto-sdk_1.2.1.bb @@ -0,0 +1,3 @@ +require randrproto_${PV}.bb + +inherit sdk diff --git a/packages/xorg-proto/randrproto_1.2.1.bb b/packages/xorg-proto/randrproto_1.2.1.bb index eb8c7e0147..85000cc900 100644 --- a/packages/xorg-proto/randrproto_1.2.1.bb +++ b/packages/xorg-proto/randrproto_1.2.1.bb @@ -3,3 +3,5 @@ require xorg-proto-common.inc CONFLICTS = "randrext" PR = "r1" PE = "1" + +XORG_PN = "randrproto" diff --git a/packages/xorg-proto/renderproto-sdk_0.9.2.bb b/packages/xorg-proto/renderproto-sdk_0.9.2.bb new file mode 100644 index 0000000000..25ab90827f --- /dev/null +++ b/packages/xorg-proto/renderproto-sdk_0.9.2.bb @@ -0,0 +1,3 @@ +require renderproto_${PV}.bb + +inherit sdk diff --git a/packages/xorg-proto/renderproto_0.9.2.bb b/packages/xorg-proto/renderproto_0.9.2.bb index 39f4b66be7..d4e0983a8b 100644 --- a/packages/xorg-proto/renderproto_0.9.2.bb +++ b/packages/xorg-proto/renderproto_0.9.2.bb @@ -3,3 +3,5 @@ require xorg-proto-common.inc CONFLICTS = "renderext" PR = "r1" PE = "1" + +XORG_PN = "renderproto" diff --git a/packages/xorg-proto/xcmiscproto-sdk_1.1.2.bb b/packages/xorg-proto/xcmiscproto-sdk_1.1.2.bb new file mode 100644 index 0000000000..83c31204d2 --- /dev/null +++ b/packages/xorg-proto/xcmiscproto-sdk_1.1.2.bb @@ -0,0 +1,3 @@ +require xcmiscproto_${PV}.bb + +inherit sdk diff --git a/packages/xorg-proto/xcmiscproto_1.1.2.bb b/packages/xorg-proto/xcmiscproto_1.1.2.bb index 9f09fff7b7..8f48ecd9cd 100644 --- a/packages/xorg-proto/xcmiscproto_1.1.2.bb +++ b/packages/xorg-proto/xcmiscproto_1.1.2.bb @@ -2,3 +2,5 @@ require xorg-proto-common.inc PR = "r1" PE = "1" + +XORG_PN = "xcmiscproto" diff --git a/packages/xorg-proto/xextproto-sdk_7.0.2.bb b/packages/xorg-proto/xextproto-sdk_7.0.2.bb new file mode 100644 index 0000000000..3b182a02ff --- /dev/null +++ b/packages/xorg-proto/xextproto-sdk_7.0.2.bb @@ -0,0 +1,3 @@ +require xextproto_${PV}.bb + +inherit sdk diff --git a/packages/xorg-proto/xextproto_7.0.2.bb b/packages/xorg-proto/xextproto_7.0.2.bb index 9f09fff7b7..829d3cbe1e 100644 --- a/packages/xorg-proto/xextproto_7.0.2.bb +++ b/packages/xorg-proto/xextproto_7.0.2.bb @@ -2,3 +2,5 @@ require xorg-proto-common.inc PR = "r1" PE = "1" + +XORG_PN = "xextproto" diff --git a/packages/xorg-proto/xf86bigfontproto-sdk_1.1.2.bb b/packages/xorg-proto/xf86bigfontproto-sdk_1.1.2.bb new file mode 100644 index 0000000000..32b6280c04 --- /dev/null +++ b/packages/xorg-proto/xf86bigfontproto-sdk_1.1.2.bb @@ -0,0 +1,3 @@ +require xf86bigfontproto_${PV}.bb + +inherit sdk diff --git a/packages/xorg-proto/xf86bigfontproto_1.1.2.bb b/packages/xorg-proto/xf86bigfontproto_1.1.2.bb index 9f09fff7b7..f29fdb84a7 100644 --- a/packages/xorg-proto/xf86bigfontproto_1.1.2.bb +++ b/packages/xorg-proto/xf86bigfontproto_1.1.2.bb @@ -2,3 +2,5 @@ require xorg-proto-common.inc PR = "r1" PE = "1" + +XORG_PN = "xf86bigfontproto" diff --git a/packages/xorg-proto/xproto-sdk_7.0.12.bb b/packages/xorg-proto/xproto-sdk_7.0.12.bb new file mode 100644 index 0000000000..1c1a934bb0 --- /dev/null +++ b/packages/xorg-proto/xproto-sdk_7.0.12.bb @@ -0,0 +1,3 @@ +require xproto_${PV}.bb + +inherit sdk diff --git a/packages/xorg-xserver/xserver-kdrive-glamo_1.3.0.0+git.bb b/packages/xorg-xserver/xserver-kdrive-glamo_1.3.0.0+git.bb index cb29cfdf34..77c36086df 100644 --- a/packages/xorg-xserver/xserver-kdrive-glamo_1.3.0.0+git.bb +++ b/packages/xorg-xserver/xserver-kdrive-glamo_1.3.0.0+git.bb @@ -6,12 +6,12 @@ DEPENDS = "compositeproto damageproto fixesproto recordproto resourceproto \ libxau libxext libxdmcp libxfont libxrandr tslib virtual/libx11 \ xtrans libxkbfile libxcalibrate" DEPENDS += "libxkbfile libxcalibrate" -RDEPENDS_${PN} = "xserver-kdrive" +RDEPENDS_${PN} = "xserver-security-policy" PROVIDES = "virtual/xserver" PE = "1" PV = "1.3.0.0+gitr${SRCREV}" -PR = "r1" +PR = "r2" COMPATIBLE_HOST = "arm.*-linux" COMPATIBLE_MACHINE = 'om-gta02' diff --git a/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb b/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb index aef08c8e5e..3a042db0d1 100644 --- a/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb +++ b/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb @@ -7,7 +7,7 @@ DEPENDS += "libxkbfile libxcalibrate" PROVIDES = "virtual/xserver" PE = "1" -PR = "r5" +PR = "r6" FILESPATH = "${FILE_DIRNAME}/xserver-kdrive-${PV}:${FILE_DIRNAME}/xserver-kdrive:${FILE_DIRNAME}/files" SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ 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 |