Commit Graph

327 Commits

Author SHA1 Message Date
Bartosz Kokoszko a716056c4b tgl: use additional CHANNEL define in rt711 + rts1308 tplg
This commit adds CHANNELS define in sof-tgl-rt711-i2s-rt1308.m4
topology in order to properly set pipeline pcm channels and dmic
configuration (STEREO_PDM0 or FOUR_CH_PDM0_PDM1 mode).

Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
2020-04-08 19:32:14 +01:00
Guennadi Liakhovetski 49dbfdaf54 topology: add a "core" parameter to the W_TONE() macro
This places all SectionWidget.TONE* topology widgets, created by
the W_TONE() macro on the same core, on which the respective pipeline
is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski 6522872c92 topology: add a "core" parameter to the W_MUXDEMUX() macro
This places all SectionWidget.MUXDEMUX* topology widgets, created by
the W_MUXDEMUX() macro on the same core, on which the respective
pipeline is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski ce5ed2d322 topology: add a "core" parameter to the W_MIXER() macro
This places all SectionWidget.MIXER* topology widgets, created by
the W_MIXER() macro on the same core, on which the respective
pipeline is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski 90dd7909c7 topology: add a "core" parameter to the W_KPBM() macro
This places all SectionWidget.KPBM* topology widgets, created by
the W_KPBM() macro on the same core, on which the respective pipeline
is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski b735047b91 topology: add a "core" parameter to the W_DETECT() macro
This places all SectionWidget.DETECT* topology widgets, created by
the W_DETECT() macro on the same core, on which the respective
pipeline is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski 6fe1f343fc topology: add a "core" parameter to the W_DCBLOCK() macro
This places all SectionWidget.DCBLOCK* topology widgets, created by
the W_DCBLOCK() macro on the same core, on which the respective
pipeline is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski ce2291470e topology: add a "core" parameter to the W_SELECTOR() macro
This places all SectionWidget.SELECTOR* topology widgets, created by
the W_SELECTOR() macro on the same core, on which the respective
pipeline is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski fac1c79610 topology: add a "core" parameter to the W_EQ_FIR() macro
This places all SectionWidget.EQFIR* topology widgets, created by
the W_EQ_FIR() macro on the same core, on which the respective pipeline
is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski 2cee9fd3cb topology: add a "core" parameter to the W_DAI_IN() macro
This places all SectionWidget.<DAI type><DAI index>.IN topology
widgets, created by the W_DAI_IN() macro on the same core, on which
the respective pipeline is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski 8821c1c412 topology: add a "core" parameter to the W_EQ_IIR() macro
This places all SectionWidget.EQIIR* topology widgets, created by
the W_EQ_IIR() macro on the same core, on which the respective pipeline
is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski 40e68e21dc topology: add a "core" parameter to the W_PCM_CAPTURE() macro
This places all SectionWidget.PCM*C topology widgets, created by
the W_PCM_CAPTURE macro on the same core, on which the respective
pipeline is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski 7282958c4a topology: add a "core" parameter to the W_DAI_OUT() macro
This places all SectionWidget.<DAI type><DAI index>.OUT topology
widgets, created by the W_DAI_OUT() macro on the same core, on which
the respective pipeline is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski 787f67e701 topology: add a "core" parameter to the W_BUFFER() macro
This adds an optional "core" parameter to the W_BUFFER() macro, which
then allows buffers to be placed on the same core as the rest of the
pipeline. So far we only modify pipe-volume-playback.m4 to do that,
other pipelines can be modified later as needed.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski a31308a1ab topology: add a "core" parameter to the W_PGA() macro
This places all SectionWidget.PGA* topology widgets, created by
the W_PGA() macro on the same core, on which the respective pipeline
is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski 318d5cb71c topology: add a "core" parameter to the W_PCM_PLAYBACK() macro
This places all SectionWidget.PCM*P topology widgets, created by
the W_PCM_PLAYBACK macro on the same core, on which the respective
pipeline is scheduled.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Guennadi Liakhovetski 714556e59f topology: add a new SOF_TKN_COMP_CORE_ID token
We need a way to explicitly place components on specific DSP cores.
Add a SOF_TKN_COMP_CORE_ID word token for that.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-04-08 09:30:02 +01:00
Dharageswari R 5b99262f64 topology: Enable WoV on TGL tplg for tgl-max98357a-rt5682
This patch adds the changes to enable WoV for tgl-max98357a-rt5682.

Signed-off-by: Dharageswari R <dharageswari.r@inetl.com>
2020-04-07 14:46:32 +01:00
Fred Oh d65495e984 topology: set DMIC pipe with eq-iir with 40 Hz highpass
For headset playback or capture, default pipe is volume. If The high pass
filter is required to prevent HDA codec headset glitches, it can be set by
HSMICPROC=eq-iir-volume. It use use 40 Hz high pass filter with +0 db
boost. If there is DMIC, this set default pipe as eq-iir, which use
the same 40 Hz high-pass filter too. For DMIC16K, 40 Hz high-pass for 16khz
version filter is used.

Default coefficient for FIR/IIR is changed fr m coef flat to coef pass.
Pass configuration has the advantage of low system load.
    eq_fir_coef_flat.m4 to eq_fir_coef_pass.m4
    eq_iir_coef_flat.m4 to eq_iir_coef_pass.m4

Below pipe files are renamed for naming convention,
    pipe-eq-volume-playback.m4 -> pipe-eq-iir-eq-fir-volume-playback.m4
    pipe-eq-capture-16khz.m4 -> pipe-eq-iir-volume-capture-16khz.m4
    pipe-eq-capture.m4 -> pipe-eq-iir-volume-capture.m4

Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
2020-04-07 14:37:37 +01:00
Fred Oh 8b49743a20 topology: add macro to support eq filters for sof-cml-rt5682
The patch shows a proposal how to propagate pipeline filter
coefficients data definition at topology top level. It is an
useful way to avoid to create different new pipeline macros for
different filter. Define filter coefficients data with macro
DEF_EQFIR_PRIV and DEF_EQFIR_COEF, which will be replaced
unique name by adding PIPELINE number. For IIR filter, equivalent macro
is DEF_EQIIR_PRIV and DEF_EQIIR_COEF.

Makefile define each pipeline processing HSEARPROC, HSMICRPOC, SPKPROC,
DMICPROC etc. Each variable should support default value to minimize
current topologies. When new filter blob is required, define
PIPELINE_FILTERx in makefile. This method provides more flexible way
to support variable number of filters in the pipeline.

The other clean up for topology macros include definions for unique
volume tokens and unique filter coefficient definitions.

Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
2020-04-07 14:37:37 +01:00
Jaska Uimonen 5672896ba4 topology: remove unused demux pipeline
pipe-demux-playback.m4 is not used by any topology, so remove it.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2020-04-07 14:36:21 +01:00
Jaska Uimonen cc2d08dafd topology: remove unused demux default coeffs
Demux default coeffs has been replaced by top level demux configuration,
so remove it.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2020-04-07 14:36:21 +01:00
Jaska Uimonen a32ad75e90 topology: remove default demux config from pipe-volume-demux-playback
Remove default demux parameters and start using blob defined in top
level topology.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2020-04-07 14:36:21 +01:00
Jaska Uimonen d418c051d1 topology: add mux config to sof-icl-rt711-rt1308-rt715-hdmi.m4
Add mux config to top level topology.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2020-04-07 14:36:21 +01:00
Jaska Uimonen 4f29f7ba18 topology: add mux config to sof-cml-demux-rt5682.m4
Add mux config to top level topology.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2020-04-07 14:36:21 +01:00
Jaska Uimonen 5f6c678180 topology: add mux config to sof-apl-demux-pcm512x.m4
Add mux config to top level topology.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2020-04-07 14:36:21 +01:00
Jaska Uimonen 874393cbeb topology: add binary blob macro for muxdemux
Add macro for binary blob generation for muxdemux. With this macro the
stream routing matrix will be easier to visualize and manipulate.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2020-04-07 14:36:21 +01:00
Jaska Uimonen 82aab68b3e topology: add bit, byte and abi_version macros to utils
Bit and byte manipulation macros are needed for building binary blobs,
so add them. Add also macro to generate sof_abi_version.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2020-04-07 14:36:21 +01:00
Marcin Rajwa 94b235c164 topology: update min host buffer size for KWD
This updates the minimal host buffer size to the
minimum value which enables sefe draining for all
pcm parameters.

Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
2020-04-07 14:26:13 +01:00
Fred Oh 8d03efe701 topology: apl: share asymmetrical dmic pipe setting
apl dmic asymmetrical topologies are shared most of common codes. Share
one m4 macro for all.

Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
2020-04-03 21:11:21 +01:00
Pierre-Louis Bossart 8b7f1fafd2 topology: sof-apl-pcm512x: add codec master mode and 44.1kHz support
This patch provides an optional support for codec master mode and uses
a macro to change the frame sync as needed. The scheduling is also
changes to to DMA instead of TIMER.

The user is still required to manually copy the desired topology as
sof-tplg/sof-apl-pcm512x.tplg, but a manual configuration of the ACPI
initrd overlays and BIOS settings is required as well, so there's no
turn-key solution possible anyways.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2020-04-03 09:15:10 +01:00
Pan Xiuli 06401fe589 topology: add KWD comp into sof-tgl-max98373-rt5682
Add KWD pipelines with vol-kfpm pipe using intel-generic-dmic-kwd tmplate.
48K DMIC still uses PCM 99
Add 16K DMIC KWD on PCM 100

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2020-04-02 11:45:35 +02:00
Pan Xiuli 4d1cbd32c7 topology: add hda generic kwd pipeline
Add KWD pipeline with kfpm only for HDA generic topology.
DMIC 48K have PCM 6
DMIC 16K have PCM 7

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2020-04-02 11:45:35 +02:00
Pan Xiuli 8454f7a1b7 topology: intel: add generic dmic key word dection
Add generic dmic kwd template.
Need to define flowing variable to make it work:
CHANNELS: channel for the DMIC

KFBM_TYPE: kfpm or vol-kfpm

DMIC_PCM_48K_ID: PCM ID for 48K DMIC
DMIC_PIPELINE_48k_ID: pipeline ID for 48K DMIC
DMIC_DAI_LINK_48K_ID: dai link ID in machine dirver for
48K DMIC

DMIC_PCM_16k_ID: PCM ID for KWD 16K DMIC
DMIC_PIPELINE_16k_ID: pipeline ID for 16K DMIC
DMIC_PIPELINE_KWD_ID: pipeline ID for KWD
DMIC_DAI_LINK_16k_ID: dai link ID in machine driver
for 16K DMIC

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2020-04-02 11:45:35 +02:00
Pan Xiuli c5b4421c99 topology: add pipe-vol-kfbm-capture to have vol before kfbm
Add vol comp before kfbm comp in pipe-vol-kfbm-capture.

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2020-04-02 11:45:35 +02:00
Pan Xiuli 6c83df8186 topology: fix ID typo in kfbm pipeline
The PCM ID should use PCM_ID instead for PIPELINE_ID

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2020-04-02 11:45:35 +02:00
Bard Liao 5452ac5695 Topology: Add ALH config
We need to config ALH rate and channels.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2020-04-01 16:29:18 +01:00
Fred Oh b707be3607 topology: glk: add eq capture for DMIC
glk da7119 bobba platform has DMIC already installed. It is good platform
to test DMIC with and without EQ.

Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
2020-04-01 14:13:14 +01:00
Seppo Ingalsuo 1d63f8028e Tools: Topology: Add new example FIR EQ coefficient sets
This patch adds FIR coefficients for loudness effect, mid-boost, and
pass-through. They are useful when testing FIR pipelines.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-04-01 13:55:51 +01:00
Seppo Ingalsuo 97b03853fc Tools: Topology: Fix IIR high-pass coefficient blobs with wrong gain
This patch fixes the high-pass coefficients those produce 0 dB gain
instead of the intended +20 dB. Fortunately none of these have
been used in topology builds.

The 50 Hz +20 dB coefficient blobs those are used in some DMIC
capture pipelines did not have this issue due to being generated
before these and not modified when these were introduced.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-04-01 13:55:51 +01:00
Seppo Ingalsuo 895abe605a Tools: Topology: Add IIR example coefficients
This patch adds IIR responses band-pass, bass-boost, loudness, and
pass-through for inclusion to topology.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-04-01 13:55:51 +01:00
Marc Herbert aa6c0f2ad1 topology: cmake: silence super chatty alsatplg unless VERBOSE=1
Successfully tested with both Make and Ninja on Linux.

Non-portable but approved by @jajanusz in former PR #2626

With this commit:

$                  make -C tools/build_tools/ | wc -l
    770

$ VERBOSE=anything make -C tools/build_tools/ | wc -l
  10387

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2020-03-30 14:59:51 +01:00
Yong Zhi 1ce07dcfb2 topology: kwd: remove volume from pipeline description
Remove volume to match updated pipeline.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2020-03-29 19:56:54 +01:00
Naveen Manohar bc5f3a6cde topology: add rt5682-sdw to TGL volteer configuration
Enable RT5682 located at SNDW LINK0, DMIC & HDMI Audio

Signed-off-by: Naveen Manohar <naveen.m@intel.com>
2020-03-27 15:19:19 +00:00
Fred Oh dc8cf3e4d5 topology: add equalizer to hda generic topology
Add EQIIR and EQFIR to first playback pipeline. This help to expand more
equalizer testing across platforms.

Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
2020-03-27 11:49:08 +00:00
Fred Oh 890398a645 topology: add equalizer to cml rt1011 rt5682 topology
Add EQIIR and EQFIR to first playback pipeline. This help to expand more
equalizer testing across platforms.

Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
2020-03-27 11:49:08 +00:00
Sebastiano Carlucci 0cf80e2d32 tools: test: Add DC Block test case to tplg-build
This commit includes a new test case in tplg-build.sh. It also includes
the new simple pipelines pipe-dcblock-capture/playback. Those new
pipelines are used by tplg-build.sh to generate the test pipelines.

Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
2020-03-26 16:49:37 +00:00
Sebastiano Carlucci c6f83acd0e tools: tune: Add tools to generate bytes control
This commits adds the scripts to generate the bytes control blob
for the DCB. It also provides some generic scripts to convert
valid binary blob to a csv or binary file (usable by sof-ctl)
or an m4 byte control topology file.

This commit adds two new folders under tools/tune
- dcblock: scripts to generate the blob in Octave
- common: scripts to convert any generic blob to a config file.

Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
2020-03-26 16:49:37 +00:00
Sebastiano Carlucci eae636c4ff sof: dcblock: Add DC Blocking Filter Component
This change provides a DC Blocking Filter (DCB) component. A DCB is a
high-pass filter used to remove any DC offset from a signal. The
coefficients for the component can be set individually for each channel.

Currently, only the following formats are supported:

s16_le
s24_le
s32_le

Signed-off-by: Sebastiano Carlucci <scarlucci@google.com>
2020-03-26 16:49:37 +00:00
Fred Oh f734991fbe topology: enable eq pipeline when EQ is enabled in makefile
Instead of making new files for audio equalizer topology, reuse existing
topology and replace only volume pipeline by macro replacement.

Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
2020-03-26 10:18:11 +00:00