diff mbox

[1/2] ASoC: Intel: Add stream direction for pcm-module map

Message ID 1420698741-26016-1-git-send-email-yang.jie@intel.com (mailing list archive)
State Accepted
Commit 98b9c1d2ce59d98d5921bbdca5a6d7fe40b4a384
Headers show

Commit Message

Jie, Yang Jan. 8, 2015, 6:32 a.m. UTC
A DAI may have 2 streams(playback/capture) and different modules
may be needed for them respectively, so we need add a stream
direction here, the combination(dai_id + stream) can tell us
which module we really need here.

Signed-off-by: Jie Yang <yang.jie@intel.com>
---
 sound/soc/intel/sst-haswell-pcm.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

Comments

Mark Brown Jan. 8, 2015, 6:32 p.m. UTC | #1
On Thu, Jan 08, 2015 at 02:32:20PM +0800, Jie Yang wrote:
> A DAI may have 2 streams(playback/capture) and different modules
> may be needed for them respectively, so we need add a stream
> direction here, the combination(dai_id + stream) can tell us
> which module we really need here.

Applied, thanks.
Mark Brown Jan. 8, 2015, 6:33 p.m. UTC | #2
On Thu, Jan 08, 2015 at 02:32:20PM +0800, Jie Yang wrote:
> A DAI may have 2 streams(playback/capture) and different modules
> may be needed for them respectively, so we need add a stream
> direction here, the combination(dai_id + stream) can tell us
> which module we really need here.

This doesn't seem to apply against current code, can you please check
and resend?
diff mbox

Patch

diff --git a/sound/soc/intel/sst-haswell-pcm.c b/sound/soc/intel/sst-haswell-pcm.c
index 04393e3..f4cdf48 100644
--- a/sound/soc/intel/sst-haswell-pcm.c
+++ b/sound/soc/intel/sst-haswell-pcm.c
@@ -83,7 +83,6 @@  static const u32 volume_map[] = {
 #define HSW_PCM_DAI_ID_OFFLOAD0	1
 #define HSW_PCM_DAI_ID_OFFLOAD1	2
 #define HSW_PCM_DAI_ID_LOOPBACK	3
-#define HSW_PCM_DAI_ID_CAPTURE	4
 
 
 static const struct snd_pcm_hardware hsw_pcm_hardware = {
@@ -104,6 +103,7 @@  static const struct snd_pcm_hardware hsw_pcm_hardware = {
 
 struct hsw_pcm_module_map {
 	int dai_id;
+	int stream;
 	enum sst_hsw_module_id mod_id;
 };
 
@@ -751,11 +751,11 @@  static struct snd_pcm_ops hsw_pcm_ops = {
 
 /* static mappings between PCMs and modules - may be dynamic in future */
 static struct hsw_pcm_module_map mod_map[] = {
-	{HSW_PCM_DAI_ID_SYSTEM, SST_HSW_MODULE_PCM_SYSTEM},
-	{HSW_PCM_DAI_ID_OFFLOAD0, SST_HSW_MODULE_PCM},
-	{HSW_PCM_DAI_ID_OFFLOAD1, SST_HSW_MODULE_PCM},
-	{HSW_PCM_DAI_ID_LOOPBACK, SST_HSW_MODULE_PCM_REFERENCE},
-	{HSW_PCM_DAI_ID_CAPTURE, SST_HSW_MODULE_PCM_CAPTURE},
+	{HSW_PCM_DAI_ID_SYSTEM, 0, SST_HSW_MODULE_PCM_SYSTEM},
+	{HSW_PCM_DAI_ID_OFFLOAD0, 0, SST_HSW_MODULE_PCM},
+	{HSW_PCM_DAI_ID_OFFLOAD1, 0, SST_HSW_MODULE_PCM},
+	{HSW_PCM_DAI_ID_LOOPBACK, 1, SST_HSW_MODULE_PCM_REFERENCE},
+	{HSW_PCM_DAI_ID_SYSTEM, 1, SST_HSW_MODULE_PCM_CAPTURE},
 };
 
 static int hsw_pcm_create_modules(struct hsw_priv_data *pdata)
@@ -1139,7 +1139,7 @@  static void hsw_pcm_complete(struct device *dev)
 		return;
 	}
 
-	for (i = 0; i < HSW_PCM_DAI_ID_CAPTURE + 1; i++) {
+	for (i = 0; i < ARRAY_SIZE(mod_map); i++) {
 		pcm_data = &pdata->pcm[i];
 
 		if (!pcm_data->substream)
@@ -1173,7 +1173,7 @@  static int hsw_pcm_prepare(struct device *dev)
 	if (pdata->pm_state == HSW_PM_STATE_D3)
 		return 0;
 	/* suspend all active streams */
-	for (i = 0; i < HSW_PCM_DAI_ID_CAPTURE + 1; i++) {
+	for (i = 0; i < ARRAY_SIZE(mod_map); i++) {
 		pcm_data = &pdata->pcm[i];
 
 		if (!pcm_data->substream)
@@ -1192,7 +1192,7 @@  static int hsw_pcm_prepare(struct device *dev)
 	sst_hsw_dsp_runtime_suspend(hsw);
 
 	/* preserve persistent memory */
-	for (i = 0; i < HSW_PCM_DAI_ID_CAPTURE + 1; i++) {
+	for (i = 0; i < ARRAY_SIZE(mod_map); i++) {
 		pcm_data = &pdata->pcm[i];
 
 		if (!pcm_data->substream)