soundwire: intel: don't save hw_params for use in prepare
[linux-block.git] / drivers / soundwire / intel.c
index 046c67a2a39b401bc3dfb2aa9f40af4e3b34d7a1..238acf5c97a9f8b40eca362dfedca211d1294e65 100644 (file)
@@ -725,7 +725,6 @@ static int intel_hw_params(struct snd_pcm_substream *substream,
        dai_runtime->paused = false;
        dai_runtime->suspended = false;
        dai_runtime->pdi = pdi;
-       dai_runtime->hw_params = params;
 
        /* Inform DSP about PDI stream number */
        ret = intel_params_stream(sdw, substream->stream, dai, params,
@@ -778,6 +777,11 @@ static int intel_prepare(struct snd_pcm_substream *substream,
        }
 
        if (dai_runtime->suspended) {
+               struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
+               struct snd_pcm_hw_params *hw_params;
+
+               hw_params = &rtd->dpcm[substream->stream].hw_params;
+
                dai_runtime->suspended = false;
 
                /*
@@ -789,7 +793,7 @@ static int intel_prepare(struct snd_pcm_substream *substream,
                 */
 
                /* configure stream */
-               ch = params_channels(dai_runtime->hw_params);
+               ch = params_channels(hw_params);
                if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
                        dir = SDW_DATA_DIR_RX;
                else
@@ -801,7 +805,7 @@ static int intel_prepare(struct snd_pcm_substream *substream,
 
                /* Inform DSP about PDI stream number */
                ret = intel_params_stream(sdw, substream->stream, dai,
-                                         dai_runtime->hw_params,
+                                         hw_params,
                                          sdw->instance,
                                          dai_runtime->pdi->intel_alh_id);
        }
@@ -840,7 +844,6 @@ intel_hw_free(struct snd_pcm_substream *substream, struct snd_soc_dai *dai)
                return ret;
        }
 
-       dai_runtime->hw_params = NULL;
        dai_runtime->pdi = NULL;
 
        return 0;