Commit Graph

36 Commits

Author SHA1 Message Date
Tomasz Lauda 1280987999 topology: use DAI_PERIODS in calculation of DAI buffer size
Uses DAI_PERIODS in calculation of DAI buffer size.
In case the DAI_PERIODS value is undefined, we use
DAI_DEFAULT_PERIOD value of 2.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-11 14:17:29 +02:00
Tomasz Lauda 3b90d1e9a5 topology: pipeline: add missing undefine
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-11 14:17:29 +02:00
Jaska Uimonen 74a4cfe2d7 topology: enable override of pga and mixercontrol names
Currently m4 parses pga and mixercontrol topology names partly from
static strings, pipeline id's and user defined names. This automagically
differentiates the pga's nicely, but makes some pga control names human
unreadable and error prone for example to to pipeline id changes. So
make it possible to define the pga and control name with PGA_NAME and
CONTROL_NAME.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-10-09 15:54:52 +02:00
Daniel Baluta 1adc257ff7 topology: Extend DAI_CONFIG to allow ESAI DAI
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-10-05 01:09:29 +03:00
Pan Xiuli b899489e49 topology: fix wrongly used SCHEDULE_DEADLINE
SCHEDULE_DEADLINE is replaced with SCHEDULE_PERIOD, but there is one
missed in DAI_ADD for W_PIPELINE.

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2019-09-11 14:48:46 +02:00
Pierre-Louis Bossart ba32f4ad0b topology: SoundWire topologies for CML and ICL
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Slawomir Blauciak <slawomir.blauciak@linux.intel.com>
2019-09-05 15:49:46 +02:00
Jaska Uimonen db138eba8f topology: fix buffer size calculation
The buffer frame size calculation has obvious issues by
doing division instead of multiplication. On the other
hand we can't do decimal calculations in M4. So fix this
by introducing new macro for buffer frame size where we
multiply samplerate and schedule_period and divide by
1000000.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-08-20 09:21:14 +02:00
Seppo Ingalsuo b8fa3c7ad5 Topology: Add amplifying high-pass EQ to DMIC capture paths
This patch alters topologies those use pipelines definitions from
intel-generic-dmic.m4. The 48 kHz and 16 kHz capture pipelines are
changed to use pipe-eq-capture instead of pipe-volume-capture. The new
pipeline contains volume but also an IIR EQ set for second order
high-pass with 50 Hz cut-off frequency. The IIR includes +20 dB
gain. The volume max is decreased by 10 dB due to the amplifying
IIR add.

The gain in IIR helps with too low capture loudness with default 0 dB
setting for volume. Further gain can be achieved with volume control.

The high-pass filter fixes the issue of too slow DCCOMP settling in
DMIC platform hardware. With IIR add the DMIC unmute ramp is shortened
to 200 ms from 400 ms in the 48 kHz pipeline. In 16 kHz pipeline the
400ms unmute is preserved due to slower DCCOMP settling time.

The min. channels count of two is replaced by pipeline channels count
macro to prevent corrupt capture to happen by capturing as 2ch from
4ch source.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-08-19 09:47:04 +02:00
Jaska Uimonen 77b6db8894 topology: enable pcm range and pipeline rate and remove frame count
Enable setting pcm min and max rate from top level m4 pipeline macro.
This way it is possible to configure the whole pipeline to correct
samplerate range in 1 file. Previously you needed to modify the pipeline
macros where the rate was hardcoded. As the frame count is calculated
from pcm/dai rate and scheduling time the frame count is obsolete.

Introduce pipeline rate parameter to help configuring components with
fixed output rate. We can't deduce this from pcm range since for example
src might accept bigger max rate than the following dai. Even though the
parameter is named "pipeline rate" it essentially means the "final"
output rate to which this pipeline is connected to (dai or other
pipeline). In capture pipelines it means the originating fixed dai rate.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-08-15 14:29:22 +02:00
Marcin Rajwa 2bfe9c48c4 detector: update ABI to support 24 and 32 bit samples
This patch updates header file to support 24/32 bit samples
and also adds new default config.

Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
2019-07-30 17:24:06 +02:00
Marcin Rajwa e2122e79ff topology: provide default config for new detector params
This patch provides default parameters for newly added
detect_preamble and history_depth. Both by default are
set to max buffering time of KPB.

Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
2019-06-11 13:25:16 +02:00
Keyon Jie caa4808186 topology: kwd: update detector configure blob to align with default
settings

We should load_mips to be 0, align values with default settings, that
is:

load_mips = 0, load_memory_size = 0, keyphrase_length = 0x780,
activation_shift = 0x3, activation_threshold = 0x3fff.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2019-05-16 10:59:22 +02:00
Jaska Uimonen 1d3b0ccfc3 topology: add demux topology for apl and cml
This topology will add a capture branch back from playback pipeline's
mux component. It can be used for example as a echo cancellation
reference signal.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-05-14 10:58:52 -07:00
Keyon Jie 030c81c75b topology: keyword-detect: add bytes control for detector
Add bytes control and initial value for detector component.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2019-05-09 22:25:53 +01:00
Keyon Jie 4a34ab058a topology: keyword-detect: get kpb configure data from ipc
We design to use bytes kcontrol to send kpb configuration data via IPC
from topology, here implement it.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2019-05-09 22:25:53 +01:00
Seppo Ingalsuo 7dd76db0a8 Topology: Add volume ramp tokens into topologies
This patch adds volume configuration tokens as fifth parameter
for pga.m. All the topologies those use W_PGA() are updated to
use a linear (type=0) ramp with length of 250 ms.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-05-09 22:13:48 +01:00
Ranjani Sridharan ae2b0a4603 topology: pipeline: add scheduling comp argument to PIPELINE_PCM_ADD
Add the scheduling comp argument to PIPELINE_PCM_ADD that
will be used to pass the name of the scheduling comp
when the pipeline is created.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2019-04-23 10:47:05 +01:00
Kai Vehmanen a9cb19ada3 topology: add param check to PIPELINE_*() macros
Abort build if not all mandatory arguments are passed to
the top-level pipeline macros.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2019-03-29 12:14:05 +00:00
Kai Vehmanen 10c641d307 topology: add param check to VIRTUAL_WIDGET()
Abort build if not all mandatory arguments are passed to the
macro.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2019-03-29 12:14:05 +00:00
Kai Vehmanen 90fbcd54f3 topology: add param check to DAI_CONFIG()
Abort build if not all mandatory arguments are passed to the
macro.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2019-03-29 12:14:05 +00:00
Kai Vehmanen 322fe24e95 topology: add param checks to PCM macros
Abort build if not all mandatory arguments are passed to
the macros. This should help to catch invalid usage.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2019-03-29 12:14:05 +00:00
Keyon Jie 0da78d7236 topology: refine scheduling period and add time domain for pipelines
Rename 'deadline' to 'period' to indicate pipeline scheduling period,
and add time domain to indicate the pipeline scheduling domain (e.g. DMA
interrupt, timer interrupt).

Please be noticed that this might introduce an abi change so consequent
abi changes in both FW and driver side are needed.

Haven't set the flag in topology/sof/sof-xxx.m4 yet, that means it will
use io/interrupt scheduling for those topologies/pipelines at the
moment, if wanna to change them, please change them specific there.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-03-27 21:44:02 +00:00
Jaska Uimonen 500d64fe5d topology: keyword: selector: add bytes control
Add bytes control for selector to send binary
data to it.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-03-11 15:41:06 +00:00
Keyon Jie 5711211e0d topology: add support for channel selector component in topology
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2019-03-11 15:41:06 +00:00
Ranjani Sridharan 082122556a topology: add support for keyword detect component in topology
Add support for constructing and adding keyword detect
component in topology

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2019-03-11 15:41:06 +00:00
Keyon Jie a22e9fddcc topology: add support for key phrase buffer manager component in topology
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2019-03-11 15:41:06 +00:00
Fred Oh 5cd7b64100 topology: remove unused properties in tokens
Some properties are not populated from the topologies and not being used
by DSP either. Need to clean up token data structures. These are
identified as unused.

comp_tokens: preload_count
dai_tokens: dmac_config

Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
2019-03-11 14:39:17 +00:00
Zhu Yingjiang 05ca4ebd06 topology: fix kcontrol name by topology
the kcontrol item name doesn't follow the SOURCE:DIRECTION:FUNCTION, and
can't separate playback and capture when display in alsamixer.
This fix is to move the pipeline id from the end of the name to the
head, this will make alsamixer to serperate playback and capture when
press F3 F4.

Signed-off-by: Zhu Yingjiang <yingjiang.zhu@linux.intel.com>
2019-03-07 12:35:49 +00:00
Ranjani Sridharan 488cedaf79 topology: pipeline: add sched_comp argument to PIPELINE_ADD
Some pipelines might need to share the scheduling comp
with other pipelines. In this case, the scheduling comp
name should be passed as an argument.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2019-03-06 17:53:49 +00:00
Keyon Jie cc51ff8f0c topology: change token name from effect to process
The token can be used for more generic processing, not only effect
component, let's rename it.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2019-03-06 17:53:49 +00:00
Janusz Jankowski dff70c4490 cmake: tools: remove autotools
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-02-14 18:00:26 +00:00
Ranjani Sridharan a00a38a1ec topology: remove HDA_DAI_CONFIG and re-use DAI_CONFIG
remove the HDA_DAI_CONFIG macro and reuse the DAI_CONFIG
macro with type HDA. This will ensure the hw_config
section gets added for HDA dai's as well.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2019-01-16 09:53:09 +00:00
Seppo Ingalsuo dd8cfda311 EQ: Update ABI version number in configuration to match current version
This patch updates the provided example responses as data for
sof-eqctl and in the include files for topologies. The updates into
Matlab scripts are included also. The FIR and IIR example script is
updated to contain all examples.

The patch includes also a bug fix into IPC handler where the check
against SOF_IPC_MSG_MAX_SIZE is off by one and caused it to reject
all set data commands (to the EQs).

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2018-12-19 10:28:25 +00:00
Seppo Ingalsuo 2e4b435302 Tools: Topology: Update EQ related topology files for new user ABI
This patch adds the ABI header into topology EQ data files and updates
the pipe-eq-volume-playback.m4 to include the coefficients from m4
directory like other topology files to prevent duplication of
response data.

The CONTROLBYTES_MAX is decreased to 304 due to larger IPC header size.
The update is not critical since the kernel contains other checks to
cover this. However it's done to avoid confusion.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2018-11-30 14:19:37 +02:00
Ranjani Sridharan f9b8e08f75 topology: modify virtual_widget definition
Modify virtual_widget macro definition to take type as
an input so it can used for different types and update
its users.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2018-11-27 00:08:53 -08:00
Curtis Malainey 5b5888ce07 Move SOFT into sub folder for SOF merge
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
2018-11-24 23:27:24 -08:00