On Wed, 2023-05-24 at 15:28 +0200, Alexandre Mergnat wrote: > External email : Please do not click links or open attachments until > you have verified the sender or the content. > > > On 24/05/2023 04:25, Trevor Wu (吳文良) wrote: > > On Tue, 2023-05-23 at 18:26 +0200, Alexandre Mergnat wrote: > > > On 23/05/2023 04:19, Trevor Wu wrote: > > > > ADDA_BE is used to connect to mt6359. For machine mt8188- > > > > mt6359, > > > > codec > > > > for ADDA_BE must be mt6359 which are configured on the machine > > > > driver. > > > > Besides, ADDA_BE is divided into two dais, UL_SRC_BE and > > > > DL_SRC_BE. > > > > As a result, remove ADDA_BE from items of link-name. > > > > > > > > Signed-off-by: Trevor Wu<trevor.wu@xxxxxxxxxxxx> > > > > > > I don't understand how "DL_SRC_BE" and "UL_SRC_BE" links are > > > done. > > > Why these dais don't replace "ADDA_BE" in this binding ? > > > > > > Regards, > > > Alexandre > > > > > > > Hi Alexandre, > > > > Because the sound card is mt8188-mt6359, the codec for these two > > links > > must be mt6359. Thus, I specifiy the codec in machine driver > > directly. > > If the codec is changed, there will be a new sound card and binding > > file. In conclusion, the codec won't be updated via dts, and that's > > why > > I don't just replace ADDA_BE in this binding. > > > > Do you suggest me add some information in the commit message? > > No it's fine, I'm just trying to understand. > > When you say "I specifiy the codec in machine driver directly", you > are talking about this change ? > > + } else if (strcmp(dai_link->name, "DL_SRC_BE") == 0 > || > + strcmp(dai_link->name, "UL_SRC_BE") == 0) > { > + if (!init_mt6359) { > + dai_link->init = mt8188_mt6359_init; > > I'm asking because the equivalent was done here: > > - [DAI_LINK_ADDA_BE] = { > - .name = "ADDA_BE", > + [DAI_LINK_DL_SRC_BE] = { > + .name = "DL_SRC_BE", > .no_pcm = 1, > .dpcm_playback = 1, > - .dpcm_capture = 1, > - .init = mt8188_mt6359_init, > - SND_SOC_DAILINK_REG(adda), > + SND_SOC_DAILINK_REG(dl_src), > > So I'm wondering why "ADDA_BE" & "DPTX_BE" & "ETDM3_OUT_BE" are in > the > enum list of the binding since the codec is already specified in > machine driver too. I probably miss something but I don't know what. > > The following code snippet is cut from [PATCH v2 1/7]. /* BE */ -SND_SOC_DAILINK_DEFS(adda, - DAILINK_COMP_ARRAY(COMP_CPU("ADDA")), +SND_SOC_DAILINK_DEFS(dl_src, + DAILINK_COMP_ARRAY(COMP_CPU("DL_SRC")), DAILINK_COMP_ARRAY(COMP_CODEC("mt6359-sound", "mt6359-snd-codec- aif1")), DAILINK_COMP_ARRAY(COMP_EMPTY())); @@ -140,6 +140,12 @@ SND_SOC_DAILINK_DEFS(pcm1, DAILINK_COMP_ARRAY(COMP_DUMMY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); +SND_SOC_DAILINK_DEFS(ul_src, + DAILINK_COMP_ARRAY(COMP_CPU("UL_SRC")), + DAILINK_COMP_ARRAY(COMP_CODEC("mt6359-sound", + "mt6359-snd-codec- aif1")), + DAILINK_COMP_ARRAY(COMP_EMPTY())); This is why I talk about specifying the codec it connects in the machine driver. If you check other dai-links, you would see COMP_DUMMY() in the COMP_CODEC() field. Thanks, Trevor >