Currently lp_mode setting is not included by topology binary
since lp_mode is not defined as a attribute. This patch adds
it in pipeline.
Signed-off-by: Rander Wang <rander.wang@intel.com>
An IPC4 widget may support multiple I/O queue. Queue ID is
required during widget binding in route setup.
This patch adds sink_pin_binging and src_pin_binding classes
for multiple I/O queue support.
For widget requires special pin(queue) binding, sink_pin_binding
or src_pin_binding should be defined in the widget object. So
that the kernel knows which pin to use during widget binding
by parsing topology.
Note that pin binding should be defined for all sink/source pins
or for none. Even if there is only one sink pin requires special
pin binding, pin binding should be defined for all sink pins, and
for pins that are not used, give the value "NotConnected". This rule
applies to source pins, too.
Example: smart_amp widget has two sink pins and one source pin,
and its feedback sink pin requires special pin binding, so we have to
define sink_pin_binding objects within smart_amp object like this:
Object.Base.sink_pin_binding.1 {
# the main sink pin is connected to host for playback data
sink_pin_binding_wname "copier.host.1.1"
}
Object.Base.src_pin_binding.2 {
# the feedback sink pin is connected to capture dai for codec feedback.
sink_pin_binding_wname "copier.SSP.2.1"
}
In this example, smart_amp is connected to host and DAI directly,
it is also possible to be connected to host and DAI indirectly (with
gain or other widget in the middle).
Signed-off-by: Chao Song <chao.song@linux.intel.com>
These two tokens will be used by the kernel to decide the
supported number of sink/source pins, thus to allocate
correct widget queue id in route setup.
These two tokens are mandatory for IPC4 widgets, because
the default value in Linux kernel is zero, which is invalid
for queue id allocation.
Signed-off-by: Chao Song <chao.song@linux.intel.com>
We should set num_audio_formats in pipelines when we remove the
default value from gain.conf.
Otherwise, we will see below error with cavs-mixin-mixout-hda-2ch-tgl.tplg
tplg: ready widget id 2 pipe 1 type 6 name : gain.1.1 stream none
Fixes: 773a05a3 ('topology2: add S24LE support')
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
S24LE is the major format used by SOF IPC4 FW and windows platform
and has better perfomance than S32.
Signed-off-by: Rander Wang <rander.wang@intel.com>
Cavs src is different with sof src. It has different uuid
and param which are composed of base module definition and
output rate.
Signed-off-by: Rander Wang <rander.wang@intel.com>
The original calculation will generate 44 sample size for
44.1khz, actually it at least needs 45 sample size.
This patch uses ceil value for such rate, also inlcude
11.025kh, 22.05kh, 88.2khz, 176.4khz.
Signed-off-by: Rander Wang <rander.wang@intel.com>
Be exhaustive on pipeline contents.
Also remove Windows references and copy/pasted comments
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Be exhaustive on pipeline contents.
Also remove Windows references and copy/pasted comments
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Be exhaustive on pipeline contents.
Also remove Windows references and copy/pasted comments
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Be exhaustive on pipeline contents.
Also remove Windows references and copy/pasted comments
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
there's already a gain in mixout-playback, and mixout-gain-playback is
not used anywhere.
let's reduce the options
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Add the audio formats for 4ch in passthrough-be and passthrough-capture
pipelines.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
We declare that S24_LE is supported by a HDA PCM, but 24 bit audio
format is not included in the available audio format list.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
The DAI copiers only support 32-bit format. Change the gain-playback and
gain-capture to set the input/output bit-depth to match the DAI copier
requirement.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
format
Only the host copier should do the conversion based on the runtime
params. The DAI copiers should always support only 32-bit playback and
capture. So, fix the input/output formats for the copiers in the
respective pipelines.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
We cannot have one single pipeline going from the host copier to the DAI
copier. So split the passthrough pipeline into host and DAI pipelines.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add gain widgets before and after the mixers in all the
mixin/mixout-based pipelines. Change the cavs-mixin-mixout-hda.conf
topology to add the mixer names for all gain widgets.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Remove the default audio formats from the gain class definition.
They should be added depending on the number of formats based on the
pipeline. Fix the gain-playback and gain-capture pipelines to add the
audio formats for the gain widgets.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
It is not intuitive for the end-ser to set linear values for
minimum gain. Set the dB gain min value to -90dB and steps to 2dB.
Also, modify the max to 45 to allow the volume gain range -90dB to 0dB.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add audio formats and all new attributes for all modules in the
cavs pipelines.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Add definition for audio format class for defining the input and output
audio formats for each components in cavs topology.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add some new attributes along with math expression to calculate the
attribute "is_pages".
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Add the route from the host copier to the mixin widget in the class
definition so it doesnt have to set in the top-level topology everytime.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add the host<->gain route in the gain-playback/gain-capture
pipeline and keep only the top-level routes in the top-level topology
file.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add io_clk attribute to dmic and ssp dai class. This is the platform
dependent clock that needs to variated in upper level topology files.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Add boolean nhlt attribute to manifest class. This attribute will tell
alsatplg to generate nhlt blob from dai definitions and add it into
the manifesst itself.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Add an instance attribute for all pipeline class definitions and the pcm
class. This will be used to instantiate unique PCM/pipeline instances.
The ID attribute for PCM and the index attribute for pipeline may be the
same as the instance attribute in most cases. But in some cases, the
pipeline ID or the PCM index will be passed from the CMakeLists.txt file
as pre-processor definitions and they will be replaced as needed.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add two classes to be used with dmic for nhlt conformance. Mic extension
includes snr and sensitivity values. Mic vendor config has multiple
values for defining the mic array geometry and mic positions.
Do not add tokens as these values are used currently only with nhlt
generation. Defining these classes in dmic is optional.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>