Commit Graph

1659 Commits

Author SHA1 Message Date
Ajye Huang cdcbdae705 topology: sof-adl-nau8825: add variant with nau8318 amplifier
Adding support for nau8318 Amplifier.

sof-adl-nau8318-nau8825:
    nau8825 headphone connects SSP0 link.
    nau8318 Amp speakers connects SSP1 link.
    bluetooth offload uses SSP2 link.

Signed-off-by: Ajye Huang <ajye_huang@compal.corp-partner.google.com>
2022-12-16 13:44:30 +02:00
Bard Liao 080363ece9 topology2: add sdw spk feedback pcm
This commit create a PCM that can pass amplifier feedback to user space.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2022-12-16 12:56:53 +02:00
Yong Zhi 2cfa90d324 topology2: cavs-rt5682: add deep buffer support on headset
Deep buffer is mixed with ssp0 stream.
Override mixout copier audio_format.1 from 32/24 to 32/32 for I2S.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2022-12-15 12:23:00 +00:00
Bard Liao 99a65fc7d7 topology2: cavs-sdw: fix DEEP_BUFFER_PIPELINE_SINK
mixout-gain-dai-copier-playback.2 pipeline id has been changed to 1.
Need to change mixout.2.1 to mixout.1.1 as well.

Fixes: f0a010052b ("topology2: cavs-sdw: group route and pipeline index")
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2022-12-14 17:03:45 +00:00
Chunxu Li b0ae15a0bc topology1: mt8186: support 1ms pipeline capture period
Default support 1ms period capture pipeline to update host
position more precisely.

Signed-off-by: Chunxu Li <chunxu.li@mediatek.com>
2022-12-14 14:37:49 +00:00
Pierre-Louis Bossart c91326bda2 topology1: add ADL Rooks County laptop LAPRC710
Amplifier is on link 2, not 3, in this platform

Fixes: https://github.com/thesofproject/linux/issues/4088
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2022-12-14 13:59:56 +00:00
Bard Liao 113064cbf7 topology2: cavs-sdw: add Speaker and Microphone pcm
Add Speaker PCM to cavs-sdw topology. We need to set NUM_SDW_AMPS=1 in
CMakeLists.txt if there is only one amplifier in the device and set
NUM_SDW_AMPS=2 if there are two amplifiers.
Set SDW_DMIC=1 if there is a SDW DMIC, like rt714 in the device.
The 2nd ALH copier stream name should be the same as the 1st ALH
copier, and no need to connect to the route.
The 2nd ALH copier data will be set to the 1st ALH copier's gateway config
in the aggregated mode.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2022-12-09 15:54:18 +00:00
Bard Liao 1faf055755 topology2: cavs-sdw: use macro to define SDW jack stream and id
Define macro for SoundWire jack stream name and BE id.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2022-12-09 15:54:18 +00:00
Bard Liao f0a010052b topology2: cavs-sdw: group route and pipeline index
A topology may be constructed by some .conf files. We may use a
duplicated route index or pipeline index by accident. This commit
suggests a rule to assign route and pipeline index.
We have a consistent pcm id. For example,
Jack out: 0
Jack in: 1
Speaker: 2
Microphone: 4

We can use a simple formula to assign the route and pipeline index
for each pcm.
The formula this commit suppests is pcm id * 10 ~ pcm id * 10 + 9.
That is 0 ~ 9 for pcm 0, 10 ~ 19 for pcm 1, and so on.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2022-12-09 15:54:18 +00:00
Rander Wang 8818e50b6a topology2: hda: share deep buffer conf setting
Deep buffer is mixed with HDA analog.

Signed-off-by: Rander Wang <rander.wang@intel.com>
2022-12-05 14:32:20 +00:00
Rander Wang c4f6b3dfc5 topology2: sdw: share the deep buffer conf setting
Deep buffer is mixed with Jack out.

Signed-off-by: Rander Wang <rander.wang@intel.com>
2022-12-05 14:32:20 +00:00
Rander Wang 73aeccc6ad topology2: nocodec: add deep buffer support
Deep buffer is mixed with ssp0 stream.

Signed-off-by: Rander Wang <rander.wang@intel.com>
2022-12-05 14:32:20 +00:00
Rander Wang 9ec745b1de topology2: add common deep buffer support
It will be shared by I2S, HDA and SDW platforms

Signed-off-by: Rander Wang <rander.wang@intel.com>
2022-12-05 14:32:20 +00:00
Bard Liao f6f9b62d5a topology2: add ssp multi stream capture
Add ssp multi stream capture support.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2022-12-02 16:51:16 +00:00
Bard Liao efca29469f Topology2: pipeline: gain-capture: add 16 bit format support
16 bit format was missed in the pipeline.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2022-12-02 16:51:16 +00:00
Seppo Ingalsuo f6b8b0e485 Tools: Test: In src_test.m do quick test without specify in/out rates
If the rates are an empty vector [] the default rates are used. This
allows test command "src_test(32, 32, [], [], 0, 0);" to do a quick
test without plots with default 8 - 192 kHz in/out matrix.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-12-02 15:30:14 +00:00
Seppo Ingalsuo 082672ea9f Tools: Test: In src_test.m prevent error with empty plot handle
Octave errors if plot handle is empty, Matlab doesn't. This can
happen if frequency response test data read fails. In that case
an empty plot window is stored as indication of error.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-12-02 15:30:14 +00:00
Seppo Ingalsuo 48bf7af183 Tools: Test: Prevent in src_test.m unnecessary window open
This speeds up src_test.m with no plot window opening for rate
that is not supported in the conversions matrix. No output file
returns failure -1.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-12-02 15:30:14 +00:00
Seppo Ingalsuo dccae1c5b2 Tools: Test: Audio: Reduce testing verbosity in test measure scripts
These prints are normally not useful and slow down test with a
lot of scrolled text output.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-12-02 15:30:14 +00:00
Seppo Ingalsuo 155137b878 Tools: Test: Timeout src_test.m after 300k copy() iterations
This prevents testbench run freeze from src_test.m. Function
test_run_src() passes to testbench option -C that limits the number
iterations to 300k that corresponds to 5 min of audio.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-12-02 15:30:14 +00:00
Yong Zhi a4e5fea520 topology2: Add rt5682+max98357a support
Add sof-mtl-max98357a-rt5682 topology which supports
RT5682 headset and MAX98357A speaker amplifiers.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2022-12-02 15:09:56 +00:00
Ranjani Sridharan b0c5b08d63 topology2: sof-ace-tplg: Rename sof-mtl-sdw
To it's actual name sof-mtl-rt711-4ch.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2022-12-02 13:13:25 +00:00
Ranjani Sridharan 3a98634714 topology2: avs-tplg: Build ADL nocodec tplg
This will avoid having to rename the TGL tplg on ADL devices.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2022-12-02 13:13:25 +00:00
Seppo Ingalsuo 689b91e6f2 Tools: Topology1: Add sof-hda-generic topology with SRC
This patch adds to sof-hda-generic.m4 macros HSSFX, HSSFX_FILTER1,
and HSSFX_FILTER2 those can be used to customize stream effect
for PCM 30. The macro defaults to volume so the default topology
build is not impacted.

The CMakeLists.txt in development is updated to build topologies
sof-hda-generic-src.tplg, sof-hda-generic-2ch-src.tplg, and
sof-hda-generic-4ch-src.tplg. The stream effect is set with HSSFX
to src-volume.

The pipeline pipe-host-src-volume-playback.m4 is added. It is similar
as pipe-host-volume-playback.m4 but a sample rate converter (SRC)
is added after PCM, before volume. The PCM capability is changed to
min 8000, max 192000 Hz.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-12-02 12:33:56 +00:00
Ranjani Sridharan 0bdf8e3d31 topology2: rename cavs-passthrough-hdmi.conf
Rename it to sof-hda-generic.conf.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2022-11-30 16:55:18 -08:00
Ranjani Sridharan d25f775108 topology2: sof-ace-tplg: Build sof-hda-generic-2ch topology
This will be needed for MTL.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2022-11-30 16:55:18 -08:00
Ranjani Sridharan e303098d2a topology2: Remove the cavs folder
This folder contains definitions for both CAVS and ACE. So remove the
incorrect folder naming and move everything one level up.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2022-11-30 16:55:18 -08:00
Ranjani Sridharan 5444cd2097 topology2: build the topologies in the right folder
The CAVS topologies need to be in the avs-tplg folder and the MTL
topologies need to be in sof-ace-tplg folder. Also, change the output
file names to the names expected by the kernel and the NHLT binary files
to match the topology file names.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2022-11-30 16:55:18 -08:00
Pin-chih Lin ff7861f222 topology: fix DMICPROC undefined issue for intel-generic-dmic
Adds fatal assertion in intel-generic-dmic.m4 for DMICPROC is not
defined in upper m4, and fixes a potential risk of assertion by
sof-tgl-max98357a-rt5682.m4.

Signed-off-by: Pin-chih Lin <johnylin@google.com>
2022-11-28 17:05:25 +00:00
MARUTHI MACHANI 017892ec48 topology1: topology support for tdm configuration
Topology support for tdm configuration for amd platform

Signed-off-by: MARUTHI MACHANI <maruthi.machani@amd.com>
2022-11-23 20:28:09 +00:00
Vamshi Krishna Gopal a036799103 topology: Change Speaker period size to 10 ms for RPL and ADL-N Chrome designs
with 10ms period size we have seen power improvements.
We are working to move all topologies of Chrome to 10 ms.
Starting with current RPL and ADL-N topologies.

With many topologies already using GOOGLE_RTC_PROCESSING
flag to set 10ms, making a simpler flag to be used across
to set required SPEAKER PERIOD. This helps to scale later
to all designs.

Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
Signed-off-by: Vamshi Krishna Gopal <vamshi.krishna.gopal@intel.com>
2022-11-22 12:59:18 +00:00
Joe.Cheng 1013277791 topology1:enable DTS on MT8186
Enable SOF EQ + DTS

Signed-off-by: Joe.Cheng <joe.cheng@xperi.com>
2022-11-21 12:39:25 +00:00
Seppo Ingalsuo f5dd529190 Tools: Test: Remove unused variable from src_test.m
The variable tn is not used, it is safe to delete it.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-11-18 10:10:16 +00:00
Seppo Ingalsuo 1d81cb6a62 Tools: Test: Audio: Fix typo in THD+N help text
There's incorrect dynamic range test function usage in help.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-11-18 10:10:16 +00:00
Seppo Ingalsuo c11d99241d Tools: Tune: Fix erroneous fprintf() in src_get.m
This fprintf() with missing %d causes in Matlab and octave
messed up console output. This fix prints filter order
if this issue happens. This could be caused by too high
filter specification request that was not possible to reach.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-11-18 10:10:16 +00:00
Seppo Ingalsuo 00c51bde78 Tools: Test: Audio: In markers find fail show the captured waveform
This patch adds to chirp test (executed first usually) plot of
audio waveform to help understand why the audio markers were not
found. The reasons like very low level or corruption or large
time shift can be seen from the plot easily.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-11-18 10:10:16 +00:00
Seppo Ingalsuo db66ae457b Tools: Test: Add to SRC test control for quick test and make plots
This patch helps to avoid editing the script to change the test
behavior. The full_test set to 0 performs a quick test with chirp
(default 1).  The option show_plots set to 1 (default 0) shows
the plot graps from each test step those help to understand the
test verdict.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-11-18 10:10:16 +00:00
Seppo Ingalsuo 5471357792 Tools: Test: Audio: Replace the gaussian dither with triangular
The gaussian (or other normal distribution shape) dither impacts
too much 16 bit signals. The triangular probability density
function (TDPF) is a sufficient compromise between added noise energy
and de-correlation of PCM samples.

This change improves for 48 kHz 16 bit audio measurement the THD+N
from -62.6 dB to -73.6 dB.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-11-18 10:10:16 +00:00
Seppo Ingalsuo 044d0b208d Tools: Test: Audio: In SRC THD+N test apply standard low pass
This patch applies for conversions where Nyquist rate allows
a 20 kHz low-pass filter as specified in AES17 standard (test.fu).
The sweep test is set no higher than 20 kHz (test.f_end).

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-11-18 10:10:16 +00:00
Seppo Ingalsuo 4d35480c64 Tools: Tune: SRC: Change the SRC gain to 0 dB
This change aligns the gains in all other conversions sets
with IPC4 that already has the same setting. The max gain of a
converter is 0 dB. It also avoids the issue of 1 dB lower gain
in 2-stage vs. 1-stage conversions.

This changes only the generate scripts. The coefficients need a
separate patch.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-11-18 10:10:16 +00:00
Seppo Ingalsuo 40f78a9325 Tools: Tune: Add minimum THD+N performance check to snr_generate.m
This patch updates the SRC coefficients generator scripts with
add of parameter cfg.thdn that is the min. THD+N performance. The
target gain is set to 0 dB for all conversions to be generated.

in src_param.m the default stop-band is relaxed from 70 dB to 63 dB.
It can be done because the THD+N performance check will step up the
attenuation. The default lower attenuation saves RAM in easy
simple fractions conversions.

The main change is in src_generate.m. The conversions matrix is
two pass. In the first pass the converters are designed and the
converter for same fraction and other bandwidth parameters with
highest performance is preserved. In the second pass the table
of converters is constructed and the size of filters and buffers
and other information like MCPS estimate are collected.

Other changes include reduction of plots made during batch design
and remove of some commented out code.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2022-11-18 10:10:16 +00:00
Pin-chih Lin 466a0508a1 topology: unify RTNR+AEC topology file
pipe-rtnr-google-rtc-audio-processing-capture.m4 and
pipe-google-rtc-audio-processing-rtnr-capture.m4 are actually the same
graph. The filename differs because they are originated from different
branch.

This commit unifies them to avoid confusion.

Signed-off-by: Pin-chih Lin <johnylin@google.com>
2022-11-18 10:06:42 +00:00
Pin-chih Lin 058dc69b1f topology: enable GOOGLE_AEC and WAVES on CS35L41 amp
Add WAVES+AEC topology

Signed-off-by: Pin-chih Lin <johnylin@google.com>
2022-11-18 10:06:42 +00:00
Pin-chih Lin 864064d4a9 sof-nau8825: add DSM lib and remove hotword/dmic16k
For nau8825 codec devices e.g. Kano/Volmar/Zavala, it had been observed
that when Hotword module is enabled, noticeable pop noises appear in the
playback audio. While disabled, the playback audio becomes clear.

Because Hotword module is optional, remove it for now as WA fix for noise
issue.

Signed-off-by: Pin-chih Lin <johnylin@google.com>
2022-11-18 10:06:42 +00:00
Curtis Malainey efd3742cab topology: add rtnr + google_aec topology files
Add topologies for RTNR and GOOGLE AEC integration

Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
Signed-off-by: Pin-chih <johnylin@google.com>
2022-11-18 10:06:42 +00:00
Curtis Malainey 048ffd8003 topology: add new aec topology
New target device, also move the path over to core 1 when running in
no_hotword mode

Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
Signed-off-by: Pin-chih Lin <johnylin@google.com>
2022-11-18 10:06:42 +00:00
Balakishorepati 343bd7d4a1 topology1: CMakeLists: fix topology typo name
Add proper topology name for rembrandt platform.

Signed-off-by: Balakishorepati <balaKishore.pati@amd.com>
2022-11-16 13:18:56 +00:00
Joe.Cheng 192c1a24d4 topology1:renoir: add DTS + EQ topology
Add a new m4 to support DTS SDK -> EQ processing

Signed-off-by: Joe.Cheng <joe.cheng@xperi.com>
2022-11-15 18:15:32 +00:00
Brent Lu 1e3a4cfe9b topology: sof-adl-nau8825: support RT1015P amplifier
Add new topology sof-adl-rt1015-nau8825 which implements Realtek
ALC1015 on SSP1.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2022-11-14 16:40:08 +00:00
Ranjani Sridharan 70c7a02c66 gain-capture: Add copier module
Gain module cannot be bound to a module from another pipeline. So,
add a module copier in the gain-capture pipeline.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2022-11-14 15:11:51 +00:00