OSDN Git Service

ASoC: SOF/soundwire: re-add substream in params_stream structure
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Mon, 15 May 2023 07:10:38 +0000 (15:10 +0800)
committerVinod Koul <vkoul@kernel.org>
Sat, 27 May 2023 10:36:47 +0000 (16:06 +0530)
An earlier simplification to only pass the direction is no longer
suitable, all the ACE2.x HDaudio DMA management relies on access to
the substream structure.

This patch is an iso-functionality change, the HDaudio DMA parts will
be provided separately.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20230515071042.2038-23-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/intel.c
include/linux/soundwire/sdw_intel.h
sound/soc/sof/intel/hda.c

index 238acf5..c8eb1ec 100644 (file)
@@ -643,7 +643,7 @@ intel_pdi_alh_configure(struct sdw_intel *sdw, struct sdw_cdns_pdi *pdi)
 }
 
 static int intel_params_stream(struct sdw_intel *sdw,
-                              int stream,
+                              struct snd_pcm_substream *substream,
                               struct snd_soc_dai *dai,
                               struct snd_pcm_hw_params *hw_params,
                               int link_id, int alh_stream_id)
@@ -651,7 +651,7 @@ static int intel_params_stream(struct sdw_intel *sdw,
        struct sdw_intel_link_res *res = sdw->link_res;
        struct sdw_intel_stream_params_data params_data;
 
-       params_data.stream = stream; /* direction */
+       params_data.substream = substream;
        params_data.dai = dai;
        params_data.hw_params = hw_params;
        params_data.link_id = link_id;
@@ -727,7 +727,7 @@ static int intel_hw_params(struct snd_pcm_substream *substream,
        dai_runtime->pdi = pdi;
 
        /* Inform DSP about PDI stream number */
-       ret = intel_params_stream(sdw, substream->stream, dai, params,
+       ret = intel_params_stream(sdw, substream, dai, params,
                                  sdw->instance,
                                  pdi->intel_alh_id);
        if (ret)
@@ -804,7 +804,7 @@ static int intel_prepare(struct snd_pcm_substream *substream,
                sdw_cdns_config_stream(cdns, ch, dir, dai_runtime->pdi);
 
                /* Inform DSP about PDI stream number */
-               ret = intel_params_stream(sdw, substream->stream, dai,
+               ret = intel_params_stream(sdw, substream, dai,
                                          hw_params,
                                          sdw->instance,
                                          dai_runtime->pdi->intel_alh_id);
index 1a8f320..ccb228e 100644 (file)
  * firmware.
  */
 struct sdw_intel_stream_params_data {
-       int stream;
+       struct snd_pcm_substream *substream;
        struct snd_soc_dai *dai;
        struct snd_pcm_hw_params *hw_params;
        int link_id;
index 388e410..511c927 100644 (file)
@@ -94,7 +94,7 @@ static int sdw_params_stream(struct device *dev,
                             struct sdw_intel_stream_params_data *params_data)
 {
        struct snd_soc_dai *d = params_data->dai;
-       struct snd_soc_dapm_widget *w = snd_soc_dai_get_widget(d, params_data->stream);
+       struct snd_soc_dapm_widget *w = snd_soc_dai_get_widget(d, params_data->substream->stream);
        struct snd_sof_dai_config_data data = { 0 };
 
        data.dai_index = (params_data->link_id << 8) | d->id;