Commit Graph

283 Commits

Author SHA1 Message Date
Mengdong Lin c0062f98c7 topology: Create HDMI only m4 file for APL
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>
2018-09-03 21:51:52 -04:00
Mengdong Lin e767798c7f topology: Define hda.m4 for HD-Audio configurations
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>
2018-09-03 19:41:43 -04:00
Liam Girdwood d40087fdd4
Merge pull request #62 from singalsu/fix_src_test_cmdline_arg_proposal
SRC test: Fix testbench execute command line plus cleanup
2018-08-30 15:55:54 +01:00
Seppo Ingalsuo a47524a2b2 SRC test: Fix testbench execute command line plus cleanup
This patch fixes the command line sample rate parameters passing
into host testbench (-r & -R).

In my computer at least the print command of non-visible plots stopped
working into error so I disabled the print commant that creates PNG
graphics files. It's OK since the purpose of this script is batch testing.
The visible plot files can be enabled from SRC test script to see plots
if need for deep dive.

The patch includes also fix for text output for "help src_test". The
input and output word lengths were missing from sample command.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2018-08-30 16:32:02 +03:00
Liam Girdwood eddca597ae
Merge pull request #61 from singalsu/fix_matlab_iir_eq_proposal
EQ Tool: Fix compatibility with Matlab and improve accuracy of IIR filters
2018-08-30 12:47:55 +01:00
Seppo Ingalsuo 206deaf457 EQ Tool: Fix compatibility with Matlab and improve accuracy of IIR filters
This patch changes code to allocate filter poles and zeros to biquads
to allow seeing poor SNR due to strong scaling vs. available fixed point
filter word length. The issue was severe especially with Matlab version
of tf2sos() function. The replacement is straighforward z, p frequency
sort. The scaling of biquads was changed to max -6 dB instead of previous
-3 dB to be more safe against internal signal clipping.

The IIR design was changed entirely to be based on zeros and poles
(z, p, k) in intermediate storate instead of polynomial coefficients.
This improves the accuracy especially of low frequencies high-pass
designs.

The default max. IIR order is increased from 12 to 16.

Finally since the grpdelay() function in octave-signal package calculates
incorrect result the group delay computation and plotting is disabled
for now in Octave. It works in Matlab.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2018-08-30 13:49:17 +03:00
Liam Girdwood 41861aac37
Merge pull request #58 from plbossart/topic/wm8804
topology: add support for wm8804
2018-08-23 02:59:32 -07:00
Pierre-Louis Bossart 67802d8174 topology: add support for wm8804
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>
2018-08-22 21:46:01 -05:00
Liam Girdwood 53e8c47591
Merge pull request #56 from singalsu/tplg_src_save_buffers_ram_proposal
Decrease SRC pipeline buffers RAM size and update PCM configuration
2018-08-21 05:36:35 -07:00
Seppo Ingalsuo 157e37856d Decrease SRC pipeline buffers RAM size and update PCM configuration
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>
2018-08-21 13:31:01 +03:00
Liam Girdwood a984b93df9
Merge pull request #53 from singalsu/update_eq_tune_scripts_proposal
Update EQ tune scripts
2018-08-21 01:26:29 -07:00
Liam Girdwood a01d56f852
Merge pull request #55 from RanderWang/cnl_274
topology: add some virtual widgets to topology of cnl
2018-08-16 05:06:54 -07:00
Rander Wang a3b38152fb topology: add some virtual widgets to topology of cnl
It fixs dai link error in kernel log

Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
2018-08-14 17:47:29 +08:00
Seppo Ingalsuo 085b68058b EQ: Improve example equalizer design scripts
This patch cleans up the scripts and improves the accuracy of speaker
case with more carefully set manual equalizer design parameters.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2018-08-09 17:07:55 +03:00
Seppo Ingalsuo 684737cf5d EQ: Improve Matlab compatibility of equalizer filter design plus cleanup
This patch adds checks into places where Octave and Matlab handle
the used functions differently. In previous version the difference
in bilinear transform caused IIR designs to fail totally in Matlab.

There remains an issue with IIR EQs design with Matlab. In that case
a warning text is printed since the problem with tf2sos() does not happen
with all designs (example_spk_eq is impacted). It will be investigated
and fixed later. The problem does not happen with Octave.

Equalizer defaults had accidentally by default boost of one dB compared
to desired filter scaling. the offset (norm_offs_db) is now restored to
0.

In parametric equalizers design renamed BW to Q for the correct purpose
(peaking filter Q-value).

Fixed bug in filters normalization where loudness based scaling of IIR
filters was using calculated value for the FIR part.

Also cleaned up lot commented out lines and simplified some functions
parameters usage.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2018-08-09 17:07:55 +03:00
Liam Girdwood fe1f3ba180
Merge pull request #52 from xiulipan/travisci
ci: travis: enable travis ci for SOFT
2018-08-09 05:59:44 -07:00
Pan Xiuli 046e763974 ci: travis: enable travis ci for SOFT
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2018-08-09 17:19:05 +08:00
Liam Girdwood ad895a8d00
Merge pull request #50 from plbossart/fix/kmod_scripts_trace
Enhance kmod scripts
2018-08-08 02:31:24 -07:00
Pierre-Louis Bossart ea08faf5b0 kmod_scripts: look for timeout errors and stop loops
Timeout errors happen randomly but need to be checked.
This helps check issues reported at
https://github.com/thesofproject/sof/issues/209

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2018-08-07 20:55:19 -05:00
Pierre-Louis Bossart ef307ba684 kmod_scripts: filter out DMA trace overflow
The occurrence of DMA trace overflows has become so bad I need to
filter out these error messages to test module load/unload. Sad but
what can I say.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2018-08-07 20:02:46 -05:00
Liam Girdwood 91bb08dd8c
Merge pull request #49 from singalsu/add_eq_tune_proposal
SOFT: Add equalizer tuning scripts and small examples
2018-08-07 09:42:47 -07:00
Seppo Ingalsuo 5eb017512e SOFT: Add equalizer tuning scripts and small examples
This patch adds support to SOFT to setup FIR and IIR equalizer types.

The examples scripts for simple FIR loudness effect, IIR loudness effect
and speaker equalization case demonstrate the usage of the tool. The
output ".txt" files will be possible to apply with alsactl to setup
the equalizers in SOF.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2018-08-07 19:05:38 +03:00
Pierre Bossart cfff9e0b04
Merge pull request #47 from plbossart/fix/glk
topology: add APL and GLK Chromebook support
2018-07-31 21:48:20 -07:00
Pierre-Louis Bossart 8e50a510c3 topology: add APL and GLK Chromebook support
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>
2018-07-31 23:39:41 -05:00
Pierre Bossart fdf39244b7
Merge pull request #45 from plbossart/fix/pr43
topology: Fix SectionPCM macros
2018-07-30 10:48:43 -05:00
Pierre-Louis Bossart 7c214b83b7 topology: Fix SectionPCM macros
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>
2018-07-30 10:41:31 -05:00
Liam Girdwood 722a24ab2e
Merge pull request #43 from ranj063/sectionpcm
[RFC] Changes to SectionPCM macros
2018-07-30 11:46:08 +01:00
Ranjani Sridharan dc10876c20 topology: changes to SectionPCM macros
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>
2018-07-25 21:24:20 -07:00
Liam Girdwood debaf8f889
Merge pull request #33 from ranj063/apl-nocodec
topology: add dmic pipeline to apl nocodec topology
2018-07-25 20:16:37 +01:00
Ranjani Sridharan f08c93721d topology: replace PIPELINE_PCM_DAI_ADD with PIPELINE_PCM_ADD
Avoid duplicating dai_add in sof-apl-nocodec topology.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2018-07-24 22:42:56 -07:00
Ranjani Sridharan 27d3e14bdf topology: add comments to sof-apl-nocodec m4 file
This makes it easier to look up the macro definitions.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2018-07-24 09:19:21 -07:00
Ranjani Sridharan 2187702ee2 topology: add dmic pipeline to apl nocodec topology
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>
2018-07-24 09:19:21 -07:00
Liam Girdwood 48de25287e
Merge pull request #42 from ranj063/dai_id
topology: fix BE DAI id to be set to ID (not index)
2018-07-24 10:02:10 +01:00
Liam Girdwood d542a6eff6
Merge pull request #40 from xiulipan/daiindex
dai index alignment
2018-07-24 10:00:46 +01:00
Liam Girdwood df1314b5d8
Merge pull request #41 from plbossart/fix/3dd17dc0
topology: fix Makefile.am
2018-07-24 09:57:24 +01:00
Ranjani Sridharan c7adc3dae6 topology: fix BE DAI id to be set to ID (not index)
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>
2018-07-23 19:49:34 -07:00
Pierre-Louis Bossart eecc7f6665 topology: fix Makefile.am
copy/paste mistake

Fixes: 3dd17dc0 ('dist: fix make dist for topology M4')
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2018-07-23 11:43:32 -05:00
Pan Xiuli 3d903b5e3f topology: Add dai index in DAI SectionBE
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>
2018-07-23 16:28:35 +08:00
Liam Girdwood a25f4b0b02
Merge pull request #36 from keqiaozhang/modules
kmod_scripts: add rt274 and tdf8532 support
2018-07-19 14:47:06 +01:00
Zhang Keqiao e08ea66bd1 kmod_scripts: add rt274 and tdf8532 support
Signed-off-by: Zhang Keqiao <keqiao.zhang@linux.intel.com>
2018-07-19 21:20:55 +08:00
Liam Girdwood 942caa30b1
Merge pull request #35 from keqiaozhang/makedistfix
dist: fix make dist for topology M4
2018-07-19 12:52:31 +01:00
Zhang Keqiao 3dd17dc01d dist: fix make dist for topology M4
Signed-off-by: Zhang Keqiao <keqiao.zhang@linux.intel.com>
2018-07-19 13:39:45 +08:00
Liam Girdwood 02a9995c99
Merge pull request #32 from plbossart/debug/apl-nocodec
topology: sof-apl-nocodec: enable all 6 SSPs
2018-07-18 09:07:37 +01:00
Pierre-Louis Bossart 812c15cb66 topology: sof-apl-nocodec: enable all 6 SSPs
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>
2018-07-17 17:25:16 -05:00
Liam Girdwood 576d15b9b4
Merge pull request #26 from RanderWang/icl
tplg: add nocodec topology for icelake
2018-07-17 11:42:53 +01:00
Liam Girdwood 8555c3b18d
Merge pull request #30 from plbossart/debug/modules
kmod_scripts: clean-up and add pcm512x support
2018-07-17 11:29:37 +01:00
Pierre-Louis Bossart 446e415f6a kmod_scripts: clean-up and add pcm512x support
Update module names, only unload what is loaded and add pcm512x
support for Up^2 board.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2018-07-16 16:37:18 -05:00
Rander Wang 6ba607461d tplg: add nocodec topology for icelake
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
2018-07-16 09:59:02 +08:00
Pierre Bossart 2abbfc0910
Merge pull request #28 from plbossart/debug/pcm512x
topology: fix sof-apl-pcm512x
2018-07-13 13:28:28 -05:00
Pierre-Louis Bossart 4d1b3d15b6 topology: fix sof-apl-pcm512x
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>
2018-07-13 13:14:50 -05:00