return 0;
 }
 
-static int hda_dai_hw_free(struct snd_pcm_substream *substream, struct snd_soc_dai *cpu_dai)
+static int __maybe_unused hda_dai_hw_free(struct snd_pcm_substream *substream,
+                                         struct snd_soc_dai *cpu_dai)
 {
        const struct hda_dai_widget_dma_ops *ops = hda_dai_get_ops(substream, cpu_dai);
        struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
        return hda_link_dma_cleanup(substream, hext_stream, cpu_dai, codec_dai);
 }
 
-static int hda_dai_hw_params(struct snd_pcm_substream *substream,
-                            struct snd_pcm_hw_params *params,
-                            struct snd_soc_dai *dai)
+static int __maybe_unused hda_dai_hw_params(struct snd_pcm_substream *substream,
+                                           struct snd_pcm_hw_params *params,
+                                           struct snd_soc_dai *dai)
 {
        struct snd_soc_dapm_widget *w = snd_soc_dai_get_widget(dai, substream->stream);
        const struct hda_dai_widget_dma_ops *ops = hda_dai_get_ops(substream, dai);
  * In contrast to IPC3, the dai trigger in IPC4 mixes pipeline state changes
  * (over IPC channel) and DMA state change (direct host register changes).
  */
-static int hda_dai_trigger(struct snd_pcm_substream *substream, int cmd, struct snd_soc_dai *dai)
+static int __maybe_unused hda_dai_trigger(struct snd_pcm_substream *substream, int cmd,
+                                         struct snd_soc_dai *dai)
 {
        const struct hda_dai_widget_dma_ops *ops = hda_dai_get_ops(substream, dai);
        struct hdac_ext_stream *hext_stream;