diff options
| author | Kuirong Wang <kuirongw@codeaurora.org> | 2016-01-04 13:23:26 -0800 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 21:20:14 -0700 |
| commit | 34c137e188d3957d8751bba1308aae111dbcd775 (patch) | |
| tree | 4017d7ae977577a1ea383ece42fa4ce37003dce4 | |
| parent | aef5c4d9afd59666274d8b5e8705eba7f9c0c4f8 (diff) | |
ASoC: wcd9335: Add codec rx4 dai
Add codec rx4 dai to support independent backend for different
devices.
CRs-fixed: 940415
Change-Id: I48b24d81e2047d4d4c299ca60cdbd299e172393e
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
| -rwxr-xr-x | sound/soc/codecs/wcd9335.c | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/sound/soc/codecs/wcd9335.c b/sound/soc/codecs/wcd9335.c index def2b807cd28..46afca3984ed 100755 --- a/sound/soc/codecs/wcd9335.c +++ b/sound/soc/codecs/wcd9335.c @@ -348,6 +348,7 @@ enum { AIF2_CAP, AIF3_PB, AIF3_CAP, + AIF4_PB, AIF_MIX1_PB, AIF4_MAD_TX, AIF4_VIFEED, @@ -465,6 +466,7 @@ static const u32 vport_slim_check_table[NUM_CODEC_DAIS] = { BIT(AIF1_CAP) | BIT(AIF3_CAP) | BIT(AIF4_MAD_TX), /* AIF2_CAP */ 0, /* AIF3_PB */ BIT(AIF1_CAP) | BIT(AIF2_CAP) | BIT(AIF4_MAD_TX), /* AIF3_CAP */ + 0, /* AIF4_PB */ 0, /* AIF_MIX1_PB */ BIT(AIF1_CAP) | BIT(AIF2_CAP) | BIT(AIF3_CAP), /* AIF4_MAD_TX */ }; @@ -2278,7 +2280,7 @@ static int slim_rx_mux_get(struct snd_kcontrol *kcontrol, } static const char *const slim_rx_mux_text[] = { - "ZERO", "AIF1_PB", "AIF2_PB", "AIF3_PB", "AIF_MIX1_PB" + "ZERO", "AIF1_PB", "AIF2_PB", "AIF3_PB", "AIF4_PB", "AIF_MIX1_PB" }; static int slim_rx_mux_put(struct snd_kcontrol *kcontrol, @@ -2350,6 +2352,17 @@ static int slim_rx_mux_put(struct snd_kcontrol *kcontrol, case 4: if (wcd9xxx_rx_vport_validation(port_id + TASHA_RX_PORT_START_NUMBER, + &tasha_p->dai[AIF4_PB].wcd9xxx_ch_list)) { + dev_dbg(codec->dev, "%s: RX%u is used by current requesting AIF_PB itself\n", + __func__, port_id); + goto rtn; + } + list_add_tail(&core->rx_chs[port_id].list, + &tasha_p->dai[AIF4_PB].wcd9xxx_ch_list); + break; + case 5: + if (wcd9xxx_rx_vport_validation(port_id + + TASHA_RX_PORT_START_NUMBER, &tasha_p->dai[AIF_MIX1_PB].wcd9xxx_ch_list)) { dev_dbg(codec->dev, "%s: RX%u is used by current requesting AIF_PB itself\n", __func__, port_id); @@ -6366,6 +6379,15 @@ static const struct snd_soc_dapm_route audio_map[] = { {"SLIM RX5 MUX", "AIF3_PB", "AIF3 PB"}, {"SLIM RX6 MUX", "AIF3_PB", "AIF3 PB"}, {"SLIM RX7 MUX", "AIF3_PB", "AIF3 PB"}, + /* SLIM_MUX("AIF4_PB", "AIF4 PB"),*/ + {"SLIM RX0 MUX", "AIF4_PB", "AIF4 PB"}, + {"SLIM RX1 MUX", "AIF4_PB", "AIF4 PB"}, + {"SLIM RX2 MUX", "AIF4_PB", "AIF4 PB"}, + {"SLIM RX3 MUX", "AIF4_PB", "AIF4 PB"}, + {"SLIM RX4 MUX", "AIF4_PB", "AIF4 PB"}, + {"SLIM RX5 MUX", "AIF4_PB", "AIF4 PB"}, + {"SLIM RX6 MUX", "AIF4_PB", "AIF4 PB"}, + {"SLIM RX7 MUX", "AIF4_PB", "AIF4 PB"}, /* SLIM_MUX("AIF_MIX1_PB", "AIF MIX1 PB"),*/ {"SLIM RX0 MUX", "AIF_MIX1_PB", "AIF MIX1 PB"}, @@ -9375,6 +9397,9 @@ static const struct snd_soc_dapm_widget tasha_dapm_widgets[] = { SND_SOC_DAPM_AIF_IN_E("AIF3 PB", "AIF3 Playback", 0, SND_SOC_NOPM, AIF3_PB, 0, tasha_codec_enable_slimrx, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), + SND_SOC_DAPM_AIF_IN_E("AIF4 PB", "AIF4 Playback", 0, SND_SOC_NOPM, + AIF4_PB, 0, tasha_codec_enable_slimrx, + SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_AIF_IN_E("AIF MIX1 PB", "AIF Mix Playback", 0, SND_SOC_NOPM, AIF_MIX1_PB, 0, tasha_codec_enable_slimrx, @@ -10115,6 +10140,7 @@ static int tasha_get_channel_map(struct snd_soc_dai *dai, case AIF1_PB: case AIF2_PB: case AIF3_PB: + case AIF4_PB: case AIF_MIX1_PB: if (!rx_slot || !rx_num) { pr_err("%s: Invalid rx_slot %p or rx_num %p\n", @@ -10764,6 +10790,20 @@ static struct snd_soc_dai_driver tasha_dai[] = { .ops = &tasha_dai_ops, }, { + .name = "tasha_rx4", + .id = AIF4_PB, + .playback = { + .stream_name = "AIF4 Playback", + .rates = WCD9335_RATES_MASK | WCD9335_FRAC_RATES_MASK, + .formats = TASHA_FORMATS_S16_S24_LE, + .rate_min = 8000, + .rate_max = 192000, + .channels_min = 1, + .channels_max = 2, + }, + .ops = &tasha_dai_ops, + }, + { .name = "tasha_mix_rx1", .id = AIF_MIX1_PB, .playback = { |
