All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vinod Koul <vinod.koul@intel.com>
To: alsa-devel@alsa-project.org
Cc: Dharageswari R <dharageswari.r@intel.com>,
	patches.audio@intel.com, liam.r.girdwood@linux.intel.com,
	Vinod Koul <vinod.koul@intel.com>,
	broonie@kernel.org, Jeeja KP <jeeja.kp@intel.com>
Subject: [PATCH v2 03/12] ASoC: Intel: Skylake: Add support for Mic Select module
Date: Thu,  3 Dec 2015 23:29:52 +0530	[thread overview]
Message-ID: <1449165601-11226-4-git-send-email-vinod.koul@intel.com> (raw)
In-Reply-To: <1449165601-11226-1-git-send-email-vinod.koul@intel.com>

From: "Dharageswari R" <dharageswari.r@intel.com>

Mic select is a DSP module which is used to select one or many
inputs to form an output. This is useful to select data
selectively from PDM input and hence the name. This module is of
generic module type.

This patch adds support to add and configure Mic select module in
firmware topology.

Signed-off-by: Dharageswari R <dharageswari.r@intel.com>
Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
---
 sound/soc/intel/skylake/skl-messages.c       | 26 ++++++++++++++++++++++++++
 sound/soc/intel/skylake/skl-topology.h       |  5 +++++
 sound/soc/intel/skylake/skl-tplg-interface.h |  3 ++-
 3 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/sound/soc/intel/skylake/skl-messages.c b/sound/soc/intel/skylake/skl-messages.c
index 5297b345839a..a91161be7f5d 100644
--- a/sound/soc/intel/skylake/skl-messages.c
+++ b/sound/soc/intel/skylake/skl-messages.c
@@ -410,6 +410,25 @@ static void skl_set_algo_format(struct skl_sst *ctx,
 
 }
 
+/*
+ * Mic select module allows selecting one or many input channels, thus
+ * acting as a demux.
+ *
+ * Mic select module take base module configuration and out-format
+ * configuration
+ */
+static void skl_set_base_outfmt_format(struct skl_sst *ctx,
+			struct skl_module_cfg *mconfig,
+			struct skl_base_outfmt_cfg *base_outfmt_mcfg)
+{
+	struct skl_audio_data_format *out_fmt = &base_outfmt_mcfg->out_fmt;
+	struct skl_base_cfg *base_cfg =
+				(struct skl_base_cfg *)base_outfmt_mcfg;
+
+	skl_set_base_module_format(ctx, mconfig, base_cfg);
+	skl_setup_out_format(ctx, mconfig, out_fmt);
+}
+
 static u16 skl_get_module_param_size(struct skl_sst *ctx,
 			struct skl_module_cfg *mconfig)
 {
@@ -432,6 +451,9 @@ static u16 skl_get_module_param_size(struct skl_sst *ctx,
 		param_size += mconfig->formats_config.caps_size;
 		return param_size;
 
+	case SKL_MODULE_TYPE_BASE_OUTFMT:
+		return sizeof(struct skl_base_outfmt_cfg);
+
 	default:
 		/*
 		 * return only base cfg when no specific module type is
@@ -482,6 +504,10 @@ static int skl_set_module_format(struct skl_sst *ctx,
 		skl_set_algo_format(ctx, module_config, *param_data);
 		break;
 
+	case SKL_MODULE_TYPE_BASE_OUTFMT:
+		skl_set_base_outfmt_format(ctx, module_config, *param_data);
+		break;
+
 	default:
 		skl_set_base_module_format(ctx, module_config, *param_data);
 		break;
diff --git a/sound/soc/intel/skylake/skl-topology.h b/sound/soc/intel/skylake/skl-topology.h
index 04318e2091fd..349f2a3b6613 100644
--- a/sound/soc/intel/skylake/skl-topology.h
+++ b/sound/soc/intel/skylake/skl-topology.h
@@ -145,6 +145,11 @@ struct skl_algo_cfg {
 	char params[0];
 } __packed;
 
+struct skl_base_outfmt_cfg {
+	struct skl_base_cfg base_cfg;
+	struct skl_audio_data_format out_fmt;
+} __packed;
+
 enum skl_dma_type {
 	SKL_DMA_HDA_HOST_OUTPUT_CLASS = 0,
 	SKL_DMA_HDA_HOST_INPUT_CLASS = 1,
diff --git a/sound/soc/intel/skylake/skl-tplg-interface.h b/sound/soc/intel/skylake/skl-tplg-interface.h
index 3f1908e3ae80..626b148317fe 100644
--- a/sound/soc/intel/skylake/skl-tplg-interface.h
+++ b/sound/soc/intel/skylake/skl-tplg-interface.h
@@ -79,7 +79,8 @@ enum skl_module_type {
 	SKL_MODULE_TYPE_COPIER,
 	SKL_MODULE_TYPE_UPDWMIX,
 	SKL_MODULE_TYPE_SRCINT,
-	SKL_MODULE_TYPE_ALGO
+	SKL_MODULE_TYPE_ALGO,
+	SKL_MODULE_TYPE_BASE_OUTFMT
 };
 
 enum skl_core_affinity {
-- 
1.9.1

  parent reply	other threads:[~2015-12-03 17:57 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-03 17:59 [PATCH v2 00/12] ASoC: Intel: Skylake: Add support for loadable modules Vinod Koul
2015-12-03 17:59 ` [PATCH v2 01/12] ASoC: Intel: Skylake: Add support for Loadable modules Vinod Koul
2015-12-08 19:11   ` Applied "ASoC: Intel: Skylake: Add support for Loadable modules" to the asoc tree Mark Brown
2015-12-03 17:59 ` [PATCH v2 02/12] ASoC: Intel: Skylake: Add memory pages to widget data Vinod Koul
2015-12-03 17:59 ` Vinod Koul [this message]
2015-12-03 17:59 ` [PATCH v2 04/12] ASoC: Intel: Skylake: Fix module init data correctly Vinod Koul
2015-12-03 17:59 ` [PATCH v2 05/12] ASoC: Intel: Skylake: update mailbox uplink window offset and size Vinod Koul
2015-12-03 17:59 ` [PATCH v2 06/12] ASoC: Intel: Skylake: add LARGE_CONFIG_GET IPC support Vinod Koul
2015-12-03 17:59 ` [PATCH v2 07/12] ASoC: Intel: Skylake: read params from DSP if module is on Vinod Koul
2015-12-08 19:11   ` Applied "ASoC: Intel: Skylake: read params from DSP if module is on" to the asoc tree Mark Brown
2015-12-03 17:59 ` [PATCH v2 08/12] ASoC: Intel: Skylake: Add dai link for DMIC capture Vinod Koul
2015-12-03 17:59 ` [PATCH v2 09/12] ASoC: Intel: Skylake: add wov as int sink Vinod Koul
2015-12-03 17:59 ` [PATCH v2 10/12] ASoc: Intel: Skylake: Fix the dapm machine map Vinod Koul
2015-12-03 18:00 ` [PATCH v2 11/12] ASoC: Intel: Skylake: Add support for active suspend Vinod Koul
2015-12-08 19:11   ` Applied "ASoC: Intel: Skylake: Add support for active suspend" to the asoc tree Mark Brown
2015-12-03 18:00 ` [PATCH v2 12/12] ASoC: Intel: Skylake: Update ignore suspend for rt286 machine Vinod Koul
2015-12-08 19:11   ` Applied "ASoC: Intel: Skylake: Update ignore suspend for rt286 machine" to the asoc tree Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1449165601-11226-4-git-send-email-vinod.koul@intel.com \
    --to=vinod.koul@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=dharageswari.r@intel.com \
    --cc=jeeja.kp@intel.com \
    --cc=liam.r.girdwood@linux.intel.com \
    --cc=patches.audio@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.