Commit Graph

1784 Commits

Author SHA1 Message Date
Jyri Sarha 3ad30d576c topology2: pipeline: Add "kcps" attribute
Adds kcps attribute to pipeline class with 0 default value.

The default can be overrided with KCPS_PIPELINE_DEFAULT define.

Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
2023-03-03 15:46:03 +00:00
Guennadi Liakhovetski dc9ba281d7 platform: remove support for cAVS 1.8 platforms
Remove all support for cAVS 1.8 platformsm including Cannon Lake,
Comet Lake, Whiskey Lake and Coffee Lake, they aren't supported
any more.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-03-02 23:02:37 +00:00
Seppo Ingalsuo d371135a63 Tools: Topology2: Add IIR high-pass with gain to DMIC capture
This patch replaces in DMIC0 capture the gain.N.1 component with IIR
high-pass. The gain has been a placeholder
dai-copier-gain-module-copier-capture.conf while the EQ component has
not been available. The pipeline is replaced by
otherwise similar dai-copier-eqiir-module-copier-capture.conf.

The dmic-default.conf sets the default IIR response to 40 Hz
high-pass with 0 dB gain. The topologies will get only the high-pass
filter but no amplification.  The default is changed in
sof-hda-generic.conf to 20 dB gain to address the too silent capture
because these topologies for generic Linux end users do not contain
any other capture enhancements.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-03-02 22:56:00 +00:00
Seppo Ingalsuo 7564e5fc8c Tools: Topology2: Add high-pass IIR to HDA headset capture
This patch includes to sof-hda-generic.conf the new
highpass-capture-be.conf as passthrough-capture-be.conf replacement
that adds to DAI copier pipeline the IIR high-pass filter. The
response is hard coded to 0 dB amplification and 40 Hz cut-off.

The analog microphone headsets creates a strong DC input when the bias
voltage settles. It can be even full-scale and sound very loud. The
high-pass filter suppresses such input signal.

Fixes #7116

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-03-02 22:55:43 +00:00
Chao Song 1f4bc9f948 topology2: wov-detect: correct use of define variables
To refer to a define variable, we should use
"$DEFINE_VAR_NAME". The $ symbol is required.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
2023-03-02 22:26:34 +00:00
Chao Song fd31092567 topology2: fix wov issue introduced by using array
Some minor issues introduced by using topology2 array,
fix them in this patch.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
2023-03-02 22:26:34 +00:00
Yong Zhi 1a64c10306 topology2: enable EchoRef for sof-mtl-max98357a-rt5682-ssp2-ssp0
Include echo ref pipeline to Rex config.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2023-03-02 12:45:24 +00:00
Guennadi Liakhovetski 0f0acaae94 platform: remove support for cAVS 1.5 platforms
Remove all support for cAVS 1.5 platformsm including Apollo Lake,
Sky Lake, Kaby Lake, Broxton and Gemini Lake, they aren't supported
any more.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-03-02 11:28:23 +00:00
Seppo Ingalsuo a639604dbb Tools: Topology2: Change PGA widget curve_duration to 20 ms
The previous value 10 is only 0.1 us that disables the gain
ramp totally and causes harsh sounding volume transitions.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-02-24 17:00:08 +00:00
Laurentiu Mihalcea 0a5c049ac0 Switch to using rtos/task.h instead of sof/schedule/task.h
The purpose of this commit is to separate XTOS-specific code
from the Zephyr-specific code found in sof/schedule/task.h.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2023-02-24 14:28:49 +02:00
Laurentiu Mihalcea 2115a7bfea Switch to using rtos/sof.h instead of sof/sof.h
The purpose of this commit is to separate the XTOS-specifc
code from the Zephyr-specifc code found in sof/sof.h.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2023-02-22 13:15:06 +00:00
Bard Liao 0235673845 topology2: add sof-adl-rt711-l0-rt1316-l12-rt714-l3 support
sof-adl-rt711-l0-rt1316-l12-rt714-l3.tplg is the same as
sof-tgl-rt711-rt1316-rt714.tplg

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2023-02-21 23:30:06 +00:00
Bard Liao 0f6cf837c7 topology2: use a macro to config if a sdw amplifier support feedback
Not all amplifiers support feedback. We should not add feedback support
on topology to shch amplifiers.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2023-02-21 23:30:06 +00:00
Bard Liao b407a1aab9 topology2: follow the same rule as pipeline and route id to assign ALH
index

We use the "pcm id * 10 + N" formula where N is from 0 to 9 to assign
pipeline and route id in f0a010052b ("topology2: cavs-sdw: group route
and pipeline index"). Now apply to ALH dai index.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2023-02-21 23:30:06 +00:00
Jyri Sarha d08b894945 Revert "topology2: avs-tplg: disable USE_CHAIN_DMA"
The known issues with the pipeline-free chain DMA implementation has
now been solved, so we can re-enable chain DMA usage.

This reverts commit c3807ae4a7.

Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
2023-02-21 23:23:59 +00:00
Yong Zhi 7fdc62375a topology2: cavs-rt5682: override BT playback pipeline id
Override the default PIPELINE_ID for BT_PB.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2023-02-20 16:16:43 +00:00
Guennadi Liakhovetski 17fbf7de22 platform: remove support for Sue Creek
Remove all support for Sue Creek platforms, it isn't supported any
more.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-02-20 15:46:16 +00:00
jairaj-arava d85d853c6c topology2: add second capture stream for DMIC0 for MTL topology
This patch adds second capture stream by means of copier module

Signed-off-by: jairaj-arava <jairaj.arava@intel.com>
2023-02-20 12:54:57 +02:00
Ranjani Sridharan b70ae5f6af topology2: Remove duplicate conf files
These are already in the common includes.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2023-02-17 09:16:34 +02:00
Ranjani Sridharan 45e4cc484d topology2: Move to using arrays for defining objects
Where there more than 1 object of the same type defined at the same node
level, use arrays to define the object. For example, we can define 2
routes as follows:
Object.Base.route [
	{
		source	"smart_amp.2.1"
		sink	"copier.SSP.2.1"
	}
	{
		source	"mixin.1.1"
		sink	"mixout.2.1"
	}
]

This allows us to merge 2 arrays from different conf files without
needing to make their instance ID's unique.

Assume we add another route in a separate conf file like below:
Object.Base.route [
        {
                source  "gain.5.1"
                sink    "copier.5.1"
        }
]

The alsatplg compiler will merge them as follows resulting in 3 route
objects.

Object.Base.route [
        {
                source  "smart_amp.2.1"
                sink    "copier.SSP.2.1"
        }
        {
                source  "mixin.1.1"
                sink    "mixout.2.1"
        }
	{
                source  "gain.5.1"
                sink    "copier.5.1"
        }
]

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2023-02-17 09:16:34 +02:00
Seppo Ingalsuo 64fe2ea7d2 Tools: Topology2: Add topology to test playback SRC conversions
This patch adds to development topologies a topology
sof-hda-src-generic.tplg. It is similar to sof-hda-generic but adds
to first playback PCM pipeline a SRC component after gain. The
pipeline supports playback of S32_LE with 8 - 192 kHz rates.

The cavs/src.conf is merged to src.conf, and the SRC format
include files are brought up from cavs directory. The topology
cavs-sdw-src-gain-mixin.tplg related .conf files are updated
for common location. The missing rate_out attribute is added.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-02-16 16:21:30 +00:00
Guennadi Liakhovetski d80635054f platform: remove support for Broadwell and Haswell
Remove all support for Broadwell and Haswell platforms, they
aren't supported any more.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-02-16 16:19:36 +00:00
Kai Vehmanen cfeaceb394 topology2: use passthrough-capture-be instead of passthrough-be
As the copier can do format conversions, and many pipeline components
can do conversions as well, it is important for the topology to define a
single format to use in the "dai_out" copier. This ensures deterministic
behaviour with the driver.

Implement this behaviour by switching topologies to use the
passthrough-capture-be pipeline as template for the backend capture
pipelines.

The previously used passthrough-be template is problematic as
the base class already defines multiple audio formats, with multiple
different sample formats. The new passthrough-capture-be only defines
one sample format by default and is a better starting point as a base
class.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2023-02-15 19:18:16 +02:00
Kai Vehmanen a62fa8e418 topology2: cavs: add passthrough-capture-be pipeline
Add a separate template for capture backend pipelines. The
passthrough-be pipeline has been used as template for both playback and
capture, but we want to provide different defaults especially for the
audio formats in capture case.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2023-02-15 19:18:16 +02:00
Chao Song 2f29bc31fc Topology2: add smart amp pipeline in nocodec topology
Use mixout-gain-smart-amp-dai-copier-playback pipeline
for SSP0 DAI playback.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2023-02-15 18:47:30 +02:00
Chao Song cc21dfa01a Topology2: add mixout-gain-smart-amp-dai-copier-playback pipeline
This patch adds mixout-gain-smart-amp-dai-copier-playback
pipeline.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2023-02-15 18:47:30 +02:00
Chao Song 82cedc1665 Topology2: add smart_amp widget class
This patch adds the widget class for smart_amp module

Signed-off-by: Chao Song <chao.song@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2023-02-15 18:47:30 +02:00
Ranjani Sridharan f829c30d6b topology2: tokens: Remove the payload_with_output_format token
The micsel will need to use the base config extension and the init
config type will need to be set in the manifest.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2023-02-15 18:47:30 +02:00
Seppo Ingalsuo 63598ee054 Tools: Tune: EQ: Use updated sof-ctl for tplg2 blob export
No more need for hard-coded blob header, sof-ctl provides
an up-to-date header so better to use it.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-02-15 11:36:51 +00:00
Uday M Bhat 9f318fd3d5 topology2: cavs-rt5682: Update BT offload SSP for MTL chromebook
For MTL chromebook, SSP 1 is used for BT offload with
cavs-rt5682 configuration

Co-developed-by: Jaska Uimonen <jaska.uimonen@intel.com>
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Co-developed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Uday M Bhat <uday.m.bhat@intel.com>
2023-02-15 11:28:20 +00:00
Jaska Uimonen b052563015 topology2: development: add hda efx pipelines
Add pipelines for iir and fir eq as EFX (endpoint effect) component in
hda.  Add HDA_CONFIG "efx" to compile efx versions of hda_generic
pipelines.

Add define EFX_IIR_PARAMS and EFX_FIR_PARAMS to define different iir and
fir parameters from separate conf files during compile time (default
"passthrough").

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2023-02-15 10:02:20 +00:00
Jaska Uimonen 568dd2457c topology2: add fir eq class
Add fir eq class with proper fir eq uuid.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2023-02-15 10:02:20 +00:00
Jaska Uimonen 984c61381c topology2: modify iir class to use needed params
Kernel is expecting audio formats and pin count for a process/effect
component, thus add it.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2023-02-15 10:02:20 +00:00
Pin-chih Lin feeb51f216 topology1: add PDM1 version for sof-adl-max98360a-rt5682-2way
Adds new topology build based on sof-adl-max98360a-rt5682-2way
with appending arg `-DDMIC_DAI_LINK_16k_PDM=STEREO_PDM1` for existing
ADL-P projects.

Signed-off-by: Pin-chih Lin <johnylin@google.com>
2023-02-14 16:10:28 +00:00
Libin Yang 813c7bd505 topology2: dmic-wov: refine wov pipeline id
As WoV may be used on HDA platforms, SDW platforms, as well as
nocodec platforms. Let's use a more safe pipeline ID for WoV.

Signed-off-by: Libin Yang <libin.yang@intel.com>
2023-02-14 10:07:08 +02:00
Libin Yang f494b4c583 topology2: dmic-wov: fixup output_pin_binding
src_pin_binding has been renamed to output_pin_binding.
Fixup the name.

Signed-off-by: Libin Yang <libin.yang@intel.com>
2023-02-14 10:07:08 +02:00
Libin Yang ace472f726 topology2: wov-detect: set num_xxx_audio_format
Set num_input_audio_formats and num_output_audio_formats for wov widget.

Signed-off-by: Libin Yang <libin.yang@intel.com>
2023-02-14 10:07:08 +02:00
Libin Yang 857fb4c4fe topology2: wov: add D0i3 support
Add D0i3 support by setting attribute capture_compatible_d0i3.

Signed-off-by: Libin Yang <libin.yang@intel.com>
2023-02-14 10:07:08 +02:00
Libin Yang eb36d58725 topology2: update the WoV config data
Now the abi header is changed and the config data is send through
large_config ipc message instead of init_instance ipc message.
Update the config data accordingly.

Signed-off-by: Libin Yang <libin.yang@intel.com>
2023-02-14 10:07:08 +02:00
Libin Yang cbb4c277e5 topology2: wov-detect: set the virtual widget name
Set the virtual widget name.

Signed-off-by: Libin Yang <libin.yang@intel.com>
2023-02-14 10:07:08 +02:00
Jyri Sarha 62b676727b topology2: Use new attribute references notation in route definitions
Changes all routes of form:
Object.Base {
	route.1 {
		source copier.host..1
		sink	gain..1
	}
	route.2 {
		source	gain..1
		sink mixin..1
	}
}

to

Object.Base {
	route.1 {
		source copier.host.$index.1
		sink	gain.$index.1
	}
	route.2 {
		source	gain.$index.1
		sink mixin.$index.1
	}
}

E.g. change ".." notation where the route index is expanded in between
the dots to explicit reference to the route index.

Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
2023-02-10 14:17:13 +02:00
Peter Ujfalusi 3bc70b6251 sof-ctl: Add initial support for handling blobs for IPC4
For IPC4 we are re-using the sof_abi_hdr to encapsulate the blob from/to
user space with minor deviation from IPC3:
- ABI magic is different
- the type is used as param_id in IPC4 (it carries the same functionality)

The IPC type can be specified with -i and defaults to 3 (IPC3).

-p is added as a new option for param_id, but -t and -p will do the same
thing.

After reading a blob, print a message for unexpected ABI magic number, but
do not block the execution.

To generate a header for 100 bytes payload:

For IPC3:
sof-ctl -g 100 -t 2
sof-ctl -i 3 -g 100 -t 2

For IPC4:
sof-ctl -i 4 -g 100 -p 2

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2023-02-10 10:53:55 +00:00
Guennadi Liakhovetski 89f7aa0abd platform: remove support for Baytrail and Cherrytrail
Remove all support for Baytrail and Cherrytrail platforms, they
aren't supported on the "main" branch any more. To build SOF for them
use the "table-v2.2" branch.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-02-08 13:36:04 +00:00
Rander Wang 208c2049f4 topology2: deep buffer: use 32 bits to align with other pipelines
Now deep buffer uses S24_LE but other pipelines use S32_LE internal format
. Chrome team found a bug that deep buffer can't work well with I2S codec
since fw only support S32_LE for I2S now.

This patch will use S32_LE to align with current requirement

Signed-off-by: Rander Wang <rander.wang@intel.com>
2023-02-08 13:35:32 +00:00
Yong Zhi 8dc72986e7 topology2: speaker-echo-ref: fix hardcoded dai_index
Do not hardcode dai_index to 1.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2023-02-08 13:34:18 +00:00
Seppo Ingalsuo 46bcb14ff6 Tools: Topology2: Add EQ configuration blobs
This patch adds a number of generic or effect type of blobs
to enable use of equalizers in topology2.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-02-08 12:01:32 +02:00
Seppo Ingalsuo 7c10e1e515 Tools: sof-ctl: Add IPC4 EQ blobs for testing
This patch adds a number of FIR and IIR blobs to apply in
run-time with sof-ctl.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-02-08 12:01:32 +02:00
Seppo Ingalsuo e26ef3a08c Tools: Tune: EQ: Code cleanup with no functional changes
Use of isempty() instead of length() to the check for non-empty
variable can avoid warnings in executing code in Matlab.

The unnecessary print of variable to console is removed. E.g.
struct bs, or biquad transfer function zeros vector a.

In system() command no need to store the console output, just
check the return status.

In switch-case statements no need for comma after case and
otherwise.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-02-08 12:01:32 +02:00
Seppo Ingalsuo 5ddbd34ba9 Tools: Tune: EQ: Add tplg2 blobs create
This patch contains the changes to export EQ blobs in both tplg1
IPC3 and tplg2 IPC4 formats.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-02-08 12:01:32 +02:00
Seppo Ingalsuo 5aa9a9e484 Tools: Tune: EQ: Matlab compatibility fix for parametric EQ
Every endif is changed to end. The endif works only in Octave.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-02-08 12:01:32 +02:00