Unverified Commit 70368106 authored by Cezary Rojewski's avatar Cezary Rojewski Committed by Mark Brown
Browse files

ASoC: SOF: Intel: Add Probe compress CPU DAIs



Declare extraction CPU DAI as well as sof_probe_compr_ops. FE DAIs can
link against these new CPU DAI to create new compress devices.

Signed-off-by: default avatarCezary Rojewski <cezary.rojewski@intel.com>
Acked-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200218143924.10565-10-cezary.rojewski@intel.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 394695f4
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -13,6 +13,11 @@
#include "ops.h"
#include "probe.h"

struct snd_compr_ops sof_probe_compressed_ops = {
	.copy		= sof_probe_compr_copy,
};
EXPORT_SYMBOL(sof_probe_compressed_ops);

int sof_probe_compr_open(struct snd_compr_stream *cstream,
		struct snd_soc_dai *dai)
{
+2 −0
Original line number Diff line number Diff line
@@ -13,6 +13,8 @@

#include <sound/compress_driver.h>

extern struct snd_compr_ops sof_probe_compressed_ops;

int sof_probe_compr_open(struct snd_compr_stream *cstream,
		struct snd_soc_dai *dai);
int sof_probe_compr_free(struct snd_compr_stream *cstream,
+28 −0
Original line number Diff line number Diff line
@@ -399,6 +399,19 @@ static const struct snd_soc_dai_ops hda_link_dai_ops = {
	.trigger = hda_link_pcm_trigger,
	.prepare = hda_link_pcm_prepare,
};

#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_PROBES)
#include "../compress.h"

static struct snd_soc_cdai_ops sof_probe_compr_ops = {
	.startup	= sof_probe_compr_open,
	.shutdown	= sof_probe_compr_free,
	.set_params	= sof_probe_compr_set_params,
	.trigger	= sof_probe_compr_trigger,
	.pointer	= sof_probe_compr_pointer,
};

#endif
#endif

/*
@@ -460,5 +473,20 @@ struct snd_soc_dai_driver skl_dai[] = {
	.name = "Alt Analog CPU DAI",
	.ops = &hda_link_dai_ops,
},
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_PROBES)
{
	.name = "Probe Extraction CPU DAI",
	.compress_new = snd_soc_new_compress,
	.cops = &sof_probe_compr_ops,
	.capture = {
		.stream_name = "Probe Extraction",
		.channels_min = 1,
		.channels_max = 8,
		.rates = SNDRV_PCM_RATE_48000,
		.rate_min = 48000,
		.rate_max = 48000,
	},
},
#endif
#endif
};
+6 −0
Original line number Diff line number Diff line
@@ -349,7 +349,13 @@

/* Number of DAIs */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA)

#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_PROBES)
#define SOF_SKL_NUM_DAIS		16
#else
#define SOF_SKL_NUM_DAIS		15
#endif

#else
#define SOF_SKL_NUM_DAIS		8
#endif
+7 −0
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@
#include "sof-priv.h"
#include "sof-audio.h"
#include "ops.h"
#if IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_PROBES)
#include "compress.h"
#endif

/* Create DMA buffer page table for DSP */
static int create_page_table(struct snd_soc_component *component,
@@ -787,6 +790,10 @@ void snd_sof_new_platform_drv(struct snd_sof_dev *sdev)

#if IS_ENABLED(CONFIG_SND_SOC_SOF_COMPRESS)
	pd->compr_ops = &sof_compressed_ops;
#endif
#if IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_PROBES)
	/* override cops when probe support is enabled */
	pd->compr_ops = &sof_probe_compressed_ops;
#endif
	pd->pcm_construct = sof_pcm_new;
	pd->ignore_machine = drv_name;