@@ -542,6 +542,7 @@ static int fsl_asoc_card_late_probe(struct snd_soc_card *card)
542
542
static int fsl_asoc_card_probe (struct platform_device * pdev )
543
543
{
544
544
struct device_node * cpu_np , * codec_np , * asrc_np ;
545
+ struct snd_soc_dai_link_component * codec_comp ;
545
546
struct device_node * np = pdev -> dev .of_node ;
546
547
struct platform_device * asrc_pdev = NULL ;
547
548
struct device_node * bitclkprovider = NULL ;
@@ -552,6 +553,7 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
552
553
const char * codec_dai_name ;
553
554
const char * codec_dev_name ;
554
555
u32 asrc_fmt = 0 ;
556
+ int codec_idx ;
555
557
u32 width ;
556
558
int ret ;
557
559
@@ -816,10 +818,10 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
816
818
817
819
/* Normal DAI Link */
818
820
priv -> dai_link [0 ].cpus -> of_node = cpu_np ;
819
- priv -> dai_link [0 ].codecs -> dai_name = codec_dai_name ;
821
+ priv -> dai_link [0 ].codecs [ 0 ]. dai_name = codec_dai_name ;
820
822
821
823
if (!fsl_asoc_card_is_ac97 (priv ))
822
- priv -> dai_link [0 ].codecs -> of_node = codec_np ;
824
+ priv -> dai_link [0 ].codecs [ 0 ]. of_node = codec_np ;
823
825
else {
824
826
u32 idx ;
825
827
@@ -830,11 +832,11 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
830
832
goto asrc_fail ;
831
833
}
832
834
833
- priv -> dai_link [0 ].codecs -> name =
835
+ priv -> dai_link [0 ].codecs [ 0 ]. name =
834
836
devm_kasprintf (& pdev -> dev , GFP_KERNEL ,
835
837
"ac97-codec.%u" ,
836
838
(unsigned int )idx );
837
- if (!priv -> dai_link [0 ].codecs -> name ) {
839
+ if (!priv -> dai_link [0 ].codecs [ 0 ]. name ) {
838
840
ret = - ENOMEM ;
839
841
goto asrc_fail ;
840
842
}
@@ -848,10 +850,11 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
848
850
/* DPCM DAI Links only if ASRC exists */
849
851
priv -> dai_link [1 ].cpus -> of_node = asrc_np ;
850
852
priv -> dai_link [1 ].platforms -> of_node = asrc_np ;
851
- priv -> dai_link [2 ].codecs -> dai_name = codec_dai_name ;
852
- priv -> dai_link [2 ].codecs -> of_node = codec_np ;
853
- priv -> dai_link [2 ].codecs -> name =
854
- priv -> dai_link [0 ].codecs -> name ;
853
+ for_each_link_codecs ((& (priv -> dai_link [2 ])), codec_idx , codec_comp ) {
854
+ codec_comp -> dai_name = priv -> dai_link [0 ].codecs [codec_idx ].dai_name ;
855
+ codec_comp -> of_node = priv -> dai_link [0 ].codecs [codec_idx ].of_node ;
856
+ codec_comp -> name = priv -> dai_link [0 ].codecs [codec_idx ].name ;
857
+ }
855
858
priv -> dai_link [2 ].cpus -> of_node = cpu_np ;
856
859
priv -> dai_link [2 ].dai_fmt = priv -> dai_fmt ;
857
860
priv -> card .num_links = 3 ;
0 commit comments