sound-open-firmware.git
2 months agoMerge pull request #290 from jajanusz/icelake-initial master
Liam Girdwood [Sun, 2 Sep 2018 14:53:07 +0000 (15:53 +0100)]
Merge pull request #290 from jajanusz/icelake-initial

icelake: initial configuration

2 months agoscripts: add icl to xtensa-build-all.sh
Janusz Jankowski [Fri, 31 Aug 2018 17:26:36 +0000 (19:26 +0200)]
scripts: add icl to xtensa-build-all.sh

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>

2 months agoicl: initial support
Janusz Jankowski [Fri, 31 Aug 2018 13:19:33 +0000 (15:19 +0200)]
icl: initial support

Added icelake platform to platforms.
Updated rimage to support icelake.
Updated autoconf and automake files.

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>

2 months agorimage: change feature mask from 0x1f to 0xff for ICL and later
Janusz Jankowski [Fri, 31 Aug 2018 13:05:55 +0000 (15:05 +0200)]
rimage: change feature mask from 0x1f to 0xff for ICL and later

Icelake needs FF to work, it doesn't look to break it for older platforms,
so there is no need for some ifdefs, we can make it 0xff for all.

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>

2 months agoMerge pull request #285 from jajanusz/drivers-refactor
Liam Girdwood [Fri, 31 Aug 2018 12:57:59 +0000 (13:57 +0100)]
Merge pull request #285 from jajanusz/drivers-refactor

platform: refactor: move clock, interrupt and timer to drivers

2 months agoMerge pull request #288 from singalsu/fix_dmic_alloc_proposal
Liam Girdwood [Fri, 31 Aug 2018 12:10:55 +0000 (13:10 +0100)]
Merge pull request #288 from singalsu/fix_dmic_alloc_proposal

DMIC: Handle possible null pointers from rzalloc()

2 months agodrivers: refactor: move timer from platform to drivers
Janusz Jankowski [Thu, 23 Aug 2018 08:50:51 +0000 (10:50 +0200)]
drivers: refactor: move timer from platform to drivers

+ Indents for 'CHECK: Alignment should match open parenthesis'

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>

2 months agoplatform: refactor: unify */platform/timer.h functions and variables
Janusz Jankowski [Thu, 23 Aug 2018 08:22:51 +0000 (10:22 +0200)]
platform: refactor: unify */platform/timer.h functions and variables

For cnl&apl removed platform_timer_register from public api
and made it static.
For byt&hsw moved platform_timer to platform.h
(just like it is for cnl&apl).

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>

2 months agodrivers: refactor: move clk from platform to drivers
Janusz Jankowski [Wed, 22 Aug 2018 13:50:57 +0000 (15:50 +0200)]
drivers: refactor: move clk from platform to drivers

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>

2 months agodrivers: refactor: move interrupt from platform to drivers
Janusz Jankowski [Wed, 22 Aug 2018 13:17:19 +0000 (15:17 +0200)]
drivers: refactor: move interrupt from platform to drivers

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>

2 months agoplatform: refactor: move interrupt functions from platform.c
Janusz Jankowski [Wed, 22 Aug 2018 12:35:50 +0000 (14:35 +0200)]
platform: refactor: move interrupt functions from platform.c

Moved platform_interrupt_* functions from platform.c to interrupt.c
to match CNL&APL. Updated headers for BYT&HSW to have the same functions
declarations as CNL&APL.

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>

2 months agodrivers: refactor: create <vendor>/<family> filetree
Janusz Jankowski [Wed, 22 Aug 2018 12:13:46 +0000 (14:13 +0200)]
drivers: refactor: create <vendor>/<family> filetree

Split files into appropriate folders.
Added makefiles to not break build.
Fixed checkpatch errors in dw-dma and baytrail/ssp.

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>

2 months agoDMIC: Handle possible null pointers from rzalloc()
Seppo Ingalsuo [Fri, 31 Aug 2018 11:45:39 +0000 (14:45 +0300)]
DMIC: Handle possible null pointers from rzalloc()

This patch adds the missing handling of null pointers for the case
if memory allocation would fail.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>

2 months agoMerge pull request #287 from jajanusz/host-warn-fix
Liam Girdwood [Fri, 31 Aug 2018 09:10:37 +0000 (10:10 +0100)]
Merge pull request #287 from jajanusz/host-warn-fix

host: fix for uninitialized pointers

2 months agohost: fix for uninitialized pointers
Janusz Jankowski [Fri, 31 Aug 2018 08:57:23 +0000 (10:57 +0200)]
host: fix for uninitialized pointers

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>

2 months agoMerge pull request #283 from singalsu/fix_host_build_proposal
Liam Girdwood [Fri, 31 Aug 2018 08:45:54 +0000 (09:45 +0100)]
Merge pull request #283 from singalsu/fix_host_build_proposal

Host platform library: Fix compilation after git merge from next branch

2 months agoHost platform library: Fix compilation after git merge from next branch
Seppo Ingalsuo [Thu, 30 Aug 2018 13:02:39 +0000 (16:02 +0300)]
Host platform library: Fix compilation after git merge from next branch

Most of the errors are due to missing macros and header files. This
patch adds a number of minimal new header files into
src/arch/host/include/arch and src/library/include/platform.

The testbench ipc init is updated with previous changes of removed ipc
struct fields.

The testbench memory freeing code is updated with ipc struct change to
access comp_list.

The FIR EQ allocated pointer address tracing is removed since it is not
critical to trace. The pointer casting caused a compilation error for
host.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>

2 months agoMerge pull request #281 from jajanusz/fix-ut
Liam Girdwood [Thu, 30 Aug 2018 11:35:00 +0000 (12:35 +0100)]
Merge pull request #281 from jajanusz/fix-ut

test: cmocka: fix pipeline tests, disable alloc tests

2 months agotest: cmocka: fix pipeline tests, disable alloc tests
Janusz Jankowski [Thu, 30 Aug 2018 11:01:25 +0000 (13:01 +0200)]
test: cmocka: fix pipeline tests, disable alloc tests

Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>

2 months agoMerge remote-tracking branch 'gh/glk-003-drop-stable'
Liam Girdwood [Wed, 29 Aug 2018 15:48:29 +0000 (16:48 +0100)]
Merge remote-tracking branch 'gh/glk-003-drop-stable'

2 months agoMerge remote-tracking branch 'gh/next' into next-master2
Liam Girdwood [Wed, 29 Aug 2018 15:42:29 +0000 (16:42 +0100)]
Merge remote-tracking branch 'gh/next' into next-master2

2 months agoMerge pull request #275 from mmaka1/glk-2nd-pl
Liam Girdwood [Wed, 29 Aug 2018 15:19:05 +0000 (16:19 +0100)]
Merge pull request #275 from mmaka1/glk-2nd-pl

dma: hda: 2nd playback with existing topology fixed

2 months agodma: hda: 2nd playback with existing topology fixed
Marcin Maka [Wed, 29 Aug 2018 14:21:44 +0000 (16:21 +0200)]
dma: hda: 2nd playback with existing topology fixed

Host comp must delete sgl completely on reset since
it is fully re-created on params.

Dai comp must free the dma channel on reset since it
is acquired again on params (stream tag may change).

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>

2 months agoMerge remote-tracking branch 'gh/glk-003-drop-stable' into next-master2
Liam Girdwood [Wed, 29 Aug 2018 12:18:53 +0000 (13:18 +0100)]
Merge remote-tracking branch 'gh/glk-003-drop-stable' into next-master2

2 months agoMerge pull request #271 from mmaka1/hda-clk-drift-fix
Liam Girdwood [Tue, 28 Aug 2018 15:53:49 +0000 (16:53 +0100)]
Merge pull request #271 from mmaka1/hda-clk-drift-fix

Hda clk drift fix

2 months agoMerge pull request #264 from tlauda/topic/ppl_trigger_on_core
Liam Girdwood [Tue, 28 Aug 2018 15:52:47 +0000 (16:52 +0100)]
Merge pull request #264 from tlauda/topic/ppl_trigger_on_core

pipeline: trigger ppl on different core

2 months agopipeline: trigger ppl on different core
Tomasz Lauda [Tue, 28 Aug 2018 12:03:03 +0000 (14:03 +0200)]
pipeline: trigger ppl on different core

Implements function, which allows to trigger pipeline
on different core than master. Core id is chosen
via pipeline IPC message.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agolib: work: using precise wallclk for 1ms schedule on cavs
Marcin Maka [Tue, 28 Aug 2018 12:05:10 +0000 (14:05 +0200)]
lib: work: using precise wallclk for 1ms schedule on cavs

Apl wallclk freq is 19.2 which gives about 10.5% inaccuracy
when timeouts are computed in usec. This temporary w/a
uses ticks/msec to compute msec timeouts.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>

2 months agoMerge pull request #270 from tlauda/topic/move_idc_header
Liam Girdwood [Tue, 28 Aug 2018 11:57:17 +0000 (12:57 +0100)]
Merge pull request #270 from tlauda/topic/move_idc_header

idc: move definitions into include/sof/idc.h

2 months agoMerge pull request #269 from singalsu/src_prefill_proposal
Liam Girdwood [Tue, 28 Aug 2018 11:56:48 +0000 (12:56 +0100)]
Merge pull request #269 from singalsu/src_prefill_proposal

SRC: Prevent downstream pipeline xruns with sink buffer pre-fill

2 months agoMerge pull request #268 from xiulipan/ipcsch
Liam Girdwood [Tue, 28 Aug 2018 11:54:27 +0000 (12:54 +0100)]
Merge pull request #268 from xiulipan/ipcsch

ipc: use scheduler task for IPC process

2 months agocnl: hda: fixed missing dai-ops to re-enable cnl compilation.
Marcin Maka [Tue, 28 Aug 2018 11:37:51 +0000 (13:37 +0200)]
cnl: hda: fixed missing dai-ops to re-enable cnl compilation.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>

2 months agoidc: move definitions into include/sof/idc.h
Tomasz Lauda [Tue, 28 Aug 2018 11:03:32 +0000 (13:03 +0200)]
idc: move definitions into include/sof/idc.h

Moves generic IDC definitions into include/sof/idc.h.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agoSRC: Prevent downstream pipeline xruns with sink buffer pre-fill
Seppo Ingalsuo [Tue, 28 Aug 2018 10:32:27 +0000 (13:32 +0300)]
SRC: Prevent downstream pipeline xruns with sink buffer pre-fill

This patch adds a feature to pre-fill in some SRC conversions sink
buffer with a number of samples that ensures clean start of the pipeline.
The pre-fill happens for modes where minimum output block size is less
than default sink period length. This impacts e.g. 44.1 -> 48 kHz
conversion. Simple conversion like 32 -> 48 kHz do use this.

The bad SRC playback pipe quality is fixed only partially with this
patch (a high rate rattle sound). There is a remaining buffer corruption
seen (at lower rate) that is not impacted by this fix.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>

2 months agoipc: use scheduler task for IPC process
Pan Xiuli [Tue, 28 Aug 2018 10:19:31 +0000 (18:19 +0800)]
ipc: use scheduler task for IPC process

IPC process is handled after wait_for_interrupt, but there may some IPC
is handled outside this WFI function. Use scheduler to avoid wait for
IRQ caused IPC timeout.

Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>

2 months agoMerge pull request #266 from tlauda/topic/alloc_compile_fix
Liam Girdwood [Tue, 28 Aug 2018 10:20:32 +0000 (11:20 +0100)]
Merge pull request #266 from tlauda/topic/alloc_compile_fix

alloc: byt: fix compilation error

2 months agoalloc: byt: fix compilation error
Tomasz Lauda [Tue, 28 Aug 2018 09:26:43 +0000 (11:26 +0200)]
alloc: byt: fix compilation error

Fixes compilation error on BYT.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agoMerge pull request #265 from tlauda/topic/ipc_shared_context
Liam Girdwood [Tue, 28 Aug 2018 08:15:17 +0000 (09:15 +0100)]
Merge pull request #265 from tlauda/topic/ipc_shared_context

ipc: add ipc_shared_context

2 months agoipc: add ipc_shared_context
Tomasz Lauda [Mon, 27 Aug 2018 10:13:35 +0000 (12:13 +0200)]
ipc: add ipc_shared_context

Implements ipc_shared_context struct, which allocates
notification related fields in uncached memory. This
way slave cores can add to queue stream notifications.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agoKlockwork fixes
Slawomir Blauciak [Fri, 24 Aug 2018 14:43:44 +0000 (16:43 +0200)]
Klockwork fixes

Signed-off-by: Slawomir Blauciak <slawomir.blauciak@linux.intel.com>

2 months agoMerge pull request #262 from tlauda/topic/idc_ppl_trigger
Liam Girdwood [Fri, 24 Aug 2018 14:39:52 +0000 (07:39 -0700)]
Merge pull request #262 from tlauda/topic/idc_ppl_trigger

idc: IDC_MSG_PPL_TRIGGER message implementation

2 months agoMerge pull request #229 from mrajwa/master
Liam Girdwood [Fri, 24 Aug 2018 14:38:53 +0000 (07:38 -0700)]
Merge pull request #229 from mrajwa/master

volume: Fix for default value of min/max parameters of volume component which were not setup properly.

2 months agoidc: IDC_MSG_PPL_TRIGGER message implementation
Tomasz Lauda [Fri, 24 Aug 2018 13:34:24 +0000 (15:34 +0200)]
idc: IDC_MSG_PPL_TRIGGER message implementation

Implements new IDC message, which can be used to start
pipeline processing on slave cores.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agoMerge pull request #261 from tlauda/topic/use_is_core_enabled
Liam Girdwood [Fri, 24 Aug 2018 13:28:39 +0000 (06:28 -0700)]
Merge pull request #261 from tlauda/topic/use_is_core_enabled

cpu: use arch_cpu_is_core_enabled in other functions

2 months agocpu: use arch_cpu_is_core_enabled in other functions
Tomasz Lauda [Fri, 24 Aug 2018 13:05:23 +0000 (15:05 +0200)]
cpu: use arch_cpu_is_core_enabled in other functions

Code deduplication by using already implemented
arch_cpu_is_core_enabled function.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agoMerge pull request #260 from mmaka1/hda-glk
Liam Girdwood [Fri, 24 Aug 2018 13:00:16 +0000 (06:00 -0700)]
Merge pull request #260 from mmaka1/hda-glk

Hda glk

2 months agovolume: Fix for min/max parameters of the volume component.
Marcin Rajwa [Thu, 16 Aug 2018 16:55:14 +0000 (18:55 +0200)]
volume: Fix for min/max parameters of the volume component.

This fix solves the problem in which volume
attributes min/max were assigned to
VOL_ZERO_DB instead of parameters from IPC.

Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>

2 months agocomp: host: hda/dw-dma flow unification
Marcin Maka [Tue, 7 Aug 2018 16:57:59 +0000 (18:57 +0200)]
comp: host: hda/dw-dma flow unification

Dedicated implementation of trigger handler and element
creation merged.
Hd/a version simplified, host and local sgl removed.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>

2 months agodai: support for hda cyclic mode dai added
Marcin Maka [Tue, 7 Aug 2018 13:03:42 +0000 (15:03 +0200)]
dai: support for hda cyclic mode dai added

There are no buffer completion int's, so work queue timers are
used by hda-dma in cyclic mode.
Buffer segment completion programming removed.

W/A to observed work queue timer inaccuracy applied.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>

2 months agocomp: dai: dma channel acquired by stream tag
Marcin Maka [Tue, 7 Aug 2018 12:30:02 +0000 (14:30 +0200)]
comp: dai: dma channel acquired by stream tag

Some DMA types (HD/A for insstance) require to synchronize selection
of the channel between the host and the dsp.

Stream tag is a common setting for both host and dai atm,
so it is not adjusted in dai comp.

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>

2 months agoMerge pull request #251 from tlauda/topic/pipeline_cache
Liam Girdwood [Fri, 24 Aug 2018 11:32:37 +0000 (04:32 -0700)]
Merge pull request #251 from tlauda/topic/pipeline_cache

pipeline: add pipeline_cache method

2 months agoMerge pull request #256 from dabekjakub/pipeline_complete
Liam Girdwood [Fri, 24 Aug 2018 10:50:52 +0000 (03:50 -0700)]
Merge pull request #256 from dabekjakub/pipeline_complete

tests: pipeline_complete

2 months agoMerge pull request #259 from tlauda/topic/fix_notifications
Liam Girdwood [Fri, 24 Aug 2018 10:50:29 +0000 (03:50 -0700)]
Merge pull request #259 from tlauda/topic/fix_notifications

ipc: fix position notifications

2 months agoipc: fix position notifications
Tomasz Lauda [Fri, 24 Aug 2018 09:07:37 +0000 (11:07 +0200)]
ipc: fix position notifications

Fixes notification data for poisition and xrun notifications.
Data sent to host was invalid.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agotests: pipeline_complete
Jakub Dabek [Thu, 23 Aug 2018 14:00:10 +0000 (16:00 +0200)]
tests: pipeline_complete

Added tests for pipeline complete and subsequently to
pipeline connect upstream and connect downstream since
they are both statics.

Signed-off-by: Jakub Dabek <jakub.dabek@linux.intel.com>

2 months agodma: fixed writebacks when operating via L1 on dma buffer in L2 mem
Marcin Maka [Thu, 23 Aug 2018 13:25:22 +0000 (15:25 +0200)]
dma: fixed writebacks when operating via L1 on dma buffer in L2 mem

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>

2 months agoMerge pull request #252 from mmaka1/gp20-l1-dma-fix
Liam Girdwood [Thu, 23 Aug 2018 13:36:00 +0000 (06:36 -0700)]
Merge pull request #252 from mmaka1/gp20-l1-dma-fix

dma: fixed writebacks when operating via L1 on dma buffer in L2 mem

2 months agodma: fixed writebacks when operating via L1 on dma buffer in L2 mem
Marcin Maka [Thu, 23 Aug 2018 13:25:22 +0000 (15:25 +0200)]
dma: fixed writebacks when operating via L1 on dma buffer in L2 mem

Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>

2 months agoMerge pull request #255 from tlauda/topic/dma_trace_buffer_alloc
Liam Girdwood [Thu, 23 Aug 2018 13:15:55 +0000 (06:15 -0700)]
Merge pull request #255 from tlauda/topic/dma_trace_buffer_alloc

dma-trace: allocate trace buffer only after enabling traces

2 months agoMerge pull request #254 from tlauda/topic/ipc_page_table
Liam Girdwood [Thu, 23 Aug 2018 13:14:33 +0000 (06:14 -0700)]
Merge pull request #254 from tlauda/topic/ipc_page_table

ipc: alloc page_table based on CONFIG_HOST_PTABLE

2 months agoMerge pull request #253 from tlauda/topic/alloc_uncached
Liam Girdwood [Thu, 23 Aug 2018 13:14:01 +0000 (06:14 -0700)]
Merge pull request #253 from tlauda/topic/alloc_uncached

alloc: access to the memory map through uncached addresses

2 months agoMerge pull request #250 from tlauda/topic/ll_runtime_heap
Liam Girdwood [Thu, 23 Aug 2018 13:12:16 +0000 (06:12 -0700)]
Merge pull request #250 from tlauda/topic/ll_runtime_heap

dw-dma: allocate lli on runtime heap

2 months agodma-trace: allocate trace buffer only after enabling traces
Tomasz Lauda [Thu, 23 Aug 2018 11:57:13 +0000 (13:57 +0200)]
dma-trace: allocate trace buffer only after enabling traces

Allocates DMA trace buffer only after IPC to enable traces
is sent.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agoipc: alloc page_table based on CONFIG_HOST_PTABLE
Tomasz Lauda [Thu, 23 Aug 2018 10:47:14 +0000 (12:47 +0200)]
ipc: alloc page_table based on CONFIG_HOST_PTABLE

Allocates page_table only if CONFIG_HOST_PTABLE is defined.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agoalloc: access to the memory map through uncached addresses
Tomasz Lauda [Thu, 23 Aug 2018 10:36:53 +0000 (12:36 +0200)]
alloc: access to the memory map through uncached addresses

Changes access to the platform memory map to go through uncached
address range. This will make alloc functions truly shared
between cores and also save us many invalidate operations.
Memory map needs to be statically defined, so cannot be
allocated itself in ucached zone.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agopipeline: add pipeline_cache method
Tomasz Lauda [Thu, 23 Aug 2018 10:12:22 +0000 (12:12 +0200)]
pipeline: add pipeline_cache method

Adds implementation of pipeline_cache method,
which uses component ops to perform selected
cache command on every component, buffer and
pipeline itself.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agoMerge pull request #249 from tlauda/topic/ipc_comp_list_shared
Liam Girdwood [Thu, 23 Aug 2018 10:03:15 +0000 (03:03 -0700)]
Merge pull request #249 from tlauda/topic/ipc_comp_list_shared

ipc: share component list between cores

2 months agoipc: share component list between cores
Tomasz Lauda [Wed, 22 Aug 2018 10:42:01 +0000 (12:42 +0200)]
ipc: share component list between cores

Shares component list between cores.
Uses uncached addresses in order to avoid need
to perform complicated invalidations before accessing
the lists.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agodw-dma: allocate lli on runtime heap
Tomasz Lauda [Thu, 23 Aug 2018 08:42:23 +0000 (10:42 +0200)]
dw-dma: allocate lli on runtime heap

Allocates linked list item on runtime heap instead of
buffer heap.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agoMerge pull request #245 from tlauda/topic/init_workq_slave_cores
Liam Girdwood [Wed, 22 Aug 2018 13:44:46 +0000 (06:44 -0700)]
Merge pull request #245 from tlauda/topic/init_workq_slave_cores

work: init work queue for slave cores

2 months agoMerge pull request #217 from tlauda/topic/slave_core_cacheattr
Liam Girdwood [Wed, 22 Aug 2018 13:44:13 +0000 (06:44 -0700)]
Merge pull request #217 from tlauda/topic/slave_core_cacheattr

arch: apply cache attributes to slave cores

2 months agoMerge pull request #241 from tlauda/topic/comp_cache_ops
Liam Girdwood [Wed, 22 Aug 2018 13:43:22 +0000 (06:43 -0700)]
Merge pull request #241 from tlauda/topic/comp_cache_ops

component: add cache ops

2 months agoMerge pull request #246 from tlauda/topic/system_mem_alignment
Liam Girdwood [Wed, 22 Aug 2018 13:34:14 +0000 (06:34 -0700)]
Merge pull request #246 from tlauda/topic/system_mem_alignment

alloc: align system objects to dcache line size

2 months agocomponent: add cache ops
Tomasz Lauda [Tue, 21 Aug 2018 10:13:39 +0000 (12:13 +0200)]
component: add cache ops

Adds cache operation for every component.
This method allows performing cache operation on
current execution core based on selected cache command.
It's required in order to allow pipeline task switching to
slave cores. Master core will handle IPC to create and
configure pipeline, but later the whole pipeline with
components needs to be flushed to SRAM for other cores
to properly read it.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agoalloc: align system objects to dcache line size
Tomasz Lauda [Wed, 22 Aug 2018 10:03:40 +0000 (12:03 +0200)]
alloc: align system objects to dcache line size

Aligns objects allocated on system heap to dcache line size.
One of the reason why it's required is because DMA and DAI
private data is allocated on system heap.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agowork: init work queue for slave cores
Tomasz Lauda [Wed, 22 Aug 2018 09:58:30 +0000 (11:58 +0200)]
work: init work queue for slave cores

Initializes system work queue for slave cores.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agoarch: apply cache attributes to slave cores
Tomasz Lauda [Fri, 10 Aug 2018 09:03:42 +0000 (11:03 +0200)]
arch: apply cache attributes to slave cores

Applies defined cache attributes to slave cores.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

2 months agoMerge pull request #243 from bkokoszx/master
Liam Girdwood [Tue, 21 Aug 2018 15:45:50 +0000 (08:45 -0700)]
Merge pull request #243 from bkokoszx/master

drivers: apl-ssp: refinement in DSP_A and I2S mode.

2 months agodrivers: apl-ssp: refinement in DSP_A and I2S mode.
Bartosz Kokoszko [Mon, 20 Aug 2018 13:28:36 +0000 (15:28 +0200)]
drivers: apl-ssp: refinement in DSP_A and I2S mode.

In order to get one bclk delay between frame sync and
data I only set FSRT flag in sspsp register. There is
no need to set SSPSP_STRDLY bits.

Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>

2 months agoMerge pull request #221 from tlauda/topic/workq_def_cores
Liam Girdwood [Tue, 21 Aug 2018 14:30:45 +0000 (07:30 -0700)]
Merge pull request #221 from tlauda/topic/workq_def_cores

work: add queue timesources per core

2 months agoMerge pull request #224 from tlauda/topic/cached_uncached_macros
Liam Girdwood [Tue, 21 Aug 2018 14:30:03 +0000 (07:30 -0700)]
Merge pull request #224 from tlauda/topic/cached_uncached_macros

memory: add cache_to_uncache and uncache_to_cache macros

2 months agoMerge pull request #242 from bkokoszx/fix_dsp_a
Liam Girdwood [Tue, 21 Aug 2018 14:27:36 +0000 (07:27 -0700)]
Merge pull request #242 from bkokoszx/fix_dsp_a

Fix DSP_A mode

3 months agoMerge pull request #240 from singalsu/src_use_short_coef_with_gcc_proposal
Liam Girdwood [Tue, 21 Aug 2018 12:36:00 +0000 (05:36 -0700)]
Merge pull request #240 from singalsu/src_use_short_coef_with_gcc_proposal

SRC: Use 16 bit coefficients when FW is built with gcc

3 months agodrivers: apl-ssp: refinement in DSP_A and I2S mode.
Bartosz Kokoszko [Mon, 20 Aug 2018 13:28:36 +0000 (15:28 +0200)]
drivers: apl-ssp: refinement in DSP_A and I2S mode.

In order to get one bclk delay between frame sync and
data I only set FSRT flag in sspsp register. There is
no need to set SSPSP_STRDLY bits.

Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>

3 months agoSRC: Use 16 bit coefficients when FW is built with gcc
Seppo Ingalsuo [Tue, 21 Aug 2018 10:02:04 +0000 (13:02 +0300)]
SRC: Use 16 bit coefficients when FW is built with gcc

This patch changes the 16/32 bits coefficients selection macros to
always use 16 bit coefficient set when compiled with other than xt-xcc.
It was found out that gcc compiled SRC can't maintain real-time speed
in HiFi3 platform.

With xt-xcc compilation HiFiEP platforms will use 16 bit for RAM saving
(speed isn't an issue with 32 bit) and HiFi3 platforms will continue
using 32 bit coefficients. Only the 32 bit set provides the larger
conversions set and default quality.

With this change the APL and similar HiFi3 platforms can play via SRC
pipeline 8/16/32/48 kHz rate audio.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>

3 months agoMerge pull request #239 from tlauda/topic/idc_refactor_msg
Liam Girdwood [Tue, 21 Aug 2018 09:49:06 +0000 (02:49 -0700)]
Merge pull request #239 from tlauda/topic/idc_refactor_msg

idc: refactor IDC message template

3 months agoMerge pull request #237 from tlauda/topic/work_queue_core_context
Liam Girdwood [Tue, 21 Aug 2018 08:46:05 +0000 (01:46 -0700)]
Merge pull request #237 from tlauda/topic/work_queue_core_context

work: add work_queue to core_context

3 months agoidc: refactor IDC message template
Tomasz Lauda [Tue, 21 Aug 2018 08:40:06 +0000 (10:40 +0200)]
idc: refactor IDC message template

Refactors IDC message template to better distinguish
message type, header and extension.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

3 months agoMerge pull request #216 from singalsu/eq_iir_fix_ipc_proposal
Liam Girdwood [Mon, 20 Aug 2018 15:21:44 +0000 (08:21 -0700)]
Merge pull request #216 from singalsu/eq_iir_fix_ipc_proposal

EQ IIR: Update IPC to ALSA convention, fix channel bypass, and do cleanup

3 months agowork: add work_queue to core_context
Tomasz Lauda [Mon, 20 Aug 2018 12:23:55 +0000 (14:23 +0200)]
work: add work_queue to core_context

Implements work_queue per core by adding it to core_context.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

3 months agoMerge pull request #236 from tlauda/topic/dw_dma_irq_refactor
Liam Girdwood [Mon, 20 Aug 2018 10:25:44 +0000 (03:25 -0700)]
Merge pull request #236 from tlauda/topic/dw_dma_irq_refactor

dw-dma: refactor interrupt registration and unregistration

3 months agoEQ IIR: Update IPC to ALSA convention, fix channel bypass, and do cleanup
Seppo Ingalsuo [Thu, 9 Aug 2018 16:43:37 +0000 (19:43 +0300)]
EQ IIR: Update IPC to ALSA convention, fix channel bypass, and do cleanup

This patch updates binary IPC to similar style as done previously for FIR
equalizer. The blob size needs to be added as first word in the blob.

The internals of IIR coefficients format is exposed to uapi/eq.h level.
Also the blob parsing code is changed to use the structures instead of
hardcoded word offsets.

The EQ assign or switch to bypass (via -1) is fixed so there is no more
need to define a bypass EQ shape into the blob.

Finally C code style is updated to pass the commit checker scripts.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>

3 months agodw-dma: refactor interrupt registration and unregistration
Tomasz Lauda [Mon, 20 Aug 2018 10:08:31 +0000 (12:08 +0200)]
dw-dma: refactor interrupt registration and unregistration

Changes flow of dw-dma interrupt registration and unregistration:
Now it is possible for slave cores to register for dw-dma handler.
Also registration happens before start and not on FW load
during probing. This way we are not wasting runtime heap memory
and also it will allow us to dynamically change execution core
for certain pipelines.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

3 months agoMerge pull request #227 from tlauda/topic/dcache_align
Liam Girdwood [Mon, 20 Aug 2018 09:47:58 +0000 (02:47 -0700)]
Merge pull request #227 from tlauda/topic/dcache_align

alloc: align memmap to cache line size

3 months agoalloc: align memmap to cache line size
Tomasz Lauda [Tue, 14 Aug 2018 16:21:15 +0000 (18:21 +0200)]
alloc: align memmap to cache line size

Aligns memmap related structs to cache line size.
This is getting us closer to have memory allocator
fully shared between cores.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>

3 months agoMerge pull request #234 from RanderWang/apl_fw_ipc
Liam Girdwood [Mon, 20 Aug 2018 08:18:32 +0000 (01:18 -0700)]
Merge pull request #234 from RanderWang/apl_fw_ipc

apl: check host status before sending ipc msg in fw

3 months agoMerge pull request #235 from RanderWang/cnl_ipc_fw
Liam Girdwood [Mon, 20 Aug 2018 08:17:39 +0000 (01:17 -0700)]
Merge pull request #235 from RanderWang/cnl_ipc_fw

cnl: check status of both host & fw before sending ipc msg in fw

3 months agocnl: check status of both host & fw before sending ipc msg in fw
Rander Wang [Mon, 20 Aug 2018 07:48:52 +0000 (15:48 +0800)]
cnl: check status of both host & fw before sending ipc msg in fw

The busy bit of DIPCIDR register is cleared when host is ready,
and the done bit of DIPCIDA is cleared after fw confirms the
reply message from host. So fw should check these two conditions
before sending ipc msg to host

Signed-off-by: Rander Wang <rander.wang@linux.intel.com>

3 months agoapl: check host status before sending ipc msg in fw
Rander Wang [Mon, 20 Aug 2018 07:19:19 +0000 (15:19 +0800)]
apl: check host status before sending ipc msg in fw

The busy bit of DIPCI register is cleared when host is ready.
So fw could send ipc msgs to host when the value of busy bit
is zero

Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>

3 months agoMerge remote-tracking branch 'gh/next' into gp20-alpha-drop-stable
Liam Girdwood [Thu, 16 Aug 2018 14:52:03 +0000 (15:52 +0100)]
Merge remote-tracking branch 'gh/next' into gp20-alpha-drop-stable