Renames RZONE_FLAG_UNCACHED to SOF_MEM_FLAG_SHARED.
It's more generic name, which describes more accurately what is
the intention of this flag. Most of the platforms don't have
uncached regions, which can be used to synchronize data between cores.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
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>
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>
Removes zone argument from alloc_trace_*_heap functions.
They are using specific heaps anyway, so passing zone is pointless.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Removes unnecessary zone argument passed to some of the
internal functions. It was previously used to check for flags,
but since they were extracted to separate parameter, it's no
longer needed.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
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>
That field is intended to point to the first free block of this
particular block map (part of heap). As long as the heap doesn't fill
up the old code manages it correctly.
However once the block map becomes full (all blocks are occupied)
this member will no longer point to a free block.
Without this fix rfree may fail to update this pointer to point to the
correct block when freeing a block from a full heap. Not updating this
will cause subsequent memory allocations to hand out used blocks as if
they were free. This fix ensures that will not happen in this edge case.
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
This is an exception similar to the kernel pr_...() family.
Having a log string in a single line is much more readable for
a person who works with the trace output frequently.
Splitting trace strings into multiple lines seems to be a worse
alternative since it generates another warning anyway and encourages
developers to create very long trace entries which are wrapped
on a trace console and less readable.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Lower power state must be disabled before host wakes up and
sends 'quit D0ix' to make sure the draining goes at full speed.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Driver may enable/disable the pm-runtime of dsp master
core by using SOF_PM_PPG flag in PM_GATE ipc command.
Platform may decide to lock the master core in a high
state (or range of states) when pm-runtime is disabled
by the driver in order to guarantee higher performance.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
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>
This patch adds the note into kconfig for COMP_FIR about
max. filter tap count restriction for xtensa gcc version.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch improves a bit (about 1.3%) the execution speed with a
simpler pointer arithmetic based FIR filter core. The comments
about used 32 bit fractional format are updated (Q1.31), earlier
ones were old assumptions for SOF.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch defines a total channels combined filter length limit
of 80 for xtensa gcc build (e.g. 40 taps max for stereo). The check
is done in prepare() where the filters are configured. If the
length is exceeded the playback is terminated gracefully. A xt-xcc
build or testbench build for x86 is not limited.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
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>
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>
This patch adds the missing freeing of data structures those
were allocated in prepare(). Successive pipeline runs without
suspend in between have consumed more and more RAM every time.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
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>
Moves interrupt controller names to cavs platform header.
They are only used by cAVS platforms and shouldn't be
generic to xtensa architecture.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Fixes low latency task insertion into the priority list.
Tasks should be inserted into the list from the highest to
the lowest priority. Tasks with the same priority should be
served on a first-come-first-serve basis. Note that the
list_item_append method, which is used to insert task into
the list is a bit misleading, since it normally should work
on list's head instead of any element from the list.
This piece of code should be revisited in the future and
proper list_item_insert method should be implemented and used.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
SOF_SCHEDULE_FLAG_IDLE is no longer needed, since EDF scheduler
has been improved and relies only on deadlines. Let's remove it,
but keep flags field. It may come in handy in the future.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
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>
Improves EDF scheduling algorithm to use dynamically calculated
deadlines instead of static ones. It also simplifies the way
it chooses the next task to be executed and is first step for
further simplifications.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Adds new get_deadline operation to task. It is used by EDF scheduler
to support dynamic task deadlines. With static deadline we cannot
truly support almost full DSP utilization.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
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>
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>
EDF tasks with state SOF_TASK_STATE_RESCHEDULE should be handled
separately and not scheduled immediately.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
notifier is unregister in dma put. need to register it in get to make
sure we do not lose any notifier.
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Sets fir_delay pointer to NULL when freed to prevent attempts
to free the buffer multiple times.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Sets iir_delay pointer to NULL when freed to prevent attempts
to free the buffer multiple times.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
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>
Changes the way of allocating IPC notifications by using
dynamic allocation instead of statically defined array.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Clean ups IPC drivers by removing unused code on host reply.
It saves us roughly over 4600 bytes in ipc_msg queue alone.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Refactors pipeline's posn_offset calculation to include
pipeline_id rather than static map of calculated offsets.
This way we can remove posn_map from ipc structure.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Removes callback from ipc structure. It's not used and
if it's going to be needed in the future, the new notification
system should be used anyway.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Removes dsp_pending flag. IPC notifications aren't sent
if the list is empty, so additional flag is not needed.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Removes argument from ipc_platform_send_msg function in order
to use static _ipc instance. It will allow for removal of not needed
function in future commits.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>