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: Cezary Rojewski <cezary.rojewski@intel.com> Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200218143924.10565-10-cezary.rojewski@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
394695f410
commit
7036810646
|
@ -13,6 +13,11 @@
|
||||||
#include "ops.h"
|
#include "ops.h"
|
||||||
#include "probe.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,
|
int sof_probe_compr_open(struct snd_compr_stream *cstream,
|
||||||
struct snd_soc_dai *dai)
|
struct snd_soc_dai *dai)
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,6 +13,8 @@
|
||||||
|
|
||||||
#include <sound/compress_driver.h>
|
#include <sound/compress_driver.h>
|
||||||
|
|
||||||
|
extern struct snd_compr_ops sof_probe_compressed_ops;
|
||||||
|
|
||||||
int sof_probe_compr_open(struct snd_compr_stream *cstream,
|
int sof_probe_compr_open(struct snd_compr_stream *cstream,
|
||||||
struct snd_soc_dai *dai);
|
struct snd_soc_dai *dai);
|
||||||
int sof_probe_compr_free(struct snd_compr_stream *cstream,
|
int sof_probe_compr_free(struct snd_compr_stream *cstream,
|
||||||
|
|
|
@ -399,6 +399,19 @@ static const struct snd_soc_dai_ops hda_link_dai_ops = {
|
||||||
.trigger = hda_link_pcm_trigger,
|
.trigger = hda_link_pcm_trigger,
|
||||||
.prepare = hda_link_pcm_prepare,
|
.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
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -460,5 +473,20 @@ struct snd_soc_dai_driver skl_dai[] = {
|
||||||
.name = "Alt Analog CPU DAI",
|
.name = "Alt Analog CPU DAI",
|
||||||
.ops = &hda_link_dai_ops,
|
.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
|
#endif
|
||||||
};
|
};
|
||||||
|
|
|
@ -349,7 +349,13 @@
|
||||||
|
|
||||||
/* Number of DAIs */
|
/* Number of DAIs */
|
||||||
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA)
|
#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
|
#define SOF_SKL_NUM_DAIS 15
|
||||||
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define SOF_SKL_NUM_DAIS 8
|
#define SOF_SKL_NUM_DAIS 8
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -16,6 +16,9 @@
|
||||||
#include "sof-priv.h"
|
#include "sof-priv.h"
|
||||||
#include "sof-audio.h"
|
#include "sof-audio.h"
|
||||||
#include "ops.h"
|
#include "ops.h"
|
||||||
|
#if IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_PROBES)
|
||||||
|
#include "compress.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Create DMA buffer page table for DSP */
|
/* Create DMA buffer page table for DSP */
|
||||||
static int create_page_table(struct snd_soc_component *component,
|
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)
|
#if IS_ENABLED(CONFIG_SND_SOC_SOF_COMPRESS)
|
||||||
pd->compr_ops = &sof_compressed_ops;
|
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
|
#endif
|
||||||
pd->pcm_construct = sof_pcm_new;
|
pd->pcm_construct = sof_pcm_new;
|
||||||
pd->ignore_machine = drv_name;
|
pd->ignore_machine = drv_name;
|
||||||
|
|
Loading…
Reference in New Issue