All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vinod Koul <vinod.koul@intel.com>
To: alsa-devel@alsa-project.org
Cc: liam.r.girdwood@linux.intel.com, patches.audio@intel.com,
	broonie@kernel.org, Vinod Koul <vinod.koul@intel.com>,
	Omair M Abdullah <omair.m.abdullah@intel.com>
Subject: [PATCH 13/16] ASoC: Intel: Skylake: read params from DSP if module is on
Date: Sat, 28 Nov 2015 15:01:58 +0530	[thread overview]
Message-ID: <1448703121-5831-14-git-send-email-vinod.koul@intel.com> (raw)
In-Reply-To: <1448703121-5831-1-git-send-email-vinod.koul@intel.com>

From: Omair M Abdullah <omair.m.abdullah@intel.com>

If a module is ON then we should read the module parameters from
DSP rather than driver cached values

Signed-off-by: Omair M Abdullah <omair.m.abdullah@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
---
 sound/soc/intel/skylake/skl-messages.c | 13 +++++++++++++
 sound/soc/intel/skylake/skl-topology.c |  7 +++++++
 sound/soc/intel/skylake/skl-topology.h |  2 ++
 3 files changed, 22 insertions(+)

diff --git a/sound/soc/intel/skylake/skl-messages.c b/sound/soc/intel/skylake/skl-messages.c
index 17fe1cf20e64..5ce2269c2e5f 100644
--- a/sound/soc/intel/skylake/skl-messages.c
+++ b/sound/soc/intel/skylake/skl-messages.c
@@ -945,3 +945,16 @@ int skl_set_module_params(struct skl_sst *ctx, u32 *params, int size,
 
 	return skl_ipc_set_large_config(&ctx->ipc, &msg, params);
 }
+
+int skl_get_module_params(struct skl_sst *ctx, u32 *params, int size,
+			  u32 param_id, struct skl_module_cfg *mcfg)
+{
+	struct skl_ipc_large_config_msg msg;
+
+	msg.module_id = mcfg->id.module_id;
+	msg.instance_id = mcfg->id.instance_id;
+	msg.param_data_size = size;
+	msg.large_param_id = param_id;
+
+	return skl_ipc_get_large_config(&ctx->ipc, &msg, params);
+}
diff --git a/sound/soc/intel/skylake/skl-topology.c b/sound/soc/intel/skylake/skl-topology.c
index 121361ed159f..e226eb793e13 100644
--- a/sound/soc/intel/skylake/skl-topology.c
+++ b/sound/soc/intel/skylake/skl-topology.c
@@ -903,6 +903,13 @@ static int skl_tplg_tlv_control_get(struct snd_kcontrol *kcontrol,
 	struct soc_bytes_ext *sb =
 			(struct soc_bytes_ext *)kcontrol->private_value;
 	struct skl_algo_data *bc = (struct skl_algo_data *)sb->dobj.private;
+	struct snd_soc_dapm_widget *w = snd_soc_dapm_kcontrol_widget(kcontrol);
+	struct skl_module_cfg *mconfig = w->priv;
+	struct skl *skl = get_skl_ctx(w->dapm->dev);
+
+	if (w->power)
+		skl_get_module_params(skl->skl_sst, (u32 *)bc->params,
+				      bc->max, bc->param_id, mconfig);
 
 	if (bc->params) {
 		if (copy_to_user(data, &bc->param_id, sizeof(u32)))
diff --git a/sound/soc/intel/skylake/skl-topology.h b/sound/soc/intel/skylake/skl-topology.h
index f12d0770ee23..baaa326e3a28 100644
--- a/sound/soc/intel/skylake/skl-topology.h
+++ b/sound/soc/intel/skylake/skl-topology.h
@@ -342,6 +342,8 @@ int skl_unbind_modules(struct skl_sst *ctx, struct skl_module_cfg
 
 int skl_set_module_params(struct skl_sst *ctx, u32 *params, int size,
 			u32 param_id, struct skl_module_cfg *mcfg);
+int skl_get_module_params(struct skl_sst *ctx, u32 *params, int size,
+			  u32 param_id, struct skl_module_cfg *mcfg);
 
 int skl_load_modules(struct skl_sst *ctx, struct skl_module_cfg *mcfg);
 
-- 
2.4.3

  parent reply	other threads:[~2015-11-28  9:33 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-28  9:31 [PATCH 00/16] ASoC: Intel: Skylake: Add support for loadable modules Vinod Koul
2015-11-28  9:31 ` [PATCH 01/16] ASoC: Intel: Skylake: Update DMIC DAIs and capabilities Vinod Koul
2015-12-01 21:32   ` Mark Brown
2015-12-02  4:53     ` Vinod Koul
2015-12-03  0:59       ` Mark Brown
2015-12-01 22:59   ` Applied "ASoC: Intel: Skylake: Update DMIC DAIs and capabilities" to the asoc tree Mark Brown
2015-11-28  9:31 ` [PATCH 02/16] ASoC: Intel: Skylake: Add helper routines to handle module params Vinod Koul
2015-12-01 22:59   ` Applied "ASoC: Intel: Skylake: Add helper routines to handle module params" to the asoc tree Mark Brown
2015-11-28  9:31 ` [PATCH 03/16] ASoC: Intel: Skylake: Add helper routine to handle Algo parameter Vinod Koul
2015-12-01 22:59   ` Applied "ASoC: Intel: Skylake: Add helper routine to handle Algo parameter" to the asoc tree Mark Brown
2015-11-28  9:31 ` [PATCH 04/16] ASoC: Intel: Skylake: Add support to configure module params Vinod Koul
2015-12-01 22:59   ` Applied "ASoC: Intel: Skylake: Add support to configure module params" to the asoc tree Mark Brown
2015-11-28  9:31 ` [PATCH 05/16] ASoC: Intel: Skylake: Add tlv byte kcontrols Vinod Koul
2015-12-01 22:59   ` Applied "ASoC: Intel: Skylake: Add tlv byte kcontrols" to the asoc tree Mark Brown
2015-11-28  9:31 ` [PATCH 06/16] ASoC: Intel: Skylake: Add support for Load/Unload IPCs Vinod Koul
2015-12-01 22:58   ` Mark Brown
2015-12-02  5:07     ` Vinod Koul
2015-12-03  0:59       ` Mark Brown
2015-12-03  5:51         ` Vinod Koul
2015-11-28  9:31 ` [PATCH 07/16] ASoC: Intel: Skylake: Add support for Loadable modules Vinod Koul
2015-11-28  9:31 ` [PATCH 08/16] ASoC: Intel: Skylake: Add memory pages to widget data Vinod Koul
2015-12-08 19:11   ` Applied "ASoC: Intel: Skylake: Add memory pages to widget data." to the asoc tree Mark Brown
2015-11-28  9:31 ` [PATCH 09/16] ASoC: Intel: Skylake: Add support for Mic Select module Vinod Koul
2015-12-08 19:11   ` Applied "ASoC: Intel: Skylake: Add support for Mic Select module" to the asoc tree Mark Brown
2015-11-28  9:31 ` [PATCH 10/16] ASoC: Intel: Skylake: Fix module init data correctly Vinod Koul
2015-12-08 19:11   ` Applied "ASoC: Intel: Skylake: Fix module init data correctly" to the asoc tree Mark Brown
2015-11-28  9:31 ` [PATCH 11/16] ASoC: Intel: Skylake: update mailbox uplink window offset and size Vinod Koul
2015-12-08 19:11   ` Applied "ASoC: Intel: Skylake: update mailbox uplink window offset and size" to the asoc tree Mark Brown
2015-11-28  9:31 ` [PATCH 12/16] ASoC: Intel: Skylake: add LARGE_CONFIG_GET IPC support Vinod Koul
2015-12-08 19:11   ` Applied "ASoC: Intel: Skylake: add LARGE_CONFIG_GET IPC support" to the asoc tree Mark Brown
2015-11-28  9:31 ` Vinod Koul [this message]
2015-11-28  9:31 ` [PATCH 14/16] ASoC: Intel: Skylake: Add dai link for DMIC capture Vinod Koul
2015-12-08 19:11   ` Applied "ASoC: Intel: Skylake: Add dai link for DMIC capture" to the asoc tree Mark Brown
2015-11-28  9:32 ` [PATCH 15/16] ASoC: Intel: Skylake: add wov as int sink Vinod Koul
2015-12-08 19:11   ` Applied "ASoC: Intel: Skylake: add wov as int sink" to the asoc tree Mark Brown
2015-11-28  9:32 ` [PATCH 16/16] ASoc: Intel: Skylake: Fix the dapm machine map Vinod Koul
2015-12-08 19:11   ` Applied "ASoC: Intel: Skylake: Fix the dapm machine map" 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=1448703121-5831-14-git-send-email-vinod.koul@intel.com \
    --to=vinod.koul@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=liam.r.girdwood@linux.intel.com \
    --cc=omair.m.abdullah@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.