Loading asoc/msm_dailink.h +5 −0 Original line number Diff line number Diff line Loading @@ -383,6 +383,11 @@ SND_SOC_DAILINK_DEFS(afe_pcm_rx, DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-rx")), DAILINK_COMP_ARRAY(COMP_PLATFORM("msm-pcm-routing"))); SND_SOC_DAILINK_DEFS(afe_pcm_rx1, DAILINK_COMP_ARRAY(COMP_CPU("msm-dai-q6-dev.226")), DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-rx")), DAILINK_COMP_ARRAY(COMP_PLATFORM("msm-pcm-routing"))); SND_SOC_DAILINK_DEFS(afe_pcm_tx, DAILINK_COMP_ARRAY(COMP_CPU("msm-dai-q6-dev.225")), DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-tx")), Loading asoc/sa6155.c +58 −11 Original line number Diff line number Diff line Loading @@ -295,10 +295,17 @@ static struct dev_config usb_tx_cfg = { .channels = 1, }; static struct dev_config proxy_rx_cfg = { static struct dev_config proxy_rx_cfg[] = { { .sample_rate = SAMPLING_RATE_48KHZ, .bit_format = SNDRV_PCM_FORMAT_S16_LE, .channels = 2, }, { .sample_rate = SAMPLING_RATE_48KHZ, .bit_format = SNDRV_PCM_FORMAT_S16_LE, .channels = 2, } }; /* Default configuration of MI2S channels */ Loading Loading @@ -1293,9 +1300,16 @@ static int ext_disp_rx_sample_rate_put(struct snd_kcontrol *kcontrol, static int proxy_rx_ch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { if(strnstr(kcontrol->id.name, "RX1", sizeof(kcontrol->id.name))) { ucontrol->value.integer.value[0] = proxy_rx_cfg[1].channels - 2; pr_debug("%s: proxy_rx1 channels = %d\n", __func__, proxy_rx_cfg[1].channels); } else { ucontrol->value.integer.value[0] = proxy_rx_cfg[0].channels - 2; pr_debug("%s: proxy_rx channels = %d\n", __func__, proxy_rx_cfg.channels); ucontrol->value.integer.value[0] = proxy_rx_cfg.channels - 2; __func__, proxy_rx_cfg[0].channels); } return 0; } Loading @@ -1303,9 +1317,16 @@ static int proxy_rx_ch_get(struct snd_kcontrol *kcontrol, static int proxy_rx_ch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { proxy_rx_cfg.channels = ucontrol->value.integer.value[0] + 2; if(strnstr(kcontrol->id.name, "RX1", sizeof(kcontrol->id.name))) { proxy_rx_cfg[1].channels = ucontrol->value.integer.value[0] + 2; pr_debug("%s: proxy_rx1 channels = %d\n", __func__, proxy_rx_cfg[1].channels); } else { proxy_rx_cfg[0].channels = ucontrol->value.integer.value[0] + 2; pr_debug("%s: proxy_rx channels = %d\n", __func__, proxy_rx_cfg.channels); __func__, proxy_rx_cfg[0].channels); } return 1; } Loading Loading @@ -2630,6 +2651,8 @@ static const struct snd_kcontrol_new msm_snd_controls[] = { ext_disp_rx_ch_get, ext_disp_rx_ch_put), SOC_ENUM_EXT("PROXY_RX Channels", proxy_rx_chs, proxy_rx_ch_get, proxy_rx_ch_put), SOC_ENUM_EXT("PROXY_RX1 Channels", proxy_rx_chs, proxy_rx_ch_get, proxy_rx_ch_put), SOC_ENUM_EXT("USB_AUDIO_RX Format", usb_rx_format, usb_audio_rx_format_get, usb_audio_rx_format_put), SOC_ENUM_EXT("USB_AUDIO_TX Format", usb_tx_format, Loading Loading @@ -3367,7 +3390,12 @@ static int msm_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, break; case MSM_BACKEND_DAI_AFE_PCM_RX: channels->min = channels->max = proxy_rx_cfg.channels; channels->min = channels->max = proxy_rx_cfg[0].channels; rate->min = rate->max = SAMPLING_RATE_48KHZ; break; case MSM_BACKEND_DAI_AFE_PCM_RX1: channels->min = channels->max = proxy_rx_cfg[1].channels; rate->min = rate->max = SAMPLING_RATE_48KHZ; break; Loading Loading @@ -5835,6 +5863,13 @@ static struct snd_soc_dai_link msm_auto_fe_dai_links[] = { .id = MSM_FRONTEND_DAI_MULTIMEDIA34, SND_SOC_DAILINK_REG(multimedia34), }, { .name = "MSM AFE-PCM TX1", .stream_name = "AFE-PROXY TX1", .dpcm_capture = 1, .ignore_suspend = 1, SND_SOC_DAILINK_REG(afepcm_tx1), }, }; static struct snd_soc_dai_link msm_custom_fe_dai_links[] = { Loading Loading @@ -6561,6 +6596,18 @@ static struct snd_soc_dai_link msm_auto_be_dai_links[] = { .ignore_suspend = 1, SND_SOC_DAILINK_REG(quin_tdm_tx_7), }, { .name = LPASS_BE_AFE_PCM_RX1, .stream_name = "AFE Playback1", .no_pcm = 1, .dpcm_playback = 1, .id = MSM_BACKEND_DAI_AFE_PCM_RX1, .be_hw_params_fixup = msm_be_hw_params_fixup, /* this dainlink has playback support */ .ignore_pmdown_time = 1, .ignore_suspend = 1, SND_SOC_DAILINK_REG(afe_pcm_rx1), }, }; static struct snd_soc_dai_link ext_disp_be_dai_link[] = { Loading asoc/sa8155.c +58 −11 Original line number Diff line number Diff line Loading @@ -297,10 +297,17 @@ static struct dev_config usb_tx_cfg = { .channels = 1, }; static struct dev_config proxy_rx_cfg = { static struct dev_config proxy_rx_cfg[] = { { .sample_rate = SAMPLING_RATE_48KHZ, .bit_format = SNDRV_PCM_FORMAT_S16_LE, .channels = 2, }, { .sample_rate = SAMPLING_RATE_48KHZ, .bit_format = SNDRV_PCM_FORMAT_S16_LE, .channels = 2, } }; /* Default configuration of MI2S channels */ Loading Loading @@ -1296,9 +1303,16 @@ static int ext_disp_rx_sample_rate_put(struct snd_kcontrol *kcontrol, static int proxy_rx_ch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { if(strnstr(kcontrol->id.name, "RX1", sizeof(kcontrol->id.name))) { ucontrol->value.integer.value[0] = proxy_rx_cfg[1].channels - 2; pr_debug("%s: proxy_rx1 channels = %d\n", __func__, proxy_rx_cfg[1].channels); } else { ucontrol->value.integer.value[0] = proxy_rx_cfg[0].channels - 2; pr_debug("%s: proxy_rx channels = %d\n", __func__, proxy_rx_cfg.channels); ucontrol->value.integer.value[0] = proxy_rx_cfg.channels - 2; __func__, proxy_rx_cfg[0].channels); } return 0; } Loading @@ -1306,9 +1320,16 @@ static int proxy_rx_ch_get(struct snd_kcontrol *kcontrol, static int proxy_rx_ch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { proxy_rx_cfg.channels = ucontrol->value.integer.value[0] + 2; if(strnstr(kcontrol->id.name, "RX1", sizeof(kcontrol->id.name))) { proxy_rx_cfg[1].channels = ucontrol->value.integer.value[0] + 2; pr_debug("%s: proxy_rx1 channels = %d\n", __func__, proxy_rx_cfg[1].channels); } else { proxy_rx_cfg[0].channels = ucontrol->value.integer.value[0] + 2; pr_debug("%s: proxy_rx channels = %d\n", __func__, proxy_rx_cfg.channels); __func__, proxy_rx_cfg[0].channels); } return 1; } Loading Loading @@ -2633,6 +2654,8 @@ static const struct snd_kcontrol_new msm_snd_controls[] = { ext_disp_rx_ch_get, ext_disp_rx_ch_put), SOC_ENUM_EXT("PROXY_RX Channels", proxy_rx_chs, proxy_rx_ch_get, proxy_rx_ch_put), SOC_ENUM_EXT("PROXY_RX1 Channels", proxy_rx_chs, proxy_rx_ch_get, proxy_rx_ch_put), SOC_ENUM_EXT("USB_AUDIO_RX Format", usb_rx_format, usb_audio_rx_format_get, usb_audio_rx_format_put), SOC_ENUM_EXT("USB_AUDIO_TX Format", usb_tx_format, Loading Loading @@ -3370,7 +3393,12 @@ static int msm_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, break; case MSM_BACKEND_DAI_AFE_PCM_RX: channels->min = channels->max = proxy_rx_cfg.channels; channels->min = channels->max = proxy_rx_cfg[0].channels; rate->min = rate->max = SAMPLING_RATE_48KHZ; break; case MSM_BACKEND_DAI_AFE_PCM_RX1: channels->min = channels->max = proxy_rx_cfg[1].channels; rate->min = rate->max = SAMPLING_RATE_48KHZ; break; Loading Loading @@ -5832,6 +5860,13 @@ static struct snd_soc_dai_link msm_auto_fe_dai_links[] = { .id = MSM_FRONTEND_DAI_MULTIMEDIA34, SND_SOC_DAILINK_REG(multimedia34), }, { .name = "MSM AFE-PCM TX1", .stream_name = "AFE-PROXY TX1", .dpcm_capture = 1, .ignore_suspend = 1, SND_SOC_DAILINK_REG(afepcm_tx1), }, }; static struct snd_soc_dai_link msm_custom_fe_dai_links[] = { Loading Loading @@ -6558,6 +6593,18 @@ static struct snd_soc_dai_link msm_auto_be_dai_links[] = { .ignore_suspend = 1, SND_SOC_DAILINK_REG(quin_tdm_tx_7), }, { .name = LPASS_BE_AFE_PCM_RX1, .stream_name = "AFE Playback1", .no_pcm = 1, .dpcm_playback = 1, .id = MSM_BACKEND_DAI_AFE_PCM_RX1, .be_hw_params_fixup = msm_be_hw_params_fixup, /* this dainlink has playback support */ .ignore_pmdown_time = 1, .ignore_suspend = 1, SND_SOC_DAILINK_REG(afe_pcm_rx1), }, }; static struct snd_soc_dai_link ext_disp_be_dai_link[] = { Loading Loading
asoc/msm_dailink.h +5 −0 Original line number Diff line number Diff line Loading @@ -383,6 +383,11 @@ SND_SOC_DAILINK_DEFS(afe_pcm_rx, DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-rx")), DAILINK_COMP_ARRAY(COMP_PLATFORM("msm-pcm-routing"))); SND_SOC_DAILINK_DEFS(afe_pcm_rx1, DAILINK_COMP_ARRAY(COMP_CPU("msm-dai-q6-dev.226")), DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-rx")), DAILINK_COMP_ARRAY(COMP_PLATFORM("msm-pcm-routing"))); SND_SOC_DAILINK_DEFS(afe_pcm_tx, DAILINK_COMP_ARRAY(COMP_CPU("msm-dai-q6-dev.225")), DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-tx")), Loading
asoc/sa6155.c +58 −11 Original line number Diff line number Diff line Loading @@ -295,10 +295,17 @@ static struct dev_config usb_tx_cfg = { .channels = 1, }; static struct dev_config proxy_rx_cfg = { static struct dev_config proxy_rx_cfg[] = { { .sample_rate = SAMPLING_RATE_48KHZ, .bit_format = SNDRV_PCM_FORMAT_S16_LE, .channels = 2, }, { .sample_rate = SAMPLING_RATE_48KHZ, .bit_format = SNDRV_PCM_FORMAT_S16_LE, .channels = 2, } }; /* Default configuration of MI2S channels */ Loading Loading @@ -1293,9 +1300,16 @@ static int ext_disp_rx_sample_rate_put(struct snd_kcontrol *kcontrol, static int proxy_rx_ch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { if(strnstr(kcontrol->id.name, "RX1", sizeof(kcontrol->id.name))) { ucontrol->value.integer.value[0] = proxy_rx_cfg[1].channels - 2; pr_debug("%s: proxy_rx1 channels = %d\n", __func__, proxy_rx_cfg[1].channels); } else { ucontrol->value.integer.value[0] = proxy_rx_cfg[0].channels - 2; pr_debug("%s: proxy_rx channels = %d\n", __func__, proxy_rx_cfg.channels); ucontrol->value.integer.value[0] = proxy_rx_cfg.channels - 2; __func__, proxy_rx_cfg[0].channels); } return 0; } Loading @@ -1303,9 +1317,16 @@ static int proxy_rx_ch_get(struct snd_kcontrol *kcontrol, static int proxy_rx_ch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { proxy_rx_cfg.channels = ucontrol->value.integer.value[0] + 2; if(strnstr(kcontrol->id.name, "RX1", sizeof(kcontrol->id.name))) { proxy_rx_cfg[1].channels = ucontrol->value.integer.value[0] + 2; pr_debug("%s: proxy_rx1 channels = %d\n", __func__, proxy_rx_cfg[1].channels); } else { proxy_rx_cfg[0].channels = ucontrol->value.integer.value[0] + 2; pr_debug("%s: proxy_rx channels = %d\n", __func__, proxy_rx_cfg.channels); __func__, proxy_rx_cfg[0].channels); } return 1; } Loading Loading @@ -2630,6 +2651,8 @@ static const struct snd_kcontrol_new msm_snd_controls[] = { ext_disp_rx_ch_get, ext_disp_rx_ch_put), SOC_ENUM_EXT("PROXY_RX Channels", proxy_rx_chs, proxy_rx_ch_get, proxy_rx_ch_put), SOC_ENUM_EXT("PROXY_RX1 Channels", proxy_rx_chs, proxy_rx_ch_get, proxy_rx_ch_put), SOC_ENUM_EXT("USB_AUDIO_RX Format", usb_rx_format, usb_audio_rx_format_get, usb_audio_rx_format_put), SOC_ENUM_EXT("USB_AUDIO_TX Format", usb_tx_format, Loading Loading @@ -3367,7 +3390,12 @@ static int msm_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, break; case MSM_BACKEND_DAI_AFE_PCM_RX: channels->min = channels->max = proxy_rx_cfg.channels; channels->min = channels->max = proxy_rx_cfg[0].channels; rate->min = rate->max = SAMPLING_RATE_48KHZ; break; case MSM_BACKEND_DAI_AFE_PCM_RX1: channels->min = channels->max = proxy_rx_cfg[1].channels; rate->min = rate->max = SAMPLING_RATE_48KHZ; break; Loading Loading @@ -5835,6 +5863,13 @@ static struct snd_soc_dai_link msm_auto_fe_dai_links[] = { .id = MSM_FRONTEND_DAI_MULTIMEDIA34, SND_SOC_DAILINK_REG(multimedia34), }, { .name = "MSM AFE-PCM TX1", .stream_name = "AFE-PROXY TX1", .dpcm_capture = 1, .ignore_suspend = 1, SND_SOC_DAILINK_REG(afepcm_tx1), }, }; static struct snd_soc_dai_link msm_custom_fe_dai_links[] = { Loading Loading @@ -6561,6 +6596,18 @@ static struct snd_soc_dai_link msm_auto_be_dai_links[] = { .ignore_suspend = 1, SND_SOC_DAILINK_REG(quin_tdm_tx_7), }, { .name = LPASS_BE_AFE_PCM_RX1, .stream_name = "AFE Playback1", .no_pcm = 1, .dpcm_playback = 1, .id = MSM_BACKEND_DAI_AFE_PCM_RX1, .be_hw_params_fixup = msm_be_hw_params_fixup, /* this dainlink has playback support */ .ignore_pmdown_time = 1, .ignore_suspend = 1, SND_SOC_DAILINK_REG(afe_pcm_rx1), }, }; static struct snd_soc_dai_link ext_disp_be_dai_link[] = { Loading
asoc/sa8155.c +58 −11 Original line number Diff line number Diff line Loading @@ -297,10 +297,17 @@ static struct dev_config usb_tx_cfg = { .channels = 1, }; static struct dev_config proxy_rx_cfg = { static struct dev_config proxy_rx_cfg[] = { { .sample_rate = SAMPLING_RATE_48KHZ, .bit_format = SNDRV_PCM_FORMAT_S16_LE, .channels = 2, }, { .sample_rate = SAMPLING_RATE_48KHZ, .bit_format = SNDRV_PCM_FORMAT_S16_LE, .channels = 2, } }; /* Default configuration of MI2S channels */ Loading Loading @@ -1296,9 +1303,16 @@ static int ext_disp_rx_sample_rate_put(struct snd_kcontrol *kcontrol, static int proxy_rx_ch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { if(strnstr(kcontrol->id.name, "RX1", sizeof(kcontrol->id.name))) { ucontrol->value.integer.value[0] = proxy_rx_cfg[1].channels - 2; pr_debug("%s: proxy_rx1 channels = %d\n", __func__, proxy_rx_cfg[1].channels); } else { ucontrol->value.integer.value[0] = proxy_rx_cfg[0].channels - 2; pr_debug("%s: proxy_rx channels = %d\n", __func__, proxy_rx_cfg.channels); ucontrol->value.integer.value[0] = proxy_rx_cfg.channels - 2; __func__, proxy_rx_cfg[0].channels); } return 0; } Loading @@ -1306,9 +1320,16 @@ static int proxy_rx_ch_get(struct snd_kcontrol *kcontrol, static int proxy_rx_ch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { proxy_rx_cfg.channels = ucontrol->value.integer.value[0] + 2; if(strnstr(kcontrol->id.name, "RX1", sizeof(kcontrol->id.name))) { proxy_rx_cfg[1].channels = ucontrol->value.integer.value[0] + 2; pr_debug("%s: proxy_rx1 channels = %d\n", __func__, proxy_rx_cfg[1].channels); } else { proxy_rx_cfg[0].channels = ucontrol->value.integer.value[0] + 2; pr_debug("%s: proxy_rx channels = %d\n", __func__, proxy_rx_cfg.channels); __func__, proxy_rx_cfg[0].channels); } return 1; } Loading Loading @@ -2633,6 +2654,8 @@ static const struct snd_kcontrol_new msm_snd_controls[] = { ext_disp_rx_ch_get, ext_disp_rx_ch_put), SOC_ENUM_EXT("PROXY_RX Channels", proxy_rx_chs, proxy_rx_ch_get, proxy_rx_ch_put), SOC_ENUM_EXT("PROXY_RX1 Channels", proxy_rx_chs, proxy_rx_ch_get, proxy_rx_ch_put), SOC_ENUM_EXT("USB_AUDIO_RX Format", usb_rx_format, usb_audio_rx_format_get, usb_audio_rx_format_put), SOC_ENUM_EXT("USB_AUDIO_TX Format", usb_tx_format, Loading Loading @@ -3370,7 +3393,12 @@ static int msm_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, break; case MSM_BACKEND_DAI_AFE_PCM_RX: channels->min = channels->max = proxy_rx_cfg.channels; channels->min = channels->max = proxy_rx_cfg[0].channels; rate->min = rate->max = SAMPLING_RATE_48KHZ; break; case MSM_BACKEND_DAI_AFE_PCM_RX1: channels->min = channels->max = proxy_rx_cfg[1].channels; rate->min = rate->max = SAMPLING_RATE_48KHZ; break; Loading Loading @@ -5832,6 +5860,13 @@ static struct snd_soc_dai_link msm_auto_fe_dai_links[] = { .id = MSM_FRONTEND_DAI_MULTIMEDIA34, SND_SOC_DAILINK_REG(multimedia34), }, { .name = "MSM AFE-PCM TX1", .stream_name = "AFE-PROXY TX1", .dpcm_capture = 1, .ignore_suspend = 1, SND_SOC_DAILINK_REG(afepcm_tx1), }, }; static struct snd_soc_dai_link msm_custom_fe_dai_links[] = { Loading Loading @@ -6558,6 +6593,18 @@ static struct snd_soc_dai_link msm_auto_be_dai_links[] = { .ignore_suspend = 1, SND_SOC_DAILINK_REG(quin_tdm_tx_7), }, { .name = LPASS_BE_AFE_PCM_RX1, .stream_name = "AFE Playback1", .no_pcm = 1, .dpcm_playback = 1, .id = MSM_BACKEND_DAI_AFE_PCM_RX1, .be_hw_params_fixup = msm_be_hw_params_fixup, /* this dainlink has playback support */ .ignore_pmdown_time = 1, .ignore_suspend = 1, SND_SOC_DAILINK_REG(afe_pcm_rx1), }, }; static struct snd_soc_dai_link ext_disp_be_dai_link[] = { Loading