RE: [PATCH 1/4] ASoC: Intel: sof_cs42l42: support JSL DAI link sequence

From: Lu, Brent
Date: Mon Jun 07 2021 - 10:23:11 EST


> On 6/5/21 7:40 PM, Brent Lu wrote:
> > The backend DAI link sequence of GLK platform is different from the
> > sequence of other platforms. We refactor the
> > sof_card_dai_links_create() function to support both style.
> >
> > GLK: SPK - HP - DMIC - HDMI
> > Other: HP - DMIC - HDMI - SPK
>
> I am really confused here.
> The dailink sequence is whatever we want it to be. What matters is that the
> dailink ID matches what is in the topology.
>
> Is this saying that the GLK and JSL topologies did not follow any sort of
> convention? Can you elaborate more on what is the issue?
>
> Put differently, why can't we fix the topology instead with a reorder of the
> dailinks?
>

snd_soc_find_dai_link() checked both dai link name and id when matching
topology and machine driver. Soundcard registration would fail if their id
doesn't match.

Cs42l42 is sharing topology with DA7219's topology source file sof-glk-da7219.m4
on GLK platform. The configuration is:

dai link id 0 is for spk
#SSP 1 (ID: 0) with 19.2 MHz mclk with MCLK_ID 1 (unused), 1.536 MHz blck
DAI_CONFIG(SSP, 1, 0, SSP1-Codec,

dai link id 1 is for headphone
#SSP 2 (ID: 1) with 19.2 MHz mclk with MCLK_ID 1, 1.92 MHz bclk
DAI_CONFIG(SSP, 2, 1, SSP2-Codec,

dai link id 2 is for dmic
DAI_CONFIG(DMIC, 0, 2, dmic01,

dai link id 3/4/5 is for hdmi
DAI_CONFIG(HDA, 3, 3, iDisp1,
DAI_CONFIG(HDA, 4, 4, iDisp2,
DAI_CONFIG(HDA, 5, 5, iDisp3,

When on JSL, we plan to share topology with rt5682 which has different dai link
sequence:
sof-jsl-rt5682.m4:

dai link id 0 is for headphone
DAI_CONFIG(SSP, 0, 0, SSP0-Codec,

dai link id 6 is for spk
# SSP 1 (ID: 6)
DAI_CONFIG(SSP, SPK_INDEX, 6, SPK_NAME,
SET_SSP_CONFIG)

dai link id 3/4/5 is for hdmi
# 4 HDMI/DP outputs (ID: 3,4,5)
DAI_CONFIG(HDA, 0, 3, iDisp1,
DAI_CONFIG(HDA, 1, 4, iDisp2,
DAI_CONFIG(HDA, 2, 5, iDisp3,

I'm not sure if there is convention about the sequence to follow?


Regards,
Brent