Commit Graph

341 Commits

Author SHA1 Message Date
Tomasz Lauda f724ef1058 edf_schedule: do not pass sof structure anymore
Changes scheduler_init_edf and task_main_init function
definitions as sof structure is no longer needed. It was
only used to pass agent object to main idle task.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-24 11:11:50 +02:00
Tomasz Lauda 79efa9391c topology: revert all cAVS pipelines to 2 periods
Reverts all previosly changed cAVS pipelines from 3 to 2 periods.
Now we have separate buffers for DMA, so there is no need to make
DAI buffers consist of 3 periods. DMA will take care of any internal
hardware requirements.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-24 10:17:03 +02:00
Jaska Uimonen 325f5d088e topology: add mute switch with led to eq capture pipe
Add mute switch with led control to capture playback pipeline's volume
component. This will show in user space alsa controls as 1 element with
2 controls (volume and mute switch). Some user space audio software like
this a lot.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-10-23 17:30:11 +02:00
Jaska Uimonen cc517edd48 topology: add mute led support to mixer control
Add optional mute led token support to mixer control. Optional
parameters at the end of mixer control macro will add mute led tokens
and related parameters to the private data section.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-10-23 17:30:11 +02:00
Jaska Uimonen bcf00a293a topology: add mute led tokens
Add tokens to topology for led use and led direction. Led use is true
for positive integers, false for 0. Led direction 0 corresponds to
playback and positive integers to capture.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-10-23 17:30:11 +02:00
Ranjani Sridharan d01f1629be topology:cml/glk: name the graphs appropriately
Fix the copy/paste errors in naming the keyword-detect
pipeline connections for CML and GLK.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2019-10-22 20:26:58 +02:00
Ranjani Sridharan 4fa588e676 topology: sof-glk-da7219-kwd: fix compilation error
remove the extra closing bracket to remove the compilation error
ALSA lib parser.c:219:(tplg_parse_config) error: unknown section )

ALSA lib parser.c:219:(tplg_parse_config) error: unknown section
pipe-sof-apl-keyword-detect

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2019-10-22 20:26:58 +02:00
Seppo Ingalsuo 1dbd14b30d Testbench: Improve test begin and end marker tones find
Chirp test signals confused the test signal begin marker position
seek and caused false test fails. The test stimulus may produce
stronger cross correlation level than the actual marker. Also
the check omitted that the cross correlation max could be negative
so the test was changed into power domain and use first/last
cross correlation peak above threshold as test begin/end position.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-10-21 21:20:11 +02:00
Seppo Ingalsuo 0324516ec3 Testbench: SRC: Relax gain test tolerance
Gain of SRC varies by 1 dB due built-in attenuation in the filter
coefficients. It was added to avoid signal overshoots to distort
with some challenging music content. When a converter consists of
two filters in series the attenuation duplicates. While SRC is
missing the gain compensation the test criteria needs to be relaxed.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-10-21 21:20:11 +02:00
Seppo Ingalsuo 81cc31b4ab Topology: Add topology to test capture SRC
This patch adds topology sof-apl-src-dmic.m4 to test capture SRC.
The topology instantiates SRCs for 48 -> 8-48 kHz and 16 -> 8-48 kHz
capture. The volume component in pipeline handles PCM format
conversion from the fixed S32_LE DMIC DAI format. Also the bugs in
the earlier non-used pipeline macro are fixed.

The macro pipe-src-capture.m4 is renamed to pipe-src-volume-capture.m4
since it contains a volume component. A new macro pipe-src-capture.m4
is created to provide pipeline building block without volume.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2019-10-17 15:43:31 +02:00
Pierre-Louis Bossart 5a9233033e topology: add rt711 to TGL RVP configuration
Now rt711 is in SDW mode and rt1308 is in I2S mode on TGL RVP

Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2019-10-17 13:53:48 +02:00
Tomasz Lauda 99c16a69e3 ipc: rename ipc_get_comp function
Renames ipc_get_comp function to ipc_get_comp_by_id.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-17 13:39:41 +02:00
Tomasz Lauda 6fa4e4c8ae topology: cavs: switch all pipelines to timer scheduling
Switches all pipelines for cAVS platforms to timer scheduling.
This way we limit the number of interrupt levels processed
in the system. Timer, IPC and IDC are already on level 2 and
DMAs are on level 5.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-16 14:16:18 +02:00
Tomasz Lauda 16d1ca7c41 topology: sof-cml-demux-rt5682-max98357a: fix PCM and PIPELINE ids
Fixes ids for PCM and PIPELINE.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-16 10:54:47 +02:00
Tomasz Lauda ac27df9e70 topology: sof-cml-demux-rt5682: fix SSP index for CML
Builds CML demux topology with the correct SSP index.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-16 10:54:47 +02:00
Tomasz Lauda 3fc0e27b06 topology: sof-icl-rt711-rt1308-rt715-hdmi: use 3 periods for ALH
Changes ICL topology to use 3 periods for buffer connected to ALH DAI.
This topology has been forgotten, when such changes were done.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-16 10:26:20 +02:00
Tomasz Lauda a53e12b8ea topology: cml: fix errors in topologies
Fixes SSP format and used pipeline macro in CML topologies.

Fixes: cfe81f5127 ("topology: cml: cnl: use 3 periods for SSP, DMIC and ALH DAIs")

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-16 09:57:22 +02:00
Tomasz Lauda 95a7c02041 topology: pipe-src-volume-playback: fix number of periods
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-16 09:57:22 +02:00
Jakub Dabek 0bc4e9fde9 host: Fix memory function definitions
Fix alloc definitions for host build.
Function definitions were using defines in their body
which blocked usage of const values in said defines.

Signed-off-by: Jakub Dabek <jakub.dabek@intel.com>
2019-10-11 14:26:08 +02:00
Tomasz Lauda b23a6cc277 topology: intel-generic-dmic: use 3 periods for DMIC DAIs
Changes number of DMIC DAI periods from 2 to 3. This way
we can support both timer and new single DMA channel
scheduling.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-11 14:17:29 +02:00
Tomasz Lauda 5a3546595b topology: tgl: use 3 periods for SSP and DMIC DAIs
Changes number of SSP and DMIC DAI periods from 2 to 3.
This way we can support both timer and new single DMA
channel scheduling.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-11 14:17:29 +02:00
Tomasz Lauda 9bf1f22dbf topology: icl: use 3 periods for SSP, DMIC and ALH DAIs
Changes number of SSP, DMIC and ALH DAI periods from 2 to 3.
This way we can support both timer and new single DMA
channel scheduling.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-11 14:17:29 +02:00
Tomasz Lauda cfe81f5127 topology: cml: cnl: use 3 periods for SSP, DMIC and ALH DAIs
Changes number of SSP, DMIC and ALH DAI periods from 2 to 3.
This way we can support both timer and new single DMA
channel scheduling.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-11 14:17:29 +02:00
Tomasz Lauda b9fbe7798f topology: apl: glk: use 3 periods for SSP and DMIC DAIs
Changes number of SSP and DMIC DAI periods from 2 to 3.
This way we can support both timer and new single DMA
channel scheduling.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-11 14:17:29 +02:00
Tomasz Lauda 1280987999 topology: use DAI_PERIODS in calculation of DAI buffer size
Uses DAI_PERIODS in calculation of DAI buffer size.
In case the DAI_PERIODS value is undefined, we use
DAI_DEFAULT_PERIOD value of 2.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-11 14:17:29 +02:00
Tomasz Lauda 3b90d1e9a5 topology: pipeline: add missing undefine
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-11 14:17:29 +02:00
Tomasz Lauda e56c517a5b topology: use passed DAI_PERIODS
Fixes pipe-dai-capture and pipe-dai-playback pipelines
to use passed DAI_PERIODS value instead of hardcoded.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-11 14:17:29 +02:00
Jaska Uimonen fe68e9b9fe topology: rename dmic pga and control names in capture eq pipe
Rename dmic pga and control names to human readable format as they might
be used by user space software.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-10-09 15:54:52 +02:00
Jaska Uimonen 74a4cfe2d7 topology: enable override of pga and mixercontrol names
Currently m4 parses pga and mixercontrol topology names partly from
static strings, pipeline id's and user defined names. This automagically
differentiates the pga's nicely, but makes some pga control names human
unreadable and error prone for example to to pipeline id changes. So
make it possible to define the pga and control name with PGA_NAME and
CONTROL_NAME.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-10-09 15:54:52 +02:00
Daniel Baluta c8bc4b2c67 topology: Add topology for i.MX8QXP with cs42888 codec
This pipeline adds support for S24_LE, 2 channels, 48KHz playback.

cs42888 codec is connected to i.MX8QXP board on ESAI0 interface
as follows:
i.MX8QXP CPU board <--> i.MX8 base board <-> Audio I/O card
(setup similar with i.MX8QM, so this topology can be used as it is
on i.MX8QM in the future).

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-10-08 17:51:10 +03:00
Jaska Uimonen 6ff30f4fc5 topology: change 50kHz topology to use volume component
Currently having different amount of periods between DAI and the
component before it is not allowed. This is because it is not allowed to
resize dma connected buffers. So make 50kHz topology use src-volume
pipeline, which has additional volume component, which in turn has
correct amount of periods for the DAI connection.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2019-10-07 12:23:22 +02:00
Daniel Baluta 680eb9ce7b topology: Add nocodec topology for i.MX8QXP
i.MX8QXP has one ESAI interface. Create a simple topology
without a codec for playback of 2 channels, 16bits samples
at 48Khz.

Host -> Buffer0 -> Volume -> Buffer1 -> ESAI0

This is useful for testing various components like Dummy DMA,
EDMA and ESAI drivers.

For more information about ESAI you can read i.MX8QXP RM at:
https://www.nxp.com/docs/en/reference-manual/IMX8DQXPRM.pdf

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-10-05 01:09:29 +03:00
Daniel Baluta bfb245e080 topology: Add i.MX8QXP platform info
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-10-05 01:09:29 +03:00
Daniel Baluta 03c6d027b8 topology: Add ESAI related utility macros
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-10-05 01:09:29 +03:00
Daniel Baluta ab0847d5d2 topology: Add ESAI tokens
Only add ESAI MCLK ID token for now

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-10-05 01:09:29 +03:00
Daniel Baluta 1adc257ff7 topology: Extend DAI_CONFIG to allow ESAI DAI
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-10-05 01:09:29 +03:00
Bard Liao 2b4b40587c topology: fix hdmi topology issue for SdW projects
Somehow there is an extra "48" in  DAI_ADD() and it uses wrong
pipeline in PCM_PLAYBACK_ADD().

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2019-10-04 14:51:42 +02:00
Bard Liao 611afaf8f6 topology: add hdmi support for sof-icl-rt711-rt1308-rt715
sof-icl-rt711-rt1308-rt715-hdmi.m4 is based on sof-icl-rt711-rt1308
-rt715.m4 with hdmi supported.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2019-10-04 14:51:42 +02:00
Tomasz Lauda 3afc474518 task: add complete callback
Adds complete callback to task. Some EDF tasks will need to have
additional callback on task completion, which will be executed
in critical section along the setting task state to complete.
Doing it during regular execution is not enough, because it's done
on passive level and we want to avoid any race condition.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-01 11:24:40 +02:00
Tomasz Lauda eb0d309cf9 task: rename func to run
Renames task's func to run to better show intention of this callback.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
2019-10-01 11:24:40 +02:00
Sathya Prakash M R 7663447632 topology : update max98357a configuration in CML
With m/n divider support, we can now support 24 bit/ 48k
on max98357a.
Add check to only use update BCLK if m/n support is present.
Else fallback to older settings.

Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
2019-09-27 16:36:02 +01:00
Sathya Prakash M R f0264aa0c5 topology: Add CML topology support for rt1011 SPK AMP
Add rt1011 speaker CML Audio topology on top of
sof_rt5682 where RT1011 is configured as
TDM 4 SLOT ( 2 CH PB and 4 CH Feedback), 100 FS BCLK.
BCLK delay is added for supported ABI versions.

Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
2019-09-27 16:36:02 +01:00
Sathya Prakash M R 61d153bbe3 topology: Add ABI version utilities
Some of the features on topology need to have
ABI version check. This adds few definitions to
check ABI version being 3.9 or more.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
2019-09-27 16:36:02 +01:00
Pierre-Louis Bossart b5f26539de topology: add topology for Up board w/ Hifiberry DAC+ using 50kHz SRC
The PCM512x requires 32-bit data words, so the only solution is to use
a 3.2MHz bit clock and a 48->50kHz SRC.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2019-09-27 16:33:17 +01:00
Sathyanarayana Nujella 7046e849cb topology: tgl_rt1308: update link_id's for iDisp Dai Config's
Update the topology to use the same iDisp link_id's as in
tgl-rt1308 m/c driver.

Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com>
Signed-off-by: Jairaj Arava <jairaj.arava@intel.com>
2019-09-26 10:15:25 +02:00
Curtis Malainey 0b4712906d topology: sof-cht-max98090 reduce buffer size of media pipeline
Reduce size of buffers so dsp doesn't run out of memory on topology load

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-09-20 16:58:44 +02:00
Curtis Malainey aa3b18ed71 topology: sof-cht-max98090 move DAI definition above media pipeline
The DAI definition needs to come first otherwise the media pipeline with
be parsed incorrectly resulting in a failure to load the topology

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-09-20 16:58:44 +02:00
Curtis Malainey 1571af188b topology: cht-max98090 add missing virtual widgets
Topology will fail to probe without these widgets

Signed-off-by: Curtis Malainey <cujomalainey@google.com>
2019-09-20 11:44:19 +02:00
Liam Girdwood 25c8990d39 fuzzer: add BSW platform and fix fw_ready for CHT.
CHT was missing fw_ready callback. Add BSW platform.

Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
2019-09-20 10:09:17 +01:00
Liam Girdwood 689ce5ac99 fuzzer: byt: align macros to line length limit.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
2019-09-20 10:09:17 +01:00