Lets not trust that everyone remembers to lint themselves or that they
fetch the repo in order to execute their job.
Also rename workflow file to be a bit more generic
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
Fixes incomplete commit 0e60ec8da4 ("Copy sof-$platform.{ri,ldc} to
sof.{ri,ldc}"), see full rationale there. I missed the
copy/paste/diverge at the time and did it only in the MEU_SIGN case.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
This patch moves DMIC pipeline to run on DSP core 2,
and SSP1 pipelines to run on DSP core 3 for multi-core
verification.
Signed-off-by: Chao Song <chao.song@linux.intel.com>
Signed-off-by: Zhang Keqiao <keqiao.zhang@linux.intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
When multi-core introduced, we need to use uncached address for the
global configuration variables, to make sure they are consistent for all
DSP cores.
When variables change, write through for both cached and uncached
addresses, to ensure the consistency.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
This is similar with:
commit 761bbac5ac ("host: dai: limit number of bytes copied to one
period") which limits the number of copied bytes for CAPTURE direction.
This patch does the same thing for PLAYBACK direction.
We need this with codec adapter component that most of the time
will produce more than period_bytes in a period.
DAI will copy more than on period_bytes at a time and this
affects sound quality.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
When the DMIC pipeline is moved to a core other than the
primary core, the DMIC params and dmic_active_fifos are
not valid. Modify them to be shared data and handle
cache management when accessing/modifying them.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
A sequence of atomic_sub(); atomic_read() breaks atomicity. A single
atomic_sub() should be used instead.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
The _memmap_cacheattr_reset linker script variable has
dedicate cache attribute for every 512M in 4GB space
1: write through
2: cache bypass
4: write back
F: invalid access
For imx, implement is_cached() based on
_memmap_cacheattr_reset.
Without this fix, when loading a topology we get:
sof-audio-of 556e8000.dsp: error: reply expected 20 got 12 bytes
sof-audio-of 556e8000.dsp: error: ipc error for 0x30010000 size 20
sof-audio-of 556e8000.dsp: error: DSP failed to add widget id 0 type 23 name : PCM0P stream Passthrough Playback 0 reply 0
sof-audio-of 556e8000.dsp: ASoC: failed to load widget PCM0P
sof-audio-of 556e8000.dsp: ASoC: topology: could not load header: -22
sof-audio-of 556e8000.dsp: error: tplg component load failed -22
sof-audio-of 556e8000.dsp: error: failed to load DSP topology -22
sof-audio-of 556e8000.dsp: ASoC: error at snd_soc_component_probe on 556e8000.dsp: -22
sof-audio-of 556e8000.dsp: ASoC: failed to probe component -22
asoc-simple-card sof-sound-wm8960: ASoC: failed to instantiate card -22
asoc-simple-card: probe of sof-sound-wm8960 failed with error -22
That's because, on mailbox_hostbox_read() we don't invalidate cache
before reading the address.
Fixes: bfe7707f37 ("cavs: disable data cache operations on uncached addresses")
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
We should return error if the matching in get_stream_index() fail, add
check in the callers, stop using it and return failure when needed.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
A wrong error message was added in helper get_stream_index(), remove to
fix it.
Fixes: 80666b7cc7 ("ipc: component: abstract the component creation API")
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
For speakers SDW2 link is used.
For Headset SDW0 link is used.
add sof-adl-sdw-max98373-rt5682 topology
Signed-off-by: Vamshi Krishna <vamshi.krishna.gopal@intel.com>
Add a new_target_tick to store the new target tick for the next set,
which is used during the reschedule stage.
Update the new_target_tick on tasks done on each core, and do the final
domain_set() at the point that tasks on all cores are finished.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Refinement to make the domain tasks/cores management more clear:
a. update the total_num_tasks and num_cores in the helper pair
domain_register/unregister().
b. update the enabled[core] and enabled_cores in the helper pair
domain_enable/disable().
c. for the completed task, do the domain client/task update in the new
created helper schedule_ll_task_done().
d. cleanup and remove the tasks/cores management from the ll_schedule
helpers schedule_ll_clients_enable(), schedule_ll_tasks_run(),
schedule_ll_domain_set() and schedule_ll_domain_clear().
Without those refinement, the num_clients was not used correctly,
we used it for both num_registered_cores and num_enabled_cores, with
that we observed that it may be changed to '-1' when component/pipeline
is asked for running on a slave core.
This reverts changes in 'commit b500999477 ("scheduler: guard against
subdivision underflow on domain clear")' as it is not needed anymore.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
The flag registered_cores was created to denote the number of registered
cores, but it is also used as the number of the enabled cores today.
Here add a new flag enabled_cores for the former purpose to remove the
confusion and help for the subsequent domain tasks/cores management
refinement.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Rename the 'num_clients' in struct ll_schedule_domain to 'registered_cores'
to reflect the real use of it.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Add return value of domain_unregister(), which will be used for the LL
scheduler and the domain state management in the subsequent refinement.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
The timer_disable() in the timer_register() is wrong, the
interrupt_enable() calling handles the interrupt enabling already,
remove the wrong timer_disable() calling to correct it.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
A scheduler will run on a specific scheduler only, add a core index flag
to schedule_data to denote that.
To schedule or cancel a task, looking for the scheduler with correct
core index to perform the action.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Even though "latest" is being referenced by the current
https://github.com/zephyrproject-rtos/docker-image/tree/072880b3#readme
I've been told it's too "bleeding edge" to be used in CI.
v0.17.3 also has libssl-dev which was the only thing we were missing.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Catching up latest LTS Ubuntu image, 20.04. It is supposed to be minor
upgrade but alsa-lib need to be set default library path,
/usr/lib/x86_64-linux-gnu/. Otherwise topology library loading error
is found for SOF tool build. This is typical error message,
alsatplg: error while loading shared libraries: libatopology.so.2:
cannot open shared object file: No such file or directory.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
There was a assumption /etc/apt/apt.conf has apt proxy settings for
the system. This workaround is not required.
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
Adds pipe-drc-eq-volume-demux-playback.m4 for locating Multiband DRC and EQ
IIR on the path of the internal speaker.
This pipeline will be used by Eldrid first for Audio DRC/EQ offloading
purpose.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
Without this patch codec adapter submenu is displayed after IGO NR
component resulting in something like this:
[*] Codec adapter
[*] IGO NR components
Codec adapter codecs
After this patch is applied the display will be as expected:
[*] Codec adapter
Codec adapter codecs
[*] IGO NR components
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Somehow we only support this configuration for BYT, but there are
Baytrail devices using the same codec.
BugLink: https://github.com/thesofproject/sof/issues/4160
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Failing _in the middle of one log entry_ should really not be treated as
a normal event. The purpose of a logging tool is to find issues, not
hide them.
Don't abort on EOF because of valid use cases like device suspend but
don't do it quietly.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Add a few missing log_err().
Remove calls to ferror() because:
- its return value is a meaningless "non-zero" boolean,
- we don't really care whether the dictionary file is in an error state
or not; an unexpected end of dictionary file is just as bad.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
In general the DMA trace runs until interrupted but there are cases
where it can exit "normally": when reading from a file or stdin, when
some error happens,....
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
The top-level Kconfig has a number of platform and architecture specific
options. For clarity, rename all Xtensa specific options with "XT_"
prefix. Impacted options:
config WAITI_DELAY
config BOOT_LOADER
config HAVE_RESET_VECTOR_ROM
config IRQ_MAP
config INTERRUPT_LEVEL_[12345]
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>