Add FW echo reference to nocodec TPLG on SSP0.
Add internal loopback on SSP0. We can compare echo reference and
loopback capture stream.
Add smart amplifier for nocodec on SSP2
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
This patch adds to CMakeLists.txt build of duplicate one and three
channels dmic capture topologies. They are needed to match the driver
that loads a topology that matches the number of microphones based on
configured microphones count in device BIOS.
This is an intermediate solution to enable microphones on such
devices. The mono audio will appear as double mono for user space. A
true mono topology and firmware will be created later.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
tgl-rt711-rt1316-rt714 is almost the same as tgl-rt711-rt1308-rt715 and
can use the same topology file.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Update sof-tgl-max98373-rt5682 to take speaker amp's SSP ID as input.
This is to accommodate DUT's which has amp connected on SSP2.
Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com>
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Signed-off-by: Jairaj Arava <jairaj.arava@intel.com>
Some TGL devices use the same devices and hardware layout and on CML,
reuse. Also remove cml-mono.m4 definition and directly add the define
in the CMakeLists.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
This file is no longer maintained and does not work with the SoundWire
drivers, remove.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Additional work needed to make the BE name and index configuration, as
well as LBM quirk.
We should be using a single topology here.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Topology is modified to include another JSL+ product variant with
MX98360a AMP + ALC5682 Headset codec. Created a platform specific
for RT1015, included this and already existing MX98360a in
sof-jsl-rt5682.m4
Signed-off-by: Uday M Bhat <uday.m.bhat@intel.com>
The topology is cloned from sof-tgl-max98357a-rt5682.m4 with
changes on ssp config, iDisp and DMIC pipeline pcm number etc.
The dai_index matches the order defined in sof-rt5682.c machine driver.
Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Port commit a716056c4b ("tgl: use additional CHANNEL
define in rt711 + rts1308 tplg") to all tgl sdw platforms
Signed-off-by: Rander Wang <rander.wang@intel.com>
This patch replaces the default 0 dB gain with +20 dB gain in 16 kHz
DMIC pipelines in hda-generic based topologies. It is done to have
same capture sensitivity in both 16 kHz and 48 kHz capture pipelines.
The impacted topologies are:
sof-hda-generic-2ch.tplg
sof-hda-generic-4ch.tplg
sof-hda-generic-eq-2ch.tplg
sof-hda-generic-eq-4ch.tplg
sof-hda-generic-idisp-2ch.tplg
sof-hda-generic-idisp-4ch.tplg
Note: The 0 dB high-pass version is preferred after all the needed
development is available.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
As seen in PR #2954, no one ever notices m4 warnings. As PR #2954 will
remove sof-tgl-rt711-i2s-rt1308-nohdmi.conf and the only m4 warning
currently, this is a great opportunity to upgrade m4 warnings to
errors.
Note neither Travis nor github have the concept of a "warning", they can
only report success or failure.
This fix can be considered part of the "green failures" family.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
No one seems to be using this topology or they would have seen the
error below that DMICs are required on this platform.
[ 8%] Generating sof-tgl-rt711-i2s-rt1308-nohdmi.conf
m4:tools/topology/sof/pipe-volume-capture-16khz.m4:54: bad expression
in eval (bad input): 2 * 2 * CHANNELS * 16
m4:tools/topology/sof/pipe-volume-capture-16khz.m4:57: bad expression
in eval (bad input): 2 * 2 * CHANNELS * 16
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
This patch replaces the default EQ 0 dB gain with +20 dB gain in
DMIC pipelines in hda-generic based topologies. It fixes the issues with
too silent capture level.
The gain was changed to 0 dB in a recent change to let UCM set it.
However this change remains needed for a while since the UCM initial gain
patch and remaining development of ALSA/ASoC 4ch capture for devices with
more than two microphones will take longer time to become available.
The impacted topologies are:
sof-hda-generic-2ch.tplg
sof-hda-generic-4ch.tplg
sof-hda-generic-eq-2ch.tplg
sof-hda-generic-eq-4ch.tplg
sof-hda-generic-idisp-2ch.tplg
sof-hda-generic-idisp-4ch.tplg
Note: The 0 dB high-pass version is preferred after all the needed
development is available.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The UpExtreme provides access to link2 in 2 of the 3 modes. This is
useful to test rt5682 configurations.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Add an example platform usage for smart amplifier feature, where it will
use nocodec SSP LBM(Looback Mode) for data verification.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Reuse sof-glk-da7219-kwd by included cml.m4
for sof-cml-da7219-max98357a topology with KWD pipeline enabling
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Move byt/cht platform specific ifelse to platform files.
And byt/cht have codec and nocodec differences, which need to have
PLATFORM-codec and PLATFORM-nocodec files.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
This patch adds TGL topology for the DUT which has the
following audio configuration:
Max98373 speaker (I2S), ALC5682 headset codec (I2S),
DMIC, 4 HDMI devices.
Signed-off-by: Jairaj Arava <jairaj.arava@intel.com>
Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com>
This patch adds two new test topologies. One is for testing ASRC
timestamp retrieving from HDA and one for WM8804 slave SSP interface
for APL. It is useful with UP^2 board with HiFiBerry Digi+ SPDIF
interface.
The asynchronous mode token is switched on in ASRC capture and
playback pipelines. It switches on DAI skew tracking feature
in ASRC.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds driver capability to capture with combination
of 96 kHz and 16 kHz sample rates from FIFO A and FIFO B by using
decimation factor 12 in FIR. The earlier capability for 96 kHz was
with single FIFO only due to lack of suitable decimation filter
for the 16 kHz output.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Add support for bdw-rt5677
Fix load issue with bdw codec toplogy issue, no SMP support.
Add virtual widgets.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
This patch adds TGL topology for the DUT which has the
following audio configuration:
Max98357A speaker (I2S), ALC5682 headset codec (I2S),
DMIC, 4 HDMI devices.
Signed-off-by: Jairaj Arava <jairaj.arava@intel.com>
Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com>
This patch adds all the topology files related parts and two complete
test topologies to test ASRC playback and capture with APL platform.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The BYT-CR package only exposes SSP0 and SSP1, with SSP0 typically
used instead of SSP2 for the audio codec connection. Since it's proven
nearly impossible to patch the topology on the fly in the kernel,
let's brute-force generate topologies for all known BYT-CR platforms
using macros for the SSP number. The BE stream name remains constant
at SSP2-Codec since it's not modified by the kernel.
While we are at it, do the same for CHT platforms.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
i.MX8QXP has one SAI interface. Create a simple topology
without a codec for playback of 2 channels, 16bits samples
at 48Khz.
Host -> Buffer0 -> Volume -> Buffer1 -> SAI1
This is useful for testing various components like Dummy DMA,
EDMA and SAI drivers.
For more information about SAI you can read i.MX8QXP RM at:
https://www.nxp.com/docs/en/reference-manual/IMX8DQXPRM.pdf
Signed-off-by: Guido Roncarolo <guido.roncarolo@nxp.com>
This patch adds topology sof-apl-src-dmic.m4 to test capture SRC.
The topology instantiates SRCs for 48 -> 8-48 kHz and 16 -> 8-48 kHz
capture. The volume component in pipeline handles PCM format
conversion from the fixed S32_LE DMIC DAI format. Also the bugs in
the earlier non-used pipeline macro are fixed.
The macro pipe-src-capture.m4 is renamed to pipe-src-volume-capture.m4
since it contains a volume component. A new macro pipe-src-capture.m4
is created to provide pipeline building block without volume.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Now rt711 is in SDW mode and rt1308 is in I2S mode on TGL RVP
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
This pipeline adds support for S24_LE, 2 channels, 48KHz playback.
cs42888 codec is connected to i.MX8QXP board on ESAI0 interface
as follows:
i.MX8QXP CPU board <--> i.MX8 base board <-> Audio I/O card
(setup similar with i.MX8QM, so this topology can be used as it is
on i.MX8QM in the future).
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
i.MX8QXP has one ESAI interface. Create a simple topology
without a codec for playback of 2 channels, 16bits samples
at 48Khz.
Host -> Buffer0 -> Volume -> Buffer1 -> ESAI0
This is useful for testing various components like Dummy DMA,
EDMA and ESAI drivers.
For more information about ESAI you can read i.MX8QXP RM at:
https://www.nxp.com/docs/en/reference-manual/IMX8DQXPRM.pdf
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
sof-icl-rt711-rt1308-rt715-hdmi.m4 is based on sof-icl-rt711-rt1308
-rt715.m4 with hdmi supported.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Add rt1011 speaker CML Audio topology on top of
sof_rt5682 where RT1011 is configured as
TDM 4 SLOT ( 2 CH PB and 4 CH Feedback), 100 FS BCLK.
BCLK delay is added for supported ABI versions.
Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
The PCM512x requires 32-bit data words, so the only solution is to use
a 3.2MHz bit clock and a 48->50kHz SRC.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Not all HDaudio platforms have DMIC support, generate solution without
any DMIC. This will be used in combination with NHLT information (or
kernel module parameter) by the driver to automatically select the
relevant topology.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
It is derived from sof-cml-rt5682.m4, keyword detect pipelines added to
it for Keyphrase Detection feature support.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
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>
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>
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>
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>
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>
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>
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>
This is useful for headless devices such as Up2 with no external
HDAudio codec but an HDMI/DP output.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Use the same m4 file to generate the topology for all bdw
boards based on the CODEC name defined during compilation.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
BYT with RT5645, RT5640, RT5651 and DA7213 all have similar
topologies with the only difference in codec name. Merge
them all into a single m4 file and set the codec name
using the macro defined during compilation.
This will also take care of adding the virtual widgets
for all the BYT topologies for compatibility with the
machine drivers.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Merge the 2 m4 files and use the PLATFORM defined during
compilation to generate the appropriate topology.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Use the same m4 files to generate both 2ch and 4ch topologies
by defining channels during compilation.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
The only difference between them is the SSP index and name.
Use a macro during compilation to indicate which platform
we're building for and set these appropriately.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add topology for WHL with RT5682. This will be merged with
sof-cml-rt5682 in the future to avoid maintaining 2 files
with just the difference in SSP port numbers.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>