summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Delmage <mdelmage@google.com>2023-02-24 22:34:56 +0000
committerFlorian Muller <mullerf@google.com>2023-02-24 22:37:06 +0000
commitee82c06079f2fbece92eeee85671783d9ff9e862 (patch)
treeddbb0bede5e09970e404145ae86b976d88e97734
parenta1dd9d5a946a9deb91b258a259360f2ec283d8a6 (diff)
downloadmsm-extra-ee82c06079f2fbece92eeee85671783d9ff9e862.tar.gz
Revert^2 "audio: Add I2S support for haptics"
This reverts commit a1dd9d5a946a9deb91b258a259360f2ec283d8a6. Reason for revert: Underlying audio issue (haptics firmware too old) has been resolved. I2S haptics support is now safe to re-enable. Change-Id: I36abd7569a735d30678bdc6999b1379034a11323
-rw-r--r--asoc/monaco.c41
-rwxr-xr-xasoc/msm_monaco_dailink.h5
2 files changed, 46 insertions, 0 deletions
diff --git a/asoc/monaco.c b/asoc/monaco.c
index d0c4bf50..047a8f65 100644
--- a/asoc/monaco.c
+++ b/asoc/monaco.c
@@ -57,6 +57,11 @@
#undef LPASS_BE_QUAT_TDM_TX_0
#define LPASS_BE_QUAT_TDM_TX_0 "TDM-LPAIF_RXTX-TX-PRIMARY"
#endif
+
+#ifdef LPASS_BE_SEC_MI2S_RX
+#undef LPASS_BE_SEC_MI2S_RX
+#define LPASS_BE_SEC_MI2S_RX "MI2S-LPAIF_AUD-RX-PRIMARY"
+#endif
#endif
#ifdef LPASS_BE_PRI_MI2S_TX
@@ -146,6 +151,10 @@ static int get_intf_index(const char *stream_name)
return PRI_MI2S_TDM_AUXPCM;
else if (strnstr(stream_name, "LPAIF_RXTX", strlen(stream_name)))
return QUAT_MI2S_TDM_AUXPCM;
+#ifdef CONFIG_GOOGLE_EOS_AUDIO
+ else if (strnstr(stream_name, "LPAIF_AUD", strlen(stream_name)))
+ return SEC_MI2S_TDM_AUXPCM;
+#endif
else {
pr_debug("%s: stream name %s does not match\n", __func__, stream_name);
return -EINVAL;
@@ -933,6 +942,22 @@ static struct snd_soc_dai_link msm_pri_mi2s_be_dai_links[] = {
},
};
+#ifdef CONFIG_GOOGLE_EOS_AUDIO
+static struct snd_soc_dai_link msm_haptics_be_dai_links[] = {
+ {
+ .name = LPASS_BE_SEC_MI2S_RX,
+ .stream_name = LPASS_BE_SEC_MI2S_RX,
+ .playback_only = 1,
+ .trigger = {SND_SOC_DPCM_TRIGGER_POST,
+ SND_SOC_DPCM_TRIGGER_POST},
+ .ignore_pmdown_time = 1,
+ .ignore_suspend = 1,
+ .ops = &msm_common_be_ops,
+ SND_SOC_DAILINK_REG(sec_mi2s_rx),
+ },
+};
+#endif
+
static struct snd_soc_dai_link msm_pri_tdm_be_dai_links[] = {
{
.name = LPASS_BE_PRI_TDM_TX_0,
@@ -977,6 +1002,9 @@ static struct snd_soc_dai_link msm_monaco_dai_links[
ARRAY_SIZE(msm_mi2s_be_dai_links) +
ARRAY_SIZE(msm_wcn_be_dai_links) +
ARRAY_SIZE(msm_pri_mi2s_be_dai_links) +
+#ifdef CONFIG_GOOGLE_EOS_AUDIO
+ ARRAY_SIZE(msm_haptics_be_dai_links) +
+#endif
ARRAY_SIZE(msm_pri_tdm_be_dai_links)
];
@@ -1070,6 +1098,19 @@ static struct snd_soc_card *populate_snd_card_dailinks(struct device *dev)
total_links += ARRAY_SIZE(msm_pri_mi2s_be_dai_links);
}
+#ifdef CONFIG_GOOGLE_EOS_AUDIO
+ rc = of_property_read_u32(dev->of_node,
+ "qcom,cs40l26-codec", &val);
+ if (!rc && val) {
+ dev_dbg(dev, "%s(): CS40L26 codec support present\n",
+ __func__);
+ memcpy(msm_monaco_dai_links + total_links,
+ msm_haptics_be_dai_links,
+ sizeof(msm_haptics_be_dai_links));
+ total_links += ARRAY_SIZE(msm_haptics_be_dai_links);
+ }
+#endif
+
rc = of_property_read_u32(dev->of_node,
"qcom,tdm-audio-intf", &val);
if (!rc && val) {
diff --git a/asoc/msm_monaco_dailink.h b/asoc/msm_monaco_dailink.h
index 8302dff2..2b09bc07 100755
--- a/asoc/msm_monaco_dailink.h
+++ b/asoc/msm_monaco_dailink.h
@@ -145,4 +145,9 @@ SND_SOC_DAILINK_DEFS(quat_tdm_tx_0,
DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-tx"),
COMP_CODEC("mcu_mic_codec", "mcu_mic_codec_dai")),
DAILINK_COMP_ARRAY(COMP_PLATFORM("snd-soc-dummy")));
+
+SND_SOC_DAILINK_DEFS(sec_mi2s_rx,
+ DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
+ DAILINK_COMP_ARRAY(COMP_CODEC("cs40l26-codec.2.auto", "cs40l26-pcm")),
+ DAILINK_COMP_ARRAY(COMP_PLATFORM("snd-soc-dummy")));
#endif