Make the HDMI_USE_CHAIN_DMA set to true by default as enabling it for every
configuration just does not scale.
The generic HDA topologies enabled this for all IPC4 platforms already.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
In practice all HDA links (on LNL SDW/SSP/DMIC also) can use ChainDMA, but
the flag is used to enable this only for display links.
Rename the flag to be precise about this.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
RTC_AEC module is using DP and rest of pipeline is LL and both can
run on different cores.
For the purpose to assign DP module individually on secondary core,
now add a new macro GOOGLE_AEC_DP_CORE_ID.
Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Add cavs-mixin-mixin-mixout-eqiir-dts-ssp.conf to support EQ IIR + DTS
processing on rt5682
Co-developed-by: Mac Chiang <mac.chiang@intel.com>
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Signed-off-by: Joe Cheng <joe.cheng@xperi.com>
In order to adopt more different playback pipelines, refer to
sof-hda-generic.conf and move playback pipeline in cavs-rt5682.conf to
cavs-mixin-mixout-ssp.conf.
Co-developed-by: Mac Chiang <mac.chiang@intel.com>
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Signed-off-by: Joe Cheng <joe.cheng@xperi.com>
The echo-ref pipeline ie the DAI capture pipeline involving the speaker
codec is already part of the list of pipelines that gets set up and
triggered when the DMIC capture starts. Therefore, there's no need for
the echo-ref PCM to explicitly start the reference capture. So, remove
it and connect the codec DAI to the google-rts-aec module directly.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Consider the variant projects with/without bt offload feature
so include BT_OFFLOAD pipelines as an option if needed
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Rename mixers according to the new naming convention by referring to
the associated PCM name and the position in the topology. Create defines
for PCM names so the name is only in one place.
This produces following changes:
'Playback Volume 1' -> 'Pre Mixer Headset Playback Volume'
'Playback Volume 3' -> 'Pre Mixer Speaker Playback Volume'
'Main Playback Volume 2' -> 'Post Mixer Headset Playback Volume'
'Main Playback Volume 4' -> 'Post Mixer Speaker Playback Volume'
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
Change the naming from dai-copier.<copier_type>.<pipeline_id>.<instance>
to dai_copier.<copier_type>.<stream_name.<direction>.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Since IncludeByKey uses Regular expressions to validate text match,
the expression [1-1000] does not filter number between 1 to 1000 as
intended. For example, DEEPBUFFER_FW_DMA_MS=0 results in matched while
DEEPBUFFER_FW_DMA_MS=5 returns not found, fix with regex flavor pattern.
Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Replace the generic copier with host-copier in the class definition and
the instances.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Replace the generic copier with host-copier object in the pipeline class
definition and all its instances.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This has been replaced by num_input_audio_formats and
num_output_audio_formats. So remove the attribute from all components
and mark the token ID as deprecated.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
With 208c2049f ("topology2: deep buffer: use 32 bits to align with
other pipeline"), we can remove this override now.
Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Introduce a new class for module-to-module copiers and make node_type
mandatory for the copier class.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Move and rename the hw_config class to
platform/intel/hw_config_cardinal_clk.conf.
This hw_config is specific to Intel SSP DAI that use the cardinal clock
for the mclk frequency.
Ideally, this class should have immutable mclk_frequency and link clock
source. But because the alsatplg compiler expects the name of the hw
config class to be "hw_config" without any extensions, it is left as
modifiable for now. Once the topology compiler is modified, this will be
made immutable in a follow up PR.
Also, introduce a new hw_config_simple.conf file that contains the
hw_config definition for the HDA/DMIC/SDW type DAIs with only the ID and
name attributes.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
All it contains is a IO gateway copier and a pipeline widget. So rename
it accordingly.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
There's been a recent kernel change to compute the DMA buffer size using
the ibs/obs. So this attribute no longer needs to be set in the
topology.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
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>
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>
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>
Add bluetooth pipeline to rt5682 topologies.
Co-developed-by: Uday M Bhat <uday.m.bhat@intel.com>
Signed-off-by: Uday M Bhat <uday.m.bhat@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: Jaska Uimonen <jaska.uimonen@intel.com>
Currently copier components of the module type are used in pairs -
one on each pipeline, connecting to each other. This isn't necessary.
It's enough to have one such copier component on the side, that does
forking. Add a single-copier capture pipeline variane and switch
DMIC over to it.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This patch will support multiple capture streams with DMIC. The pcm stream
is composed of two pipelines: (1) copier host <- gain <- copier module
(2) copier module <-gain <- copier DMIC. We need to use copier module
to connect two pipelines because of the restriction with the ref FW that
the gain module can only be connected to modules that are in the same
pipeline
Signed-off-by: Rander Wang <rander.wang@intel.com>
In preparation for making it easier to write topology conf files that
can be conditionally included without having to worry about conflicting
node ID's for objects between the included file and the top-level conf
file, modify all classes to include an instance attribute. This means
that irrespective of the object type, all objects will be instantiated
as follows:
Object.Widget.gain.1 {} or Object.Base.pdm_config.2 {} etc
The instance ID's are typically only meant for the alsatplg compiler to
differentiate the nodes in the conf file and are not relevant for the
kernel or the firmware. This change will allow the alsatplg compiler to
be modified to automatically make the node ID's unique before
conditionally including conf files.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add variable definitions for all HS and Speaker settings such as codec
name, SSP DAI index, PCM caps names etc in preparation to make this file
reusable for variations in the SSP ports in different machines.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Dharageswari R <dharageswari.r@intel.com>
Add an instance attribute and make the name attribute mandatory for the
hw_config objects. This is required because the topology2 compiler allows
for expansion of string values with variable definitions. So, if we
wanted to expand the name from a variable definition(as shown below), it
is only possible if it were a normal attribute instead of the node ID as
it is currently.
Define {
SSP0_HW_CONFIG_NAME "SSP0"
}
Object.DAI.SSP.1 {
dai_index 0
Object.Base.hw_config.1 {
name $SSP0_HW_CONFIG_NAME
}
}
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>