@@ -1028,7 +1028,7 @@ static int fsl_sai_dai_resume(struct snd_soc_dai *cpu_dai)
10281028 return 0 ;
10291029}
10301030
1031- static struct snd_soc_dai_driver fsl_sai_dai = {
1031+ static struct snd_soc_dai_driver fsl_sai_dai_template = {
10321032 .probe = fsl_sai_dai_probe ,
10331033 .playback = {
10341034 .stream_name = "CPU-Playback" ,
@@ -1382,6 +1382,9 @@ static int fsl_sai_probe(struct platform_device *pdev)
13821382 if (sai -> soc -> reg_offset == 8 )
13831383 fsl_sai_regmap_config = fsl_sai_v3_regmap_config ;
13841384
1385+ memcpy (& sai -> cpu_dai_drv , & fsl_sai_dai_template ,
1386+ sizeof (fsl_sai_dai_template ));
1387+
13851388 sai -> regmap = devm_regmap_init_mmio_clk (& pdev -> dev ,
13861389 NULL , base , & fsl_sai_regmap_config );
13871390 if (IS_ERR (sai -> regmap )) {
@@ -1467,9 +1470,9 @@ static int fsl_sai_probe(struct platform_device *pdev)
14671470 /* Sync Tx with Rx as default by following old DT binding */
14681471 sai -> synchronous [RX ] = true;
14691472 sai -> synchronous [TX ] = false;
1470- fsl_sai_dai .symmetric_rates = 1 ;
1471- fsl_sai_dai .symmetric_channels = 1 ;
1472- fsl_sai_dai .symmetric_samplebits = 1 ;
1473+ sai -> cpu_dai_drv .symmetric_rates = 1 ;
1474+ sai -> cpu_dai_drv .symmetric_channels = 1 ;
1475+ sai -> cpu_dai_drv .symmetric_samplebits = 1 ;
14731476
14741477 if (of_find_property (np , "fsl,sai-synchronous-rx" , NULL ) &&
14751478 of_find_property (np , "fsl,sai-asynchronous" , NULL )) {
@@ -1486,9 +1489,9 @@ static int fsl_sai_probe(struct platform_device *pdev)
14861489 /* Discard all settings for asynchronous mode */
14871490 sai -> synchronous [RX ] = false;
14881491 sai -> synchronous [TX ] = false;
1489- fsl_sai_dai .symmetric_rates = 0 ;
1490- fsl_sai_dai .symmetric_channels = 0 ;
1491- fsl_sai_dai .symmetric_samplebits = 0 ;
1492+ sai -> cpu_dai_drv .symmetric_rates = 0 ;
1493+ sai -> cpu_dai_drv .symmetric_channels = 0 ;
1494+ sai -> cpu_dai_drv .symmetric_samplebits = 0 ;
14921495 }
14931496
14941497 platform_set_drvdata (pdev , sai );
@@ -1554,7 +1557,7 @@ static int fsl_sai_probe(struct platform_device *pdev)
15541557 regcache_cache_only (sai -> regmap , true);
15551558
15561559 ret = devm_snd_soc_register_component (& pdev -> dev , & fsl_component ,
1557- & fsl_sai_dai , 1 );
1560+ & sai -> cpu_dai_drv , 1 );
15581561 if (ret )
15591562 return ret ;
15601563
0 commit comments