aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/alsa
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/alsa
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
downloadopenembedded-709c4d66e0b107ca606941b988bad717c0b45d9b.tar.gz
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/alsa')
-rw-r--r--recipes/alsa/alsa-driver/adriver.h.patch23
-rw-r--r--recipes/alsa/alsa-driver/h5400.patch12
-rw-r--r--recipes/alsa/alsa-driver/sa11xx.patch38
-rw-r--r--recipes/alsa/alsa-driver/sound.p.patch59
-rw-r--r--recipes/alsa/alsa-driver_0.9.6-hh4c.bb83
-rw-r--r--recipes/alsa/alsa-fpu.inc6
-rw-r--r--recipes/alsa/alsa-lib/fix-tstamp-declaration.patch13
-rw-r--r--recipes/alsa/alsa-lib/fix_libmath.patch17
-rw-r--r--recipes/alsa/alsa-lib/unbreak_plugindir.patch12
-rw-r--r--recipes/alsa/alsa-lib_1.0.11.bb41
-rw-r--r--recipes/alsa/alsa-lib_1.0.13.bb42
-rw-r--r--recipes/alsa/alsa-lib_1.0.14.bb47
-rw-r--r--recipes/alsa/alsa-lib_1.0.15.bb54
-rw-r--r--recipes/alsa/alsa-lib_1.0.17.bb48
-rw-r--r--recipes/alsa/alsa-lib_1.0.18.bb48
-rw-r--r--recipes/alsa/alsa-oss_1.0.11.bb19
-rw-r--r--recipes/alsa/alsa-oss_1.0.14.bb17
-rw-r--r--recipes/alsa/alsa-oss_1.0.15.bb22
-rw-r--r--recipes/alsa/alsa-oss_1.0.17.bb20
-rw-r--r--recipes/alsa/alsa-plugins_1.0.15.bb20
-rw-r--r--recipes/alsa/alsa-plugins_1.0.17.bb20
-rw-r--r--recipes/alsa/alsa-plugins_1.0.18.bb20
-rw-r--r--recipes/alsa/alsa-scenario_git.bb13
-rw-r--r--recipes/alsa/alsa-state.bb58
-rw-r--r--recipes/alsa/alsa-state/a780/gsmhandset.state55
-rw-r--r--recipes/alsa/alsa-state/a780/gsmheadset.state55
-rw-r--r--recipes/alsa/alsa-state/a780/stereoout.state55
-rw-r--r--recipes/alsa/alsa-state/akita/asound.state619
-rwxr-xr-xrecipes/alsa/alsa-state/alsa-state29
-rw-r--r--recipes/alsa/alsa-state/asound.conf12
-rw-r--r--recipes/alsa/alsa-state/asound.state1
-rw-r--r--recipes/alsa/alsa-state/at91sam9263ek/asound.conf2
-rw-r--r--recipes/alsa/alsa-state/at91sam9263ek/asound.state283
-rw-r--r--recipes/alsa/alsa-state/c7x0/asound.state150
-rw-r--r--recipes/alsa/alsa-state/hx4700/asound.state37
-rw-r--r--recipes/alsa/alsa-state/magician/asound.state202
-rw-r--r--recipes/alsa/alsa-state/nokia800/asound.state105
-rw-r--r--recipes/alsa/alsa-state/spitz/asound.state619
-rw-r--r--recipes/alsa/alsa-state/tosa/asound.state769
-rw-r--r--recipes/alsa/alsa-utils_1.0.11.bb55
-rw-r--r--recipes/alsa/alsa-utils_1.0.13.bb63
-rw-r--r--recipes/alsa/alsa-utils_1.0.14.bb56
-rw-r--r--recipes/alsa/alsa-utils_1.0.15.bb57
-rw-r--r--recipes/alsa/alsa-utils_1.0.17.bb63
-rw-r--r--recipes/alsa/alsa-utils_1.0.18.bb66
-rw-r--r--recipes/alsa/alsa-versym.inc6
-rw-r--r--recipes/alsa/files/alsa-utils-autoconf-strl-funcs.patch43
-rw-r--r--recipes/alsa/files/alsa-utils-automake.patch10
-rw-r--r--recipes/alsa/files/alsa-utils-remove-xmlto.patch15
-rw-r--r--recipes/alsa/files/alsa-utils-sys-siglist.patch15
-rw-r--r--recipes/alsa/files/libio.patch43
51 files changed, 4237 insertions, 0 deletions
diff --git a/recipes/alsa/alsa-driver/adriver.h.patch b/recipes/alsa/alsa-driver/adriver.h.patch
new file mode 100644
index 0000000000..cd648838c0
--- /dev/null
+++ b/recipes/alsa/alsa-driver/adriver.h.patch
@@ -0,0 +1,23 @@
+--- ./include/adriver.h.orig 2003-09-22 22:04:21.000000000 +0200
++++ ./include/adriver.h 2005-06-26 10:33:15.000000000 +0200
+@@ -328,8 +328,18 @@
+ #endif /* SND_NEED_USB_WRAPPER && CONFIG_USB */
+
+ /* workqueue-alike; 2.5.45 */
+-#include <linux/workqueue.h>
++#include <linux/workqueue.h>
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 45) && !defined(__WORK_INITIALIZER)
++#ifdef work_struct
++#undef work_struct
++#endif
++#ifdef INIT_WORK
++#undef INIT_WORK
++#endif
++#ifdef schedule_work
++#undef schedule_work
++#endif
++
+ struct work_struct {
+ void (*func)(void *);
+ void *data;
+
diff --git a/recipes/alsa/alsa-driver/h5400.patch b/recipes/alsa/alsa-driver/h5400.patch
new file mode 100644
index 0000000000..e156708783
--- /dev/null
+++ b/recipes/alsa/alsa-driver/h5400.patch
@@ -0,0 +1,12 @@
+--- ./alsa-kernel/arm/h5400-ak4535.c.orig 2005-06-26 22:12:57.000000000 +0200
++++ ./alsa-kernel/arm/h5400-ak4535.c 2005-06-26 22:13:08.000000000 +0200
+@@ -36,7 +36,7 @@
+ #include <asm/arch-sa1100/h3600_hal.h>
+ #include <asm/arch-sa1100/h3600_asic.h>
+ #include <asm/arch-pxa/h5400-asic.h>
+-#include <asm/arch-pxa/pxa-i2s.h>
++#include <drivers/sound/pxa-i2s.h>
+
+ #include <sound/core.h>
+ #include <sound/pcm.h>
+
diff --git a/recipes/alsa/alsa-driver/sa11xx.patch b/recipes/alsa/alsa-driver/sa11xx.patch
new file mode 100644
index 0000000000..34509b13b0
--- /dev/null
+++ b/recipes/alsa/alsa-driver/sa11xx.patch
@@ -0,0 +1,38 @@
+--- ./alsa-kernel/arm/sa11xx-uda1341.c 2005-06-27 12:59:53.000000000 +0200
++++ ./alsa-kernel/arm/sa11xx-uda1341.c.orig 2005-06-27 12:59:29.000000000 +0200
+@@ -366,7 +366,7 @@
+ DEBUG("\t request id <%s>\n", s->id);
+ DEBUG("\t request dma_dev = 0x%x \n", s->dma_dev);
+ if((ret = sa1100_request_dma((s)->dma_dev, (s)->id, callback, s, &((s)->dma_regs))))
+- printk(__FUNCTION__ ": sa1100_request_dma returned %d\n",ret);
++ printk("%s: sa1100_request_dma returned %d\n",__FUNCTION__,ret);
+
+
+
+@@ -978,7 +978,7 @@
+ switch (req) {
+ case PM_SUSPEND: /* enter D1-D3 */
+ if (card->power_state == SNDRV_CTL_POWER_D3hot){
+- printk(__FUNCTION__ ": exiting eraly from suspend\n");
++ printk("%s: exiting eraly from suspend\n",__FUNCTION__);
+ return 0;
+ }
+ snd_power_lock(card);
+@@ -1002,7 +1002,7 @@
+ case PM_RESUME: /* enter D0 */
+
+ if (card->power_state == SNDRV_CTL_POWER_D0){
+- printk(__FUNCTION__ ": exiting eraly from resume\n");
++ printk("%s: exiting eraly from resume\n",__FUNCTION__);
+ return 0;
+ }
+ snd_power_lock(card);
+@@ -1020,7 +1020,7 @@
+
+ break;
+ }
+- printk(KERN_DEBUG __FUNCTION__": exiting...\n");
++ printk(KERN_DEBUG "%s: exiting...\n",__FUNCTION__);
+ return 0;
+
+ }
diff --git a/recipes/alsa/alsa-driver/sound.p.patch b/recipes/alsa/alsa-driver/sound.p.patch
new file mode 100644
index 0000000000..38b073c8bd
--- /dev/null
+++ b/recipes/alsa/alsa-driver/sound.p.patch
@@ -0,0 +1,59 @@
+--- ./acore/sound.patch.orig 2003-07-03 16:05:15.000000000 +0200
++++ ./acore/sound.patch 2005-06-26 09:45:05.000000000 +0200
+@@ -1,6 +1,26 @@
+---- sound.c 2003-05-30 15:29:14.000000000 +0200
+-+++ sound.c.old 2003-05-30 15:30:11.000000000 +0200
+-@@ -154,7 +154,9 @@
++--- sound.c.orig 2005-06-25 23:33:07.000000000 +0200
+++++ sound.c 2005-06-25 23:33:07.000000000 +0200
++@@ -77,6 +77,7 @@
++ void snd_request_card(int card)
++ {
++ int locked;
+++ char *str;
++
++ read_lock(&snd_card_rwlock);
++ locked = snd_cards_lock & (1 << card);
++@@ -85,7 +86,10 @@
++ return;
++ if (card < 0 || card >= cards_limit)
++ return;
++- request_module("snd-card-%i", card);
+++ str = kmalloc(15,GFP_KERNEL);
+++ snprintf(str,15,"snd-card-%i",card);
+++ request_module(str);
+++ kfree(str);
++ }
++
++ static void snd_request_other(int minor)
++@@ -154,7 +158,9 @@
+
+ struct file_operations snd_fops =
+ {
+@@ -10,7 +30,7 @@
+ .open = snd_open
+ };
+
+-@@ -364,6 +366,9 @@
++@@ -364,6 +370,9 @@
+ #ifndef MODULE
+ printk(KERN_INFO "Advanced Linux Sound Architecture Driver Version " CONFIG_SND_VERSION CONFIG_SND_DATE ".\n");
+ #endif
+@@ -20,7 +40,7 @@
+ return 0;
+ }
+
+-@@ -378,6 +383,9 @@
++@@ -378,6 +387,9 @@
+ snd_info_minor_unregister();
+ #endif
+ snd_info_done();
+@@ -30,7 +50,7 @@
+ #ifdef CONFIG_SND_DEBUG_MEMORY
+ snd_memory_done();
+ #endif
+-@@ -490,3 +498,5 @@
++@@ -508,3 +520,5 @@
+ EXPORT_SYMBOL(snd_wrapper_vmalloc);
+ EXPORT_SYMBOL(snd_wrapper_vfree);
+ #endif
diff --git a/recipes/alsa/alsa-driver_0.9.6-hh4c.bb b/recipes/alsa/alsa-driver_0.9.6-hh4c.bb
new file mode 100644
index 0000000000..53d898d030
--- /dev/null
+++ b/recipes/alsa/alsa-driver_0.9.6-hh4c.bb
@@ -0,0 +1,83 @@
+# needs a gcc4 fix
+BROKEN = "1"
+
+COMPATIBLE_MACHINE = "(h3600|h3900)"
+
+DESCRIPTION = "Alsa Drivers"
+SECTION = "base"
+LICENSE = "GPL"
+PR = "r6"
+
+DEPENDS += "fakeroot-native"
+
+SRC_URI = "ftp://ftp.handhelds.org/packages/alsa-driver/alsa-driver-${PV}.tar.gz \
+ file://sound.p.patch;patch=1 \
+ file://h5400.patch;patch=1 \
+ file://sa11xx.patch;patch=1 \
+ file://adriver.h.patch;patch=1"
+
+inherit autotools module
+
+EXTRA_OECONF = "--with-sequencer=yes \
+ --with-isapnp=no \
+ --with-oss=yes \
+ --with-kernel=${STAGING_KERNEL_DIR} \
+ --with-kernel-version=${KERNEL_VERSION}"
+
+PACKAGES =+ "${PN}-midi ${PN}-misc"
+FILES_${PN} = "/lib/modules/*/misc/snd* \
+ ${sysconfdir}/modutils/*"
+midi_modules = "snd-seq-midi-emul.o \
+ snd-seq-midi-event.o \
+ snd-seq-midi.o \
+ snd-seq-virmidi.o \
+ snd-seq-oss.o"
+FILES_${PN}-midi = "${@' '.join(map ((lambda x: '/lib/modules/*/misc/%s' % x), bb.data.getVar('midi_modules', d).split()))}"
+misc_modules = "snd-gus-synth.o \
+ snd-emu8000-synth.o \
+ snd-emux-synth.o \
+ snd-ainstr-fm.o \
+ snd-ainstr-gf1.o \
+ snd-ainstr-iw.o \
+ snd-ainstr-simple.o"
+FILES_${PN}-misc = "${@' '.join(map ((lambda x: '/lib/modules/*/misc/%s' % x), bb.data.getVar('misc_modules', d).split()))}"
+
+# put in-kernel headers first in the include search path.
+# without this all configure checks fail
+CFLAGS =+ "-I${STAGING_KERNEL_DIR}/include"
+
+do_configure() {
+
+cards=
+if egrep "CONFIG_SA1100_H3[168]00=y" "${STAGING_KERNEL_DIR}/.config" ; then
+ cards="$cards,sa11xx-uda1341"
+ familiar_arch=ipaqsa
+fi
+if grep "CONFIG_ARCH_H3900=y" "${STAGING_KERNEL_DIR}/.config" ; then
+ cards="$cards,pxa-uda1380,h5400-ak4535"
+ familiar_arch=ipaqpxa
+fi
+cards="$cards,bluez-sco,pdaudiocf"
+
+ oe_runconf --with-cards=${cards}
+}
+
+
+do_install() {
+
+if egrep "CONFIG_SA1100_H3[168]00=y" "${STAGING_KERNEL_DIR}/.config" ; then
+ familiar_arch=ipaqsa
+fi
+if grep "CONFIG_ARCH_H3900=y" "${STAGING_KERNEL_DIR}/.config" ; then
+ familiar_arch=ipaqpxa
+fi
+
+ fakeroot make -k NODEPMOD=yes DESTDIR=${D} install;
+
+ if [ -d ${D}${sysconfdir}/modutils/ ] ; then
+ rm -r ${D}${sysconfdir}/modutils/ ;
+ fi
+ mkdir -p ${D}${sysconfdir}/modutils/
+ cp familiar/alsa-modules-${familiar_arch} ${D}${sysconfdir}/modutils/
+}
+
diff --git a/recipes/alsa/alsa-fpu.inc b/recipes/alsa/alsa-fpu.inc
new file mode 100644
index 0000000000..ebd3493e6c
--- /dev/null
+++ b/recipes/alsa/alsa-fpu.inc
@@ -0,0 +1,6 @@
+
+def get_alsa_fpu_setting(bb, d):
+ if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
+ return "--with-softfloat"
+ return ""
+
diff --git a/recipes/alsa/alsa-lib/fix-tstamp-declaration.patch b/recipes/alsa/alsa-lib/fix-tstamp-declaration.patch
new file mode 100644
index 0000000000..59b3b6d150
--- /dev/null
+++ b/recipes/alsa/alsa-lib/fix-tstamp-declaration.patch
@@ -0,0 +1,13 @@
+Index: alsa-lib-1.0.13/include/global.h
+===================================================================
+--- alsa-lib-1.0.13.orig/include/global.h
++++ alsa-lib-1.0.13/include/global.h
+@@ -29,6 +29,8 @@
+ #define __ALSA_GLOBAL_H_
+
+ /* for timeval and timespec */
++#define __need_timeval
++#define __need_timespec
+ #include <time.h>
+
+ #ifdef __cplusplus
diff --git a/recipes/alsa/alsa-lib/fix_libmath.patch b/recipes/alsa/alsa-lib/fix_libmath.patch
new file mode 100644
index 0000000000..23309ce381
--- /dev/null
+++ b/recipes/alsa/alsa-lib/fix_libmath.patch
@@ -0,0 +1,17 @@
+Index: alsa-lib-1.0.15/configure.in
+===================================================================
+--- alsa-lib-1.0.15.orig/configure.in 2007-10-15 10:45:26.000000000 +0200
++++ alsa-lib-1.0.15/configure.in 2008-07-19 15:51:34.177119589 +0200
+@@ -191,9 +191,9 @@
+ AC_MSG_RESULT(no)
+ fi
+
+-ALSA_DEPLIBS=""
+-if test "$softfloat" != "yes"; then
+- ALSA_DEPLIBS="-lm"
++ALSA_DEPLIBS="-lm"
++if test "$softfloat" = "yes"; then
++ AC_CHECK_LIB([m], [floor], , [ALSA_DEPLIBS=""])
+ fi
+
+ dnl Check for libdl
diff --git a/recipes/alsa/alsa-lib/unbreak_plugindir.patch b/recipes/alsa/alsa-lib/unbreak_plugindir.patch
new file mode 100644
index 0000000000..7d13166809
--- /dev/null
+++ b/recipes/alsa/alsa-lib/unbreak_plugindir.patch
@@ -0,0 +1,12 @@
+diff -Nur alsa-lib-1.0.14.orig/configure.in alsa-lib-1.0.14/configure.in
+--- alsa-lib-1.0.14.orig/configure.in 2007-05-31 03:05:13.000000000 -0500
++++ alsa-lib-1.0.14/configure.in 2007-08-18 13:05:49.000000000 -0500
+@@ -93,7 +93,7 @@
+ esac
+ plugindir="$dir/$PACKAGE"
+ fi
+-AC_DEFINE_UNQUOTED(ALSA_PLUGIN_DIR, "plugindir", [directory containing ALSA add-on modules])
++AC_DEFINE_UNQUOTED(ALSA_PLUGIN_DIR, "${plugindir}", [directory containing ALSA add-on modules])
+ ALSA_PLUGIN_DIR="$plugindir"
+ AC_SUBST(ALSA_PLUGIN_DIR)
+
diff --git a/recipes/alsa/alsa-lib_1.0.11.bb b/recipes/alsa/alsa-lib_1.0.11.bb
new file mode 100644
index 0000000000..b9169e608f
--- /dev/null
+++ b/recipes/alsa/alsa-lib_1.0.11.bb
@@ -0,0 +1,41 @@
+DESCRIPTION = "Alsa sound library"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "libs/multimedia"
+LICENSE = "GPL"
+PR = "r4"
+
+# configure.in sets -D__arm__ on the command line for any arm system
+# (not just those with the ARM instruction set), this should be removed,
+# (or replaced by a permitted #define).
+#FIXME: remove the following
+ARM_INSTRUCTION_SET = "arm"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes"
+
+do_stage() {
+ oe_libinstall -so -C src libasound ${STAGING_LIBDIR}/
+ install -d ${STAGING_INCDIR}/alsa/sound
+ install -m 0644 include/*.h ${STAGING_INCDIR}/alsa/
+ install -m 0644 include/sound/ainstr*.h ${STAGING_INCDIR}/alsa/sound/
+ install -d ${STAGING_DATADIR}/aclocal
+ install -m 0644 utils/alsa.m4 ${STAGING_DATADIR}/aclocal/
+}
+
+PACKAGES =+ "alsa-server libasound alsa-conf-base alsa-conf alsa-doc alsa-dev"
+FILES_${PN}-dbg += "${libdir}/alsa-lib/*/.debu*"
+FILES_libasound = "${libdir}/libasound.so*"
+FILES_alsa-server = "${bindir}/*"
+FILES_alsa-conf = "${datadir}/alsa/"
+FILES_alsa-dev = "${libdir}/pkgconfig/ /usr/include/ ${datadir}/aclocal/*"
+FILES_alsa-conf-base = "\
+${datadir}/alsa/alsa.conf \
+${datadir}/alsa/cards/aliases.conf \
+${datadir}/alsa/pcm/default.conf \
+${datadir}/alsa/pcm/dmix.conf \
+${datadir}/alsa/pcm/dsnoop.conf"
+
+RDEPENDS_libasound = "alsa-conf-base"
diff --git a/recipes/alsa/alsa-lib_1.0.13.bb b/recipes/alsa/alsa-lib_1.0.13.bb
new file mode 100644
index 0000000000..860ef11f18
--- /dev/null
+++ b/recipes/alsa/alsa-lib_1.0.13.bb
@@ -0,0 +1,42 @@
+DESCRIPTION = "Alsa sound library"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "libs/multimedia"
+LICENSE = "GPL"
+PR = "r4"
+
+# configure.in sets -D__arm__ on the command line for any arm system
+# (not just those with the ARM instruction set), this should be removed,
+# (or replaced by a permitted #define).
+#FIXME: remove the following
+ARM_INSTRUCTION_SET = "arm"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \
+ file://fix-tstamp-declaration.patch;patch=1"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes"
+
+do_stage() {
+ oe_libinstall -so -C src libasound ${STAGING_LIBDIR}/
+ install -d ${STAGING_INCDIR}/alsa/sound
+ install -m 0644 include/*.h ${STAGING_INCDIR}/alsa/
+ install -m 0644 include/sound/ainstr*.h ${STAGING_INCDIR}/alsa/sound/
+ install -d ${STAGING_DATADIR}/aclocal
+ install -m 0644 utils/alsa.m4 ${STAGING_DATADIR}/aclocal/
+}
+
+PACKAGES =+ "alsa-server libasound alsa-conf-base alsa-conf alsa-doc alsa-dev"
+FILES_${PN}-dbg += "${libdir}/alsa-lib/*/.debu*"
+FILES_libasound = "${libdir}/libasound.so.*"
+FILES_alsa-server = "${bindir}/*"
+FILES_alsa-conf = "${datadir}/alsa/"
+FILES_alsa-dev += "${libdir}/pkgconfig/ /usr/include/ ${datadir}/aclocal/*"
+FILES_alsa-conf-base = "\
+${datadir}/alsa/alsa.conf \
+${datadir}/alsa/cards/aliases.conf \
+${datadir}/alsa/pcm/default.conf \
+${datadir}/alsa/pcm/dmix.conf \
+${datadir}/alsa/pcm/dsnoop.conf"
+
+RDEPENDS_libasound = "alsa-conf-base"
diff --git a/recipes/alsa/alsa-lib_1.0.14.bb b/recipes/alsa/alsa-lib_1.0.14.bb
new file mode 100644
index 0000000000..ba46342ae7
--- /dev/null
+++ b/recipes/alsa/alsa-lib_1.0.14.bb
@@ -0,0 +1,47 @@
+DESCRIPTION = "Alsa sound library"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "libs/multimedia"
+LICENSE = "GPL"
+
+PR = "r2"
+
+# configure.in sets -D__arm__ on the command line for any arm system
+# (not just those with the ARM instruction set), this should be removed,
+# (or replaced by a permitted #define).
+#FIXME: remove the following
+ARM_INSTRUCTION_SET = "arm"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \
+ file://fix-tstamp-declaration.patch;patch=1 \
+ file://unbreak_plugindir.patch;patch=1"
+
+inherit autotools pkgconfig
+
+require alsa-fpu.inc
+EXTRA_OECONF += "${@get_alsa_fpu_setting(bb, d)} "
+
+EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes"
+
+do_stage () {
+ oe_libinstall -so -C src libasound ${STAGING_LIBDIR}/
+ install -d ${STAGING_INCDIR}/alsa/sound
+ install -m 0644 include/*.h ${STAGING_INCDIR}/alsa/
+ install -m 0644 include/sound/ainstr*.h ${STAGING_INCDIR}/alsa/sound/
+ install -d ${STAGING_DATADIR}/aclocal
+ install -m 0644 utils/alsa.m4 ${STAGING_DATADIR}/aclocal/
+}
+
+PACKAGES =+ "alsa-server libasound alsa-conf-base alsa-conf alsa-doc alsa-dev"
+FILES_${PN}-dbg += "${libdir}/alsa-lib/*/.debu*"
+FILES_libasound = "${libdir}/libasound.so.*"
+FILES_alsa-server = "${bindir}/*"
+FILES_alsa-conf = "${datadir}/alsa/"
+FILES_alsa-dev += "${libdir}/pkgconfig/ /usr/include/ ${datadir}/aclocal/*"
+FILES_alsa-conf-base = "\
+${datadir}/alsa/alsa.conf \
+${datadir}/alsa/cards/aliases.conf \
+${datadir}/alsa/pcm/default.conf \
+${datadir}/alsa/pcm/dmix.conf \
+${datadir}/alsa/pcm/dsnoop.conf"
+
+RDEPENDS_libasound = "alsa-conf-base"
diff --git a/recipes/alsa/alsa-lib_1.0.15.bb b/recipes/alsa/alsa-lib_1.0.15.bb
new file mode 100644
index 0000000000..4cf393843b
--- /dev/null
+++ b/recipes/alsa/alsa-lib_1.0.15.bb
@@ -0,0 +1,54 @@
+DESCRIPTION = "Alsa sound library"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "libs/multimedia"
+LICENSE = "GPL"
+PR = "r1"
+
+# configure.in sets -D__arm__ on the command line for any arm system
+# (not just those with the ARM instruction set), this should be removed,
+# (or replaced by a permitted #define).
+#FIXME: remove the following
+ARM_INSTRUCTION_SET = "arm"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \
+ file://fix-tstamp-declaration.patch;patch=1 \
+ file://fix_libmath.patch;patch=1 \
+ "
+
+inherit autotools pkgconfig
+
+
+EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes --disable-python"
+
+
+require alsa-fpu.inc
+EXTRA_OECONF += "${@get_alsa_fpu_setting(bb, d)} "
+
+
+require alsa-versym.inc
+EXTRA_OECONF += "${@get_alsa_versym_setting(bb, d)} "
+
+
+do_stage () {
+ oe_libinstall -so -C src libasound ${STAGING_LIBDIR}/
+ install -d ${STAGING_INCDIR}/alsa/sound
+ install -m 0644 include/*.h ${STAGING_INCDIR}/alsa/
+ install -m 0644 include/sound/ainstr*.h ${STAGING_INCDIR}/alsa/sound/
+ install -d ${STAGING_DATADIR}/aclocal
+ install -m 0644 utils/alsa.m4 ${STAGING_DATADIR}/aclocal/
+}
+
+PACKAGES =+ "alsa-server libasound alsa-conf-base alsa-conf alsa-doc alsa-dev"
+FILES_${PN}-dbg += "${libdir}/alsa-lib/*/.debu*"
+FILES_libasound = "${libdir}/libasound.so.*"
+FILES_alsa-server = "${bindir}/*"
+FILES_alsa-conf = "${datadir}/alsa/"
+FILES_alsa-dev += "${libdir}/pkgconfig/ /usr/include/ ${datadir}/aclocal/*"
+FILES_alsa-conf-base = "\
+${datadir}/alsa/alsa.conf \
+${datadir}/alsa/cards/aliases.conf \
+${datadir}/alsa/pcm/default.conf \
+${datadir}/alsa/pcm/dmix.conf \
+${datadir}/alsa/pcm/dsnoop.conf"
+
+RDEPENDS_libasound = "alsa-conf-base"
diff --git a/recipes/alsa/alsa-lib_1.0.17.bb b/recipes/alsa/alsa-lib_1.0.17.bb
new file mode 100644
index 0000000000..f4ae21b637
--- /dev/null
+++ b/recipes/alsa/alsa-lib_1.0.17.bb
@@ -0,0 +1,48 @@
+DESCRIPTION = "Alsa sound library"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "libs/multimedia"
+LICENSE = "GPL"
+
+# configure.in sets -D__arm__ on the command line for any arm system
+# (not just those with the ARM instruction set), this should be removed,
+# (or replaced by a permitted #define).
+#FIXME: remove the following
+ARM_INSTRUCTION_SET = "arm"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \
+ file://fix-tstamp-declaration.patch;patch=1 \
+ file://fix_libmath.patch;patch=1 \
+ "
+
+inherit autotools pkgconfig
+
+
+EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes --disable-python"
+
+
+require alsa-fpu.inc
+EXTRA_OECONF += "${@get_alsa_fpu_setting(bb, d)} "
+
+
+require alsa-versym.inc
+EXTRA_OECONF += "${@get_alsa_versym_setting(bb, d)} "
+
+
+do_stage () {
+ autotools_stage_all
+}
+
+PACKAGES =+ "alsa-server libasound alsa-conf-base alsa-conf alsa-doc alsa-dev"
+FILES_${PN}-dbg += "${libdir}/alsa-lib/*/.debu*"
+FILES_libasound = "${libdir}/libasound.so.*"
+FILES_alsa-server = "${bindir}/*"
+FILES_alsa-conf = "${datadir}/alsa/"
+FILES_alsa-dev += "${libdir}/pkgconfig/ /usr/include/ ${datadir}/aclocal/*"
+FILES_alsa-conf-base = "\
+${datadir}/alsa/alsa.conf \
+${datadir}/alsa/cards/aliases.conf \
+${datadir}/alsa/pcm/default.conf \
+${datadir}/alsa/pcm/dmix.conf \
+${datadir}/alsa/pcm/dsnoop.conf"
+
+RDEPENDS_libasound = "alsa-conf-base"
diff --git a/recipes/alsa/alsa-lib_1.0.18.bb b/recipes/alsa/alsa-lib_1.0.18.bb
new file mode 100644
index 0000000000..f4ae21b637
--- /dev/null
+++ b/recipes/alsa/alsa-lib_1.0.18.bb
@@ -0,0 +1,48 @@
+DESCRIPTION = "Alsa sound library"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "libs/multimedia"
+LICENSE = "GPL"
+
+# configure.in sets -D__arm__ on the command line for any arm system
+# (not just those with the ARM instruction set), this should be removed,
+# (or replaced by a permitted #define).
+#FIXME: remove the following
+ARM_INSTRUCTION_SET = "arm"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \
+ file://fix-tstamp-declaration.patch;patch=1 \
+ file://fix_libmath.patch;patch=1 \
+ "
+
+inherit autotools pkgconfig
+
+
+EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes --disable-python"
+
+
+require alsa-fpu.inc
+EXTRA_OECONF += "${@get_alsa_fpu_setting(bb, d)} "
+
+
+require alsa-versym.inc
+EXTRA_OECONF += "${@get_alsa_versym_setting(bb, d)} "
+
+
+do_stage () {
+ autotools_stage_all
+}
+
+PACKAGES =+ "alsa-server libasound alsa-conf-base alsa-conf alsa-doc alsa-dev"
+FILES_${PN}-dbg += "${libdir}/alsa-lib/*/.debu*"
+FILES_libasound = "${libdir}/libasound.so.*"
+FILES_alsa-server = "${bindir}/*"
+FILES_alsa-conf = "${datadir}/alsa/"
+FILES_alsa-dev += "${libdir}/pkgconfig/ /usr/include/ ${datadir}/aclocal/*"
+FILES_alsa-conf-base = "\
+${datadir}/alsa/alsa.conf \
+${datadir}/alsa/cards/aliases.conf \
+${datadir}/alsa/pcm/default.conf \
+${datadir}/alsa/pcm/dmix.conf \
+${datadir}/alsa/pcm/dsnoop.conf"
+
+RDEPENDS_libasound = "alsa-conf-base"
diff --git a/recipes/alsa/alsa-oss_1.0.11.bb b/recipes/alsa/alsa-oss_1.0.11.bb
new file mode 100644
index 0000000000..9a7751ee6b
--- /dev/null
+++ b/recipes/alsa/alsa-oss_1.0.11.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Alsa OSS Compatibility Package"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "libs/multimedia"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib"
+PR = "r0"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2"
+
+inherit autotools
+
+do_configure_prepend () {
+ touch NEWS README AUTHORS ChangeLog
+}
+
+do_stage () {
+ oe_libinstall -C alsa -a -so libaoss ${STAGING_LIBDIR}
+ oe_libinstall -C alsa -a -so libalsatoss ${STAGING_LIBDIR}
+}
diff --git a/recipes/alsa/alsa-oss_1.0.14.bb b/recipes/alsa/alsa-oss_1.0.14.bb
new file mode 100644
index 0000000000..b11947e86a
--- /dev/null
+++ b/recipes/alsa/alsa-oss_1.0.14.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Alsa OSS Compatibility Package"
+SECTION = "libs/multimedia"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2"
+
+inherit autotools
+
+do_configure_prepend () {
+ touch NEWS README AUTHORS ChangeLog
+}
+
+do_stage () {
+ oe_libinstall -C alsa -a -so libaoss ${STAGING_LIBDIR}
+ oe_libinstall -C alsa -a -so libalsatoss ${STAGING_LIBDIR}
+}
diff --git a/recipes/alsa/alsa-oss_1.0.15.bb b/recipes/alsa/alsa-oss_1.0.15.bb
new file mode 100644
index 0000000000..de840e73fe
--- /dev/null
+++ b/recipes/alsa/alsa-oss_1.0.15.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Alsa OSS Compatibility Package"
+SECTION = "libs/multimedia"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib"
+PR = "r2"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \
+ file://libio.patch;patch=1 \
+ "
+
+inherit autotools
+
+LEAD_SONAME = "libaoss.so.0"
+
+do_configure_prepend () {
+ touch NEWS README AUTHORS ChangeLog
+}
+
+do_stage () {
+ oe_libinstall -C alsa -a -so libaoss ${STAGING_LIBDIR}
+ oe_libinstall -C alsa -a -so libalsatoss ${STAGING_LIBDIR}
+}
diff --git a/recipes/alsa/alsa-oss_1.0.17.bb b/recipes/alsa/alsa-oss_1.0.17.bb
new file mode 100644
index 0000000000..cb77cc6759
--- /dev/null
+++ b/recipes/alsa/alsa-oss_1.0.17.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Alsa OSS Compatibility Package"
+SECTION = "libs/multimedia"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \
+ file://libio.patch;patch=1 \
+ "
+
+inherit autotools
+
+LEAD_SONAME = "libaoss.so.0"
+
+do_configure_prepend () {
+ touch NEWS README AUTHORS ChangeLog
+}
+
+do_stage () {
+ autotools_stage_all
+}
diff --git a/recipes/alsa/alsa-plugins_1.0.15.bb b/recipes/alsa/alsa-plugins_1.0.15.bb
new file mode 100644
index 0000000000..b17a3265e8
--- /dev/null
+++ b/recipes/alsa/alsa-plugins_1.0.15.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "ALSA Plugins"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "multimedia/alsa/plugins"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib pulseaudio"
+PR = "r0"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/plugins/alsa-plugins-${PV}.tar.bz2"
+
+inherit autotools
+
+PACKAGES_DYNAMIC = "libasound-module*"
+
+python populate_packages_prepend() {
+ plugindir = bb.data.expand('${libdir}/alsa-lib/', d)
+ do_split_packages(d, plugindir, '^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s', extra_depends='' )
+}
+
+FILES_${PN}-dev += "${libdir}/alsa-lib/libasound*.a ${libdir}/alsa-lib/libasound*.la"
+FILES_${PN}-dbg += "${libdir}/alsa-lib/.debug"
diff --git a/recipes/alsa/alsa-plugins_1.0.17.bb b/recipes/alsa/alsa-plugins_1.0.17.bb
new file mode 100644
index 0000000000..b17a3265e8
--- /dev/null
+++ b/recipes/alsa/alsa-plugins_1.0.17.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "ALSA Plugins"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "multimedia/alsa/plugins"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib pulseaudio"
+PR = "r0"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/plugins/alsa-plugins-${PV}.tar.bz2"
+
+inherit autotools
+
+PACKAGES_DYNAMIC = "libasound-module*"
+
+python populate_packages_prepend() {
+ plugindir = bb.data.expand('${libdir}/alsa-lib/', d)
+ do_split_packages(d, plugindir, '^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s', extra_depends='' )
+}
+
+FILES_${PN}-dev += "${libdir}/alsa-lib/libasound*.a ${libdir}/alsa-lib/libasound*.la"
+FILES_${PN}-dbg += "${libdir}/alsa-lib/.debug"
diff --git a/recipes/alsa/alsa-plugins_1.0.18.bb b/recipes/alsa/alsa-plugins_1.0.18.bb
new file mode 100644
index 0000000000..b17a3265e8
--- /dev/null
+++ b/recipes/alsa/alsa-plugins_1.0.18.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "ALSA Plugins"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "multimedia/alsa/plugins"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib pulseaudio"
+PR = "r0"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/plugins/alsa-plugins-${PV}.tar.bz2"
+
+inherit autotools
+
+PACKAGES_DYNAMIC = "libasound-module*"
+
+python populate_packages_prepend() {
+ plugindir = bb.data.expand('${libdir}/alsa-lib/', d)
+ do_split_packages(d, plugindir, '^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s', extra_depends='' )
+}
+
+FILES_${PN}-dev += "${libdir}/alsa-lib/libasound*.a ${libdir}/alsa-lib/libasound*.la"
+FILES_${PN}-dbg += "${libdir}/alsa-lib/.debug"
diff --git a/recipes/alsa/alsa-scenario_git.bb b/recipes/alsa/alsa-scenario_git.bb
new file mode 100644
index 0000000000..74c25c247e
--- /dev/null
+++ b/recipes/alsa/alsa-scenario_git.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "ALSA Scenario Library"
+HOMEPAGE = "http://opensource.wolfsonmicro.com/node/22"
+SECTION = "console/utils"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib ncurses"
+PV = "0.1+gitr${SRCREV}"
+PR = "r0"
+PE = "1"
+
+SRC_URI = "git://opensource.wolfsonmicro.com/alsa-scenario;branch=master;protocol=git"
+S = "${WORKDIR}/git"
+
+inherit autotools
diff --git a/recipes/alsa/alsa-state.bb b/recipes/alsa/alsa-state.bb
new file mode 100644
index 0000000000..3ebc0d5476
--- /dev/null
+++ b/recipes/alsa/alsa-state.bb
@@ -0,0 +1,58 @@
+# Copyright Matthias Hentges <devel@hentges.net> (c) 2007
+# License: MIT (see http://www.opensource.org/licenses/mit-license.php
+# for a copy of the license)
+#
+# Filename: alsa-state.bb
+
+DESCRIPTION = "Alsa Scenario Files"
+LICENSE = "MIT"
+PV = "0.2.0"
+PR = "r3"
+
+SRC_URI = "\
+ file://asound.conf \
+ file://asound.state \
+ file://alsa-state \
+ file://*.state \
+"
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "alsa-state"
+INITSCRIPT_PARAMS = "start 39 S ."
+
+do_install() {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/alsa-state ${D}${sysconfdir}/init.d
+
+ install -m 0644 ${WORKDIR}/asound.conf ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/*.state ${D}${sysconfdir}
+}
+
+PACKAGES += "alsa-states"
+
+RRECOMMENDS_alsa-state = "alsa-states"
+RRECOMMENDS_${PN}_om-gta01 = "openmoko-alsa-scenarios"
+RRECOMMENDS_${PN}_om-gta02 = "openmoko-alsa-scenarios"
+
+FILES_${PN} = "${sysconfdir}/init.d ${sysconfdir}/asound.conf"
+CONFFILES_${PN} = "${sysconfdir}/asound.conf"
+
+FILES_alsa-states = "${sysconfdir}/*.state"
+
+PACKAGE_ARCH_${PN} = "all"
+PACKAGE_ARCH_alsa-states = "${MACHINE_ARCH}"
+
+pkg_postinst_${PN}() {
+ if test -z "$D"
+ then
+ if test -x /usr/sbin/alsactl
+ then
+ /usr/sbin/alsactl -f ${sysconfdir}/asound.state restore
+ fi
+ # INITSCRIPT_PARAMS changed, so remove the old and
+ # install the new setting.
+ update-rc.d -f ${INITSCRIPT_NAME} remove
+ update-rc.d ${INITSCRIPT_NAME} ${INITSCRIPT_PARAMS}
+ fi
+}
diff --git a/recipes/alsa/alsa-state/a780/gsmhandset.state b/recipes/alsa/alsa-state/a780/gsmhandset.state
new file mode 100644
index 0000000000..c9adfb3340
--- /dev/null
+++ b/recipes/alsa/alsa-state/a780/gsmhandset.state
@@ -0,0 +1,55 @@
+state.EZX {
+ control.1 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'Master Playback Volume'
+ value 6
+ }
+ control.2 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Stereo
+ comment.item.1 Mono
+ comment.item.2 BP
+ iface MIXER
+ name 'DAI Select'
+ value BP
+ }
+ control.3 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ iface MIXER
+ name 'Capture Volume'
+ value 14
+ }
+ control.4 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Off
+ comment.item.1 '2->1ch'
+ comment.item.2 '2->1ch -3db'
+ comment.item.3 '2->1ch -6db'
+ iface MIXER
+ name Downmixer
+ value Off
+ }
+ control.5 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Off
+ comment.item.1 Loudspeaker
+ comment.item.2 Earpiece
+ comment.item.3 Headset
+ iface MIXER
+ name 'Output mode'
+ value Earpiece
+ }
+}
diff --git a/recipes/alsa/alsa-state/a780/gsmheadset.state b/recipes/alsa/alsa-state/a780/gsmheadset.state
new file mode 100644
index 0000000000..7b72789410
--- /dev/null
+++ b/recipes/alsa/alsa-state/a780/gsmheadset.state
@@ -0,0 +1,55 @@
+state.EZX {
+ control.1 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'Master Playback Volume'
+ value 6
+ }
+ control.2 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Stereo
+ comment.item.1 Mono
+ comment.item.2 BP
+ iface MIXER
+ name 'DAI Select'
+ value BP
+ }
+ control.3 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ iface MIXER
+ name 'Capture Volume'
+ value 14
+ }
+ control.4 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Off
+ comment.item.1 '2->1ch'
+ comment.item.2 '2->1ch -3db'
+ comment.item.3 '2->1ch -6db'
+ iface MIXER
+ name Downmixer
+ value Off
+ }
+ control.5 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Off
+ comment.item.1 Loudspeaker
+ comment.item.2 Earpiece
+ comment.item.3 Headset
+ iface MIXER
+ name 'Output mode'
+ value Headset
+ }
+}
diff --git a/recipes/alsa/alsa-state/a780/stereoout.state b/recipes/alsa/alsa-state/a780/stereoout.state
new file mode 100644
index 0000000000..64b36a0572
--- /dev/null
+++ b/recipes/alsa/alsa-state/a780/stereoout.state
@@ -0,0 +1,55 @@
+state.EZX {
+ control.1 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'Master Playback Volume'
+ value 6
+ }
+ control.2 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Stereo
+ comment.item.1 Mono
+ comment.item.2 BP
+ iface MIXER
+ name 'DAI Select'
+ value Stereo
+ }
+ control.3 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ iface MIXER
+ name 'Capture Volume'
+ value 14
+ }
+ control.4 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Off
+ comment.item.1 '2->1ch'
+ comment.item.2 '2->1ch -3db'
+ comment.item.3 '2->1ch -6db'
+ iface MIXER
+ name Downmixer
+ value Off
+ }
+ control.5 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Off
+ comment.item.1 Loudspeaker
+ comment.item.2 Earpiece
+ comment.item.3 Headset
+ iface MIXER
+ name 'Output mode'
+ value Loudspeaker
+ }
+}
diff --git a/recipes/alsa/alsa-state/akita/asound.state b/recipes/alsa/alsa-state/akita/asound.state
new file mode 100644
index 0000000000..d1bacfb708
--- /dev/null
+++ b/recipes/alsa/alsa-state/akita/asound.state
@@ -0,0 +1,619 @@
+state.Spitz {
+ control.1 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 63'
+ iface MIXER
+ name 'Capture Volume'
+ value.0 48
+ value.1 48
+ }
+ control.2 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Capture ZC Switch'
+ value.0 true
+ value.1 true
+ }
+ control.3 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Capture Switch'
+ value.0 true
+ value.1 true
+ }
+ control.4 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Headphone Playback ZC Switch'
+ value.0 true
+ value.1 true
+ }
+ control.5 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Speaker Playback ZC Switch'
+ value.0 true
+ value.1 true
+ }
+ control.6 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 None
+ comment.item.1 '32Khz'
+ comment.item.2 '44.1Khz'
+ comment.item.3 '48Khz'
+ iface MIXER
+ name 'Playback De-emphasis'
+ value None
+ }
+ control.7 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Normal
+ comment.item.1 'L Invert'
+ comment.item.2 'R Invert'
+ comment.item.3 'L + R Invert'
+ iface MIXER
+ name 'Capture Polarity'
+ value Normal
+ }
+ control.8 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Playback 6dB Attenuate'
+ value false
+ }
+ control.9 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Capture 6dB Attenuate'
+ value false
+ }
+ control.10 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 255'
+ iface MIXER
+ name 'PCM Volume'
+ value.0 220
+ value.1 220
+ }
+ control.11 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Linear Control'
+ comment.item.1 'Adaptive Boost'
+ iface MIXER
+ name 'Bass Boost'
+ value 'Linear Control'
+ }
+ control.12 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 '130Hz @ 48kHz'
+ comment.item.1 '200Hz @ 48kHz'
+ iface MIXER
+ name 'Bass Filter'
+ value '130Hz @ 48kHz'
+ }
+ control.13 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'Bass Volume'
+ value 0
+ }
+ control.14 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'Treble Volume'
+ value 0
+ }
+ control.15 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 '8kHz'
+ comment.item.1 '4kHz'
+ iface MIXER
+ name 'Treble Cut-off'
+ value '8kHz'
+ }
+ control.16 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name '3D Switch'
+ value false
+ }
+ control.17 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name '3D Volume'
+ value 0
+ }
+ control.18 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 '200Hz'
+ comment.item.1 '500Hz'
+ iface MIXER
+ name '3D Lower Cut-off'
+ value '200Hz'
+ }
+ control.19 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 '2.2kHz'
+ comment.item.1 '1.5kHz'
+ iface MIXER
+ name '3D Upper Cut-off'
+ value '2.2kHz'
+ }
+ control.20 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Capture
+ comment.item.1 Playback
+ iface MIXER
+ name '3D Mode'
+ value Playback
+ }
+ control.21 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'ALC Capture Target Volume'
+ value 3
+ }
+ control.22 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'ALC Capture Max Volume'
+ value 7
+ }
+ control.23 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Off
+ comment.item.1 Right
+ comment.item.2 Left
+ comment.item.3 Stereo
+ iface MIXER
+ name 'ALC Capture Function'
+ value Left
+ }
+ control.24 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'ALC Capture ZC Switch'
+ value true
+ }
+ control.25 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'ALC Capture Hold Time'
+ value 9
+ }
+ control.26 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'ALC Capture Decay Time'
+ value 9
+ }
+ control.27 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'ALC Capture Attack Time'
+ value 3
+ }
+ control.28 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ iface MIXER
+ name 'ALC Capture NG Threshold'
+ value 0
+ }
+ control.29 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 '2.2kHz'
+ comment.item.1 '1.5kHz'
+ iface MIXER
+ name 'ALC Capture NG Type'
+ value '2.2kHz'
+ }
+ control.30 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'ALC Capture NG Switch'
+ value false
+ }
+ control.31 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 255'
+ iface MIXER
+ name 'Left ADC Capture Volume'
+ value 195
+ }
+ control.32 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 255'
+ iface MIXER
+ name 'Right ADC Capture Volume'
+ value 195
+ }
+ control.33 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'ZC Timeout Switch'
+ value true
+ }
+ control.34 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Playback Invert Switch'
+ value false
+ }
+ control.35 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right Speaker Playback Invert Switch'
+ value true
+ }
+ control.36 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 3'
+ iface MIXER
+ name 'Mic Boost'
+ value.0 3
+ value.1 3
+ }
+ control.37 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 7'
+ iface MIXER
+ name 'Bypass Left Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.38 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 7'
+ iface MIXER
+ name 'Bypass Right Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.39 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 7'
+ iface MIXER
+ name 'Bypass Mono Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.40 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mono Playback ZC Switch'
+ value false
+ }
+ control.41 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 127'
+ iface MIXER
+ name 'Headphone Playback Volume'
+ value.0 105
+ value.1 105
+ }
+ control.42 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 127'
+ iface MIXER
+ name 'Speaker Playback Volume'
+ value.0 127
+ value.1 127
+ }
+ control.43 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 127'
+ iface MIXER
+ name 'Mono Playback Volume'
+ value 0
+ }
+ control.44 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Stereo
+ comment.item.1 'Mono (Left)'
+ comment.item.2 'Mono (Right)'
+ comment.item.3 'Digital Mono'
+ iface MIXER
+ name 'Right ADC Mux'
+ value 'Digital Mono'
+ }
+ control.45 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Stereo
+ comment.item.1 'Mono (Left)'
+ comment.item.2 'Mono (Right)'
+ comment.item.3 'Digital Mono'
+ iface MIXER
+ name 'Left ADC Mux'
+ value 'Digital Mono'
+ }
+ control.46 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Line 1'
+ comment.item.1 'Line 2'
+ iface MIXER
+ name 'Differential Mux'
+ value 'Line 1'
+ }
+ control.47 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 VREF
+ comment.item.1 'ROUT1 + Vol'
+ comment.item.2 MonoOut
+ comment.item.3 ROUT1
+ iface MIXER
+ name 'Out3 Mux'
+ value VREF
+ }
+ control.48 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Line 1'
+ comment.item.1 'Line 2'
+ comment.item.2 'Line 3'
+ comment.item.3 PGA
+ comment.item.4 Differential
+ iface MIXER
+ name 'Right Line Mux'
+ value Differential
+ }
+ control.49 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Line 1'
+ comment.item.1 'Line 2'
+ comment.item.2 'Line 3'
+ comment.item.3 PGA
+ comment.item.4 Differential
+ iface MIXER
+ name 'Left Line Mux'
+ value Differential
+ }
+ control.50 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Line 1'
+ comment.item.1 'Line 2'
+ comment.item.2 'Line 3'
+ comment.item.3 Differential
+ iface MIXER
+ name 'Right PGA Mux'
+ value Differential
+ }
+ control.51 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Line 1'
+ comment.item.1 'Line 2'
+ comment.item.2 'Line 3'
+ comment.item.3 Differential
+ iface MIXER
+ name 'Left PGA Mux'
+ value Differential
+ }
+ control.52 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mono Mixer Left Playback Switch'
+ value false
+ }
+ control.53 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mono Mixer Left Bypass Switch'
+ value false
+ }
+ control.54 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mono Mixer Right Playback Switc'
+ value false
+ }
+ control.55 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mono Mixer Right Bypass Switch'
+ value false
+ }
+ control.56 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right Mixer Left Playback Switc'
+ value false
+ }
+ control.57 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right Mixer Left Bypass Switch'
+ value false
+ }
+ control.58 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right Mixer Playback Switch'
+ value true
+ }
+ control.59 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right Mixer Right Bypass Switch'
+ value false
+ }
+ control.60 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left Mixer Playback Switch'
+ value true
+ }
+ control.61 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left Mixer Left Bypass Switch'
+ value false
+ }
+ control.62 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left Mixer Right Playback Switc'
+ value false
+ }
+ control.63 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left Mixer Right Bypass Switch'
+ value false
+ }
+ control.64 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Headphone
+ comment.item.1 Mic
+ comment.item.2 Line
+ comment.item.3 Headset
+ comment.item.4 Off
+ iface MIXER
+ name 'Jack Function'
+ value Off
+ }
+ control.65 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 On
+ comment.item.1 Off
+ iface MIXER
+ name 'Speaker Function'
+ value On
+ }
+}
diff --git a/recipes/alsa/alsa-state/alsa-state b/recipes/alsa/alsa-state/alsa-state
new file mode 100755
index 0000000000..84cdf03750
--- /dev/null
+++ b/recipes/alsa/alsa-state/alsa-state
@@ -0,0 +1,29 @@
+#! /bin/sh
+#
+# Copyright Matthias Hentges <devel@hentges.net> (c) 2007
+# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)
+#
+# Filename: alsa-state
+# Date: 20070308 (YMD)
+
+
+asound_restore(){
+ echo "ALSA: Restoring mixer settings..."
+ if test -x /usr/sbin/alsactl -a -e /etc/asound.state
+ then
+ /usr/sbin/alsactl -f /etc/asound.state restore &
+ fi
+}
+
+asound_store(){
+ echo "ALSA: Storing mixer settings..."
+ if test -x /usr/sbin/alsactl
+ then
+ /usr/sbin/alsactl -f /etc/asound.state store
+ fi
+}
+
+case "$1" in
+start) asound_restore ;;
+stop) asound_store ;;
+esac
diff --git a/recipes/alsa/alsa-state/asound.conf b/recipes/alsa/alsa-state/asound.conf
new file mode 100644
index 0000000000..6be024201c
--- /dev/null
+++ b/recipes/alsa/alsa-state/asound.conf
@@ -0,0 +1,12 @@
+# default dmix configuration
+
+pcm.!default {
+ type plug
+ slave.pcm "dmix"
+}
+
+ctl.mixer0 {
+ type hw
+ card 0
+}
+
diff --git a/recipes/alsa/alsa-state/asound.state b/recipes/alsa/alsa-state/asound.state
new file mode 100644
index 0000000000..88b0d02657
--- /dev/null
+++ b/recipes/alsa/alsa-state/asound.state
@@ -0,0 +1 @@
+# Dummy file, do not delete \ No newline at end of file
diff --git a/recipes/alsa/alsa-state/at91sam9263ek/asound.conf b/recipes/alsa/alsa-state/at91sam9263ek/asound.conf
new file mode 100644
index 0000000000..87bb5ec050
--- /dev/null
+++ b/recipes/alsa/alsa-state/at91sam9263ek/asound.conf
@@ -0,0 +1,2 @@
+pcm.!default { type hw card 0 }
+ctl.!default { type hw card 0 }
diff --git a/recipes/alsa/alsa-state/at91sam9263ek/asound.state b/recipes/alsa/alsa-state/at91sam9263ek/asound.state
new file mode 100644
index 0000000000..ee646a1341
--- /dev/null
+++ b/recipes/alsa/alsa-state/at91sam9263ek/asound.state
@@ -0,0 +1,283 @@
+state.AC97 {
+ control.1 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Master Playback Switch'
+ value.0 true
+ value.1 true
+ }
+ control.2 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'Master Playback Volume'
+ value.0 22
+ value.1 22
+ }
+ control.3 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Headphone Playback Switch'
+ value.0 true
+ value.1 true
+ }
+ control.4 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'Headphone Playback Volume'
+ value.0 22
+ value.1 22
+ }
+ control.5 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Master Mono Playback Switch'
+ value false
+ }
+ control.6 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ comment.dbmin -4650
+ comment.dbmax 0
+ iface MIXER
+ name 'Master Mono Playback Volume'
+ value 0
+ }
+ control.7 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Phone Playback Switch'
+ value false
+ }
+ control.8 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'Phone Playback Volume'
+ value 0
+ }
+ control.9 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mic Playback Switch'
+ value false
+ }
+ control.10 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'Mic Playback Volume'
+ value 0
+ }
+ control.11 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mic Boost (+20dB)'
+ value false
+ }
+ control.12 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Line Playback Switch'
+ value.0 false
+ value.1 false
+ }
+ control.13 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'Line Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.14 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'CD Playback Switch'
+ value.0 false
+ value.1 false
+ }
+ control.15 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'CD Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.16 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Aux Playback Switch'
+ value.0 false
+ value.1 false
+ }
+ control.17 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'Aux Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.18 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'PCM Playback Switch'
+ value.0 true
+ value.1 true
+ }
+ control.19 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ comment.dbmin -3450
+ comment.dbmax 1200
+ iface MIXER
+ name 'PCM Playback Volume'
+ value.0 22
+ value.1 22
+ }
+ control.20 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 2
+ comment.item.0 Mic
+ comment.item.1 CD
+ comment.item.2 Video
+ comment.item.3 Aux
+ comment.item.4 Line
+ comment.item.5 Mix
+ comment.item.6 'Mix Mono'
+ comment.item.7 Phone
+ iface MIXER
+ name 'Capture Source'
+ value.0 Mic
+ value.1 Mic
+ }
+ control.21 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Capture Switch'
+ value.0 true
+ value.1 true
+ }
+ control.22 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 15'
+ comment.dbmin 0
+ comment.dbmax 2250
+ iface MIXER
+ name 'Capture Volume'
+ value.0 11
+ value.1 11
+ }
+ control.23 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Mix
+ comment.item.1 Mic
+ iface MIXER
+ name 'Mono Output Select'
+ value Mix
+ }
+ control.24 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Mic1
+ comment.item.1 Mic2
+ iface MIXER
+ name 'Mic Select'
+ value Mic1
+ }
+ control.25 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Stereo Mic'
+ value false
+ }
+ control.26 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Headphone Jack Sense'
+ value false
+ }
+ control.27 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Line Jack Sense'
+ value false
+ }
+ control.28 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'External Amplifier'
+ value true
+ }
+}
diff --git a/recipes/alsa/alsa-state/c7x0/asound.state b/recipes/alsa/alsa-state/c7x0/asound.state
new file mode 100644
index 0000000000..caef65c120
--- /dev/null
+++ b/recipes/alsa/alsa-state/c7x0/asound.state
@@ -0,0 +1,150 @@
+state.Corgi {
+ control.1 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 127'
+ iface MIXER
+ name 'Master Playback Volume'
+ value.0 98
+ value.1 98
+ }
+ control.2 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Master Playback ZC Switch'
+ value.0 false
+ value.1 false
+ }
+ control.3 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ iface MIXER
+ name 'Capture Volume'
+ value.0 31
+ value.1 31
+ }
+ control.4 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Line Capture Switch'
+ value.0 false
+ value.1 false
+ }
+ control.5 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mic Boost (+20dB)'
+ value false
+ }
+ control.6 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Capture Mic Switch'
+ value false
+ }
+ control.7 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 3'
+ iface MIXER
+ name 'Sidetone Playback Volume'
+ value 3
+ }
+ control.8 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'ADC High Pass Filter Switch'
+ value true
+ }
+ control.9 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Store DC Offset Switch'
+ value false
+ }
+ control.10 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 None
+ comment.item.1 '32Khz'
+ comment.item.2 '44.1Khz'
+ comment.item.3 '48Khz'
+ iface MIXER
+ name 'Playback De-emphasis'
+ value None
+ }
+ control.11 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Line In'
+ comment.item.1 Mic
+ iface MIXER
+ name 'Input Mux'
+ value 'Line In'
+ }
+ control.12 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Output Mixer Line Bypass Switch'
+ value false
+ }
+ control.13 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Output Mixer Mic Sidetone Switc'
+ value false
+ }
+ control.14 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Output Mixer HiFi Playback Swit'
+ value true
+ }
+ control.15 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Headphone
+ comment.item.1 Mic
+ comment.item.2 Line
+ comment.item.3 Headset
+ comment.item.4 Off
+ iface MIXER
+ name 'Jack Function'
+ value Headphone
+ }
+ control.16 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 On
+ comment.item.1 Off
+ iface MIXER
+ name 'Speaker Function'
+ value Off
+ }
+}
diff --git a/recipes/alsa/alsa-state/hx4700/asound.state b/recipes/alsa/alsa-state/hx4700/asound.state
new file mode 100644
index 0000000000..98661f5e3a
--- /dev/null
+++ b/recipes/alsa/alsa-state/hx4700/asound.state
@@ -0,0 +1,37 @@
+state.'hx4700 Audio' {
+ control.1 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 255'
+ iface MIXER
+ name 'Master Playback Volume'
+ value.0 205
+ value.1 205
+ }
+ control.2 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Master Playback Switch'
+ value true
+ }
+ control.3 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 127'
+ iface MIXER
+ name 'Mic Capture Gain'
+ value 16
+ }
+ control.4 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mic Boost (+20dB)'
+ value true
+ }
+}
diff --git a/recipes/alsa/alsa-state/magician/asound.state b/recipes/alsa/alsa-state/magician/asound.state
new file mode 100644
index 0000000000..edc85dd364
--- /dev/null
+++ b/recipes/alsa/alsa-state/magician/asound.state
@@ -0,0 +1,202 @@
+state.Magician {
+ control.1 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 255'
+ iface MIXER
+ name 'Playback Volume'
+ value.0 205
+ value.1 205
+ }
+ control.2 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 255'
+ iface MIXER
+ name 'Mixer Volume'
+ value.0 255
+ value.1 0
+ }
+ control.3 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Flat
+ comment.item.1 Minimum1
+ comment.item.2 Minimum2
+ comment.item.3 Maximum
+ iface MIXER
+ name 'Sound Processing Filter Mode'
+ value Flat
+ }
+ control.4 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 3'
+ iface MIXER
+ name 'Treble Volume'
+ value.0 0
+ value.1 0
+ }
+ control.5 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 15'
+ iface MIXER
+ name 'Bass Volume'
+ value.0 0
+ value.1 0
+ }
+ control.6 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 2
+ comment.item.0 None
+ comment.item.1 '32kHz'
+ comment.item.2 '44.1kHz'
+ comment.item.3 '48kHz'
+ comment.item.4 '96kHz'
+ iface MIXER
+ name 'Playback De-emphasis'
+ value.0 None
+ value.1 None
+ }
+ control.7 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 127'
+ iface MIXER
+ name 'Capture Volume'
+ value.0 0
+ value.1 0
+ }
+ control.8 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 15'
+ iface MIXER
+ name 'Line Capture Volume'
+ value.0 0
+ value.1 0
+ }
+ control.9 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 11'
+ iface MIXER
+ name 'Mic Capture Volume'
+ value 0
+ }
+ control.10 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Playback Switch'
+ value.0 true
+ value.1 false
+ }
+ control.11 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Capture Switch'
+ value true
+ }
+ control.12 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'AGC Timing'
+ value 0
+ }
+ control.13 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 3'
+ iface MIXER
+ name 'AGC Target level'
+ value 3
+ }
+ control.14 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'AGC Switch'
+ value false
+ }
+ control.15 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name Silence
+ value false
+ }
+ control.16 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Silence Detection'
+ value false
+ }
+ control.17 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Direct
+ comment.item.1 Mixer
+ iface MIXER
+ name 'Output Mux'
+ value Direct
+ }
+ control.18 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Line
+ comment.item.1 Mic
+ iface MIXER
+ name 'Input Mux'
+ value Line
+ }
+ control.19 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Headphone Switch'
+ value false
+ }
+ control.20 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Speaker Switch'
+ value true
+ }
+ control.21 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Call Mic'
+ comment.item.1 'Headset Mic'
+ iface MIXER
+ name 'Input Select'
+ value 'Call Mic'
+ }
+}
diff --git a/recipes/alsa/alsa-state/nokia800/asound.state b/recipes/alsa/alsa-state/nokia800/asound.state
new file mode 100644
index 0000000000..6ae874c2e2
--- /dev/null
+++ b/recipes/alsa/alsa-state/nokia800/asound.state
@@ -0,0 +1,105 @@
+state.EAC {
+ control.1 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Capture Switch'
+ value.0 false
+ value.1 false
+ }
+ control.2 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '6 - 127'
+ iface MIXER
+ name 'Capture Volume'
+ value.0 87
+ value.1 87
+ }
+ control.3 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'PCM Playback Switch'
+ value.0 true
+ value.1 true
+ }
+ control.4 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 127'
+ iface MIXER
+ name 'PCM Playback Volume'
+ value.0 103
+ value.1 103
+ }
+ control.5 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Line Playback Switch'
+ value.0 false
+ value.1 false
+ }
+ control.6 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '31 - 127'
+ iface MIXER
+ name 'Line Playback Volume'
+ value.0 103
+ value.1 103
+ }
+ control.7 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '1 - 3'
+ iface MIXER
+ name 'Mic Boost'
+ value 0
+ }
+ control.8 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 2
+ comment.item.0 Mic
+ comment.item.1 Line
+ comment.item.2 'Line swapped'
+ comment.item.3 'Line mono'
+ iface MIXER
+ name 'Capture Source'
+ value.0 Mic
+ value.1 Mic
+ }
+ control.9 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Headset Amplifier'
+ value false
+ }
+ control.10 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Speaker Amplifier'
+ value true
+ }
+ control.11 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Headset Mic Select'
+ value false
+ }
+}
diff --git a/recipes/alsa/alsa-state/spitz/asound.state b/recipes/alsa/alsa-state/spitz/asound.state
new file mode 100644
index 0000000000..d1bacfb708
--- /dev/null
+++ b/recipes/alsa/alsa-state/spitz/asound.state
@@ -0,0 +1,619 @@
+state.Spitz {
+ control.1 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 63'
+ iface MIXER
+ name 'Capture Volume'
+ value.0 48
+ value.1 48
+ }
+ control.2 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Capture ZC Switch'
+ value.0 true
+ value.1 true
+ }
+ control.3 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Capture Switch'
+ value.0 true
+ value.1 true
+ }
+ control.4 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Headphone Playback ZC Switch'
+ value.0 true
+ value.1 true
+ }
+ control.5 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 2
+ iface MIXER
+ name 'Speaker Playback ZC Switch'
+ value.0 true
+ value.1 true
+ }
+ control.6 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 None
+ comment.item.1 '32Khz'
+ comment.item.2 '44.1Khz'
+ comment.item.3 '48Khz'
+ iface MIXER
+ name 'Playback De-emphasis'
+ value None
+ }
+ control.7 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Normal
+ comment.item.1 'L Invert'
+ comment.item.2 'R Invert'
+ comment.item.3 'L + R Invert'
+ iface MIXER
+ name 'Capture Polarity'
+ value Normal
+ }
+ control.8 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Playback 6dB Attenuate'
+ value false
+ }
+ control.9 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Capture 6dB Attenuate'
+ value false
+ }
+ control.10 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 255'
+ iface MIXER
+ name 'PCM Volume'
+ value.0 220
+ value.1 220
+ }
+ control.11 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Linear Control'
+ comment.item.1 'Adaptive Boost'
+ iface MIXER
+ name 'Bass Boost'
+ value 'Linear Control'
+ }
+ control.12 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 '130Hz @ 48kHz'
+ comment.item.1 '200Hz @ 48kHz'
+ iface MIXER
+ name 'Bass Filter'
+ value '130Hz @ 48kHz'
+ }
+ control.13 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'Bass Volume'
+ value 0
+ }
+ control.14 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'Treble Volume'
+ value 0
+ }
+ control.15 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 '8kHz'
+ comment.item.1 '4kHz'
+ iface MIXER
+ name 'Treble Cut-off'
+ value '8kHz'
+ }
+ control.16 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name '3D Switch'
+ value false
+ }
+ control.17 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name '3D Volume'
+ value 0
+ }
+ control.18 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 '200Hz'
+ comment.item.1 '500Hz'
+ iface MIXER
+ name '3D Lower Cut-off'
+ value '200Hz'
+ }
+ control.19 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 '2.2kHz'
+ comment.item.1 '1.5kHz'
+ iface MIXER
+ name '3D Upper Cut-off'
+ value '2.2kHz'
+ }
+ control.20 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Capture
+ comment.item.1 Playback
+ iface MIXER
+ name '3D Mode'
+ value Playback
+ }
+ control.21 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'ALC Capture Target Volume'
+ value 3
+ }
+ control.22 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'ALC Capture Max Volume'
+ value 7
+ }
+ control.23 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Off
+ comment.item.1 Right
+ comment.item.2 Left
+ comment.item.3 Stereo
+ iface MIXER
+ name 'ALC Capture Function'
+ value Left
+ }
+ control.24 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'ALC Capture ZC Switch'
+ value true
+ }
+ control.25 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'ALC Capture Hold Time'
+ value 9
+ }
+ control.26 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'ALC Capture Decay Time'
+ value 9
+ }
+ control.27 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'ALC Capture Attack Time'
+ value 3
+ }
+ control.28 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ iface MIXER
+ name 'ALC Capture NG Threshold'
+ value 0
+ }
+ control.29 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 '2.2kHz'
+ comment.item.1 '1.5kHz'
+ iface MIXER
+ name 'ALC Capture NG Type'
+ value '2.2kHz'
+ }
+ control.30 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'ALC Capture NG Switch'
+ value false
+ }
+ control.31 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 255'
+ iface MIXER
+ name 'Left ADC Capture Volume'
+ value 195
+ }
+ control.32 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 255'
+ iface MIXER
+ name 'Right ADC Capture Volume'
+ value 195
+ }
+ control.33 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'ZC Timeout Switch'
+ value true
+ }
+ control.34 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Playback Invert Switch'
+ value false
+ }
+ control.35 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right Speaker Playback Invert Switch'
+ value true
+ }
+ control.36 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 3'
+ iface MIXER
+ name 'Mic Boost'
+ value.0 3
+ value.1 3
+ }
+ control.37 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 7'
+ iface MIXER
+ name 'Bypass Left Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.38 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 7'
+ iface MIXER
+ name 'Bypass Right Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.39 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 7'
+ iface MIXER
+ name 'Bypass Mono Playback Volume'
+ value.0 0
+ value.1 0
+ }
+ control.40 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mono Playback ZC Switch'
+ value false
+ }
+ control.41 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 127'
+ iface MIXER
+ name 'Headphone Playback Volume'
+ value.0 105
+ value.1 105
+ }
+ control.42 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 127'
+ iface MIXER
+ name 'Speaker Playback Volume'
+ value.0 127
+ value.1 127
+ }
+ control.43 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 127'
+ iface MIXER
+ name 'Mono Playback Volume'
+ value 0
+ }
+ control.44 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Stereo
+ comment.item.1 'Mono (Left)'
+ comment.item.2 'Mono (Right)'
+ comment.item.3 'Digital Mono'
+ iface MIXER
+ name 'Right ADC Mux'
+ value 'Digital Mono'
+ }
+ control.45 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Stereo
+ comment.item.1 'Mono (Left)'
+ comment.item.2 'Mono (Right)'
+ comment.item.3 'Digital Mono'
+ iface MIXER
+ name 'Left ADC Mux'
+ value 'Digital Mono'
+ }
+ control.46 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Line 1'
+ comment.item.1 'Line 2'
+ iface MIXER
+ name 'Differential Mux'
+ value 'Line 1'
+ }
+ control.47 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 VREF
+ comment.item.1 'ROUT1 + Vol'
+ comment.item.2 MonoOut
+ comment.item.3 ROUT1
+ iface MIXER
+ name 'Out3 Mux'
+ value VREF
+ }
+ control.48 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Line 1'
+ comment.item.1 'Line 2'
+ comment.item.2 'Line 3'
+ comment.item.3 PGA
+ comment.item.4 Differential
+ iface MIXER
+ name 'Right Line Mux'
+ value Differential
+ }
+ control.49 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Line 1'
+ comment.item.1 'Line 2'
+ comment.item.2 'Line 3'
+ comment.item.3 PGA
+ comment.item.4 Differential
+ iface MIXER
+ name 'Left Line Mux'
+ value Differential
+ }
+ control.50 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Line 1'
+ comment.item.1 'Line 2'
+ comment.item.2 'Line 3'
+ comment.item.3 Differential
+ iface MIXER
+ name 'Right PGA Mux'
+ value Differential
+ }
+ control.51 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Line 1'
+ comment.item.1 'Line 2'
+ comment.item.2 'Line 3'
+ comment.item.3 Differential
+ iface MIXER
+ name 'Left PGA Mux'
+ value Differential
+ }
+ control.52 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mono Mixer Left Playback Switch'
+ value false
+ }
+ control.53 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mono Mixer Left Bypass Switch'
+ value false
+ }
+ control.54 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mono Mixer Right Playback Switc'
+ value false
+ }
+ control.55 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mono Mixer Right Bypass Switch'
+ value false
+ }
+ control.56 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right Mixer Left Playback Switc'
+ value false
+ }
+ control.57 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right Mixer Left Bypass Switch'
+ value false
+ }
+ control.58 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right Mixer Playback Switch'
+ value true
+ }
+ control.59 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right Mixer Right Bypass Switch'
+ value false
+ }
+ control.60 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left Mixer Playback Switch'
+ value true
+ }
+ control.61 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left Mixer Left Bypass Switch'
+ value false
+ }
+ control.62 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left Mixer Right Playback Switc'
+ value false
+ }
+ control.63 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left Mixer Right Bypass Switch'
+ value false
+ }
+ control.64 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Headphone
+ comment.item.1 Mic
+ comment.item.2 Line
+ comment.item.3 Headset
+ comment.item.4 Off
+ iface MIXER
+ name 'Jack Function'
+ value Off
+ }
+ control.65 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 On
+ comment.item.1 Off
+ iface MIXER
+ name 'Speaker Function'
+ value On
+ }
+}
diff --git a/recipes/alsa/alsa-state/tosa/asound.state b/recipes/alsa/alsa-state/tosa/asound.state
new file mode 100644
index 0000000000..c38265d792
--- /dev/null
+++ b/recipes/alsa/alsa-state/tosa/asound.state
@@ -0,0 +1,769 @@
+state.Tosa {
+ control.1 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ iface MIXER
+ name 'Speaker Playback Volume'
+ value.0 25
+ value.1 25
+ }
+ control.2 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Speaker Playback Switch'
+ value true
+ }
+ control.3 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ iface MIXER
+ name 'Headphone Playback Volume'
+ value.0 20
+ value.1 20
+ }
+ control.4 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Headphone Playback Switch'
+ value true
+ }
+ control.5 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ iface MIXER
+ name 'PCM Playback Volume'
+ value.0 23
+ value.1 23
+ }
+ control.6 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Speaker Playback ZC Switch'
+ value true
+ }
+ control.7 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Speaker Playback Invert Switch'
+ value true
+ }
+ control.8 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Headphone Playback ZC Switch'
+ value true
+ }
+ control.9 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mono Playback ZC Switch'
+ value false
+ }
+ control.10 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ iface MIXER
+ name 'Mono Playback Volume'
+ value 0
+ }
+ control.11 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'ALC Target Volume'
+ value 11
+ }
+ control.12 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'ALC Hold Time'
+ value 2
+ }
+ control.13 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'ALC Decay Time'
+ value 3
+ }
+ control.14 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'ALC Attack Time'
+ value 2
+ }
+ control.15 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 None
+ comment.item.1 Left
+ comment.item.2 Right
+ comment.item.3 Stereo
+ iface MIXER
+ name 'ALC Function'
+ value None
+ }
+ control.16 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'ALC Max Volume'
+ value 7
+ }
+ control.17 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 3'
+ iface MIXER
+ name 'ALC ZC Timeout'
+ value 0
+ }
+ control.18 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'ALC ZC Switch'
+ value false
+ }
+ control.19 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'ALC NG Switch'
+ value false
+ }
+ control.20 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Constant Gain'
+ comment.item.1 Mute
+ iface MIXER
+ name 'ALC NG Type'
+ value 'Constant Gain'
+ }
+ control.21 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ iface MIXER
+ name 'ALC NG Threshold'
+ value 31
+ }
+ control.22 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'Mic Headphone Volume'
+ value 7
+ }
+ control.23 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'ALC Headphone Volume'
+ value 5
+ }
+ control.24 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Out3 Switch'
+ value false
+ }
+ control.25 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Out3 ZC Switch'
+ value true
+ }
+ control.26 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ iface MIXER
+ name 'Out3 Volume'
+ value 0
+ }
+ control.27 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'PCBeep Bypass Headphone Volume'
+ value 0
+ }
+ control.28 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'PCBeep Bypass Speaker Volume'
+ value 0
+ }
+ control.29 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'PCBeep Bypass Phone Volume'
+ value 0
+ }
+ control.30 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'Aux Playback Headphone Volume'
+ value 5
+ }
+ control.31 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'Aux Playback Speaker Volume'
+ value 0
+ }
+ control.32 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 7'
+ iface MIXER
+ name 'Aux Playback Phone Volume'
+ value 0
+ }
+ control.33 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'Phone Volume'
+ value 0
+ }
+ control.34 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 31'
+ iface MIXER
+ name 'Line Capture Volume'
+ value.0 23
+ value.1 23
+ }
+ control.35 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Capture 20dB Boost Switch'
+ value true
+ }
+ control.36 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Capture to Phone 20dB Boost Switch'
+ value true
+ }
+ control.37 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name '3D Upper Cut-off Switch'
+ value false
+ }
+ control.38 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name '3D Lower Cut-off Switch'
+ value false
+ }
+ control.39 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name '3D Playback Volume'
+ value 0
+ }
+ control.40 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Linear Control'
+ comment.item.1 'Adaptive Boost'
+ iface MIXER
+ name 'Bass Control'
+ value 'Adaptive Boost'
+ }
+ control.41 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Bass Cut-off Switch'
+ value true
+ }
+ control.42 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Tone Cut-off Switch'
+ value false
+ }
+ control.43 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Playback Attenuate (-6dB) Switch'
+ value false
+ }
+ control.44 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'Bass Volume'
+ value 8
+ }
+ control.45 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 15'
+ iface MIXER
+ name 'Treble Volume'
+ value 5
+ }
+ control.46 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Capture ADC Switch'
+ value false
+ }
+ control.47 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 2
+ comment.item.0 '+1.5dB Steps'
+ comment.item.1 '+0.75dB Steps'
+ iface MIXER
+ name 'Capture Volume Steps'
+ value.0 '+0.75dB Steps'
+ value.1 '+0.75dB Steps'
+ }
+ control.48 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 2
+ comment.range '0 - 63'
+ iface MIXER
+ name 'Capture Volume'
+ value.0 0
+ value.1 0
+ }
+ control.49 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Capture ZC Switch'
+ value false
+ }
+ control.50 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ iface MIXER
+ name 'Mic 1 Volume'
+ value 23
+ }
+ control.51 {
+ comment.access 'read write'
+ comment.type INTEGER
+ comment.count 1
+ comment.range '0 - 31'
+ iface MIXER
+ name 'Mic 2 Volume'
+ value 23
+ }
+ control.52 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Mic 20dB Boost Switch'
+ value false
+ }
+ control.53 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Speaker Mixer PCBeep Bypass Swi'
+ value false
+ }
+ control.54 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Speaker Mixer Aux Playback Swit'
+ value false
+ }
+ control.55 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Speaker Mixer Phone Bypass Swit'
+ value false
+ }
+ control.56 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Speaker Mixer Line Bypass Switc'
+ value false
+ }
+ control.57 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Speaker Mixer PCM Playback Swit'
+ value true
+ }
+ control.58 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Phone Mixer PCBeep Bypass Switc'
+ value false
+ }
+ control.59 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Phone Mixer Aux Playback Switch'
+ value false
+ }
+ control.60 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Phone Mixer Line Bypass Switch'
+ value false
+ }
+ control.61 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Phone Mixer PCM Playback Switch'
+ value false
+ }
+ control.62 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Phone Mixer Mic 1 Sidetone Swit'
+ value false
+ }
+ control.63 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Phone Mixer Mic 2 Sidetone Swit'
+ value false
+ }
+ control.64 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right HP Mixer PCBeep Bypass Sw'
+ value false
+ }
+ control.65 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right HP Mixer Aux Playback Swi'
+ value false
+ }
+ control.66 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right HP Mixer Phone Bypass Swi'
+ value false
+ }
+ control.67 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right HP Mixer Line Bypass Swit'
+ value false
+ }
+ control.68 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right HP Mixer PCM Playback Swi'
+ value true
+ }
+ control.69 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Right HP Mixer Mic Sidetone Swi'
+ value false
+ }
+ control.70 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left HP Mixer PCBeep Bypass Swi'
+ value false
+ }
+ control.71 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left HP Mixer Aux Playback Swit'
+ value false
+ }
+ control.72 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left HP Mixer Phone Bypass Swit'
+ value false
+ }
+ control.73 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left HP Mixer Line Bypass Switc'
+ value false
+ }
+ control.74 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left HP Mixer PCM Playback Swit'
+ value true
+ }
+ control.75 {
+ comment.access 'read write'
+ comment.type BOOLEAN
+ comment.count 1
+ iface MIXER
+ name 'Left HP Mixer Mic Sidetone Swit'
+ value false
+ }
+ control.76 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Mic
+ comment.item.1 Line
+ iface MIXER
+ name 'Differential Source'
+ value Mic
+ }
+ control.77 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Mic 1'
+ comment.item.1 Differential
+ comment.item.2 'Mic 2'
+ comment.item.3 Stereo
+ iface MIXER
+ name 'Mic Select Source'
+ value Differential
+ }
+ control.78 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Mic
+ comment.item.1 NC
+ comment.item.2 NC
+ comment.item.3 'Speaker Mixer'
+ comment.item.4 Line
+ comment.item.5 'Headphone Mixer'
+ comment.item.6 'Phone Mixer'
+ comment.item.7 Phone
+ iface MIXER
+ name 'Right Capture Select'
+ value Mic
+ }
+ control.79 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Mic
+ comment.item.1 NC
+ comment.item.2 NC
+ comment.item.3 'Speaker Mixer'
+ comment.item.4 Line
+ comment.item.5 'Headphone Mixer'
+ comment.item.6 'Phone Mixer'
+ comment.item.7 Phone
+ iface MIXER
+ name 'Left Capture Select'
+ value Mic
+ }
+ control.80 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Stereo
+ comment.item.1 Left
+ comment.item.2 Right
+ comment.item.3 Mute
+ iface MIXER
+ name 'Capture Phone Mux'
+ value Mute
+ }
+ control.81 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 'Speaker Mix'
+ comment.item.1 'Headphone Mix'
+ iface MIXER
+ name 'Speaker Mux'
+ value 'Speaker Mix'
+ }
+ control.82 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Left
+ comment.item.1 VREF
+ comment.item.2 'Left + Right'
+ comment.item.3 Mono
+ iface MIXER
+ name 'Out3 Mux'
+ value Left
+ }
+ control.83 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Stereo
+ comment.item.1 Left
+ comment.item.2 Right
+ comment.item.3 None
+ iface MIXER
+ name 'ALC Sidetone Mux'
+ value Stereo
+ }
+ control.84 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 Headphone
+ comment.item.1 Mic
+ comment.item.2 Line
+ comment.item.3 Headset
+ comment.item.4 Off
+ iface MIXER
+ name 'Jack Function'
+ value Off
+ }
+ control.85 {
+ comment.access 'read write'
+ comment.type ENUMERATED
+ comment.count 1
+ comment.item.0 On
+ comment.item.1 Off
+ iface MIXER
+ name 'Speaker Function'
+ value On
+ }
+}
diff --git a/recipes/alsa/alsa-utils_1.0.11.bb b/recipes/alsa/alsa-utils_1.0.11.bb
new file mode 100644
index 0000000000..d2acfe1995
--- /dev/null
+++ b/recipes/alsa/alsa-utils_1.0.11.bb
@@ -0,0 +1,55 @@
+DESCRIPTION = "ALSA Utilities"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "console/utils"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib ncurses"
+PR = "r1"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2"
+
+inherit autotools
+
+# This are all packages that we need to make. Also, the now empty alsa-utils
+# ipk depend on them.
+
+PACKAGES += "alsa-utils-alsamixer"
+PACKAGES += "alsa-utils-midi"
+PACKAGES += "alsa-utils-aplay"
+PACKAGES += "alsa-utils-amixer"
+PACKAGES += "alsa-utils-aconnect"
+PACKAGES += "alsa-utils-iecset"
+PACKAGES += "alsa-utils-speakertest"
+PACKAGES += "alsa-utils-aseqnet"
+PACKAGES += "alsa-utils-alsactl"
+
+# We omit alsaconf, because
+# a) this is a bash script
+# b) it creates config files not suitable for OE-based distros
+
+FILES_${PN} = ""
+FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord"
+FILES_alsa-utils-amixer = "${bindir}/amixer"
+FILES_alsa-utils-alsamixer = "${bindir}/alsamixer"
+FILES_alsa-utils-speakertest = "${bindir}/speaker-test"
+FILES_alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi"
+FILES_alsa-utils-aconnect = "${bindir}/aconnect"
+FILES_alsa-utils-aseqnet = "${bindir}/aseqnet"
+FILES_alsa-utils-iecset = "${bindir}/iecset"
+FILES_alsa-utils-alsactl = "${sbindir}/alsactl"
+
+DESCRIPTION_alsa-utils-aplay = "play (and record) sound files via ALSA"
+DESCRIPTION_alsa-utils-amixer = "command-line based control for ALSA mixer and settings"
+DESCRIPTION_alsa-utils-alsamixer = "ncurses based control for ALSA mixer and settings"
+DESCRIPTION_alsa-utils-speaker-test = "speaker test tone generator for ALSA"
+DESCRIPTION_alsa-utils-midi = "miscalleanous MIDI utilities for ALSA"
+DESCRIPTION_alsa-utils-aconnect = "ALSA sequencer connection manager"
+DESCRIPTION_alsa-utils-aseqnet = "network client/server on ALSA sequencer"
+DESCRIPTION_alsa-utils-alsactl = "saves/restores ALSA-settings in /etc/asound.state"
+DESCRIPTION_alsa-utils-alsaconf = "a bash script that creates ALSA configuration files"
+
+RDEPENDS_alsa-utils-aplay += "alsa-conf"
+RDEPENDS_alsa-utils-amixer += "alsa-conf"
+RDEPENDS_alsa-utils-alsamixer += "alsa-conf"
+RDEPENDS_alsa-utils-speaker-test += "alsa-conf"
+
+ALLOW_EMPTY_alsa-utils = "1"
diff --git a/recipes/alsa/alsa-utils_1.0.13.bb b/recipes/alsa/alsa-utils_1.0.13.bb
new file mode 100644
index 0000000000..1e6af1ec09
--- /dev/null
+++ b/recipes/alsa/alsa-utils_1.0.13.bb
@@ -0,0 +1,63 @@
+DESCRIPTION = "ALSA Utilities"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "console/utils"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib ncurses"
+PR = "r1"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2"
+
+# lazy hack. needs proper fixing in gettext.m4, see
+# http://bugs.openembedded.net/show_bug.cgi?id=2348
+# please close bug and remove this comment when properly fixed
+#
+EXTRA_OECONF_linux-uclibc = "--disable-nls"
+EXTRA_OECONF_linux-uclibcgnueabi = "--disable-nls"
+
+inherit autotools
+
+# This are all packages that we need to make. Also, the now empty alsa-utils
+# ipk depend on them.
+
+PACKAGES += "\
+ alsa-utils-alsamixer \
+ alsa-utils-midi \
+ alsa-utils-aplay \
+ alsa-utils-amixer \
+ alsa-utils-aconnect \
+ alsa-utils-iecset \
+ alsa-utils-speakertest \
+ alsa-utils-aseqnet \
+ alsa-utils-alsactl "
+
+# We omit alsaconf, because
+# a) this is a bash script
+# b) it creates config files not suitable for OE-based distros
+
+FILES_${PN} = ""
+FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord"
+FILES_alsa-utils-amixer = "${bindir}/amixer"
+FILES_alsa-utils-alsamixer = "${bindir}/alsamixer"
+FILES_alsa-utils-speakertest = "${bindir}/speaker-test"
+FILES_alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi"
+FILES_alsa-utils-aconnect = "${bindir}/aconnect"
+FILES_alsa-utils-aseqnet = "${bindir}/aseqnet"
+FILES_alsa-utils-iecset = "${bindir}/iecset"
+FILES_alsa-utils-alsactl = "${sbindir}/alsactl"
+
+DESCRIPTION_alsa-utils-aplay = "play (and record) sound files via ALSA"
+DESCRIPTION_alsa-utils-amixer = "command-line based control for ALSA mixer and settings"
+DESCRIPTION_alsa-utils-alsamixer = "ncurses based control for ALSA mixer and settings"
+DESCRIPTION_alsa-utils-speakertest = "speaker test tone generator for ALSA"
+DESCRIPTION_alsa-utils-midi = "miscalleanous MIDI utilities for ALSA"
+DESCRIPTION_alsa-utils-aconnect = "ALSA sequencer connection manager"
+DESCRIPTION_alsa-utils-aseqnet = "network client/server on ALSA sequencer"
+DESCRIPTION_alsa-utils-alsactl = "saves/restores ALSA-settings in /etc/asound.state"
+DESCRIPTION_alsa-utils-alsaconf = "a bash script that creates ALSA configuration files"
+
+RDEPENDS_alsa-utils-aplay += "alsa-conf"
+RDEPENDS_alsa-utils-amixer += "alsa-conf"
+RDEPENDS_alsa-utils-alsamixer += "alsa-conf"
+RDEPENDS_alsa-utils-speakertest += "alsa-conf"
+
+ALLOW_EMPTY_alsa-utils = "1"
diff --git a/recipes/alsa/alsa-utils_1.0.14.bb b/recipes/alsa/alsa-utils_1.0.14.bb
new file mode 100644
index 0000000000..25eeade7cd
--- /dev/null
+++ b/recipes/alsa/alsa-utils_1.0.14.bb
@@ -0,0 +1,56 @@
+DESCRIPTION = "ALSA Utilities"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "console/utils"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib ncurses"
+PR = "r1"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2 \
+ file://alsa-utils-automake.patch;patch=1 \
+ "
+inherit autotools
+
+# This are all packages that we need to make. Also, the now empty alsa-utils
+# ipk depend on them.
+
+PACKAGES += "\
+ alsa-utils-alsamixer \
+ alsa-utils-midi \
+ alsa-utils-aplay \
+ alsa-utils-amixer \
+ alsa-utils-aconnect \
+ alsa-utils-iecset \
+ alsa-utils-speakertest \
+ alsa-utils-aseqnet \
+ alsa-utils-aseqdump \
+ alsa-utils-alsaconf \
+ alsa-utils-alsactl "
+
+# We omit alsaconf, because
+# a) this is a bash script
+# b) it creates config files not suitable for OE-based distros
+
+FILES_${PN} = ""
+FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord"
+FILES_alsa-utils-amixer = "${bindir}/amixer"
+FILES_alsa-utils-alsamixer = "${bindir}/alsamixer"
+FILES_alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/"
+FILES_alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi"
+FILES_alsa-utils-aconnect = "${bindir}/aconnect"
+FILES_alsa-utils-aseqnet = "${bindir}/aseqnet"
+FILES_alsa-utils-iecset = "${bindir}/iecset"
+FILES_alsa-utils-alsactl = "${sbindir}/alsactl"
+FILES_alsa-utils-aseqdump = "${bindir}/aseqdump"
+FILES_alsa-utils-alsaconf = "${sbindir}/alsaconf"
+
+DESCRIPTION_alsa-utils-aplay = "play (and record) sound files via ALSA"
+DESCRIPTION_alsa-utils-amixer = "command-line based control for ALSA mixer and settings"
+DESCRIPTION_alsa-utils-alsamixer = "ncurses based control for ALSA mixer and settings"
+DESCRIPTION_alsa-utils-speakertest = "ALSA surround speaker test utility"
+DESCRIPTION_alsa-utils-midi = "miscalleanous MIDI utilities for ALSA"
+DESCRIPTION_alsa-utils-aconnect = "ALSA sequencer connection manager"
+DESCRIPTION_alsa-utils-aseqnet = "network client/server on ALSA sequencer"
+DESCRIPTION_alsa-utils-alsactl = "saves/restores ALSA-settings in /etc/asound.state"
+DESCRIPTION_alsa-utils-alsaconf = "a bash script that creates ALSA configuration files"
+
+ALLOW_EMPTY_alsa-utils = "1"
diff --git a/recipes/alsa/alsa-utils_1.0.15.bb b/recipes/alsa/alsa-utils_1.0.15.bb
new file mode 100644
index 0000000000..b271e75439
--- /dev/null
+++ b/recipes/alsa/alsa-utils_1.0.15.bb
@@ -0,0 +1,57 @@
+DESCRIPTION = "ALSA Utilities"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "console/utils"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib ncurses"
+PR = "r1"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2 \
+ file://alsa-utils-automake.patch;patch=1 \
+ "
+
+inherit autotools
+
+# This are all packages that we need to make. Also, the now empty alsa-utils
+# ipk depend on them.
+
+PACKAGES += "\
+ alsa-utils-alsamixer \
+ alsa-utils-midi \
+ alsa-utils-aplay \
+ alsa-utils-amixer \
+ alsa-utils-aconnect \
+ alsa-utils-iecset \
+ alsa-utils-speakertest \
+ alsa-utils-aseqnet \
+ alsa-utils-aseqdump \
+ alsa-utils-alsaconf \
+ alsa-utils-alsactl "
+
+# We omit alsaconf, because
+# a) this is a bash script
+# b) it creates config files not suitable for OE-based distros
+
+FILES_${PN} = ""
+FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord"
+FILES_alsa-utils-amixer = "${bindir}/amixer"
+FILES_alsa-utils-alsamixer = "${bindir}/alsamixer"
+FILES_alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/"
+FILES_alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi"
+FILES_alsa-utils-aconnect = "${bindir}/aconnect"
+FILES_alsa-utils-aseqnet = "${bindir}/aseqnet"
+FILES_alsa-utils-iecset = "${bindir}/iecset"
+FILES_alsa-utils-alsactl = "${sbindir}/alsactl"
+FILES_alsa-utils-aseqdump = "${bindir}/aseqdump"
+FILES_alsa-utils-alsaconf = "${sbindir}/alsaconf"
+
+DESCRIPTION_alsa-utils-aplay = "play (and record) sound files via ALSA"
+DESCRIPTION_alsa-utils-amixer = "command-line based control for ALSA mixer and settings"
+DESCRIPTION_alsa-utils-alsamixer = "ncurses based control for ALSA mixer and settings"
+DESCRIPTION_alsa-utils-speakertest = "ALSA surround speaker test utility"
+DESCRIPTION_alsa-utils-midi = "miscalleanous MIDI utilities for ALSA"
+DESCRIPTION_alsa-utils-aconnect = "ALSA sequencer connection manager"
+DESCRIPTION_alsa-utils-aseqnet = "network client/server on ALSA sequencer"
+DESCRIPTION_alsa-utils-alsactl = "saves/restores ALSA-settings in /etc/asound.state"
+DESCRIPTION_alsa-utils-alsaconf = "a bash script that creates ALSA configuration files"
+
+ALLOW_EMPTY_alsa-utils = "1"
diff --git a/recipes/alsa/alsa-utils_1.0.17.bb b/recipes/alsa/alsa-utils_1.0.17.bb
new file mode 100644
index 0000000000..d5f116bafc
--- /dev/null
+++ b/recipes/alsa/alsa-utils_1.0.17.bb
@@ -0,0 +1,63 @@
+DESCRIPTION = "ALSA Utilities"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "console/utils"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib ncurses"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2 \
+ file://alsa-utils-automake.patch;patch=1 \
+ "
+
+inherit autotools
+
+# This are all packages that we need to make. Also, the now empty alsa-utils
+# ipk depend on them.
+
+
+do_configure_append() {
+ for i in $(find ${S} -name Makefile) ; do
+ sed -i -e s:/usr/include/ncurses:${STAGING_INCDIR}/ncurses:g $i
+ done
+}
+
+PACKAGES += "\
+ alsa-utils-alsamixer \
+ alsa-utils-midi \
+ alsa-utils-aplay \
+ alsa-utils-amixer \
+ alsa-utils-aconnect \
+ alsa-utils-iecset \
+ alsa-utils-speakertest \
+ alsa-utils-aseqnet \
+ alsa-utils-aseqdump \
+ alsa-utils-alsaconf \
+ alsa-utils-alsactl "
+
+# We omit alsaconf, because
+# a) this is a bash script
+# b) it creates config files not suitable for OE-based distros
+
+FILES_${PN} = ""
+FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord"
+FILES_alsa-utils-amixer = "${bindir}/amixer"
+FILES_alsa-utils-alsamixer = "${bindir}/alsamixer"
+FILES_alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/"
+FILES_alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi"
+FILES_alsa-utils-aconnect = "${bindir}/aconnect"
+FILES_alsa-utils-aseqnet = "${bindir}/aseqnet"
+FILES_alsa-utils-iecset = "${bindir}/iecset"
+FILES_alsa-utils-alsactl = "${sbindir}/alsactl"
+FILES_alsa-utils-aseqdump = "${bindir}/aseqdump"
+FILES_alsa-utils-alsaconf = "${sbindir}/alsaconf"
+
+DESCRIPTION_alsa-utils-aplay = "play (and record) sound files via ALSA"
+DESCRIPTION_alsa-utils-amixer = "command-line based control for ALSA mixer and settings"
+DESCRIPTION_alsa-utils-alsamixer = "ncurses based control for ALSA mixer and settings"
+DESCRIPTION_alsa-utils-speakertest = "ALSA surround speaker test utility"
+DESCRIPTION_alsa-utils-midi = "miscalleanous MIDI utilities for ALSA"
+DESCRIPTION_alsa-utils-aconnect = "ALSA sequencer connection manager"
+DESCRIPTION_alsa-utils-aseqnet = "network client/server on ALSA sequencer"
+DESCRIPTION_alsa-utils-alsactl = "saves/restores ALSA-settings in /etc/asound.state"
+DESCRIPTION_alsa-utils-alsaconf = "a bash script that creates ALSA configuration files"
+
+ALLOW_EMPTY_alsa-utils = "1"
diff --git a/recipes/alsa/alsa-utils_1.0.18.bb b/recipes/alsa/alsa-utils_1.0.18.bb
new file mode 100644
index 0000000000..2931545252
--- /dev/null
+++ b/recipes/alsa/alsa-utils_1.0.18.bb
@@ -0,0 +1,66 @@
+DESCRIPTION = "ALSA Utilities"
+HOMEPAGE = "http://www.alsa-project.org"
+SECTION = "console/utils"
+LICENSE = "GPL"
+DEPENDS = "alsa-lib ncurses"
+PR = "r1"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2 \
+ file://alsa-utils-automake.patch;patch=1 \
+ file://alsa-utils-remove-xmlto.patch;patch=1 \
+ file://alsa-utils-autoconf-strl-funcs.patch;patch=1 \
+ "
+
+inherit autotools
+
+# This are all packages that we need to make. Also, the now empty alsa-utils
+# ipk depend on them.
+
+
+do_configure_append() {
+ for i in $(find ${S} -name Makefile) ; do
+ sed -i -e s:/usr/include/ncurses:${STAGING_INCDIR}/ncurses:g $i
+ done
+}
+
+PACKAGES += "\
+ alsa-utils-alsamixer \
+ alsa-utils-midi \
+ alsa-utils-aplay \
+ alsa-utils-amixer \
+ alsa-utils-aconnect \
+ alsa-utils-iecset \
+ alsa-utils-speakertest \
+ alsa-utils-aseqnet \
+ alsa-utils-aseqdump \
+ alsa-utils-alsaconf \
+ alsa-utils-alsactl "
+
+# We omit alsaconf, because
+# a) this is a bash script
+# b) it creates config files not suitable for OE-based distros
+
+FILES_${PN} = ""
+FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord"
+FILES_alsa-utils-amixer = "${bindir}/amixer"
+FILES_alsa-utils-alsamixer = "${bindir}/alsamixer"
+FILES_alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/"
+FILES_alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi"
+FILES_alsa-utils-aconnect = "${bindir}/aconnect"
+FILES_alsa-utils-aseqnet = "${bindir}/aseqnet"
+FILES_alsa-utils-iecset = "${bindir}/iecset"
+FILES_alsa-utils-alsactl = "${sbindir}/alsactl"
+FILES_alsa-utils-aseqdump = "${bindir}/aseqdump"
+FILES_alsa-utils-alsaconf = "${sbindir}/alsaconf"
+
+DESCRIPTION_alsa-utils-aplay = "play (and record) sound files via ALSA"
+DESCRIPTION_alsa-utils-amixer = "command-line based control for ALSA mixer and settings"
+DESCRIPTION_alsa-utils-alsamixer = "ncurses based control for ALSA mixer and settings"
+DESCRIPTION_alsa-utils-speakertest = "ALSA surround speaker test utility"
+DESCRIPTION_alsa-utils-midi = "miscalleanous MIDI utilities for ALSA"
+DESCRIPTION_alsa-utils-aconnect = "ALSA sequencer connection manager"
+DESCRIPTION_alsa-utils-aseqnet = "network client/server on ALSA sequencer"
+DESCRIPTION_alsa-utils-alsactl = "saves/restores ALSA-settings in /etc/asound.state"
+DESCRIPTION_alsa-utils-alsaconf = "a bash script that creates ALSA configuration files"
+
+ALLOW_EMPTY_alsa-utils = "1"
diff --git a/recipes/alsa/alsa-versym.inc b/recipes/alsa/alsa-versym.inc
new file mode 100644
index 0000000000..07ca89cafb
--- /dev/null
+++ b/recipes/alsa/alsa-versym.inc
@@ -0,0 +1,6 @@
+
+def get_alsa_versym_setting(bb, d):
+ # Versioned symbols don't work propery with uClibc
+ if bb.data.getVar('TARGET_OS', d, 1).find('uclibc') >= 0:
+ return "--with-versioned=no"
+ return ""
diff --git a/recipes/alsa/files/alsa-utils-autoconf-strl-funcs.patch b/recipes/alsa/files/alsa-utils-autoconf-strl-funcs.patch
new file mode 100644
index 0000000000..d736abbdab
--- /dev/null
+++ b/recipes/alsa/files/alsa-utils-autoconf-strl-funcs.patch
@@ -0,0 +1,43 @@
+Index: alsa-utils-1.0.18/alsactl/init_sysdeps.c
+===================================================================
+--- alsa-utils-1.0.18.orig/alsactl/init_sysdeps.c 2008-10-29 05:42:11.000000000 -0700
++++ alsa-utils-1.0.18/alsactl/init_sysdeps.c 2009-02-10 23:17:47.000000000 -0800
+@@ -17,7 +17,7 @@
+ *
+ */
+
+-#ifdef __GLIBC__
++#if !HAVE_STRLCPY
+ static size_t strlcpy(char *dst, const char *src, size_t size)
+ {
+ size_t bytes = 0;
+@@ -36,7 +36,10 @@
+ *q = '\0';
+ return bytes;
+ }
++#endif /* !HAVE_STRLCPY */
+
++
++#if !HAVE_STRLCAT
+ static size_t strlcat(char *dst, const char *src, size_t size)
+ {
+ size_t bytes = 0;
+@@ -60,4 +63,4 @@
+ *q = '\0';
+ return bytes;
+ }
+-#endif /* __GLIBC__ */
++#endif /* !HAVE_STRLCAT */
+Index: alsa-utils-1.0.18/configure.in
+===================================================================
+--- alsa-utils-1.0.18.orig/configure.in 2008-10-29 05:48:01.000000000 -0700
++++ alsa-utils-1.0.18/configure.in 2009-02-10 23:02:07.000000000 -0800
+@@ -6,7 +6,7 @@
+
+ AM_GNU_GETTEXT([external])
+ AM_GNU_GETTEXT_VERSION([0.15])
+-
++AC_CHECK_FUNCS([strlcat strlcpy])
+ dnl Checks for programs.
+
+ dnl try to gues cross-compiler if not set
diff --git a/recipes/alsa/files/alsa-utils-automake.patch b/recipes/alsa/files/alsa-utils-automake.patch
new file mode 100644
index 0000000000..de0eee94fd
--- /dev/null
+++ b/recipes/alsa/files/alsa-utils-automake.patch
@@ -0,0 +1,10 @@
+Index: alsa-utils-1.0.14/seq/aseqnet/Makefile.am
+===================================================================
+--- alsa-utils-1.0.14.orig/seq/aseqnet/Makefile.am 2007-05-31 10:07:21.000000000 +0200
++++ alsa-utils-1.0.14/seq/aseqnet/Makefile.am 2007-10-31 21:11:41.000000000 +0100
+@@ -3,4 +3,5 @@
+
+ bin_PROGRAMS = aseqnet
+ aseqnet_SOURCES = aseqnet.c
++aseqnet_LDADD = $(INTLLIBS)
+ man_MANS = aseqnet.1
diff --git a/recipes/alsa/files/alsa-utils-remove-xmlto.patch b/recipes/alsa/files/alsa-utils-remove-xmlto.patch
new file mode 100644
index 0000000000..a02bdba5aa
--- /dev/null
+++ b/recipes/alsa/files/alsa-utils-remove-xmlto.patch
@@ -0,0 +1,15 @@
+--- alsa-utils-1.0.18.orig/alsactl/Makefile.am 2008-10-29 12:42:11.000000000 +0000
++++ alsa-utils-1.0.18/alsactl/Makefile.am 2009-01-21 23:43:19.000000000 +0000
+@@ -1,11 +1,8 @@
+ SUBDIRS = init
+
+ sbin_PROGRAMS=alsactl
+-man_MANS=alsactl.1 alsactl_init.7
++man_MANS=alsactl.1
+ EXTRA_DIST=alsactl.1 alsactl_init.xml
+
+ alsactl_SOURCES=alsactl.c state.c utils.c init_parse.c
+ noinst_HEADERS=alsactl.h list.h init_sysdeps.c init_utils_string.c init_utils_run.c init_sysfs.c
+-
+-%.7: %.xml
+- xmlto man $?
diff --git a/recipes/alsa/files/alsa-utils-sys-siglist.patch b/recipes/alsa/files/alsa-utils-sys-siglist.patch
new file mode 100644
index 0000000000..8c499e8d63
--- /dev/null
+++ b/recipes/alsa/files/alsa-utils-sys-siglist.patch
@@ -0,0 +1,15 @@
+sys_siglist is not supported by default on uclibc and is, in general,
+a bad thing for the same reasons as sys_errlist is a bad thing. GNU
+supports strsignal in the manner of strerror
+
+--- alsa-utils-1.0.8/alsamixer/alsamixer.c.orig 2005-09-06 12:44:41.415219126 -0700
++++ alsa-utils-1.0.8/alsamixer/alsamixer.c 2005-09-06 12:44:43.407344482 -0700
+@@ -2188,7 +2188,7 @@
+ mixer_signal_handler (int signal)
+ {
+ if (signal != SIGSEGV)
+- mixer_abort (ERR_SIGNAL, sys_siglist[signal], 0);
++ mixer_abort (ERR_SIGNAL, strsignal(signal), 0);
+ else
+ {
+ fprintf (stderr, "\nSegmentation fault.\n");
diff --git a/recipes/alsa/files/libio.patch b/recipes/alsa/files/libio.patch
new file mode 100644
index 0000000000..a053e4c604
--- /dev/null
+++ b/recipes/alsa/files/libio.patch
@@ -0,0 +1,43 @@
+Index: alsa-oss-1.0.15/alsa/stdioemu.c
+===================================================================
+--- alsa-oss-1.0.15.orig/alsa/stdioemu.c 2007-10-15 10:50:40.000000000 +0200
++++ alsa-oss-1.0.15/alsa/stdioemu.c 2008-07-21 22:17:06.303161438 +0200
+@@ -37,7 +37,9 @@
+ #endif
+
+ #include <stdio.h>
++#ifdef HAVE_LIBIO_H
+ #include <libio.h>
++#endif
+
+ struct fd_cookie {
+ int fd;
+@@ -99,7 +101,11 @@
+
+ if (open_mode && fdc->fd > 0) {
+ result = fopencookie (fdc,"w", fns);
++#ifdef HAVE_FILENO
+ result->_fileno = fdc->fd; /* ugly patchy slimy kludgy hack */
++#else
++ result->__filedes = fdc->fd;
++#endif
+ }
+ return result;
+ }
+Index: alsa-oss-1.0.15/configure.in
+===================================================================
+--- alsa-oss-1.0.15.orig/configure.in 2007-10-15 10:50:40.000000000 +0200
++++ alsa-oss-1.0.15/configure.in 2008-07-21 22:16:11.719837298 +0200
+@@ -33,6 +33,12 @@
+ LIBS="$OLD_LIBS"
+ fi
+
++AC_CHECK_HEADERS_ONCE([libio.h])
++
++AC_CHECK_MEMBER([struct _IO_FILE._fileno],
++ [AC_DEFINE([HAVE_FILENO], [1],[Define if _fileno exists.])],
++ [],[])
++
+ AC_OUTPUT(Makefile alsa/Makefile alsa/aoss alsa/aoss.old \
+ oss-redir/Makefile test/Makefile \
+ alsa/testaoss test/testaoss)