@@ -55,6 +55,15 @@ config SND_SOC_SOF_DEBUG_PROBES
Say Y if you want to enable probes.
If unsure, select "N".
+config SND_SOC_SOF_PCM_DISABLE_PAUSE
+ bool "SOF disable pause push/release"
+ help
+ This option disables ALSA pause push/release capabilities for
+ SOF drivers. These capabilities are not used by typical
+ sound servers such as PulseAudio, PipeWire and CRAS.
+ Say Y if you want to disable pause push/release
+ If unsure, select "N".
+
config SND_SOC_SOF_DEVELOPER_SUPPORT
bool "SOF developer options support"
depends on EXPERT
@@ -10,6 +10,7 @@
// PCM Layer, interface between ALSA and IPC.
//
+#include <linux/moduleparam.h>
#include <linux/pm_runtime.h>
#include <sound/pcm_params.h>
#include <sound/sof.h>
@@ -20,6 +21,10 @@
#include "compress.h"
#endif
+static bool pcm_disable_pause = IS_ENABLED(CONFIG_SND_SOC_SOF_PCM_DISABLE_PAUSE);
+module_param_named(disable_pause, pcm_disable_pause, bool, 0444);
+MODULE_PARM_DESC(disable_pause, "SOF HDA disable pause");
+
/* Create DMA buffer page table for DSP */
static int create_page_table(struct snd_soc_component *component,
struct snd_pcm_substream *substream,
@@ -480,6 +485,8 @@ static int sof_pcm_open(struct snd_soc_component *component,
/* set runtime config */
runtime->hw.info = ops->hw_info; /* platform-specific */
+ if (pcm_disable_pause)
+ runtime->hw.info &= ~SNDRV_PCM_INFO_PAUSE;
/* set any runtime constraints based on topology */
runtime->hw.formats = le64_to_cpu(caps->formats);