[alsa-devel] [PATCH v2 1/3] ASoC: zx: Add ZTE zx296702 pcm support

Jun Nie jun.nie at linaro.org
Mon May 18 10:04:30 CEST 2015


2015-05-06 20:38 GMT+08:00 Jun Nie <jun.nie at linaro.org>:
> This patch adds zx296702 ASoC DMA audio support. It
> handle audio dma based on soc-dmaengine
>
Mark,

Do you have any comments on this patch set? Or you suggest to add HDMI
API calling in the same serial patch? For the HDMI calling, I have no
good idea except direct call currently. Because I need dts hook to
audio driver, while no HDMI call back data can be shared from video
side to audio side in this independent initialization case.

Jun

> Signed-off-by: Jun Nie <jun.nie at linaro.org>
> ---
>  sound/soc/Kconfig            |  1 +
>  sound/soc/Makefile           |  1 +
>  sound/soc/zte/Kconfig        |  8 ++++++++
>  sound/soc/zte/Makefile       |  1 +
>  sound/soc/zte/zx296702-pcm.c | 46 ++++++++++++++++++++++++++++++++++++++++++++
>  sound/soc/zte/zx296702-pcm.h |  6 ++++++
>  6 files changed, 63 insertions(+)
>  create mode 100644 sound/soc/zte/Kconfig
>  create mode 100644 sound/soc/zte/Makefile
>  create mode 100644 sound/soc/zte/zx296702-pcm.c
>  create mode 100644 sound/soc/zte/zx296702-pcm.h
>
> diff --git a/sound/soc/Kconfig b/sound/soc/Kconfig
> index 3ba52da..e2828e1 100644
> --- a/sound/soc/Kconfig
> +++ b/sound/soc/Kconfig
> @@ -57,6 +57,7 @@ source "sound/soc/tegra/Kconfig"
>  source "sound/soc/txx9/Kconfig"
>  source "sound/soc/ux500/Kconfig"
>  source "sound/soc/xtensa/Kconfig"
> +source "sound/soc/zte/Kconfig"
>
>  # Supported codecs
>  source "sound/soc/codecs/Kconfig"
> diff --git a/sound/soc/Makefile b/sound/soc/Makefile
> index 974ba70..57bf32d 100644
> --- a/sound/soc/Makefile
> +++ b/sound/soc/Makefile
> @@ -38,3 +38,4 @@ obj-$(CONFIG_SND_SOC) += tegra/
>  obj-$(CONFIG_SND_SOC)  += txx9/
>  obj-$(CONFIG_SND_SOC)  += ux500/
>  obj-$(CONFIG_SND_SOC)  += xtensa/
> +obj-$(CONFIG_SND_SOC)  += zte/
> diff --git a/sound/soc/zte/Kconfig b/sound/soc/zte/Kconfig
> new file mode 100644
> index 0000000..392ffa6
> --- /dev/null
> +++ b/sound/soc/zte/Kconfig
> @@ -0,0 +1,8 @@
> +config SND_SOC_ZX296702
> +       tristate "SoC Audio for the ZX296702 System-on-Chip"
> +       depends on SOC_ZX296702 || COMPILE_TEST
> +       depends on COMMON_CLK
> +       select SND_SOC_GENERIC_DMAENGINE_PCM
> +       help
> +         Say Y or M here if you want support for SoC audio on ZX296702
> +         chip.
> diff --git a/sound/soc/zte/Makefile b/sound/soc/zte/Makefile
> new file mode 100644
> index 0000000..f2a6af8
> --- /dev/null
> +++ b/sound/soc/zte/Makefile
> @@ -0,0 +1 @@
> +obj-$(CONFIG_SND_SOC_ZX296702) += zx296702-pcm.o
> diff --git a/sound/soc/zte/zx296702-pcm.c b/sound/soc/zte/zx296702-pcm.c
> new file mode 100644
> index 0000000..6e1a61a
> --- /dev/null
> +++ b/sound/soc/zte/zx296702-pcm.c
> @@ -0,0 +1,46 @@
> +/*
> + * Copyright (C) 2015 Linaro
> + *
> + * Author: Jun Nie <jun.nie at linaro.org>
> + *
> + * License terms: GNU General Public License (GPL) version 2
> + */
> +
> +#include <linux/device.h>
> +#include <linux/init.h>
> +#include <linux/module.h>
> +#include <sound/core.h>
> +#include <sound/pcm.h>
> +#include <sound/soc.h>
> +#include <sound/dmaengine_pcm.h>
> +
> +#include "zx296702-pcm.h"
> +
> +static const struct snd_pcm_hardware snd_zx_hardware = {
> +       .info                   = SNDRV_PCM_INFO_MMAP |
> +                                 SNDRV_PCM_INFO_MMAP_VALID |
> +                                 SNDRV_PCM_INFO_INTERLEAVED |
> +                                 SNDRV_PCM_INFO_PAUSE |
> +                                 SNDRV_PCM_INFO_RESUME |
> +                                 SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
> +       .period_bytes_min       = 32,
> +       .period_bytes_max       = 16 * 1024,
> +       .periods_min            = 2,
> +       .periods_max            = 32,
> +       .buffer_bytes_max       = 64 * 1024,
> +};
> +
> +static const struct snd_dmaengine_pcm_config zx_dmaengine_pcm_config = {
> +       .prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config,
> +       .pcm_hardware = &snd_zx_hardware,
> +       .prealloc_buffer_size = 64 * 1024,
> +};
> +
> +int zx_pcm_platform_register(struct device *dev)
> +{
> +       return devm_snd_dmaengine_pcm_register(dev, &zx_dmaengine_pcm_config,
> +                       0);
> +}
> +EXPORT_SYMBOL_GPL(zx_pcm_platform_register);
> +
> +MODULE_LICENSE("GPL");
> diff --git a/sound/soc/zte/zx296702-pcm.h b/sound/soc/zte/zx296702-pcm.h
> new file mode 100644
> index 0000000..4809a38
> --- /dev/null
> +++ b/sound/soc/zte/zx296702-pcm.h
> @@ -0,0 +1,6 @@
> +#ifndef _ZX_PCM_H
> +#define _ZX_PCM_H
> +
> +int zx_pcm_platform_register(struct device *dev);
> +
> +#endif
> --
> 1.9.1
>


More information about the Alsa-devel mailing list