Commit Graph

527 Commits

Author SHA1 Message Date
Marcin Maka f3e80af1e7 logger: add WARN prefix for warning level traces
Warning traces prefixed and painted in yellow.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
2020-03-06 10:15:04 +01:00
Marcin Maka 11744cc588 logger: improve the format of the output
Log entry parameters format is compacted to reserve more
space for the text.

Max entry location length is increased to 24 characters.

Timestamp and component name/id use colors to improve
readability.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
2020-03-06 10:15:04 +01:00
Marcin Maka fcd0895b74 trace: remove legacy trace classes
TRACE_CLASS ids used by parts switch to uuid-based logging
marked as unused.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
2020-03-06 10:15:04 +01:00
Marcin Maka 19e11c6e23 tools: add support for static uuids section
Content of static uuid section is appended to the ldc file
along with a new special header by rimage.

New ldc file part is read by the logger to decode
uuid pointers provided in traces into nice names.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
2020-03-06 10:15:04 +01:00
Marcin Maka 322e150080 trace: add uuid to trace entry and remove trace ids
New trace entry parameter is defined: uuid of the source.
Technically, this is an address of uuid entry linked
inside a special section in elf.

Has_ids is removed from the static log entry since eventually
all entries will use uuids and -1 detection is good enough
detection for those who still do not provide ids.

Note: both changes are done in a single patch to avoid two
major dbg-abi version bumps.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
2020-03-06 10:15:04 +01:00
Marcin Maka ef5eda7da4 logger: fw ver verification moved to function
Optional fw version verification moved to separate function
in order to modularize code of convert().

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
2020-03-06 10:15:04 +01:00
Yong Zhi 0c7514e379 topology: add JSL tplg for max98360a speaker amp.
Add MAX98360a support for Waddledoo product.
Tested mono playback with amp EVB on SSP1 in i2s mode.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2020-03-05 22:10:09 +00:00
Fred Oh 752f086bdc topology: add platform sku files to config platform settings
icl, cml whl are sharing some toplogy files. Create platform specific files
including DSP configuration, SSP setting and DMIC to simplify platform
settings.

Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
2020-03-04 22:17:15 +00:00
Tomasz Lauda 3609fa6fc6 ipc: use notifications allocated by sources
Changes implementation of notifications allocation.
Instead of using common empty list of messages let's
switch to allocating message per source of notification.
This way we won't have problem with memory and lack of
empty messages and also we will be able to optimize memory.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2020-03-02 13:28:52 +01:00
Marcin Maka 22ddf1e210 abi: define debug abi version for user space dbg interfaces
The sof-logger and potentially other debug API clients perform ABI
compatibility check using the single FW ABI version. The same one is used
by the primary FW client which is the kernel driver. If there is a change
made to the debug API, the main ABI has to be updated to protect integrity
of the debug tools while such a change may not affect the kernel driver
at all.

This patch introduces new debug ABI version to be increased when changing
user space debug interfaces while the the main ABI is not affected.
Recompilation and installation of the new driver every time the tunneled
debug protocol is upgraded may be avoided.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
2020-02-27 13:07:17 +01:00
Karol Trzcinski 51a3234458 testbench: Fix build error
There was missing argument in file_get_hw_params, what breaks compilation.

Fixes: 2b84838 ("Testbench: Instantiate file component as host")
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
2020-02-27 11:19:39 +02:00
Seppo Ingalsuo 109450e6fd Tools: Test: Update SRC testbench run script
This patch updates the SRC to run with the updated test topologies
set. The script is also cleaned up a bit.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-02-26 22:29:10 +00:00
Seppo Ingalsuo a4c663fbd7 Tools: Fix build of fuzzer due to testbench topology parser updates
This patch updates the load_aif_in_out(), load_dai_in_out(),
and load_pipeline() calls similarly as done for testbench to
prevent the Fuzzer build fail.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-02-26 22:29:10 +00:00
Seppo Ingalsuo 0bce9e4f36 Testbench: Instantiate file component as host or DAI and other updates
This patch fixes the fail to execute tests due to recent pipeline
updates. Now the fileread and filewrite component is instantiated
as host or DAI depending on stream direction. The DAI file component
is added the capability to report HW stream parameters. In testbench
case the stream parameters originate from command line parameters.

The file params() handling is updated to be similar as in other
components to successfully propagate the parameters.

The added capture pipelines support is not fully functional and will
be fixed later.

The testbench cleanup includes elimination of global variables for
certain component ids. The needed misc parameters were added to
testbench parameters struct that is passed through most topology
parsing functions.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-02-26 22:29:10 +00:00
Seppo Ingalsuo fc167f5e56 Tools: Test: Clean up test topologies build and update pipeline macros
This patch updates the tplg-build.sh script by omitting DMIC capture
test topologies generation, tone topolgies generation due to no
use and no maintenance. They can be fixed later.

The all DAI permutations are generated only for volume pipeline. The
src is removed. Instead a new algorithms topologies generation loop
is added for UP2 (APL) compatible topologies. The algorithms are
ASRC, FIR, IIR, and SRC.

The test-all, capture, playback macros are updated to use
PIPELINE_PCM_ADD and set up DAI for SCHEDULE_TIME_DOMAIN_TIMER. The
duplication of TEST_DAI_PORT in macro call is replaced by 0 to
prevent topology load fail on device.

The test-equalizer-playback-ssp.m4 is removed as obsolete.

Pipelines are added for FIR and IIR playback and capture. SRC playback
pipeline is improved by making tokens instance specific. The SRC
capture pipeline macro is only cosmetically improved.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-02-26 22:29:10 +00:00
Daniel Baluta 8780a88876 topology: Add topology for i.MX8MP with wm8960 codec
This pipeline adds support for S32_LE, 2 channels, 48KHz
playback/record.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2020-02-26 18:11:41 +02:00
Seppo Ingalsuo 8b595069dc Fuzzer: Fix build fail for missing ASRC loader
This patch adds load of ASRC component to successfully build
the Fuzzer. The common topology parser with testbench depends
on load_asrc() function.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-02-24 11:51:10 +00:00
Seppo Ingalsuo 7dd11a96c6 Topology: Remove ASRC DMIC capture demo topology
The DMIC capture is added to APL ASRC PCM512x topology so this
topology can be removed.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-02-23 21:34:40 +00:00
Seppo Ingalsuo ac0b79dad9 Topology: Add capture pipelines to APL ASRC PCM512x demo topology
Since the new sof pcm512x machine driver supports the DMIC backend
it's practical to move the ASRC capture pipelines into this topology
to avoid need to change into nocodec mode for ASRC capture tests.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-02-23 21:34:40 +00:00
Seppo Ingalsuo 327631d089 Topology: ASRC: Fix mistake with source and sink buffers count
This patch fixes the apply of DAI_PERIODS for playback sink
and capture source buffers. Also the comments for components
instantiating are fixed to order sink, source as they are
in the parameters to avoid confusion.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-02-23 21:34:40 +00:00
Marcin Maka 247af133b8 comp: init back ptr to driver early in new
Back pointer must be initialized before any instance
level logging is performed by the new() operation since
the instance identification requires access to the uuid
that will be implemented on the component driver level.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
2020-02-19 20:51:58 +00:00
Marcin Maka 210f907ba2 comp: improve access to component properties
Static inline getters provides better control of use
component properties as L- and R-values.

They also make changes to the common component data defs
easier and transparent for clients (no code changes, just
recompilation required).

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
2020-02-19 14:22:11 +00:00
Adrian Bonislawski 1b2a6ef02e probe-app: initial code
Probes will extract data for several probe points in one stream
 with extra headers. This app will read the resulting file,
 strip the headers and create wave files for each extracted buffer.

 Usage to parse data and create wave files: ./sof-probes -p data.bin

Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
2020-02-19 12:28:59 +00:00
Rander Wang e9fd746d70 Revert "topology: sof-icl-rt711-rt1308-rt715: refine dai index setting"
This reverts commit b90f4dd044.
The device id of rt715 and HDMI will be dynamic with this PR. This is
not friendly to UCM design. Let's deal with the id hole in machine
driver.

Signed-off-by: Rander Wang <rander.wang@intel.com>
2020-02-14 14:28:14 +00:00
Amery Song 1fd1464b9d Topology: fix wrongly configured pipeline for sof-cml-rt5682-kwd.m4
Pipeline PCM0P and PCM0C in sof-cml-rt5682-kwd.m4 is wrongly
configured. This patch fix this error by removing redundent
'SSP' argument.

Signed-off-by: Amery Song <chao.song@intel.com>
2020-02-14 14:24:38 +00:00
Seppo Ingalsuo 274049c5a2 Testbench: Add packed attribute to file component IPC struct
This patch fixes build fail of testbench. The packed attribute
is added similarly as in IPC structs of other components. The
reported error with gcc 9.2.1 is:

sof/tools/testbench/file.c:408:11: error: converting a packed
‘struct sof_ipc_comp’ pointer (alignment 1) to a
‘struct sof_ipc_comp_file’ pointer (alignment 8) may result in
an unaligned pointer value [-Werror=address-of-packed-member]
408 | (struct sof_ipc_comp_file *)comp;

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-02-11 17:00:09 +00:00
Rander Wang 2eed3db430 topology: tgl: add support for tgl with 711 & 1308 in sdw mode
The file is derived from icl_711_1308_715, but 715 is not included.

Signed-off-by: Rander Wang <rander.wang@intel.com>
2020-02-10 10:47:09 +00:00
Rander Wang fcb2d65bfc topology: tgl: add i2s in topology name
Rename topology file for 1308 in i2s mode according
to machine driver.

Signed-off-by: Rander Wang <rander.wang@intel.com>
2020-02-10 10:47:09 +00:00
Rander Wang b90f4dd044 topology: sof-icl-rt711-rt1308-rt715: refine dai index setting
If mono is defined, dai index 3 is not used and DMIC uses index
4. Now sdw machine driver generates dai dynamically with consecutive
dai index. To align with machine driver, refine topology to also use
consecutive index.

Signed-off-by: Rander Wang <rander.wang@intel.com>
2020-02-10 10:47:09 +00:00
Ranjani Sridharan 55afcf5496 topology: graph: Add PIPELINE_ID to graph name
Add the PIPELINE_ID to the graph section name to
make them unique for the playback and capture pipelines
that are associated with the same SSP. Also fix the
comment while we're at it.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2020-02-04 14:45:58 +01:00
Seppo Ingalsuo 5dcace1211 Testbench: Propagate fail from topology parse load widget
This patch avoids the testbench to crash when file read or write
file open was not successful. E.g. invoking testbench with
incorrect input file name caused a segfault.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-31 21:06:39 +00:00
Seppo Ingalsuo 24bbea3ef2 Testbench: Force scheduler to EDF
This patch adds force of scheduler type to EDF since it is the
only simplified scheduler version that is included to testbench.
The schedule_task_init_ll() stub is updated to call schedule_task_init()
to prevent a check for NULL run operation to fail. The patch also
changes the memory allocation to calloc() to clear the reserved data
to value NULL for similarity with rzalloc() in SOF.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-31 21:06:39 +00:00
Seppo Ingalsuo 5b89f29445 Testbench: Add pipeline trigger stop to test end
This patch adds the missing call to end of test run. It prevents
the pipeline reset to print error traces about illegal state
change.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-31 21:06:39 +00:00
Seppo Ingalsuo 71d9dbe62b Testbench: Force core to zero to be able run the pipeline
This patch sets in topology parsing core to zero for file reader,
file writer, and buffer since it was left uninitialized and caused
the core check in pipeline run to fail.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-31 21:06:39 +00:00
Seppo Ingalsuo 1f09719260 Testbench: Fix file component data read and write
This patch retrieves the channels count either from sink or
source. The previous code failed for file read since source
is NULL. A similar kind of mistake also caused the period_bytes
to be calculated as zero.

Finally as code simplification the calculation of bytes is moved
to variable declaration to avoid duplicated statement.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-31 21:06:39 +00:00
Seppo Ingalsuo 40f7cf7a28 Testbench: Initialize system notify
This patch adds the initialization to testbench start code. Without
it the notification from buffer consume/produce causes segfault.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-31 21:06:39 +00:00
Daniel Baluta 8db2b101ee topology: imx8: Use s32le format for wm8960 codec
wm8960 codec drivers the master clock and for s24le we cannot easily
derive the bitclk.

So, switch to s32le. SAI supports s32le format. The initial s23le was
added because topology was based on sof-imx8qxp-cs42888.m4 which uses
ESAI and that's limited to s24le.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2020-01-30 17:07:59 +02:00
Daniel Baluta 03ddb48062 topology: imx8: Change DAI name
For now we are using generic simple-card as a machine driver, and
the DAI name must follow certain pattern <dai-name>-<codec-name>.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2020-01-30 17:07:59 +02:00
Seppo Ingalsuo 6a3b2a9f46 Tune: Fix help text for SRC generator
This patch corrects the shown parameters orders for help text
and updates the copyright text style.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-29 14:30:53 +00:00
Seppo Ingalsuo 6f99d71d58 Tune: SRC: Fix rate exclusion in generator script
This patch fixes a mistake that forces generation of rate into
fs_inout matrix diagonal. The purpose of this test is to enable
SRC to pass equal input and output rate, so in case not equal
input and output rates the generator would not disable such
conversion if requested.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-29 14:30:53 +00:00
ArturX Kloniecki 939d01d4ff cleanup: Remove logger.exe binary that got accidentally added.
Signed-off-by: ArturX Kloniecki <arturx.kloniecki@linux.intel.com>
2020-01-29 15:07:04 +01:00
Adrian Bonislawski 716bc4bdd8 probes: initial implementation, kconfig and IPC params
Probes are a feature that will allow user to extract and inject data
from/into buffers at runtime.

Basic flow is as follows:
1. Initialization of probes subsystem, allowing for simultaneous
   configuration of DMA for extraction. If extraction DMA is not setup
   during init, extraction probes will be disabled.
2. Configuration of probe points, preceded by DMA configuration in case
   of injection probes.
3. Probes are now in operation and will send single multiplexed stream from
   extraction probe points and inject data into specified buffers.
4. State of probes and associated DMAs may be retrieved via INFO functions.
5. Removal of probe points.
6. Removal of injection DMAs.
7. Deinitialization of probes subsystem.

Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
Signed-off-by: ArturX Kloniecki <arturx.kloniecki@linux.intel.com>
2020-01-29 11:26:58 +01:00
Seppo Ingalsuo 0e83f7d094 Topology: Set ASRC asynchronous mode plus add WM8804 and HDA tests
This patch adds two new test topologies. One is for testing ASRC
timestamp retrieving from HDA and one for WM8804 slave SSP interface
for APL. It is useful with UP^2 board with HiFiBerry Digi+ SPDIF
interface.

The asynchronous mode token is switched on in ASRC capture and
playback pipelines. It switches on DAI skew tracking feature
in ASRC.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-27 16:47:34 +00:00
Guennadi Liakhovetski a40175724f topology: APL: add 2 DMICs to sof-apl-pcm512x
Up^2 boards have a DMIC connector. Add support for such DMIC add-on
boards. Also adjust iDisp interface DAI IDs to match the new
sof_pcm512x.c Linux machine driver.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-01-23 15:59:43 +00:00
Guennadi Liakhovetski ea8055de14 topology: APL: add an SSP5 capture pipeline
HiFiBerry DAC+ADC codec card also contains a line-in jack for analog
audio recording. This patch adds support for it.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2020-01-23 15:59:43 +00:00
Karol Trzcinski 9508d2efbd buffer: Create audio stream buffer
When new component will need to process audio data in two steps,
then temporary circular buffer will be needed. Also extra information
about data stream may be needed to choose right algorithm or assert data
compatibility.

Currently only 'comp_buffer' has such a possibility but it is component
defined in topology - with much wider capabilities - and shouldn't be
created inside component just to hold temporary data stream.

Use introduced structure in processing functions, move api responsible
for data processing from buffer to audio_stream module.

Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
2020-01-22 14:56:22 +00:00
Pierre-Louis Bossart b00869e204 topology: fix DMIC device names
DMIC01 is just useless for a user. After multiple rounds of
discussion, we agreed to remove numbers (which could be understood as
a mic position) or a frequency (which is misleading since it can be
updated to e.g. 96kHz by topology), so by default the DMIC interface
is called just that...

Conversely, we add a clear 16kHz qualifier for the low-frequency
path. While in theory the frequency can be changed with modifications
of the FIR filter, applications do need 16kHz support.

Also make sure we only use 'DMIC' for 'PCH-attached DMICs'. For
RT715-based solutions, the microphones can be analog, so use more
generic 'Microphones' description.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2020-01-21 16:21:26 +00:00
Seppo Ingalsuo 77b86202b1 DMIC: Add support for decimation factor 12
This patch adds driver capability to capture with combination
of 96 kHz and 16 kHz sample rates from FIFO A and FIFO B by using
decimation factor 12 in FIR. The earlier capability for 96 kHz was
with single FIFO only due to lack of suitable decimation filter
for the 16 kHz output.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-21 15:31:19 +00:00
Seppo Ingalsuo f08ec9a4b3 Topology: Apply high-pass filter to rt715 capture pipelines
This patch mitigates the start transient in capture from rt715
codec. The start transient is DC pulse that can be attenuated
significantly with a high-pass filter. The pipeline macro
pipe-highpass-capture.m4 adds a 40 Hz second order IIR filter
into the beginning of pipeline. The volume control in this pipeline
is also set to a longer 400 ms ramp length (normally 250 ms) that
is sufficient to conceal PCM waveform issues before the IIR filter
settles to DC level.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-21 10:30:45 +00:00
Janusz Jankowski 38c84de747 trace: add mn class
Add trace class for M/N divider.

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
2020-01-21 02:34:48 +01:00
Pan Xiuli 92ccbe2bfb tools: test: remove qa test cases
test cases used by CI and QA is now in sof-test
https://github.com/thesofproject/sof-test

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2020-01-20 16:32:50 +00:00
Pan Xiuli 81d92edacb tools: remove kmod scripts from sof
kmod scripts is now integrated to sof-test repo.
https://github.com/thesofproject/sof-test/tree/master/tools/kmod/

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2020-01-20 16:32:50 +00:00
Tomasz Lauda 7867944946 component: use comp_driver_info during registration
Changes component driver registration to use comp_driver_info
as an element to be put into the drivers list. This way
comp_driver can be constant and comp_driver_info can be
marked as shared in the future.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2020-01-20 14:37:01 +00:00
Tomasz Lauda 47917c1f3d component: pass sof context to sys_comp_init()
Passes sof context pointer to sys_comp_init() function.
It will be needed in order to add comp_driver_list to
sof context.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2020-01-20 14:37:01 +00:00
Tomasz Lauda 29de310834 ipc: merge ipc_shared_context
Removes shared_ctx from ipc structure and add its members
directly to struct ipc. From now on ipc struct needs to
be shared to support SMP. It's done in order to eliminate
possible wrong pointer to shared_ctx, since it was a part
of cached data.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2020-01-16 21:58:10 +00:00
Seppo Ingalsuo e0a9afe6a7 Topology: Apply high-pass for HDA capture streams
This patch replaces in topology sof-hda-generic.m4 the use of macro
pipe-volume-capture.m4 usage with a new macro pipe-highpass-capture.m4.
The used 40 Hz cut-off is sufficient to suppress the DC pulse in the
beginning of capture from headset with minimal impact to other
applications such as recording music.

The capture volume ramp length is changed from 250 ms to 400 ms. The
longer ramp is feasible because the microphone path seems to open
at 500 ms from capture. It helps to attenuate the remaining noises
in the beginning of capture.

The patch also adds additional high-pass responses macros for
topology with different 20-50 Hz cut-off frequencies into
SOF/tools/topology/m4.

The changes for Matlab/Octave script example_iir_eq.m that
generated the filter coefficients are included here as well.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-16 19:48:33 +00:00
Tomasz Lauda 6524cc89c1 sof: add getter for sof main context
Adds getter function for acquiring pointer to sof main context.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2020-01-11 16:10:04 +00:00
Yong Zhi 5340225a7c topology: Add JSL da7219+max98373 support
Add topology support for max98373 and da7219
codec for JasperLake platform.

Signed-off-by: Yong Zhi <yong.zhi@intel.com>
2020-01-08 09:09:02 +01:00
Seppo Ingalsuo 707ffa7f07 Topology: FIR: Increase maximum size of configuration data blob
This patch increases the max. size to 4 kB. Such size allows
setting up e.g. 8ch 192 tap FIR. The multiple part configuration
IPC support has existed in the EQ component for a while and this
limit in topology has remained not updated.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2020-01-07 15:43:34 +00:00
Tomasz Lauda 5f85648c5a alloc: create enum type for heap zones
Creates new mem_zone enum type for heap zones.
We don't want to leave them as flags and allow
zone combinations.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-12-23 21:11:48 +01:00
Tomasz Lauda bc246b5da8 alloc: remove zone argument from balloc functions
Removes zone argument from balloc related functions.
They always use RZONE_BUFFER, so passing something else
is very misleading, especially it changes nothing.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-12-23 21:11:48 +01:00
Tomasz Lauda 6a8a3d02f1 alloc: extract flags to separate argument
Extracts flags from zone to use them as a separate argument
during allocations. It allows for addition of new zones and
also is more clear this way.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-12-23 21:11:48 +01:00
Lech Betlej aea593b128 tools: add community key signature to sof_ri_info
A public key signature of community key used to sign FW
binaries is added. The script can provide on output info if
evaluated FW image was signed with the key.

Signed-off-by: Lech Betlej <lech.betlej@linux.intel.com>
2019-12-20 17:07:07 +01:00
Seppo Ingalsuo f7b9e6270f Tools: EQ: Make a light FIR configuration to test with GCC build
The Xtensa GCC build on APL platform can process about 40 taps
FIR filter so it is useful to have one such configuration. The
eq_fir_mid.txt is be applied with sof-ctl tool.

The patch contains the Octave script modification. The print of final
filter length is added to blob packer script to see the resulting
length when the filter is generated. The small filter spec change
helps the filter tool to achieve result that is close to requested
shape.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-12-20 13:47:18 +00:00
Marcin Maka 3aa7b21a2b tools: sof_ri_info: display fw extension parameters
Detailed information from Platform Fx Extension, part
of the manifest may be useful for a deeper signed image
analysis.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
2019-12-20 11:47:14 +01:00
Curtis Malainey c1be04e64c EQ: GUI: Remove globals
Globals should not exist if they don't have to, they are limiting to
extensibility

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Curtis Malainey 64f60cdad3 EQ: GUI: Add remote deployment
Add function to deploy eq automatically to dut at runtime

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Curtis Malainey 33048b7f72 EQ: GUI: Load dsp.ini from ChromeOS
Add function that parses dsp.ini files into the GUI format and then into
SOF format.

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Curtis Malainey 50e27a10b0 EQ: GUI: Add external control window
Add window for controlling loading and deployment

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Curtis Malainey fe2d9c197f EQ: Handle edge case in peaking filter
Handle div by 0 case for gui

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Curtis Malainey 30bbfb49bb EQ: Add chromium signal processing elements
Add modules for signal processing of biquad filters needed for chromium

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Curtis Malainey 65c6da750a EQ: Add gui for IIR filters
Recreate gui for audio-tuning.appspot.com using SOF config. For IIR
filters only currently. Once DRC is ported then GUI can be ported as
well.

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-12-19 20:44:35 +00:00
Tomasz Lauda 8fe7b72682 edf_schedule: remove priority
Removes need to pass EDF task priority during initialization.
Also removes priority definitions, which were only used by
EDF scheduler. Priorities of EDF tasks are now deprecated.
We are scheduling based only on deadline.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-12-19 20:29:59 +00:00
Tomasz Lauda c42f9bd621 task: extract task ops to separate struct
Extracts task operations to separate struct. This way we can
add additional ops without need to endlessly adding parameters
to schedule_edf_task_init function.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-12-19 20:29:59 +00:00
Tomasz Lauda 2baeeadeda schedule: separate task init functions for schedulers
Separates task init functions for all currently supported schedulers.
Some of the parameters are not common, so there is no need to
artificially extend function signatures.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-12-19 20:29:59 +00:00
Ranjani Sridharan f587993c75 topology: byt/cht: Add virtual widgets
Add the required virtual widgets to the BYT codec topology
to suppress the errors seen due to the dapm routes set up
in the machine driver and move them to the common header.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2019-12-18 15:38:15 +00:00
Pan Xiuli aa732a37dc topology: fix bdw codec topology
Add support for bdw-rt5677
Fix load issue with bdw codec toplogy issue, no SMP support.
Add virtual widgets.

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2019-12-16 14:03:41 +00:00
Pan Xiuli a7bf07a772 topology: add bdw nocodec topology
Enable nocodec topology for bdw.

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
2019-12-16 14:03:41 +00:00
Jairaj Arava b4e6076840 topology: add TGL tplg for max98357a amp and ALC5682 Headset codec
This patch adds TGL topology for the DUT which has the
following audio configuration:
	Max98357A speaker (I2S), ALC5682 headset codec (I2S),
	DMIC, 4 HDMI devices.

Signed-off-by: Jairaj Arava <jairaj.arava@intel.com>
Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com>
2019-12-16 14:48:42 +01:00
Libin Yang 03f265680b topology: add ehl_rt5660 topology
Add ehl_rt5660 topology with RT5660 headset, DMIC and 4 HDMI.

Signed-off-by: Libin Yang <libin.yang@linux.intel.com>
2019-12-16 14:22:34 +01:00
Libin Yang b75a50803f topology: add ElkhartLake nocodec support
Reuse tigerlake nocodec m4 file for elkhartlake nocodec
as they are using the same topology.

Signed-off-by: Libin Yang <libin.yang@linux.intel.com>
2019-12-16 14:22:34 +01:00
Libin Yang f12d202114 topology: add ElkhartLake platform info
Modify from tigerlake.

Signed-off-by: Libin Yang <libin.yang@linux.intel.com>
2019-12-16 14:22:34 +01:00
Amery Song e9bec4a559 kmod_scripts: add support for snd_soc_cml_rt1011_rt5682
Add snd_soc_cml_rt1011_rt5682 module removal support
for CML with rt1011 and rt5682 codecs.

Signed-off-by: Amery Song <chao.song@intel.com>
2019-12-13 10:51:43 +01:00
ArturX Kloniecki 81936774c8 notifier: Add traces for notifier.
Signed-off-by: ArturX Kloniecki <arturx.kloniecki@linux.intel.com>
2019-12-12 11:08:00 +01:00
Lech Betlej 98d7ab2162 tools: add APL key signature to sof_ri_info
A public key signature of Intel production key used to sign APL
binaries is added. The script can provide on output info if
evaluated FW image was signed with the key.

Signed-off-by: Lech Betlej <lech.betlej@linux.intel.com>
2019-12-10 11:51:03 +01:00
Marcin Maka 99d397b1ec tools: add sof-ri-info to print fw image manifests content
This script parses manifests included in sof binary and prints
extracted metadata in readable form.

It is particularly useful to get information about image signature
parameters.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
2019-12-04 13:04:12 +01:00
Bartosz Kokoszko 74e1bcc786 component: move pcm params from component to buffer struct
Moving pcm params from component to buffer is the first
step to improve parameter propagation within pipelines. This commit
moves several pcm paremeters (framet_fmt, buffer_fmt, rate,
channels, chmap, except direction) to comp_buffer struct.
Some of specific parameters are moved to private host and
kpb data.

Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
2019-11-29 10:58:33 +00:00
WojciechX Wittbrodt 9ca0a14b3e Topology: Fix DAI_ADD function call in sof-cml-rt1011-rt5682 topology
This patch fixes DAI_ADD function call for speaker pipeline.
The function call had incorrect number of agruments passed
which was causing issues with playback.

Signed-off-by: WojciechX Wittbrodt <wojciechx.wittbrodt@intel.com>
2019-11-28 13:11:11 +00:00
Seppo Ingalsuo a62f562378 ASRC: Add topology files
This patch adds all the topology files related parts and two complete
test topologies to test ASRC playback and capture with APL platform.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-11-27 09:49:48 +00:00
Seppo Ingalsuo c9bf3dc15a ASRC: Add ASRC into testbench
This patch adds the ASRC component and the new tokens into topology
parser and testbench component loader.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-11-27 09:49:48 +00:00
Seppo Ingalsuo adfb6d1dff ASRC: Addition to sof-logger
This patch adds print of text ASRC into sof-logger for ASRC
originated traces instead of unknown.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-11-27 09:49:48 +00:00
Pierre-Louis Bossart 0bbe40dad5 topology: add support for BYT-CR and additional CHT configurations
The BYT-CR package only exposes SSP0 and SSP1, with SSP0 typically
used instead of SSP2 for the audio codec connection. Since it's proven
nearly impossible to patch the topology on the fly in the kernel,
let's brute-force generate topologies for all known BYT-CR platforms
using macros for the SSP number. The BE stream name remains constant
at SSP2-Codec since it's not modified by the kernel.

While we are at it, do the same for CHT platforms.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2019-11-27 09:43:38 +00:00
Tomasz Lauda 078c3c1a71 topology: kwd: remove volume from pipeline
Removes volume component from KWD pipeline. It was only required to perform
pcm conversion, but since DAI is now capable of doing that, usage of
volume is deprecated.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-11-26 13:42:17 +00:00
Jaska Uimonen db7671acba topology: sof-hsw-rt5640.m4: remove topology
Remove as unsupported platform.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-11-25 16:12:14 +00:00
Jaska Uimonen 0153022712 topology: sof-bdw-codec.m4: add scheduling dai to media pipe
Media pipe is missing the scheduling component, so move it after the dai
definition and add the scheduling component.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-11-25 16:12:14 +00:00
Jaska Uimonen 8d62caef00 topology: sof-cml-rt5682.m4: remove extra parameters
sof-cml-rt5682 dmic definition has some extra parameters that should be
removed.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-11-25 16:12:14 +00:00
Jaska Uimonen aa007bbd84 topology: sof-imx8qxp-wm8960.m4: add time domain DMA
Add time domain DMA explicitly to DAI_ADD.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-11-25 16:12:14 +00:00
Jaska Uimonen 254b3a8db0 topology: sof-imx8qxp-nocodec.m4: add time domain DMA
Add time domain DMA explicitly to DAI_ADD.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-11-25 16:12:14 +00:00
Jaska Uimonen f14ddac377 topology: sof-imx8qxp-nocodec-sai.m4: add time domain DMA
Add time domain DMA explicitly to DAI_ADD.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-11-25 16:12:14 +00:00
Jaska Uimonen b992b7c69f topology: sof-imx8qxp-cs42888.m4: add time domain DMA
Add time domain DMA explicitly to DAI_ADD.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-11-25 16:12:14 +00:00