Commit Graph

113 Commits

Author SHA1 Message Date
Jaska Uimonen 88c2ba2a84 topology: unify byt media pipeline params with apl media pipe
Byt media pipeline has different parameters in topology for scheduling
deadline and frame count than apl. This produces funny 4-8x speed
playback. So unify with apl media pipe.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-06-03 14:07:58 +02:00
Janusz Jankowski ba2fefb172 license: use spdx identifier in shell scripts
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-06-02 16:38:17 +01:00
Janusz Jankowski e99bae6187 tools: fix sh-bang in scripts
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-06-02 16:38:17 +01:00
Janusz Jankowski c6064624f6 cmake: add spdx license identifier
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-06-02 16:38:17 +01:00
Janusz Jankowski e39ed5ebf4 include: split uapi headers into more directories
Some of interface headers are not needed by kernel,
but are needed by user-space applications, so we can split them
into multiple directories that indicate their purpose.

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2019-05-31 20:10:45 +01:00
Ranjani Sridharan c0434e27ce topology: apl-nocodec: change pipeline format to s32le
Pipeline format determines the buffer size calculation. With the
pipeline format set to S16_LE, hw_params fails for S24_LE and S32_LE
formats. So, change the pipeline format to s32le to support all
three formats.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2019-05-31 18:13:10 +02:00
Seppo Ingalsuo d58e733c7b Topology: Change 16kHz DMIC DAI into 32bit mode and make scheduling 1ms
This patch changes the secondary DMIC FIFO configuration into 32 bits
mode for better quality. Since there is volume component in DMIC
capture pipelines the conversion to other PCM formats can happen
there. Using volume controller with 32 bit input gives a lot better
audio quality when the microphone signal needs amplification.

The scheduling of 16 kHz DAI is changed to 1000us. The comment
of 1000 us is correct but the parameter 48 is not. With 16 frames
the scheduling becomes the desired. This change should also save
some RAM due to smaller buffers.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-05-29 12:06:05 +01:00
Seppo Ingalsuo 5afafa880c Topology: Add support for 4ch 32bit 48kHz DMIC DAI
This patch restores the missing configuration into macro
intel-generic-dmic.m4. Without this patch the 48 kHz DMIC DAI
is not created. Both DMIC FIFOs are available at any channels
number and PCM format so there is no need to delete a DAI when
4ch configuration is used.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-05-29 12:06:05 +01:00
Jaska Uimonen a8ca07f6e7 topology: add more buffering to media pipe after src
Currently we have 1.5 times buffering after SRC in media pipeline. This
will not work for S24 or S32 playback as SRC will use the bigger buffers
with non-integer sample rate conversions as 44.1kHz to 48kHz. So add as
big buffer after SRC as before it.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-05-29 12:01:18 +01:00
Jaska Uimonen a26c51a43e topology: add volume component to demux topology
Demux topology doesn't have format conversions so playback files need to
be converted to S24 or S32 format. As this is a bit cumbersome add
volume component to demux topology to enable standard 16 bit playback
from alsa. Also change the demux capture pipe PCM format range.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-05-24 10:18:18 +02:00
Jaska Uimonen 3e423f418e topology: fix pipeline indexes in cml demux topology
Dmic and hdmi1 have wrong pipeline id's in demux topology
so fix them.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-05-21 11:48:32 +02:00
Keyon Jie 8ca92a4b3f topology: sof-glk-da7219-kwd: add virtual widgets for driver
Add virtual widgets to remove error warnings in kernel dmesg logs, this
is also aligned to sof-glk-da7219 topology file.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2019-05-20 11:09:47 +02:00
Tomasz Lauda 346a522cbf topology: fix sof-glk-da7219-kwd topology
This patch fixes two things:
- Configures HDA pipelines to be timer driven.
- Moves definition of pipe-kfbm-capture to avoid overwrite
of deadline and frames for other pipelines.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-05-16 19:37:27 -07:00
Seppo Ingalsuo 6951af2a6d DMIC: Add topologies for DMIC configuration variants testing
The example and test topologies demonstrate new non-symmetrical
microphones/channels setup for capture via FIFOs A and B.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-05-17 00:00:46 +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 73cefecd15 topology: add platform define for demux topology
Add whl define to cmakefile to compile the cml demux topology
correctly with SSP names and indexes defined.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-05-15 22:35:24 +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
Seppo Ingalsuo 992aa661ab Topology: Rename pipe-src-playback.m4 macro
This patch renames the macro to pipe-src-volume-playback.m4 for
consistency with other audio processing plus volume
pipelines. The topologies those use it are modified for the new
file name.

A new macro for testbench usage called pipe-src-playback.m4 is
added. It is plain SRC component pipeline without volume. The
volume component in the pipeline caused difficulties with test.
The script tools/test/topology/tplg-build.sh will use the
pipeline to create test topology for SRC component.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-05-11 09:28:44 +02: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
Keyon Jie e4cb046a2c Topology: kwd: change to use correct buffer caps
We don't need to use host/dai caps for detector buffer and selector
buffer, here correct it.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2019-05-09 14:57:19 +02:00
Rander Wang 39a373500d topology: add virtual widgets for hda_idisp
Add some more virtual widgets to suppress the machine driver errors.

Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
2019-05-08 20:24:38 +02:00
Rander Wang d50fa6f920 topology: correct widget type for HDA
It should be type of input for capture widgets

Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
2019-05-08 20:24:38 +02:00
Fred Oh 35e438501f topology: hda: fix virtual widget warnings
Add some more virtual widgets to suppress the machine driver errors.

Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
2019-05-07 08:05:04 +02:00
Keyon Jie 47fcac2d47 topology: add topology file for glk kwd.
Add topology file sof-glk-da7219-kwd.m4 which is used for Keyword
Detection feature integrated on GLK platform.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2019-05-06 18:16:23 +01:00
Keyon Jie b424c98cd8 topology: pipe-kfbm-capture: use DMIC16k for Keyword Detect PCM
Use DMIC16k for Keyword Detect PCM to align with driver.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2019-05-06 18:16:23 +01:00
Xun Zhang 6dfddfc550 topology: add rt5682 m4 topology file for icl and byt platforms
Add topology support for rt5682 codec in both Bay Trail and Icelake
platforms.

Signed-off-by: Xun Zhang <xun2.zhang@intel.com>
2019-05-06 14:57:17 +01:00
Keyon Jie 6e4faef8e7 topology: keyword-detect: change to use DMIC FIFO B
We need use FIFO B for keyword detect DMIC, here change it.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
2019-04-30 15:12:53 +01:00
Libin Yang 68a237c963 topology: DMIC: DMIC16k use pipe-volume-capture-16khz.m4
DMIC16k only supports 16KHz sample rate. It should use
pipe-volume-capture-16khz.m4 to create the pipe which supports
the 16KHz recording.

Signed-off-by: Libin Yang <libin.yang@intel.com>
2019-04-26 09:41:24 -07:00
Libin Yang 55d1f5ac81 topology: sof: add pipe-volume-capture-16khz.m4
DMIC16k only supports 16000Hz sample rate. pipe-volume-capture.m4
only supports 48000Hz. Add pipe-volume-capture-16khz.m4 to support 16KHz
record.

Signed-off-by: Libin Yang <libin.yang@intel.com>
2019-04-26 09:41:24 -07:00
Yong Zhi 092eb61781 topology: glk-rt5682: add more virtual widgets
Add some more virtual widgets to suppress the machine
driver errors.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2019-04-26 10:43:49 +01:00
Ranjani Sridharan e4c1651b36 topology: glk: add more virtual widgets
Add some more virtual widgets to suppress the machine
driver errors.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2019-04-23 13:40:52 +01:00
Ranjani Sridharan 332e2735c9 topology: apl/byt: add low-latency and media pipelines
This patch does the following:
1. Modify pipe-pcm-media to use the SCHED_COMP macro to set the
scheduling comp for the media pipeline.
2. Add low-latency and media pipelines to the apl nocodec
and apl pcm512x.
3. For the byt codec and nocodec topologies, modify the
PIPELINE_PCM_ADD macro to pass the scheduling comp name

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2019-04-23 10:47:05 +01:00
Ranjani Sridharan fc5dedd57f topology: pipe-dai: save the scheduling comp name
This will be used by pipelines like the media pipeline, which will
need the information to set up their scheduling comps.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2019-04-23 10:47:05 +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
Rander Wang 896f73d36a topology: dmic: add dmic support in generic hda topology
Now sof kernel driver supports two dmic dai links: DMIC01 PIN,
which supports rate of 48k, and DMIC16k Pin, which supports rate
of 16k. And if four channels dmic is used, we only support one dmic
dai link. CHANNELS would check in intel-generic-dmic to generate
the correct topology file.

Tested on whiskylake & icelake & apollolake up2

Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
2019-04-19 10:19:04 +01:00
Seppo Ingalsuo 5ef0713b7b TPLG: Rename a volume scale macro to avoid confusion
The macro in tlv.m4 defines a volume scale from -64 dB with 2 dB
steps for playback pipelines. Hence the name m90s3 is incorrect.
The new name m64s2 is a correct description of the defined volume
scale. It's useful since there's another volume scale defined for
capture pipelines.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-04-18 22:06:13 +02:00
Seppo Ingalsuo 90a6efd154 TPLG: Change volume capture pipeline gain range to -50 .. +30 dB
This patch replaces the -64 to 0 dB volume scale for capture with
more practical -50 to +30 dB gain. The step is 1 dB. It allows to
compensate for different microphone model sensitivities when constant
acoustical decibels to digital decibels level is needed in a
microphone capture application.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-04-18 22:06:13 +02:00
Tomasz Lauda 68f27263c8 topology: increase number of periods for low latency pipeline
Increases number of periods for low latency playback pipeline
from 1 to 2 for volume and mixer components. 1 period
is not good enough to have continuous DMA transfer across
the whole pipeline, especially with the new copy flow,
which requires playback pipeline preload.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-04-16 10:13:20 +01:00
Seppo Ingalsuo 1b15fad849 TPLG: Fix mistake in 2ch configuration related DMIC macro
This patch fixes 2ch dmic capture topology. It appeared as topology
completion fail in SOF boot. The missing quote characters in m4
caused the STEREO_PDM0 macro triggered lines to no not be included
into conf file.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-04-15 23:08:08 +02:00
Bard liao ed97bb9418 topology: update HDA index
The index should be 0,1,2 instead of all 0.

Signed-off-by: Bard liao <yung-chuan.liao@linux.intel.com>
2019-04-02 09:52:25 +01:00
Ranjani Sridharan eac4a73232 scripts: use project root directory instead of relative path
Use the SOF project root directory in get_abi.sh to read the
ABI macros instead of using the relative path.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2019-04-01 10:39:26 +01:00
Bard liao 052942c863 topology: add ABI information
We can add ABI information to the Manifest section. So kernel can
check if the topology is compatible with the kernel.

Signed-off-by: Bard liao <yung-chuan.liao@linux.intel.com>
2019-03-29 16:55:04 +00: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
Tomasz Lauda 6a0dcb3a10 topology: update all HDA pipelines to use timer
Updates all HDA pipelines in topologies to use
timer as a scheduling source.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-03-27 21:44:02 +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