]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.15-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Jan 2023 11:41:39 +0000 (12:41 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Jan 2023 11:41:39 +0000 (12:41 +0100)
added patches:
asoc-intel-sof-use-set_stream-instead-of-set_tdm_slots-for-hdaudio.patch
asoc-soundwire-dai-expand-stream-concept-beyond-soundwire.patch

queue-5.15/asoc-intel-sof-use-set_stream-instead-of-set_tdm_slots-for-hdaudio.patch [new file with mode: 0644]
queue-5.15/asoc-soundwire-dai-expand-stream-concept-beyond-soundwire.patch [new file with mode: 0644]
queue-5.15/series

diff --git a/queue-5.15/asoc-intel-sof-use-set_stream-instead-of-set_tdm_slots-for-hdaudio.patch b/queue-5.15/asoc-intel-sof-use-set_stream-instead-of-set_tdm_slots-for-hdaudio.patch
new file mode 100644 (file)
index 0000000..8f7becb
--- /dev/null
@@ -0,0 +1,115 @@
+From 636110411ca726f19ef8e87b0be51bb9a4cdef06 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 24 Dec 2021 10:10:32 +0800
+Subject: ASoC: Intel/SOF: use set_stream() instead of set_tdm_slots() for HDAudio
+
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+
+commit 636110411ca726f19ef8e87b0be51bb9a4cdef06 upstream.
+
+Overloading the tx_mask with a linear value is asking for trouble and
+only works because the codec_dai hw_params() is called before the
+cpu_dai hw_params().
+
+Move to the more generic set_stream() API to pass the hdac_stream
+information.
+
+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@intel.com>
+Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
+Link: https://lore.kernel.org/r/20211224021034.26635-6-yung-chuan.liao@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Cc: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/soc/codecs/hdac_hda.c       |   22 +++++++++++-----------
+ sound/soc/intel/skylake/skl-pcm.c |    7 ++-----
+ sound/soc/sof/intel/hda-dai.c     |    7 ++-----
+ 3 files changed, 15 insertions(+), 21 deletions(-)
+
+--- a/sound/soc/codecs/hdac_hda.c
++++ b/sound/soc/codecs/hdac_hda.c
+@@ -46,9 +46,8 @@ static int hdac_hda_dai_hw_params(struct
+                                 struct snd_soc_dai *dai);
+ static int hdac_hda_dai_hw_free(struct snd_pcm_substream *substream,
+                               struct snd_soc_dai *dai);
+-static int hdac_hda_dai_set_tdm_slot(struct snd_soc_dai *dai,
+-                                   unsigned int tx_mask, unsigned int rx_mask,
+-                                   int slots, int slot_width);
++static int hdac_hda_dai_set_stream(struct snd_soc_dai *dai, void *stream,
++                                 int direction);
+ static struct hda_pcm *snd_soc_find_pcm_from_dai(struct hdac_hda_priv *hda_pvt,
+                                                struct snd_soc_dai *dai);
+@@ -58,7 +57,7 @@ static const struct snd_soc_dai_ops hdac
+       .prepare = hdac_hda_dai_prepare,
+       .hw_params = hdac_hda_dai_hw_params,
+       .hw_free = hdac_hda_dai_hw_free,
+-      .set_tdm_slot = hdac_hda_dai_set_tdm_slot,
++      .set_stream = hdac_hda_dai_set_stream,
+ };
+ static struct snd_soc_dai_driver hdac_hda_dais[] = {
+@@ -180,21 +179,22 @@ static struct snd_soc_dai_driver hdac_hd
+ };
+-static int hdac_hda_dai_set_tdm_slot(struct snd_soc_dai *dai,
+-                                   unsigned int tx_mask, unsigned int rx_mask,
+-                                   int slots, int slot_width)
++static int hdac_hda_dai_set_stream(struct snd_soc_dai *dai,
++                                 void *stream, int direction)
+ {
+       struct snd_soc_component *component = dai->component;
+       struct hdac_hda_priv *hda_pvt;
+       struct hdac_hda_pcm *pcm;
++      struct hdac_stream *hstream;
++
++      if (!stream)
++              return -EINVAL;
+       hda_pvt = snd_soc_component_get_drvdata(component);
+       pcm = &hda_pvt->pcm[dai->id];
++      hstream = (struct hdac_stream *)stream;
+-      if (tx_mask)
+-              pcm->stream_tag[SNDRV_PCM_STREAM_PLAYBACK] = tx_mask;
+-      else
+-              pcm->stream_tag[SNDRV_PCM_STREAM_CAPTURE] = rx_mask;
++      pcm->stream_tag[direction] = hstream->stream_tag;
+       return 0;
+ }
+--- a/sound/soc/intel/skylake/skl-pcm.c
++++ b/sound/soc/intel/skylake/skl-pcm.c
+@@ -562,11 +562,8 @@ static int skl_link_hw_params(struct snd
+       stream_tag = hdac_stream(link_dev)->stream_tag;
+-      /* set the stream tag in the codec dai dma params  */
+-      if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+-              snd_soc_dai_set_tdm_slot(codec_dai, stream_tag, 0, 0, 0);
+-      else
+-              snd_soc_dai_set_tdm_slot(codec_dai, 0, stream_tag, 0, 0);
++      /* set the hdac_stream in the codec dai */
++      snd_soc_dai_set_stream(codec_dai, hdac_stream(link_dev), substream->stream);
+       p_params.s_fmt = snd_pcm_format_width(params_format(params));
+       p_params.ch = params_channels(params);
+--- a/sound/soc/sof/intel/hda-dai.c
++++ b/sound/soc/sof/intel/hda-dai.c
+@@ -236,11 +236,8 @@ static int hda_link_hw_params(struct snd
+       if (!link)
+               return -EINVAL;
+-      /* set the stream tag in the codec dai dma params */
+-      if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+-              snd_soc_dai_set_tdm_slot(codec_dai, stream_tag, 0, 0, 0);
+-      else
+-              snd_soc_dai_set_tdm_slot(codec_dai, 0, stream_tag, 0, 0);
++      /* set the hdac_stream in the codec dai */
++      snd_soc_dai_set_stream(codec_dai, hdac_stream(link_dev), substream->stream);
+       p_params.s_fmt = snd_pcm_format_width(params_format(params));
+       p_params.ch = params_channels(params);
diff --git a/queue-5.15/asoc-soundwire-dai-expand-stream-concept-beyond-soundwire.patch b/queue-5.15/asoc-soundwire-dai-expand-stream-concept-beyond-soundwire.patch
new file mode 100644 (file)
index 0000000..a686641
--- /dev/null
@@ -0,0 +1,395 @@
+From e8444560b4d9302a511f0996f4cfdf85b628f4ca Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 24 Dec 2021 10:10:31 +0800
+Subject: ASoC/SoundWire: dai: expand 'stream' concept beyond SoundWire
+
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+
+commit e8444560b4d9302a511f0996f4cfdf85b628f4ca upstream.
+
+The HDAudio ASoC support relies on the set_tdm_slots() helper to store
+the HDaudio stream tag in the tx_mask. This only works because of the
+pre-existing order in soc-pcm.c, where the hw_params() is handled for
+codec_dais *before* cpu_dais. When the order is reversed, the
+stream_tag is used as a mask in the codec fixup functions:
+
+       /* fixup params based on TDM slot masks */
+       if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
+           codec_dai->tx_mask)
+               soc_pcm_codec_params_fixup(&codec_params,
+                                          codec_dai->tx_mask);
+
+As a result of this confusion, the codec_params_fixup() ends-up
+generating bad channel masks, depending on what stream_tag was
+allocated.
+
+We could add a flag to state that the tx_mask is really not a mask,
+but it would be quite ugly to persist in overloading concepts.
+
+Instead, this patch suggests a more generic get/set 'stream' API based
+on the existing model for SoundWire. We can expand the concept to
+store 'stream' opaque information that is specific to different DAI
+types. In the case of HDAudio DAIs, we only need to store a stream tag
+as an unsigned char pointer. The TDM rx_ and tx_masks should really
+only be used to store masks.
+
+Rename get_sdw_stream/set_sdw_stream callbacks and helpers as
+get_stream/set_stream. No functionality change beyond the rename.
+
+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@intel.com>
+Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
+Acked-By: Vinod Koul <vkoul@kernel.org>
+Link: https://lore.kernel.org/r/20211224021034.26635-5-yung-chuan.liao@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Cc: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/soundwire/intel.c        |    8 ++++----
+ drivers/soundwire/qcom.c         |    8 ++++----
+ drivers/soundwire/stream.c       |    4 ++--
+ include/sound/soc-dai.h          |   32 ++++++++++++++++----------------
+ sound/soc/codecs/max98373-sdw.c  |    2 +-
+ sound/soc/codecs/rt1308-sdw.c    |    2 +-
+ sound/soc/codecs/rt1316-sdw.c    |    2 +-
+ sound/soc/codecs/rt5682-sdw.c    |    2 +-
+ sound/soc/codecs/rt700.c         |    2 +-
+ sound/soc/codecs/rt711-sdca.c    |    2 +-
+ sound/soc/codecs/rt711.c         |    2 +-
+ sound/soc/codecs/rt715-sdca.c    |    2 +-
+ sound/soc/codecs/rt715.c         |    2 +-
+ sound/soc/codecs/sdw-mockup.c    |    2 +-
+ sound/soc/codecs/wcd938x.c       |    2 +-
+ sound/soc/codecs/wsa881x.c       |    2 +-
+ sound/soc/intel/boards/sof_sdw.c |    6 +++---
+ sound/soc/qcom/sdm845.c          |    4 ++--
+ sound/soc/qcom/sm8250.c          |    4 ++--
+ 19 files changed, 45 insertions(+), 45 deletions(-)
+
+--- a/drivers/soundwire/intel.c
++++ b/drivers/soundwire/intel.c
+@@ -1065,8 +1065,8 @@ static const struct snd_soc_dai_ops inte
+       .prepare = intel_prepare,
+       .hw_free = intel_hw_free,
+       .shutdown = intel_shutdown,
+-      .set_sdw_stream = intel_pcm_set_sdw_stream,
+-      .get_sdw_stream = intel_get_sdw_stream,
++      .set_stream = intel_pcm_set_sdw_stream,
++      .get_stream = intel_get_sdw_stream,
+ };
+ static const struct snd_soc_dai_ops intel_pdm_dai_ops = {
+@@ -1075,8 +1075,8 @@ static const struct snd_soc_dai_ops inte
+       .prepare = intel_prepare,
+       .hw_free = intel_hw_free,
+       .shutdown = intel_shutdown,
+-      .set_sdw_stream = intel_pdm_set_sdw_stream,
+-      .get_sdw_stream = intel_get_sdw_stream,
++      .set_stream = intel_pdm_set_sdw_stream,
++      .get_stream = intel_get_sdw_stream,
+ };
+ static const struct snd_soc_component_driver dai_component = {
+--- a/drivers/soundwire/qcom.c
++++ b/drivers/soundwire/qcom.c
+@@ -1032,8 +1032,8 @@ static int qcom_swrm_startup(struct snd_
+       ctrl->sruntime[dai->id] = sruntime;
+       for_each_rtd_codec_dais(rtd, i, codec_dai) {
+-              ret = snd_soc_dai_set_sdw_stream(codec_dai, sruntime,
+-                                               substream->stream);
++              ret = snd_soc_dai_set_stream(codec_dai, sruntime,
++                                           substream->stream);
+               if (ret < 0 && ret != -ENOTSUPP) {
+                       dev_err(dai->dev, "Failed to set sdw stream on %s\n",
+                               codec_dai->name);
+@@ -1059,8 +1059,8 @@ static const struct snd_soc_dai_ops qcom
+       .hw_free = qcom_swrm_hw_free,
+       .startup = qcom_swrm_startup,
+       .shutdown = qcom_swrm_shutdown,
+-      .set_sdw_stream = qcom_swrm_set_sdw_stream,
+-      .get_sdw_stream = qcom_swrm_get_sdw_stream,
++      .set_stream = qcom_swrm_set_sdw_stream,
++      .get_stream = qcom_swrm_get_sdw_stream,
+ };
+ static const struct snd_soc_component_driver qcom_swrm_dai_component = {
+--- a/drivers/soundwire/stream.c
++++ b/drivers/soundwire/stream.c
+@@ -1880,7 +1880,7 @@ static int set_stream(struct snd_pcm_sub
+       /* Set stream pointer on all DAIs */
+       for_each_rtd_dais(rtd, i, dai) {
+-              ret = snd_soc_dai_set_sdw_stream(dai, sdw_stream, substream->stream);
++              ret = snd_soc_dai_set_stream(dai, sdw_stream, substream->stream);
+               if (ret < 0) {
+                       dev_err(rtd->dev, "failed to set stream pointer on dai %s\n", dai->name);
+                       break;
+@@ -1951,7 +1951,7 @@ void sdw_shutdown_stream(void *sdw_subst
+       /* Find stream from first CPU DAI */
+       dai = asoc_rtd_to_cpu(rtd, 0);
+-      sdw_stream = snd_soc_dai_get_sdw_stream(dai, substream->stream);
++      sdw_stream = snd_soc_dai_get_stream(dai, substream->stream);
+       if (IS_ERR(sdw_stream)) {
+               dev_err(rtd->dev, "no stream found for DAI %s\n", dai->name);
+--- a/include/sound/soc-dai.h
++++ b/include/sound/soc-dai.h
+@@ -295,9 +295,9 @@ struct snd_soc_dai_ops {
+                       unsigned int *rx_num, unsigned int *rx_slot);
+       int (*set_tristate)(struct snd_soc_dai *dai, int tristate);
+-      int (*set_sdw_stream)(struct snd_soc_dai *dai,
+-                      void *stream, int direction);
+-      void *(*get_sdw_stream)(struct snd_soc_dai *dai, int direction);
++      int (*set_stream)(struct snd_soc_dai *dai,
++                        void *stream, int direction);
++      void *(*get_stream)(struct snd_soc_dai *dai, int direction);
+       /*
+        * DAI digital mute - optional.
+@@ -515,42 +515,42 @@ static inline void *snd_soc_dai_get_drvd
+ }
+ /**
+- * snd_soc_dai_set_sdw_stream() - Configures a DAI for SDW stream operation
++ * snd_soc_dai_set_stream() - Configures a DAI for stream operation
+  * @dai: DAI
+- * @stream: STREAM
++ * @stream: STREAM (opaque structure depending on DAI type)
+  * @direction: Stream direction(Playback/Capture)
+- * SoundWire subsystem doesn't have a notion of direction and we reuse
++ * Some subsystems, such as SoundWire, don't have a notion of direction and we reuse
+  * the ASoC stream direction to configure sink/source ports.
+  * Playback maps to source ports and Capture for sink ports.
+  *
+  * This should be invoked with NULL to clear the stream set previously.
+  * Returns 0 on success, a negative error code otherwise.
+  */
+-static inline int snd_soc_dai_set_sdw_stream(struct snd_soc_dai *dai,
+-                              void *stream, int direction)
++static inline int snd_soc_dai_set_stream(struct snd_soc_dai *dai,
++                                       void *stream, int direction)
+ {
+-      if (dai->driver->ops->set_sdw_stream)
+-              return dai->driver->ops->set_sdw_stream(dai, stream, direction);
++      if (dai->driver->ops->set_stream)
++              return dai->driver->ops->set_stream(dai, stream, direction);
+       else
+               return -ENOTSUPP;
+ }
+ /**
+- * snd_soc_dai_get_sdw_stream() - Retrieves SDW stream from DAI
++ * snd_soc_dai_get_stream() - Retrieves stream from DAI
+  * @dai: DAI
+  * @direction: Stream direction(Playback/Capture)
+  *
+  * This routine only retrieves that was previously configured
+- * with snd_soc_dai_get_sdw_stream()
++ * with snd_soc_dai_get_stream()
+  *
+  * Returns pointer to stream or an ERR_PTR value, e.g.
+  * ERR_PTR(-ENOTSUPP) if callback is not supported;
+  */
+-static inline void *snd_soc_dai_get_sdw_stream(struct snd_soc_dai *dai,
+-                                             int direction)
++static inline void *snd_soc_dai_get_stream(struct snd_soc_dai *dai,
++                                         int direction)
+ {
+-      if (dai->driver->ops->get_sdw_stream)
+-              return dai->driver->ops->get_sdw_stream(dai, direction);
++      if (dai->driver->ops->get_stream)
++              return dai->driver->ops->get_stream(dai, direction);
+       else
+               return ERR_PTR(-ENOTSUPP);
+ }
+--- a/sound/soc/codecs/max98373-sdw.c
++++ b/sound/soc/codecs/max98373-sdw.c
+@@ -741,7 +741,7 @@ static int max98373_sdw_set_tdm_slot(str
+ static const struct snd_soc_dai_ops max98373_dai_sdw_ops = {
+       .hw_params = max98373_sdw_dai_hw_params,
+       .hw_free = max98373_pcm_hw_free,
+-      .set_sdw_stream = max98373_set_sdw_stream,
++      .set_stream = max98373_set_sdw_stream,
+       .shutdown = max98373_shutdown,
+       .set_tdm_slot = max98373_sdw_set_tdm_slot,
+ };
+--- a/sound/soc/codecs/rt1308-sdw.c
++++ b/sound/soc/codecs/rt1308-sdw.c
+@@ -613,7 +613,7 @@ static const struct snd_soc_component_dr
+ static const struct snd_soc_dai_ops rt1308_aif_dai_ops = {
+       .hw_params = rt1308_sdw_hw_params,
+       .hw_free        = rt1308_sdw_pcm_hw_free,
+-      .set_sdw_stream = rt1308_set_sdw_stream,
++      .set_stream     = rt1308_set_sdw_stream,
+       .shutdown       = rt1308_sdw_shutdown,
+       .set_tdm_slot   = rt1308_sdw_set_tdm_slot,
+ };
+--- a/sound/soc/codecs/rt1316-sdw.c
++++ b/sound/soc/codecs/rt1316-sdw.c
+@@ -602,7 +602,7 @@ static const struct snd_soc_component_dr
+ static const struct snd_soc_dai_ops rt1316_aif_dai_ops = {
+       .hw_params = rt1316_sdw_hw_params,
+       .hw_free        = rt1316_sdw_pcm_hw_free,
+-      .set_sdw_stream = rt1316_set_sdw_stream,
++      .set_stream     = rt1316_set_sdw_stream,
+       .shutdown       = rt1316_sdw_shutdown,
+ };
+--- a/sound/soc/codecs/rt5682-sdw.c
++++ b/sound/soc/codecs/rt5682-sdw.c
+@@ -272,7 +272,7 @@ static int rt5682_sdw_hw_free(struct snd
+ static const struct snd_soc_dai_ops rt5682_sdw_ops = {
+       .hw_params      = rt5682_sdw_hw_params,
+       .hw_free        = rt5682_sdw_hw_free,
+-      .set_sdw_stream = rt5682_set_sdw_stream,
++      .set_stream     = rt5682_set_sdw_stream,
+       .shutdown       = rt5682_sdw_shutdown,
+ };
+--- a/sound/soc/codecs/rt700.c
++++ b/sound/soc/codecs/rt700.c
+@@ -1015,7 +1015,7 @@ static int rt700_pcm_hw_free(struct snd_
+ static const struct snd_soc_dai_ops rt700_ops = {
+       .hw_params      = rt700_pcm_hw_params,
+       .hw_free        = rt700_pcm_hw_free,
+-      .set_sdw_stream = rt700_set_sdw_stream,
++      .set_stream     = rt700_set_sdw_stream,
+       .shutdown       = rt700_shutdown,
+ };
+--- a/sound/soc/codecs/rt711-sdca.c
++++ b/sound/soc/codecs/rt711-sdca.c
+@@ -1361,7 +1361,7 @@ static int rt711_sdca_pcm_hw_free(struct
+ static const struct snd_soc_dai_ops rt711_sdca_ops = {
+       .hw_params      = rt711_sdca_pcm_hw_params,
+       .hw_free        = rt711_sdca_pcm_hw_free,
+-      .set_sdw_stream = rt711_sdca_set_sdw_stream,
++      .set_stream     = rt711_sdca_set_sdw_stream,
+       .shutdown       = rt711_sdca_shutdown,
+ };
+--- a/sound/soc/codecs/rt711.c
++++ b/sound/soc/codecs/rt711.c
+@@ -1092,7 +1092,7 @@ static int rt711_pcm_hw_free(struct snd_
+ static const struct snd_soc_dai_ops rt711_ops = {
+       .hw_params      = rt711_pcm_hw_params,
+       .hw_free        = rt711_pcm_hw_free,
+-      .set_sdw_stream = rt711_set_sdw_stream,
++      .set_stream     = rt711_set_sdw_stream,
+       .shutdown       = rt711_shutdown,
+ };
+--- a/sound/soc/codecs/rt715-sdca.c
++++ b/sound/soc/codecs/rt715-sdca.c
+@@ -938,7 +938,7 @@ static int rt715_sdca_pcm_hw_free(struct
+ static const struct snd_soc_dai_ops rt715_sdca_ops = {
+       .hw_params      = rt715_sdca_pcm_hw_params,
+       .hw_free        = rt715_sdca_pcm_hw_free,
+-      .set_sdw_stream = rt715_sdca_set_sdw_stream,
++      .set_stream     = rt715_sdca_set_sdw_stream,
+       .shutdown       = rt715_sdca_shutdown,
+ };
+--- a/sound/soc/codecs/rt715.c
++++ b/sound/soc/codecs/rt715.c
+@@ -909,7 +909,7 @@ static int rt715_pcm_hw_free(struct snd_
+ static const struct snd_soc_dai_ops rt715_ops = {
+       .hw_params      = rt715_pcm_hw_params,
+       .hw_free        = rt715_pcm_hw_free,
+-      .set_sdw_stream = rt715_set_sdw_stream,
++      .set_stream     = rt715_set_sdw_stream,
+       .shutdown       = rt715_shutdown,
+ };
+--- a/sound/soc/codecs/sdw-mockup.c
++++ b/sound/soc/codecs/sdw-mockup.c
+@@ -138,7 +138,7 @@ static int sdw_mockup_pcm_hw_free(struct
+ static const struct snd_soc_dai_ops sdw_mockup_ops = {
+       .hw_params      = sdw_mockup_pcm_hw_params,
+       .hw_free        = sdw_mockup_pcm_hw_free,
+-      .set_sdw_stream = sdw_mockup_set_sdw_stream,
++      .set_stream     = sdw_mockup_set_sdw_stream,
+       .shutdown       = sdw_mockup_shutdown,
+ };
+--- a/sound/soc/codecs/wcd938x.c
++++ b/sound/soc/codecs/wcd938x.c
+@@ -4302,7 +4302,7 @@ static int wcd938x_codec_set_sdw_stream(
+ static const struct snd_soc_dai_ops wcd938x_sdw_dai_ops = {
+       .hw_params = wcd938x_codec_hw_params,
+       .hw_free = wcd938x_codec_free,
+-      .set_sdw_stream = wcd938x_codec_set_sdw_stream,
++      .set_stream = wcd938x_codec_set_sdw_stream,
+ };
+ static struct snd_soc_dai_driver wcd938x_dais[] = {
+--- a/sound/soc/codecs/wsa881x.c
++++ b/sound/soc/codecs/wsa881x.c
+@@ -1026,7 +1026,7 @@ static const struct snd_soc_dai_ops wsa8
+       .hw_params = wsa881x_hw_params,
+       .hw_free = wsa881x_hw_free,
+       .mute_stream = wsa881x_digital_mute,
+-      .set_sdw_stream = wsa881x_set_sdw_stream,
++      .set_stream = wsa881x_set_sdw_stream,
+ };
+ static struct snd_soc_dai_driver wsa881x_dais[] = {
+--- a/sound/soc/intel/boards/sof_sdw.c
++++ b/sound/soc/intel/boards/sof_sdw.c
+@@ -291,7 +291,7 @@ int sdw_prepare(struct snd_pcm_substream
+       /* Find stream from first CPU DAI */
+       dai = asoc_rtd_to_cpu(rtd, 0);
+-      sdw_stream = snd_soc_dai_get_sdw_stream(dai, substream->stream);
++      sdw_stream = snd_soc_dai_get_stream(dai, substream->stream);
+       if (IS_ERR(sdw_stream)) {
+               dev_err(rtd->dev, "no stream found for DAI %s", dai->name);
+@@ -311,7 +311,7 @@ int sdw_trigger(struct snd_pcm_substream
+       /* Find stream from first CPU DAI */
+       dai = asoc_rtd_to_cpu(rtd, 0);
+-      sdw_stream = snd_soc_dai_get_sdw_stream(dai, substream->stream);
++      sdw_stream = snd_soc_dai_get_stream(dai, substream->stream);
+       if (IS_ERR(sdw_stream)) {
+               dev_err(rtd->dev, "no stream found for DAI %s", dai->name);
+@@ -350,7 +350,7 @@ int sdw_hw_free(struct snd_pcm_substream
+       /* Find stream from first CPU DAI */
+       dai = asoc_rtd_to_cpu(rtd, 0);
+-      sdw_stream = snd_soc_dai_get_sdw_stream(dai, substream->stream);
++      sdw_stream = snd_soc_dai_get_stream(dai, substream->stream);
+       if (IS_ERR(sdw_stream)) {
+               dev_err(rtd->dev, "no stream found for DAI %s", dai->name);
+--- a/sound/soc/qcom/sdm845.c
++++ b/sound/soc/qcom/sdm845.c
+@@ -56,8 +56,8 @@ static int sdm845_slim_snd_hw_params(str
+       int ret = 0, i;
+       for_each_rtd_codec_dais(rtd, i, codec_dai) {
+-              sruntime = snd_soc_dai_get_sdw_stream(codec_dai,
+-                                                    substream->stream);
++              sruntime = snd_soc_dai_get_stream(codec_dai,
++                                                substream->stream);
+               if (sruntime != ERR_PTR(-ENOTSUPP))
+                       pdata->sruntime[cpu_dai->id] = sruntime;
+--- a/sound/soc/qcom/sm8250.c
++++ b/sound/soc/qcom/sm8250.c
+@@ -70,8 +70,8 @@ static int sm8250_snd_hw_params(struct s
+       switch (cpu_dai->id) {
+       case WSA_CODEC_DMA_RX_0:
+               for_each_rtd_codec_dais(rtd, i, codec_dai) {
+-                      sruntime = snd_soc_dai_get_sdw_stream(codec_dai,
+-                                                    substream->stream);
++                      sruntime = snd_soc_dai_get_stream(codec_dai,
++                                                        substream->stream);
+                       if (sruntime != ERR_PTR(-ENOTSUPP))
+                               pdata->sruntime[cpu_dai->id] = sruntime;
+               }
index 45cc368d42bf20274ab363d3526ffde747664f72..766bf6fb035bcaa6ccb399ea6b4f5d9706237415 100644 (file)
@@ -52,3 +52,5 @@ tpm-tpm_crb-add-the-missed-acpi_put_table-to-fix-memory-leak.patch
 tpm-tpm_tis-add-the-missed-acpi_put_table-to-fix-memory-leak.patch
 sunrpc-don-t-leak-netobj-memory-when-gss_read_proxy_verf-fails.patch
 kcsan-instrument-memcpy-memset-memmove-with-newer-clang.patch
+asoc-intel-sof-use-set_stream-instead-of-set_tdm_slots-for-hdaudio.patch
+asoc-soundwire-dai-expand-stream-concept-beyond-soundwire.patch