diff options
Diffstat (limited to 'recipes-multimedia/alsa')
4 files changed, 308 insertions, 0 deletions
diff --git a/recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch b/recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch new file mode 100644 index 00000000..32b31953 --- /dev/null +++ b/recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch @@ -0,0 +1,221 @@ +From e99c36dfdce3e0f393eeaca6c2790b566f72d6a8 Mon Sep 17 00:00:00 2001 +From: Shengjiu Wang <b02247@freescale.com> +Date: Thu, 5 Jun 2014 17:37:47 +0800 +Subject: [PATCH] add conf for multichannel support in imx + +Upstream Status: Inappropriate [platform specific] + +Signed-off-by: Shengjiu Wang <b02247@freescale.com> +--- + src/conf/cards/CS42888.conf | 94 ++++++++++++++++++++++++++++++++++++++++++++ + src/conf/cards/IMX-HDMI.conf | 67 +++++++++++++++++++++++++++++++ + src/conf/cards/Makefile.am | 4 +- + src/conf/cards/aliases.conf | 2 + + 4 files changed, 166 insertions(+), 1 deletion(-) + create mode 100644 src/conf/cards/CS42888.conf + create mode 100644 src/conf/cards/IMX-HDMI.conf + +diff --git a/src/conf/cards/CS42888.conf b/src/conf/cards/CS42888.conf +new file mode 100644 +index 0000000..671a284 +--- /dev/null ++++ b/src/conf/cards/CS42888.conf +@@ -0,0 +1,94 @@ ++# ++# Configuration for the CS42888 chip ++# ++ ++# default with dmix & dsnoop ++CS42888.pcm.default { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type asym ++ playback.pcm { ++ type plug ++ slave.pcm { ++ @func concat ++ strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] ++ } ++ } ++ capture.pcm { ++ type plug ++ slave.pcm { ++ @func concat ++ strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ] ++ } ++ } ++} ++ ++<confdir:pcm/surround40.conf> ++ ++CS42888.pcm.surround40.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type plug ++ slave.pcm { ++ type hw ++ card $CARD ++ } ++ slave.channels 4 ++ ttable.0.0 1 ++ ttable.1.2 1 ++ ttable.2.1 1 ++ ttable.3.3 1 ++} ++ ++ ++<confdir:pcm/surround41.conf> ++<confdir:pcm/surround50.conf> ++<confdir:pcm/surround51.conf> ++ ++CS42888.pcm.surround51.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type plug ++ slave.pcm { ++ type hw ++ card $CARD ++ } ++ slave.channels 6 ++ ttable.0.0 1 ++ ttable.1.3 1 ++ ttable.2.1 1 ++ ttable.3.4 1 ++ ttable.4.2 1 ++ ttable.5.5 1 ++} ++ ++<confdir:pcm/surround71.conf> ++ ++CS42888.pcm.surround71.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type plug ++ slave.pcm { ++ type hw ++ card $CARD ++ } ++ slave.channels 8 ++ ttable.0.0 1 ++ ttable.1.4 1 ++ ttable.2.1 1 ++ ttable.3.5 1 ++ ttable.4.2 1 ++ ttable.5.6 1 ++ ttable.6.3 1 ++ ttable.7.7 1 ++} ++ ++# vim: ft=alsaconf +diff --git a/src/conf/cards/IMX-HDMI.conf b/src/conf/cards/IMX-HDMI.conf +new file mode 100644 +index 0000000..a51509e +--- /dev/null ++++ b/src/conf/cards/IMX-HDMI.conf +@@ -0,0 +1,67 @@ ++# ++# Configuration for the CS42888 chip ++# ++ ++# default with dmix & dsnoop ++IMX-HDMI.pcm.default { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type asym ++ playback.pcm { ++ type plug ++ slave.pcm { ++ @func concat ++ strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] ++ } ++ } ++ capture.pcm { ++ type plug ++ slave.pcm { ++ @func concat ++ strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ] ++ } ++ } ++} ++ ++<confdir:pcm/surround40.conf> ++ ++IMX-HDMI.pcm.surround40.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type hw ++ card $CARD ++ channels 4 ++} ++ ++ ++<confdir:pcm/surround41.conf> ++<confdir:pcm/surround50.conf> ++<confdir:pcm/surround51.conf> ++ ++IMX-HDMI.pcm.surround51.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type hw ++ card $CARD ++ channels 6 ++} ++ ++<confdir:pcm/surround71.conf> ++ ++IMX-HDMI.pcm.surround71.0 { ++ @args [ CARD ] ++ @args.CARD { ++ type string ++ } ++ type hw ++ card $CARD ++ channels 8 ++} ++ ++# vim: ft=alsaconf +diff --git a/src/conf/cards/Makefile.am b/src/conf/cards/Makefile.am +index ee7991b..b08acae 100644 +--- a/src/conf/cards/Makefile.am ++++ b/src/conf/cards/Makefile.am +@@ -54,7 +54,9 @@ cfg_files = aliases.conf \ + VIA8237.conf \ + VX222.conf \ + VXPocket.conf \ +- VXPocket440.conf ++ VXPocket440.conf \ ++ CS42888.conf \ ++ IMX-HDMI.conf + + if BUILD_ALISP + cfg_files += aliases.alisp +diff --git a/src/conf/cards/aliases.conf b/src/conf/cards/aliases.conf +index 4a92fb2..46430c2 100644 +--- a/src/conf/cards/aliases.conf ++++ b/src/conf/cards/aliases.conf +@@ -55,6 +55,8 @@ AV100 cards.CMI8788 + AV200 cards.CMI8788 + CMI8786 cards.CMI8788 + CMI8787 cards.CMI8788 ++cs42888-audio cards.CS42888 ++imx-hdmi-soc cards.IMX-HDMI + + <confdir:pcm/default.conf> + <confdir:pcm/dmix.conf> +-- +1.8.0 + diff --git a/recipes-multimedia/alsa/alsa-lib_%.bbappend b/recipes-multimedia/alsa/alsa-lib_%.bbappend new file mode 100644 index 00000000..9d95e680 --- /dev/null +++ b/recipes-multimedia/alsa/alsa-lib_%.bbappend @@ -0,0 +1,7 @@ + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append_mx6 = " file://0001-add-conf-for-multichannel-support-in-imx.patch \ +" +PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}" + diff --git a/recipes-multimedia/alsa/fsl-alsa-plugins/0001-asrc_pair-update-output-buffer-size.patch b/recipes-multimedia/alsa/fsl-alsa-plugins/0001-asrc_pair-update-output-buffer-size.patch new file mode 100644 index 00000000..d76c74d4 --- /dev/null +++ b/recipes-multimedia/alsa/fsl-alsa-plugins/0001-asrc_pair-update-output-buffer-size.patch @@ -0,0 +1,47 @@ +From 9acab46fe307ec71d4a4dbe447e356f90b6a4a09 Mon Sep 17 00:00:00 2001 +From: Shengjiu Wang <shengjiu.wang@freescale.com> +Date: Fri, 12 Dec 2014 14:58:06 +0800 +Subject: [PATCH] [asrc_pair] update output buffer size + +When input size larger than DMA_MAX_BYTES the output size should be updated. +Otherwise the asrc have will not have enough data, then it will be timeout. + +Upstream Status: Inappropriate [platform specific] + +Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com> +--- + asrc/asrc_pair.c | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/asrc/asrc_pair.c b/asrc/asrc_pair.c +index e3df027..e74e8b1 100644 +--- a/asrc/asrc_pair.c ++++ b/asrc/asrc_pair.c +@@ -139,7 +139,7 @@ asrc_pair *asrc_pair_create(unsigned int channels, ssize_t in_period_frames, + config.dma_buffer_size = dma_buffer_size; + config.input_sample_rate = in_rate; + config.output_sample_rate = out_rate; +- config.buffer_num = 1; ++ config.buffer_num = buf_num; + config.input_word_width = ASRC_WIDTH_16_BIT; + config.output_word_width = ASRC_WIDTH_16_BIT; + config.inclk = INCLK_NONE; +@@ -303,8 +303,13 @@ void asrc_pair_convert_s16(asrc_pair *pair, const int16_t *src, unsigned int src + + while (src_left > 0) + { +- in_len = src_left > pair->buf_size ? pair->buf_size : src_left; +- out_len = dst_left; ++ if (src_left > pair->buf_size) { ++ in_len = pair->buf_size; ++ out_len = dst_left * in_len/src_left; ++ } else { ++ in_len = src_left; ++ out_len = dst_left; ++ } + + buf_info.input_buffer_vaddr = s; + buf_info.input_buffer_length = in_len; +-- +1.9.1 + diff --git a/recipes-multimedia/alsa/fsl-alsa-plugins_1.0.25.bb b/recipes-multimedia/alsa/fsl-alsa-plugins_1.0.25.bb new file mode 100644 index 00000000..af552701 --- /dev/null +++ b/recipes-multimedia/alsa/fsl-alsa-plugins_1.0.25.bb @@ -0,0 +1,33 @@ +# Copyright (C) 2013 Freescale Semiconductor +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "Freescale alsa-lib plugins" +LICENSE = "GPLv2" +SECTION = "multimedia" +DEPENDS = "alsa-lib virtual/kernel" + +# Make sure kernel sources are available +do_configure[depends] += "virtual/kernel:do_shared_workdir" + +LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit autotools pkgconfig + +SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.tar.gz" +SRC_URI[md5sum] = "b1ca7a250a8cd5da07062081b30b4118" +SRC_URI[sha256sum] = "902df92255d755e8eb08b3c3db0c7b9d70d26d9659b219373bee425ffdc34245" + +SRC_URI_append_mx6 = " file://0001-asrc_pair-update-output-buffer-size.patch" + +INCLUDE_DIR = "-I${STAGING_KERNEL_DIR}/include/uapi -I${STAGING_KERNEL_DIR}/include" + +EXTRA_OECONF = "CFLAGS="${INCLUDE_DIR}"" + +INSANE_SKIP_${PN} = "dev-so" + +FILES_${PN} += "${libdir}/alsa-lib/libasound_*.so" +FILES_${PN}-dbg += "${libdir}/alsa-lib/.debug" +FILES_${PN}-dev += "${libdir}/alsa-lib/*.la" + +COMPATIBLE_MACHINE = "(mx6)" +PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}" |