summaryrefslogtreecommitdiff
path: root/sound/soc/fsl/fsl_dsp_proxy.h
AgeCommit message (Collapse)Author
2020-08-03MLK-24453 ASoC: fsl_dsp: Add pause&pause_release in dspZhang Peng
Add dsp support pause and pause_release cmd. Signed-off-by: Zhang Peng <peng.zhang_8@nxp.com>
2019-11-25MLK-20693-1: ASoC: fsl_dsp: remove this workaround of skip sectionsShengjiu Wang
Revert "MLK-18497-13: ASoC: fsl: dsp: Skip SDRAM section update if fw is already loaded" This reverts commit a0cffd9a9299362f2b3a4d24b78a8574b736fdfa. This is just to avoid reconfigure the edma isr handler in dsp framework, which should be handled by dsp framework. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
2019-11-25MLK-20095-3: ASoC: fsl: Differentiate between QXP and QMDaniel Baluta
On QM the DSP is inside the VPU subsystem while in QXP it is inside the Audio DMA subsystem. For this reason there are "subtle" differences. Introduce new compatible string for QM to help us correctly configure the DSP depending on the board they run. dsp_mem_msg structure is shared with the DSP, so by introducing new member dsp_board_type we can let DSP know on which target it runs. Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-11-25MLK-20094: ASoC: fsl: dsp: Fix crash in compress cleanup pathDaniel Baluta
We must find a way to no longer touch resources after they are cleand up. Now, after a stress test we get the following crash: [ 2156.863772] fsl-dsp 596e8000.dsp: xf_pool_alloc failed [ 2156.869337] Unable to handle kernel NULL pointer dereference at virtual address 00000060 [ 2157.148594] [<ffff000008d8839c>] _raw_spin_lock+0x14/0x48 [ 2157.153995] [<ffff000008b3e0b8>] xf_cmd_send_recv_complete+0x40/0xf0 [ 2157.160354] [<ffff000008b3e470>] xf_close+0x40/0x88 [ 2157.165239] [<ffff000008b3f7a4>] xaf_comp_delete+0x5c/0x70 [ 2157.170730] [<ffff000008b40530>] dsp_platform_compr_free+0xa0/0xe8 [ 2157.176917] [<ffff000008b287fc>] soc_compr_free_fe+0x144/0x1a0 [ 2157.182754] [<ffff000008b11b24>] snd_compr_free+0x64/0x98 This happens because: 1) dsp_platform_process work handler waits in a loop for messages to arrive. 2) when cplay process finishes it cleans up most of the resources. 3) when another cplay process starts it reinitializes the resources including queues for example. 4) a message will be generated and kernel will crash because dsp_platform_process uses the older queues. A solution for this is to make sure dsp_platform_process work loop is stopped at cleanup time. We use is_active state and signal dsp_platform_process handler to finish because we are on the cleanup path. While at it replace cancel_work with cancel_work sync to be sure that work handler ends before going on with the rest of the cleanup. Reviewed-by: Cosmin-Gabriel Samoila <cosmin.samoila@nxp.com> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-11-25MLK-18497-13: ASoC: fsl: dsp: Skip SDRAM section update if fw is already loadedDaniel Baluta
If the DSP firmware binary is already loaded it is wrong to update SDRAM located sections because we will overwrite and data stored there. This makes suspend/resume work. Reviewed-by: Cosmin-Gabriel Samoila <cosmin.samoila@nxp.com> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-11-25MLK-18497-5: ASoC: fsl: dsp_proxy: Introduce client APIDaniel Baluta
This will allow DSP driver to create/destroy a client on DSP audio-framework proxy. Registering a client on remote DSP proxy means creating a component. The implementation is similar with userspace application proxy implementation. Reviewed-by: Cosmin-Gabriel Samoila <cosmin.samoila@nxp.com> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-11-25MLK-18497-4: ASoC: fsl: dsp: Add message buffer pool APIDaniel Baluta
Memory is allocated to clients from memory pools. A memory pool allocation is requested to DSP framework via XF_ALLOC command and freed via XF_FREE. Memory pool allocation API offers two functions: * xf_pool_alloc, allocate a number of buffers of given length * xf_pool_free, free memory area allocated for a pool. Once a buffer pool is allocated users can handle buffers using the following API: * xf_buffer_get(pool), gets a buffer from a pool * xf_buffer_put(buf), puts back a buffer into its pool Reviewed-by: Cosmin-Gabriel Samoila <cosmin.samoila@nxp.com> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-11-25MLK-18497-3: ASoC: fsl: dsp_proxy: Add new send/recv helpersDaniel Baluta
This commit adds 3 new function helpers for sending messages to DSP framework and waiting for response. While at it cleanup spaces around struct client fields. Reviewed-by: Cosmin-Gabriel Samoila <cosmin.samoila@nxp.com> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-11-25MLK-18497-1: ASoC: fsl: dsp_proxy: Fix license headersDaniel Baluta
This is a cleanup patch to have all the headers style consistent across DSP driver. Reviewed-by: Cosmin-Gabriel Samoila <cosmin.samoila@nxp.com> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-11-25MLK-18646: ASoC: fsl_dsp: fix the license issueShengjiu Wang
correct the license issue Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-11-25MLK-17747: dsp: use the name of dsp instead of hifiWeiguang Kong
In order to avoid the name problem going forward with integration with Qcom, Qcom has their own dsp and hifi is competitor, so the hifi name should not be used in our code. So use the name of dsp instead of hifi to fix this problem. Signed-off-by: Weiguang Kong <weiguang.kong@nxp.com>