082c86f...
by
Pierre-Louis Bossart <email address hidden>
mailbox: move multi-line macros to static inlines
Detected with Coverity:
In do_notify: The indentation of this code suggests it is nested when
it is not. (CWE-483)
multi_stmt_macro: The macro on this line expands into multiple
statements, only the first of which is nested within the preceding
parent while the rest are not.
if (msg->rx_size && msg->rx_size < SOF_IPC_MSG_MAX_SIZE)
mailbox_dspbox_read(msg->rx_data, 0, msg->rx_size);
Move mailbox macros to inline functions to remove the issue, keep
indentation the same and add typecasts as needed
The preprocessor doesn't seem to care about circular dependencies,
the compiler does. So before we replace multi-line macros with
static inlines, move rmemcpy/arch_memcpy to a reef/string.h and
arch/string.h header file.
This is mostly useful for the mailbox functions, which depend on rmemcpy
but are also called from arch/reef.h dump/panic utilities
dai: copy: Move buffer pointer updates into dai_copy()
Move the DAI's buffer pointer update location from dai_dma_cb()
to dai_copy(). This fixes an occasional race where xrun recovery can
become out of sync with other pipeline components.
1. xrun happens.
2. trigger pipeline xrun and recover.
3. set dd->xrun in XRUN cmd from pipeline recover.
4. stop dma and reset buffer to 0s.
5. dai prepare and clear dd->xrun in prepare calling from recover.
6. start dma again in START cmd from pipeline recover.
This fix APL pause/release Xrun issue in my test.
Signed-off-by: Keyon Jie <email address hidden>
08f8570...
by
Liam Girdwood <email address hidden>
cnl: core: Add support for xcc
xcc has more strict rules than gcc:
- Add missing sections to linker scripts
- Fix compile warnings
- Extend memory enabling timeout to infinite (too small delay for xcc)
Signed-off-by: Tomasz Lauda <email address hidden>