ASoC: SOF: Intel: regroup all SoundWire/Intel functions in hda.c
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Fri, 3 May 2024 13:52:16 +0000 (08:52 -0500)
committerMark Brown <broonie@kernel.org>
Sun, 5 May 2024 14:45:44 +0000 (23:45 +0900)
To avoid circular dependencies between SOF/Intel and SoundWire/Intel,
we need to split the top-level hda.c from the rest of the code. This
patch first regroups all SoundWire related code in hda.c.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20240503135221.229202-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/intel/hda-loader.c
sound/soc/sof/intel/hda.c

index dc88b7ea599eaae43d6083f4dbb107d2b5972109..d0474522ea7608f119937c7f2b8d6a037b3c7553 100644 (file)
@@ -15,7 +15,6 @@
  * Hardware interface for HDA DSP code loader
  */
 
-#include <linux/debugfs.h>
 #include <linux/firmware.h>
 #include <sound/hdaudio_ext.h>
 #include <sound/hda_register.h>
@@ -651,45 +650,6 @@ cleanup:
        return ret;
 }
 
-/* pre fw run operations */
-int hda_dsp_pre_fw_run(struct snd_sof_dev *sdev)
-{
-       /* disable clock gating and power gating */
-       return hda_dsp_ctrl_clock_power_gating(sdev, false);
-}
-
-/* post fw run operations */
-int hda_dsp_post_fw_run(struct snd_sof_dev *sdev)
-{
-       int ret;
-
-       if (sdev->first_boot) {
-               struct sof_intel_hda_dev *hdev = sdev->pdata->hw_pdata;
-
-               ret = hda_sdw_startup(sdev);
-               if (ret < 0) {
-                       dev_err(sdev->dev,
-                               "error: could not startup SoundWire links\n");
-                       return ret;
-               }
-
-               /* Check if IMR boot is usable */
-               if (!sof_debug_check_flag(SOF_DBG_IGNORE_D3_PERSISTENT) &&
-                   (sdev->fw_ready.flags & SOF_IPC_INFO_D3_PERSISTENT ||
-                    sdev->pdata->ipc_type == SOF_IPC_TYPE_4)) {
-                       hdev->imrboot_supported = true;
-                       debugfs_create_bool("skip_imr_boot",
-                                           0644, sdev->debugfs_root,
-                                           &hdev->skip_imr_boot);
-               }
-       }
-
-       hda_sdw_int_enable(sdev, true);
-
-       /* re-enable clock gating and power gating */
-       return hda_dsp_ctrl_clock_power_gating(sdev, true);
-}
-
 int hda_dsp_ext_man_get_cavs_config_data(struct snd_sof_dev *sdev,
                                         const struct sof_ext_man_elem_header *hdr)
 {
index d509cfa38a6429ee325fc27d26241b050443d72d..93f316300043ce52bd3c95eccc9d57532eaa5fd0 100644 (file)
@@ -545,6 +545,45 @@ static inline bool hda_sdw_check_wakeen_irq(struct snd_sof_dev *sdev)
 
 #endif /* IS_ENABLED(CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE) */
 
+/* pre fw run operations */
+int hda_dsp_pre_fw_run(struct snd_sof_dev *sdev)
+{
+       /* disable clock gating and power gating */
+       return hda_dsp_ctrl_clock_power_gating(sdev, false);
+}
+
+/* post fw run operations */
+int hda_dsp_post_fw_run(struct snd_sof_dev *sdev)
+{
+       int ret;
+
+       if (sdev->first_boot) {
+               struct sof_intel_hda_dev *hdev = sdev->pdata->hw_pdata;
+
+               ret = hda_sdw_startup(sdev);
+               if (ret < 0) {
+                       dev_err(sdev->dev,
+                               "error: could not startup SoundWire links\n");
+                       return ret;
+               }
+
+               /* Check if IMR boot is usable */
+               if (!sof_debug_check_flag(SOF_DBG_IGNORE_D3_PERSISTENT) &&
+                   (sdev->fw_ready.flags & SOF_IPC_INFO_D3_PERSISTENT ||
+                    sdev->pdata->ipc_type == SOF_IPC_TYPE_4)) {
+                       hdev->imrboot_supported = true;
+                       debugfs_create_bool("skip_imr_boot",
+                                           0644, sdev->debugfs_root,
+                                           &hdev->skip_imr_boot);
+               }
+       }
+
+       hda_sdw_int_enable(sdev, true);
+
+       /* re-enable clock gating and power gating */
+       return hda_dsp_ctrl_clock_power_gating(sdev, true);
+}
+
 /*
  * Debug
  */