From: Cezary Rojewski <cezary.rojewski@intel.com>
To: alsa-devel@alsa-project.org
Cc: pierre-louis.bossart@linux.intel.com,
Cezary Rojewski <cezary.rojewski@intel.com>,
lgirdwood@gmail.com, tiwai@suse.com, vkoul@kernel.org,
broonie@kernel.org
Subject: [alsa-devel] [PATCH v4 11/11] ASoC: SOF: Intel: Add Probe compress CPU DAIs
Date: Fri, 31 Jan 2020 13:31:15 +0100 [thread overview]
Message-ID: <20200131123115.14247-12-cezary.rojewski@intel.com> (raw)
In-Reply-To: <20200131123115.14247-1-cezary.rojewski@intel.com>
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>
---
Changes in v4:
- Relocated probe-compress related code from /sof/pcm.c directly to
/sof/compress.c as requested by Daniel
sound/soc/sof/compress.c | 5 +++++
sound/soc/sof/compress.h | 2 ++
sound/soc/sof/intel/hda-dai.c | 28 ++++++++++++++++++++++++++++
sound/soc/sof/intel/hda.h | 6 ++++++
sound/soc/sof/pcm.c | 7 +++++++
5 files changed, 48 insertions(+)
diff --git a/sound/soc/sof/compress.c b/sound/soc/sof/compress.c
index e87cc81a0599..7354dc6a49cf 100644
--- a/sound/soc/sof/compress.c
+++ b/sound/soc/sof/compress.c
@@ -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)
{
diff --git a/sound/soc/sof/compress.h b/sound/soc/sof/compress.h
index dccc9e008f81..800f163603e1 100644
--- a/sound/soc/sof/compress.h
+++ b/sound/soc/sof/compress.h
@@ -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,
diff --git a/sound/soc/sof/intel/hda-dai.c b/sound/soc/sof/intel/hda-dai.c
index 9c6e3f990ee3..ed5e7d2c0d43 100644
--- a/sound/soc/sof/intel/hda-dai.c
+++ b/sound/soc/sof/intel/hda-dai.c
@@ -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
};
diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
index e2130257e996..da104fe59dcd 100644
--- a/sound/soc/sof/intel/hda.h
+++ b/sound/soc/sof/intel/hda.h
@@ -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
diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
index 29435ba2d329..d34bec03df9d 100644
--- a/sound/soc/sof/pcm.c
+++ b/sound/soc/sof/pcm.c
@@ -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;
--
2.17.1
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
next prev parent reply other threads:[~2020-01-31 12:39 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-31 12:31 [alsa-devel] [PATCH v4 00/11] ASoC: SOF: Data probing Cezary Rojewski
2020-01-31 12:31 ` [alsa-devel] [PATCH v4 01/11] ALSA: hda: Allow for compress stream to hdac_ext_stream assignment Cezary Rojewski
2020-01-31 12:31 ` [alsa-devel] [PATCH v4 02/11] ALSA: hda: Prepare for compress stream support Cezary Rojewski
2020-01-31 12:31 ` [alsa-devel] [PATCH v4 03/11] ALSA: hda: Interrupt servicing and BDL setup for compress streams Cezary Rojewski
2020-01-31 12:31 ` [alsa-devel] [PATCH v4 04/11] ALSA: core: Expand DMA buffer information Cezary Rojewski
2020-01-31 12:31 ` [alsa-devel] [PATCH v4 05/11] ALSA: core: Implement compress page allocation and free routines Cezary Rojewski
2020-01-31 12:31 ` [alsa-devel] [PATCH v4 06/11] ASoC: SOF: Intel: Account for compress streams when servicing IRQs Cezary Rojewski
2020-01-31 16:39 ` Pierre-Louis Bossart
2020-02-18 14:49 ` Cezary Rojewski
2020-01-31 12:31 ` [alsa-devel] [PATCH v4 07/11] ASoC: SOF: Implement Probe IPC API Cezary Rojewski
2020-01-31 12:31 ` [alsa-devel] [PATCH v4 08/11] ASoC: SOF: Generic probe compress operations Cezary Rojewski
2020-01-31 12:31 ` [alsa-devel] [PATCH v4 09/11] ASoC: SOF: Intel: Probe " Cezary Rojewski
2020-01-31 17:05 ` Pierre-Louis Bossart
2020-01-31 12:31 ` [alsa-devel] [PATCH v4 10/11] ASoC: SOF: Provide probe debugfs support Cezary Rojewski
2020-01-31 12:31 ` Cezary Rojewski [this message]
2020-01-31 17:02 ` [alsa-devel] [PATCH v4 00/11] ASoC: SOF: Data probing Pierre-Louis Bossart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200131123115.14247-12-cezary.rojewski@intel.com \
--to=cezary.rojewski@intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=tiwai@suse.com \
--cc=vkoul@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.