|
@@ -78,7 +78,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 = {
|
|
@@ -99,6 +98,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;
|
|
|
};
|
|
|
|
|
@@ -687,11 +687,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)
|
|
@@ -1075,7 +1075,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)
|
|
@@ -1109,7 +1109,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)
|
|
@@ -1128,7 +1128,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)
|