audio-kernel: lvgvm 8295 related file modify

Add qtigvmi3 in makefile and add snd card prob for lvgvm

Change-Id: Ia7de956a4495f985623d15916bb2df665b77446b
Signed-off-by: Hexuan Zhu <quic_hexuzhu@quicinc.com>
This commit is contained in:
Hexuan Zhu 2021-12-07 08:27:03 +08:00
commit 77b6d4fece
3 changed files with 210 additions and 11 deletions

4
Makefile.am Normal file → Executable file
View file

@ -43,7 +43,7 @@ obj-m += asoc/codecs/bolero/
obj-m += asoc/codecs/wcd937x/
endif
ifeq ($(TARGET_SUPPORT), $(filter $(TARGET_SUPPORT), sa8155 sa8155ivi sa6155 sa8195 qtiquingvm qtiquingvm8295 sa8295))
ifeq ($(TARGET_SUPPORT), $(filter $(TARGET_SUPPORT), sa8155 sa8155ivi sa6155 sa8195 qtiquingvm qtiquingvm8295 sa8295 qtigvmi3))
KBUILD_OPTIONS += CONFIG_SND_SOC_AUTO=y
obj-m := ipc/
obj-m += dsp/
@ -56,7 +56,7 @@ endif
ifeq ($(TARGET_SUPPORT), $(filter $(TARGET_SUPPORT), sa6155))
KBUILD_OPTIONS += CONFIG_SND_SOC_SA6155=m
endif
ifeq ($(TARGET_SUPPORT), $(filter $(TARGET_SUPPORT), qtiquingvm))
ifeq ($(TARGET_SUPPORT), $(filter $(TARGET_SUPPORT), qtiquingvm qtigvmi3))
KBUILD_OPTIONS += CONFIG_SND_SOC_GVM=m
endif
ifeq ($(TARGET_SUPPORT), $(filter $(TARGET_SUPPORT), qtiquingvm8295))

177
asoc/gvm_auto_spf_dummy.c Normal file → Executable file
View file

@ -280,6 +280,150 @@ static struct snd_soc_dai_link msm_common_dai_links[] = {
},
};
static struct snd_soc_dai_link msm_gvm8295_dai_links[] = {
/* BackEnd DAI Links */
{
.name = "PRI_TDM_RX_0_DUMMY",
.stream_name = "TDM-LPAIF-RX-PRIMARY",
.dpcm_playback = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(primary_tdm_rx_0_dummy),
},
{
.name = "PRI_TDM_TX_0_DUMMY",
.stream_name = "TDM-LPAIF-TX-PRIMARY",
.dpcm_capture = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(primary_tdm_tx_0_dummy),
},
{
.name = "SEC_TDM_RX_0_DUMMY",
.stream_name = "TDM-LPAIF-RX-SECONDARY",
.dpcm_playback = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(secondary_tdm_rx_0_dummy),
},
{
.name = "SEC_TDM_TX_0_DUMMY",
.stream_name = "TDM-LPAIF-TX-SECONDARY",
.dpcm_capture = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(secondary_tdm_tx_0_dummy),
},
{
.name = "TERT_TDM_RX_0_DUMMY",
.stream_name = "TDM-LPAIF-RX-TERTIARY",
.dpcm_playback = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(tert_tdm_rx_0_dummy),
},
{
.name = "TERT_TDM_TX_0_DUMMY",
.stream_name = "TDM-LPAIF-TX-TERTIARY",
.dpcm_capture = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(tert_tdm_tx_0_dummy),
},
{
.name = "QUAT_TDM_RX_0_DUMMY",
.stream_name = "TDM-LPAIF-RX-QUATERNARY",
.dpcm_playback = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(quat_tdm_rx_0_dummy),
},
{
.name = "QUAT_TDM_TX_0_DUMMY",
.stream_name = "TDM-LPAIF-TX-QUATERNARY",
.dpcm_capture = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(quat_tdm_tx_0_dummy),
},
{
.name = "QUIN_TDM_RX_0_DUMMY",
.stream_name = "TDM-LPAIF-RX-QUINARY",
.dpcm_playback = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(quin_tdm_rx_0_dummy),
},
{
.name = "QUIN_TDM_TX_0_DUMMY",
.stream_name = "TDM-LPAIF-TX-QUINARY",
.dpcm_capture = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(quin_tdm_tx_0_dummy),
},
{
.name = "SEN_TDM_RX_0_DUMMY",
.stream_name = "TDM-LPAIF-RX-SENARY",
.dpcm_playback = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(sen_tdm_rx_0_dummy),
},
{
.name = "SEN_TDM_TX_0_DUMMY",
.stream_name = "TDM-LPAIF-TX-SENARY",
.dpcm_capture = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(sen_tdm_tx_0_dummy),
},
{
.name = "SEP_TDM_RX_0_DUMMY",
.stream_name = "TDM-LPAIF-RX-SEPTENARY",
.dpcm_playback = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(sep_tdm_rx_0_dummy),
},
{
.name = "SEP_TDM_TX_0_DUMMY",
.stream_name = "TDM-LPAIF-TX-SEPTENARY",
.dpcm_capture = 1,
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.ignore_pmdown_time = 1,
SND_SOC_DAILINK_REG(sep_tdm_tx_0_dummy),
},
};
static struct snd_soc_dai_link msm_talos_dai_links[] = {
/* BackEnd DAI Links */
{
@ -352,6 +496,10 @@ struct snd_soc_card snd_soc_card_auto_talos_dummy_msm = {
.name = "gvmauto-6155-snd-card",
};
struct snd_soc_card snd_soc_card_auto_makena_dummy_msm = {
.name = "gvmauto-8295-snd-card",
};
static int msm_populate_dai_link_component_of_node(
struct snd_soc_card *card)
{
@ -370,9 +518,9 @@ static int msm_populate_dai_link_component_of_node(
continue;
/* populate platform_of_node for snd card dai links Skip this part for dummy snd card*/
if(0) {
if (dai_link[i].platforms->name &&
!dai_link[i].platforms->of_node) {
if(0) {
if (dai_link[i].platforms->name &&
!dai_link[i].platforms->of_node) {
index = of_property_match_string(cdev->of_node,
"asoc-platform-names",
dai_link[i].platforms->name);
@ -393,7 +541,7 @@ static int msm_populate_dai_link_component_of_node(
}
dai_link[i].platforms->of_node = np;
dai_link[i].platforms->name = NULL;
}
}
}
/* populate cpu_of_node for snd card dai links */
@ -401,7 +549,7 @@ static int msm_populate_dai_link_component_of_node(
index = of_property_match_string(cdev->of_node,
"asoc-cpu-names",
dai_link[i].cpus->dai_name);
pr_err("%s: retrieving cpu_of_node for %s\n",
pr_err("%s: retrieving cpu_of_node for %s\n",
__func__,
dai_link[i].cpus->dai_name);
if (index >= 0) {
@ -452,10 +600,12 @@ err:
static const struct of_device_id gvm_asoc_machine_of_match[] = {
{ .compatible = "qcom,8155-spf-asoc-snd-adp-star",
.data = "adp_star_codec"},
.data = "adp_star_codec"},
{ .compatible = "qcom,6155-spf-asoc-snd-adp-star",
.data = "adp_star_codec"},
{},
.data = "adp_star_codec"},
{ .compatible = "qcom,gvm-auto-spf-asoc-snd-adp-star",
.data = "adp_star_codec"},
{},
};
static struct snd_soc_dai_link msm_auto_dai_links[
ARRAY_SIZE(msm_common_dai_links)];
@ -463,6 +613,9 @@ static struct snd_soc_dai_link msm_auto_dai_links[
static struct snd_soc_dai_link msm_auto_talos_dai_links[
ARRAY_SIZE(msm_talos_dai_links)];
static struct snd_soc_dai_link msm_auto_gvm8295_dai_links[
ARRAY_SIZE(msm_gvm8295_dai_links)];
static struct snd_soc_card *populate_snd_card_dailinks(struct device *dev)
{
struct snd_soc_card *card = NULL;
@ -491,8 +644,14 @@ static struct snd_soc_card *populate_snd_card_dailinks(struct device *dev)
memcpy(msm_auto_talos_dai_links,
msm_talos_dai_links,
sizeof(msm_talos_dai_links));
dailink = msm_auto_talos_dai_links;
} else if (!strcmp(match->compatible, "qcom,gvm-auto-spf-asoc-snd-adp-star")) {
card = &snd_soc_card_auto_makena_dummy_msm;
total_links = ARRAY_SIZE(msm_gvm8295_dai_links);
memcpy(msm_auto_gvm8295_dai_links,
msm_gvm8295_dai_links,
sizeof(msm_gvm8295_dai_links));
dailink = msm_auto_gvm8295_dai_links;
}
if (card) {

40
asoc/msm_dailink.h Normal file → Executable file
View file

@ -1344,3 +1344,43 @@ SND_SOC_DAILINK_DEFS(primary_tdm_tx_0_dummy,
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-tx")),
DAILINK_COMP_ARRAY(COMP_PLATFORM("snd-soc-dummy")));
SND_SOC_DAILINK_DEFS(secondary_tdm_rx_0_dummy,
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-rx")),
DAILINK_COMP_ARRAY(COMP_PLATFORM("snd-soc-dummy")));
SND_SOC_DAILINK_DEFS(secondary_tdm_tx_0_dummy,
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-tx")),
DAILINK_COMP_ARRAY(COMP_PLATFORM("snd-soc-dummy")));
SND_SOC_DAILINK_DEFS(quin_tdm_rx_0_dummy,
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-rx")),
DAILINK_COMP_ARRAY(COMP_PLATFORM("snd-soc-dummy")));
SND_SOC_DAILINK_DEFS(quin_tdm_tx_0_dummy,
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-tx")),
DAILINK_COMP_ARRAY(COMP_PLATFORM("snd-soc-dummy")));
SND_SOC_DAILINK_DEFS(sen_tdm_rx_0_dummy,
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-rx")),
DAILINK_COMP_ARRAY(COMP_PLATFORM("snd-soc-dummy")));
SND_SOC_DAILINK_DEFS(sen_tdm_tx_0_dummy,
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-tx")),
DAILINK_COMP_ARRAY(COMP_PLATFORM("snd-soc-dummy")));
SND_SOC_DAILINK_DEFS(sep_tdm_rx_0_dummy,
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-rx")),
DAILINK_COMP_ARRAY(COMP_PLATFORM("snd-soc-dummy")));
SND_SOC_DAILINK_DEFS(sep_tdm_tx_0_dummy,
DAILINK_COMP_ARRAY(COMP_CPU("snd-soc-dummy-dai")),
DAILINK_COMP_ARRAY(COMP_CODEC("msm-stub-codec.1", "msm-stub-tx")),
DAILINK_COMP_ARRAY(COMP_PLATFORM("snd-soc-dummy")));