soundwire: intel: move all PDI initialization under intel_register_dai()
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Mon, 19 Sep 2022 17:57:14 +0000 (01:57 +0800)
committerVinod Koul <vkoul@kernel.org>
Tue, 20 Sep 2022 05:09:23 +0000 (10:39 +0530)
Start regrouping functionality in high-level functions.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20220919175721.354679-5-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/intel.c

index d7852cc7dd967b4e2ca4b1bf3286d1c56aab9fba..676de04c50700628496b4d3c2eea4137bfb506c4 100644 (file)
@@ -1171,11 +1171,20 @@ static int intel_create_dai(struct sdw_cdns *cdns,
 
 static int intel_register_dai(struct sdw_intel *sdw)
 {
+       struct sdw_cdns_stream_config config;
        struct sdw_cdns *cdns = &sdw->cdns;
        struct sdw_cdns_streams *stream;
        struct snd_soc_dai_driver *dais;
        int num_dai, ret, off = 0;
 
+       /* Read the PDI config and initialize cadence PDI */
+       intel_pdi_init(sdw, &config);
+       ret = sdw_cdns_pdi_init(cdns, config);
+       if (ret)
+               return ret;
+
+       intel_pdi_ch_update(sdw);
+
        /* DAIs are created based on total number of PDIs supported */
        num_dai = cdns->pcm.num_pdi;
 
@@ -1347,7 +1356,6 @@ static int intel_link_probe(struct auxiliary_device *auxdev,
 
 int intel_link_startup(struct auxiliary_device *auxdev)
 {
-       struct sdw_cdns_stream_config config;
        struct device *dev = &auxdev->dev;
        struct sdw_cdns *cdns = auxiliary_get_drvdata(auxdev);
        struct sdw_intel *sdw = cdns_to_intel(cdns);
@@ -1385,14 +1393,6 @@ int intel_link_startup(struct auxiliary_device *auxdev)
        if (ret)
                goto err_init;
 
-       /* Read the PDI config and initialize cadence PDI */
-       intel_pdi_init(sdw, &config);
-       ret = sdw_cdns_pdi_init(cdns, config);
-       if (ret)
-               goto err_init;
-
-       intel_pdi_ch_update(sdw);
-
        /* Register DAIs */
        ret = intel_register_dai(sdw);
        if (ret) {