Re: [PATCH v2 2/7] ASoC: dt-bindings: mediatek,mt8188-mt6359: remove ADDA_BE from link-name

From: Alexandre Mergnat
Date: Wed May 24 2023 - 10:47:13 EST


On 24/05/2023 15:45, Trevor Wu (吳文良) wrote:
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.

Ok thanks for the explanation. If I understand well, ADDA_BE could have been removed from the enum list before your serie because the codec was already specified for ADDA_BE.

Reviewed-by: Alexandre Mergnat <amergnat@xxxxxxxxxxxx>

--
Regards,
Alexandre