]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: Merge up origin to resolve interaction with manline symbol changes
authorMark Brown <broonie@kernel.org>
Tue, 3 Dec 2024 22:00:37 +0000 (22:00 +0000)
committerMark Brown <broonie@kernel.org>
Tue, 3 Dec 2024 22:04:07 +0000 (22:04 +0000)
Commit cdd30ebb1b9f ("module: Convert symbol namespace to string
literal") changes the arguments for various module symbol macros
including some that we've aded new uses for.  Merge the commit up to
avoid problems in -next.

Signed-off-by: Mark Brown <broonie@kernel.org>
1  2 
sound/soc/amd/ps/pci-ps.c
sound/soc/codecs/cs35l56.c
sound/soc/codecs/tas2781-i2c.c
sound/soc/intel/common/soc-acpi-intel-mtl-match.c
sound/soc/sdw_utils/soc_sdw_cs_amp.c
sound/soc/sdw_utils/soc_sdw_utils.c
sound/soc/sof/intel/hda-dai.c
sound/soc/sof/intel/hda.c

Simple merge
Simple merge
Simple merge
index 9146a421e02c63f09a8a6196c17faaf29c2e570d,a0bb626c5cb8c47be9d16a3d9f64c4275dd24b01..4b6181cf29716f1fce92966e823c43c331af8e6f
@@@ -47,53 -46,8 +47,53 @@@ int asoc_sdw_cs_spk_rtd_init(struct snd
  
        return 0;
  }
- EXPORT_SYMBOL_NS(asoc_sdw_cs_spk_rtd_init, SND_SOC_SDW_UTILS);
+ EXPORT_SYMBOL_NS(asoc_sdw_cs_spk_rtd_init, "SND_SOC_SDW_UTILS");
  
- EXPORT_SYMBOL_NS(asoc_sdw_cs_spk_feedback_rtd_init, SND_SOC_SDW_UTILS);
 +int asoc_sdw_cs_spk_feedback_rtd_init(struct snd_soc_pcm_runtime *rtd, struct snd_soc_dai *dai)
 +{
 +      const struct snd_soc_dai_link *dai_link = rtd->dai_link;
 +      const struct snd_soc_dai_link_ch_map *ch_map;
 +      const struct snd_soc_dai_link_component *codec_dlc;
 +      struct snd_soc_dai *codec_dai;
 +      u8 ch_slot[8] = {};
 +      unsigned int amps_per_bus, ch_per_amp, mask;
 +      int i, ret;
 +
 +      WARN_ON(dai_link->num_cpus > ARRAY_SIZE(ch_slot));
 +
 +      /*
 +       * CS35L56 has 4 TX channels. When the capture is aggregated the
 +       * same bus slots will be allocated to all the amps on a bus. Only
 +       * one amp on that bus can be transmitting in each slot so divide
 +       * the available 4 slots between all the amps on a bus.
 +       */
 +      amps_per_bus = dai_link->num_codecs / dai_link->num_cpus;
 +      if ((amps_per_bus == 0) || (amps_per_bus > CS_AMP_CHANNELS_PER_AMP)) {
 +              dev_err(rtd->card->dev, "Illegal num_codecs:%u / num_cpus:%u\n",
 +                      dai_link->num_codecs, dai_link->num_cpus);
 +              return -EINVAL;
 +      }
 +
 +      ch_per_amp = CS_AMP_CHANNELS_PER_AMP / amps_per_bus;
 +
 +      for_each_rtd_ch_maps(rtd, i, ch_map) {
 +              codec_dlc = snd_soc_link_to_codec(rtd->dai_link, i);
 +              codec_dai = snd_soc_find_dai(codec_dlc);
 +              mask = GENMASK(ch_per_amp - 1, 0) << ch_slot[ch_map->cpu];
 +
 +              ret = snd_soc_dai_set_tdm_slot(codec_dai, 0, mask, 4, 32);
 +              if (ret < 0) {
 +                      dev_err(rtd->card->dev, "Failed to set TDM slot:%d\n", ret);
 +                      return ret;
 +              }
 +
 +              ch_slot[ch_map->cpu] += ch_per_amp;
 +      }
 +
 +      return 0;
 +}
++EXPORT_SYMBOL_NS(asoc_sdw_cs_spk_feedback_rtd_init, "SND_SOC_SDW_UTILS");
 +
  int asoc_sdw_cs_amp_init(struct snd_soc_card *card,
                         struct snd_soc_dai_link *dai_links,
                         struct asoc_sdw_codec_info *info,
Simple merge
Simple merge
Simple merge