ASoC: Intel: Skylake: Modify load_lib_ipc arguments for a nowait version
Kabylake uses code loader dma and wait on notification instead of ipc reply for load library ipc status. So modify the argument of skl_sst_ipc_load_library to check on flag to wait for ipc reply. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Acked-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
89b0d8a5ba
commit
100e7f396d
|
@ -81,7 +81,7 @@ bxt_load_library(struct sst_dsp *ctx, struct skl_lib_info *linfo, int lib_count)
|
|||
memcpy(dmab.area, stripped_fw.data, stripped_fw.size);
|
||||
|
||||
ctx->dsp_ops.trigger(ctx->dev, true, stream_tag);
|
||||
ret = skl_sst_ipc_load_library(&skl->ipc, dma_id, i);
|
||||
ret = skl_sst_ipc_load_library(&skl->ipc, dma_id, i, true);
|
||||
if (ret < 0)
|
||||
dev_err(ctx->dev, "IPC Load Lib for %s fail: %d\n",
|
||||
linfo[i].name, ret);
|
||||
|
|
|
@ -971,7 +971,7 @@ int skl_ipc_get_large_config(struct sst_generic_ipc *ipc,
|
|||
EXPORT_SYMBOL_GPL(skl_ipc_get_large_config);
|
||||
|
||||
int skl_sst_ipc_load_library(struct sst_generic_ipc *ipc,
|
||||
u8 dma_id, u8 table_id)
|
||||
u8 dma_id, u8 table_id, bool wait)
|
||||
{
|
||||
struct skl_ipc_header header = {0};
|
||||
u64 *ipc_header = (u64 *)(&header);
|
||||
|
@ -983,7 +983,11 @@ int skl_sst_ipc_load_library(struct sst_generic_ipc *ipc,
|
|||
header.primary |= IPC_MOD_INSTANCE_ID(table_id);
|
||||
header.primary |= IPC_MOD_ID(dma_id);
|
||||
|
||||
ret = sst_ipc_tx_message_wait(ipc, *ipc_header, NULL, 0, NULL, 0);
|
||||
if (wait)
|
||||
ret = sst_ipc_tx_message_wait(ipc, *ipc_header,
|
||||
NULL, 0, NULL, 0);
|
||||
else
|
||||
ret = sst_ipc_tx_message_nowait(ipc, *ipc_header, NULL, 0);
|
||||
|
||||
if (ret < 0)
|
||||
dev_err(ipc->dev, "ipc: load lib failed\n");
|
||||
|
|
|
@ -197,7 +197,7 @@ int skl_ipc_get_large_config(struct sst_generic_ipc *ipc,
|
|||
struct skl_ipc_large_config_msg *msg, u32 *param);
|
||||
|
||||
int skl_sst_ipc_load_library(struct sst_generic_ipc *ipc,
|
||||
u8 dma_id, u8 table_id);
|
||||
u8 dma_id, u8 table_id, bool wait);
|
||||
|
||||
int skl_ipc_set_d0ix(struct sst_generic_ipc *ipc,
|
||||
struct skl_ipc_d0ix_msg *msg);
|
||||
|
|
Loading…
Reference in New Issue