ASoC: qdsp6: q6afe-dai: add support to Display port RX dais
authorRohit kumar <rohitkr@codeaurora.org>
Fri, 14 Dec 2018 12:29:28 +0000 (17:59 +0530)
committerMark Brown <broonie@kernel.org>
Fri, 14 Dec 2018 12:48:55 +0000 (12:48 +0000)
This patch adds support of AFE DAI for Display_port_rx port.

Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/qcom/qdsp6/q6afe-dai.c

index bfc3bbf..dc645ba 100644 (file)
@@ -341,6 +341,7 @@ static int q6afe_dai_prepare(struct snd_pcm_substream *substream,
 
        switch (dai->id) {
        case HDMI_RX:
+       case DISPLAY_PORT_RX:
                q6afe_hdmi_port_prepare(dai_data->port[dai->id],
                                        &dai_data->port_config[dai->id].hdmi);
                break;
@@ -445,6 +446,7 @@ static int q6afe_mi2s_set_sysclk(struct snd_soc_dai *dai,
 
 static const struct snd_soc_dapm_route q6afe_dapm_routes[] = {
        {"HDMI Playback", NULL, "HDMI_RX"},
+       {"Display Port Playback", NULL, "DISPLAY_PORT_RX"},
        {"Slimbus1 Playback", NULL, "SLIMBUS_1_RX"},
        {"Slimbus2 Playback", NULL, "SLIMBUS_2_RX"},
        {"Slimbus3 Playback", NULL, "SLIMBUS_3_RX"},
@@ -1090,6 +1092,25 @@ static struct snd_soc_dai_driver q6afe_dais[] = {
        Q6AFE_TDM_CAP_DAI("Quinary", 5, QUINARY_TDM_TX_5),
        Q6AFE_TDM_CAP_DAI("Quinary", 6, QUINARY_TDM_TX_6),
        Q6AFE_TDM_CAP_DAI("Quinary", 7, QUINARY_TDM_TX_7),
+       {
+               .playback = {
+                       .stream_name = "Display Port Playback",
+                       .rates = SNDRV_PCM_RATE_48000 |
+                                SNDRV_PCM_RATE_96000 |
+                                SNDRV_PCM_RATE_192000,
+                       .formats = SNDRV_PCM_FMTBIT_S16_LE |
+                                  SNDRV_PCM_FMTBIT_S24_LE,
+                       .channels_min = 2,
+                       .channels_max = 8,
+                       .rate_max =     192000,
+                       .rate_min =     48000,
+               },
+               .ops = &q6hdmi_ops,
+               .id = DISPLAY_PORT_RX,
+               .name = "DISPLAY_PORT",
+               .probe = msm_dai_q6_dai_probe,
+               .remove = msm_dai_q6_dai_remove,
+       },
 };
 
 static int q6afe_of_xlate_dai_name(struct snd_soc_component *component,
@@ -1311,6 +1332,7 @@ static const struct snd_soc_dapm_widget q6afe_dai_widgets[] = {
                                                0, 0, 0, 0),
        SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7", NULL,
                                                0, 0, 0, 0),
+       SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT_RX", "NULL", 0, 0, 0, 0),
 };
 
 static const struct snd_soc_component_driver q6afe_dai_component = {