ASoC: SOF: Intel: hda-bus: Use PIO mode for Lunar Lake
authorPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Tue, 9 Apr 2024 08:38:12 +0000 (11:38 +0300)
committerTakashi Iwai <tiwai@suse.de>
Thu, 18 Apr 2024 06:38:54 +0000 (08:38 +0200)
It is recommended that on Lunar Lake the PIO (immediate command response)
is used instead of CORB/RIRB for commands/verbs.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Message-ID: <20240409083812.14001-6-peter.ujfalusi@linux.intel.com>

sound/soc/sof/intel/hda-bus.c

index fc63085d2d743f96070ee6b4c5151a6cbbe3beb2..f78d6b998be0ffa410f2a8c7966e409b1dd74b92 100644 (file)
@@ -72,7 +72,12 @@ void sof_hda_bus_init(struct snd_sof_dev *sdev, struct device *dev)
 
 #if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_LINK)
 #if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC)
+       const struct sof_intel_dsp_desc *chip = get_chip_info(sdev->pdata);
+
        snd_hdac_ext_bus_init(bus, dev, &bus_core_ops, sof_hda_ext_ops);
+
+       if (chip && chip->hw_ip_version == SOF_INTEL_ACE_2_0)
+               bus->use_pio_for_commands = true;
 #else
        snd_hdac_ext_bus_init(bus, dev, NULL, NULL);
 #endif