[PATCH v3 03/17] ASoC: Intel: Introduce AVS driver

Ranjani Sridharan ranjani.sridharan at linux.intel.com
Fri Mar 4 16:51:36 CET 2022


On Fri, 2022-03-04 at 15:57 +0100, Cezary Rojewski wrote:
> Declare base structures and core DSP operations for the avs solution.
> The base structures describe PCI HDAudio bus device and platform-type
> differentiations. First set of operations added controls the
> lifecycle
> of any Audio DSP core: (un)powering, (un)resetting and (un)stalling.
> 
> Signed-off-by: Amadeusz Sławiński <
> amadeuszx.slawinski at linux.intel.com>
> Signed-off-by: Cezary Rojewski <cezary.rojewski at intel.com>
> ---
>  sound/soc/intel/Kconfig         |  11 ++++
>  sound/soc/intel/Makefile        |   1 +
>  sound/soc/intel/avs/Makefile    |   5 ++
>  sound/soc/intel/avs/avs.h       |  71 +++++++++++++++++++++
>  sound/soc/intel/avs/dsp.c       | 107
> ++++++++++++++++++++++++++++++++
>  sound/soc/intel/avs/registers.h |  22 +++++++
>  6 files changed, 217 insertions(+)
>  create mode 100644 sound/soc/intel/avs/Makefile
>  create mode 100644 sound/soc/intel/avs/avs.h
>  create mode 100644 sound/soc/intel/avs/dsp.c
>  create mode 100644 sound/soc/intel/avs/registers.h
> 
> diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
> index f3a4a907b29d..e9768c4aa1a9 100644
> --- a/sound/soc/intel/Kconfig
> +++ b/sound/soc/intel/Kconfig
> @@ -209,5 +209,16 @@ config SND_SOC_INTEL_KEEMBAY
>  	  If you have a Intel Keembay platform then enable this option
>  	  by saying Y or m.
>  
> +config SND_SOC_INTEL_AVS
> +	tristate "Intel AVS driver"
> +	depends on PCI && ACPI
> +	depends on COMMON_CLK
> +	select SND_SOC_ACPI
> +	select SND_HDA_EXT_CORE
> +	help
> +	  Enable support for Intel(R) cAVS 1.5 platforms with DSP
> +	  capabilities. This includes Skylake, Kabylake, Amberlake and
> +	  Apollolake.
> +
>  # ASoC codec drivers
>  source "sound/soc/intel/boards/Kconfig"
> diff --git a/sound/soc/intel/Makefile b/sound/soc/intel/Makefile
> index 7c5038803be7..d44b2652c707 100644
> --- a/sound/soc/intel/Makefile
> +++ b/sound/soc/intel/Makefile
> @@ -7,6 +7,7 @@ obj-$(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM) += atom/
>  obj-$(CONFIG_SND_SOC_INTEL_CATPT) += catpt/
>  obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON) += skylake/
>  obj-$(CONFIG_SND_SOC_INTEL_KEEMBAY) += keembay/
> +obj-$(CONFIG_SND_SOC_INTEL_AVS) += avs/
>  
>  # Machine support
>  obj-$(CONFIG_SND_SOC) += boards/
> diff --git a/sound/soc/intel/avs/Makefile
> b/sound/soc/intel/avs/Makefile
> new file mode 100644
> index 000000000000..5f7976a95fe2
> --- /dev/null
> +++ b/sound/soc/intel/avs/Makefile
> @@ -0,0 +1,5 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +
> +snd-soc-avs-objs := dsp.o
> +
> +obj-$(CONFIG_SND_SOC_INTEL_AVS) += snd-soc-avs.o
> diff --git a/sound/soc/intel/avs/avs.h b/sound/soc/intel/avs/avs.h
> new file mode 100644
> index 000000000000..d4e6310e4bf7
> --- /dev/null
> +++ b/sound/soc/intel/avs/avs.h
> @@ -0,0 +1,71 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright(c) 2021 Intel Corporation. All rights reserved.
> + *
> + * Authors: Cezary Rojewski <cezary.rojewski at intel.com>
> + *          Amadeusz Slawinski <amadeuszx.slawinski at linux.intel.com>
> + */
> +
> +#ifndef __SOUND_SOC_INTEL_AVS_H
> +#define __SOUND_SOC_INTEL_AVS_H
> +
> +#include <linux/device.h>
> +#include <sound/hda_codec.h>
> +
> +struct avs_dev;
> +
> +struct avs_dsp_ops {
> +	int (* const power)(struct avs_dev *, u32, bool);
> +	int (* const reset)(struct avs_dev *, u32, bool);
> +	int (* const stall)(struct avs_dev *, u32, bool);
> +};
> +
> +#define avs_dsp_op(adev, op, ...) \
> +	((adev)->spec->dsp_ops->op(adev, ## __VA_ARGS__))
> +
> +#define avs_platattr_test(adev, attr) \
> +	((adev)->spec->attributes & AVS_PLATATTR_##attr)
AVS_PLATATTR_* don't seem to be defined in this patch?

Thanks,
Ranjani



More information about the Alsa-devel mailing list