Adding type string to widget data allows the driver to identify
different effects. As an example use this in the equalizer.
Also modify equalizer to pass default parameters in control's
private data.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
This patch adds EQ, bytecontrol, and EQ+volume pipeline m4 macros and an
enhanced topology with EQ for UP2 + HiFiberry. There is not yet FIR/IIR
type select. The EQ type is currently hardcoded into kernel.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Do not use a static defined number of channels, use the channels passed
in otherwise ASoC will try to allocate number of channels that should
not be allowed.
Signed-off-by: Curtis Malainey <cujomalainey@google.com>
Define 3 new PCMs and backends for HDMI/DP playback on GLK platform.
Here are the updated pipelines in sof-glk-da7219.m4:
PCM0 ----> volume (pipe 1) ---> SSP1 (speaker - maxim98357a, BE link 0)
PCM1 <---> volume (pipe 2,3) <--> SSP2 (headset - da7219, BE link 1)
PCM99 <---- volume (pipe 4) <--- DMIC0 (dmic capture, BE link 2)
PCM5 ----> volume (pipe 5) ---> iDisp1 (HDMI/DP playback, BE link 3)
PCM6 ----> Volume (pipe 6) ---> iDisp2 (HDMI/DP playback, BE link 4)
PCM7 ----> volume (pipe 7) ---> iDisp3 (HDMI/DP playback, BE link 5)
There is also support for changing HDMI/DP pipelines to pass-through for
validation purpose, which is commented off by default.
Pleaes note that 3 virtual widgets hifi1~3 are removed, because they'll
be created by HDMI codec driver. This m4 was verified on GLK platform.
This patch creates sof_apl_hdmi.m4 to define topology for 3 playback
pipelines, FE and BE links for HDMI/DisplayPort(DP) audio. This can be
a reference to verify audio over HDMI/DP on APL platforms.
The HDMI/DP frontends are named as HDMIx, to reuse the generic HDA DSP
machine driver which checks the link names and will do extra
initialization on HDMI/DP frontends if "HDMI" is found in the link name.
This m4 does't include topology for using external HD-A analog codecs. We
will create another m4 file to include both HDA display and analog audio.
Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
This patch adds a new file hda.m4.
This file defines macro HDA_DAI_CONFIG(idx, link_id, name) for user to
define configurations for HDA Backend links. The link's data tuple will
carry the HDA type info for kernel driver to check the link type.
Pleae note that there are no HW configurations defined for HDA BE links
because current HW configurations is more suitable for SSP BE links, but
not for HDA. We'll decide what HW configurations are suitable for HDA BE
links later.
Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
This SPDIF transmitter/receiver is used by the HifiBerry DIGI+ and
DIGI IO. The wm8804 operates as bit clock and frame master.
TODO in future update: add support for capture on the DIGI+ IO (this
may be done with a different topology file to avoid confusing users
with a non-working PCM capture patch)
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
This patch decreases pipeline buffers usage from 5x or 4x periods to 3x
to avoid DAI error in APL platform when allocating buffers. The smaller
buffers are sufficient since the test topology pipelines are scheduled
every 1ms (earlier assumption was every 5 ms).
The PCM capability is updated to 8 channels similarly as with low delay
pipeline. The highest sample rate is increased from 96 kHz to 192 kHz.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The APL and GLK topologies are identical except for a swap of SSPs and MCLKs.
Tested on Reef and GLK
TODO:
1. there is currently a kernel bug where only duplex pipelines can be
assigned to the same PCM number. For now mark DMIC as device 99 to
track this is a work-around to be modified in the near future
2. Edit the Virtual routes/widgets to remove kernel warnings (no
functional impact)
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
PR43 and commit dc10876c20 ('topology: changes to SectionPCM
macros') went a bit too far and removed a much-needed alignment
between pcm id and dummy dai id. Tested on APL/Reef Chromebook
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
This patch addresses the following:
1. Move PCM_PLAYBACK_ADD to pcm.m4
The macro was in the wrong m4 file (buffer.m4)
2. Remove pipeline_id argument and "index" from SectionPCM
"index" is not a member of struct snd_soc_tplg_pcm. So this
information is not used in the kernel at all.
Secondly, the PCM ID could be associated with more than
one pipeline especially in the case of DUPLEX PCM's. So better
to remove it to avoid ambiguities.
3. Remove dai_id
This dai_id is the ID given to the CPU DAI when the FE DAI link
is created. In the case of SOF, we should use an linearly increasing
unique ID for CPU DAI ID's. If this argument is omitted, the kernel
automatially assignes an ID based on the component->num_dai
which is linearly incremented every time a new DAI link is added.
4. Finally update users to align with the new definitions.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add DMIC capture pipeline for DMIC01 to the apl nocodec topology.
DMIC16k to be added later.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Previously it was set to be the dai index which works if there's
only one type of BE DAI's.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
DAI_TYPE and DAI_INDEX are both needed to get the dai in FW, add
DAI_INDEX in SectionBE to make sure we can handle multiple type dais.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
For some reason parts of the topology were commented out. Make sure
all 6 SSPs are enabled.
Tested on Up2 with a LogicPro-based check on SSP5 (only interface
accessive on the HAT connector)
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Remove DMIC support to avoid topology load fail,
Remove capture (not supported by PCM512x codec)
Simplify structure using PCM_PIPELINE_ADD instead of PCM_PIPELINE_DAI_ADD
Enable 24-bit output
Enable up to 32-bit PCM (tested with S16_LE and S32_LE)
Tested on Up2, no issues detected.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Codec SSP id doesn't match with machine driver, so
change the id to 1 to fix the topology loading issue.
Signed-off-by: Zhang Keqiao <keqiao.zhang@linux.intel.com>
Add a multi-stream topology for GLK with speaker on SSP1, headset on
SSP2 and DMIC. Only playback pipelines on SSP1/2 for now. Capture
pipelines to be added later.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
SSP5 id should be kept to 0 and new added DMIC goes to 1 to keep old
machine driver work with both old topology and this topology.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
For nocodec topology, we need the id to be same with SSP index since
all SSP ports are enabled in nocodec. Codec machine drivers always have
id to 0.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
This patch extends the allowed sample rate range to 8 - 192 kHz, and
channels count to 1 - 16. Previously only 48 kHz and 2 - 4 channels was
allowed.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>