Merge tag 'sound-6.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
[linux-2.6-microblaze.git] / drivers / soundwire / intel.c
index 95ce292..89d1d0d 100644 (file)
@@ -1004,9 +1004,18 @@ static int intel_trigger(struct snd_pcm_substream *substream, int cmd, struct sn
 {
        struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai);
        struct sdw_intel *sdw = cdns_to_intel(cdns);
+       struct sdw_intel_link_res *res = sdw->link_res;
        struct sdw_cdns_dma_data *dma;
        int ret = 0;
 
+       /*
+        * The .trigger callback is used to send required IPC to audio
+        * firmware. The .free_stream callback will still be called
+        * by intel_free_stream() in the TRIGGER_SUSPEND case.
+        */
+       if (res->ops && res->ops->trigger)
+               res->ops->trigger(dai, cmd, substream->stream);
+
        dma = snd_soc_dai_get_dma_data(dai, substream);
        if (!dma) {
                dev_err(dai->dev, "failed to get dma data in %s\n",
@@ -1114,9 +1123,10 @@ static const struct snd_soc_dai_ops intel_pcm_dai_ops = {
 };
 
 static const struct snd_soc_component_driver dai_component = {
-       .name           = "soundwire",
-       .probe          = intel_component_probe,
-       .suspend        = intel_component_dais_suspend
+       .name                   = "soundwire",
+       .probe                  = intel_component_probe,
+       .suspend                = intel_component_dais_suspend,
+       .legacy_dai_naming      = 1,
 };
 
 static int intel_create_dai(struct sdw_cdns *cdns,