ASoC: SOF: Intel: simplify logic for DMI_L1 handling
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Thu, 12 Aug 2021 23:19:39 +0000 (18:19 -0500)
committerMark Brown <broonie@kernel.org>
Fri, 13 Aug 2021 12:16:16 +0000 (13:16 +0100)
We don't need to test in multiple places if the kconfig
SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is enabled or not, we might as
well set the existing DMI_L1_COMPATIBLE flag.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20210812231940.172547-4-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/intel/hda-pcm.c
sound/soc/sof/intel/hda-stream.c

index df00db8..59220fa 100644 (file)
@@ -229,7 +229,8 @@ int hda_dsp_pcm_open(struct snd_sof_dev *sdev,
        }
 
        /* All playback and D0i3 compatible streams are DMI L1 capable */
-       if (direction == SNDRV_PCM_STREAM_PLAYBACK ||
+       if (IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1) ||
+           direction == SNDRV_PCM_STREAM_PLAYBACK ||
            spcm->stream[substream->stream].d0i3_compatible)
                flags |= SOF_HDA_STREAM_DMI_L1_COMPATIBLE;
 
index 5302464..63c3674 100644 (file)
@@ -197,11 +197,10 @@ hda_dsp_stream_get(struct snd_sof_dev *sdev, int direction, u32 flags)
         * Workaround to address a known issue with host DMA that results
         * in xruns during pause/release in capture scenarios.
         */
-       if (!IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1))
-               if (!(flags & SOF_HDA_STREAM_DMI_L1_COMPATIBLE))
-                       snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,
-                                               HDA_VS_INTEL_EM2,
-                                               HDA_VS_INTEL_EM2_L1SEN, 0);
+       if (!(flags & SOF_HDA_STREAM_DMI_L1_COMPATIBLE))
+               snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,
+                                       HDA_VS_INTEL_EM2,
+                                       HDA_VS_INTEL_EM2_L1SEN, 0);
 
        return stream;
 }
@@ -240,7 +239,7 @@ int hda_dsp_stream_put(struct snd_sof_dev *sdev, int direction, int stream_tag)
        spin_unlock_irq(&bus->reg_lock);
 
        /* Enable DMI L1 if permitted */
-       if (!IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1) && dmi_l1_enable)
+       if (dmi_l1_enable)
                snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR, HDA_VS_INTEL_EM2,
                                        HDA_VS_INTEL_EM2_L1SEN, HDA_VS_INTEL_EM2_L1SEN);