/sound/soc/intel/common/ |
D | sst-ipc.c | 32 static struct ipc_message *msg_get_empty(struct sst_generic_ipc *ipc) in msg_get_empty() argument 36 if (!list_empty(&ipc->empty_list)) { in msg_get_empty() 37 msg = list_first_entry(&ipc->empty_list, struct ipc_message, in msg_get_empty() 45 static int tx_wait_done(struct sst_generic_ipc *ipc, in tx_wait_done() argument 55 spin_lock_irqsave(&ipc->dsp->spinlock, flags); in tx_wait_done() 57 if (ipc->ops.shim_dbg != NULL) in tx_wait_done() 58 ipc->ops.shim_dbg(ipc, "message timeout"); in tx_wait_done() 73 list_add_tail(&msg->list, &ipc->empty_list); in tx_wait_done() 74 spin_unlock_irqrestore(&ipc->dsp->spinlock, flags); in tx_wait_done() 78 static int ipc_tx_message(struct sst_generic_ipc *ipc, in ipc_tx_message() argument [all …]
|
D | sst-ipc.h | 68 int sst_ipc_tx_message_wait(struct sst_generic_ipc *ipc, 71 int sst_ipc_tx_message_nowait(struct sst_generic_ipc *ipc, 74 int sst_ipc_tx_message_nopm(struct sst_generic_ipc *ipc, 77 struct ipc_message *sst_ipc_reply_find_msg(struct sst_generic_ipc *ipc, 80 void sst_ipc_tx_msg_reply_complete(struct sst_generic_ipc *ipc, 83 int sst_ipc_init(struct sst_generic_ipc *ipc); 84 void sst_ipc_fini(struct sst_generic_ipc *ipc);
|
D | Makefile | 3 snd-soc-sst-ipc-objs := sst-ipc.o 14 obj-$(CONFIG_SND_SOC_INTEL_SST) += snd-soc-sst-dsp.o snd-soc-sst-ipc.o
|
/sound/soc/intel/catpt/ |
D | ipc.c | 16 void catpt_ipc_init(struct catpt_ipc *ipc, struct device *dev) in catpt_ipc_init() argument 18 ipc->dev = dev; in catpt_ipc_init() 19 ipc->ready = false; in catpt_ipc_init() 20 ipc->default_timeout = CATPT_IPC_TIMEOUT_MS; in catpt_ipc_init() 21 init_completion(&ipc->done_completion); in catpt_ipc_init() 22 init_completion(&ipc->busy_completion); in catpt_ipc_init() 23 spin_lock_init(&ipc->lock); in catpt_ipc_init() 24 mutex_init(&ipc->mutex); in catpt_ipc_init() 27 static int catpt_ipc_arm(struct catpt_ipc *ipc, struct catpt_fw_ready *config) in catpt_ipc_arm() argument 34 ipc->rx.data = devm_kzalloc(ipc->dev, config->outbox_size, GFP_KERNEL); in catpt_ipc_arm() [all …]
|
D | Makefile | 1 snd-soc-catpt-objs := device.o dsp.o loader.o ipc.o messages.o pcm.o sysfs.o
|
D | core.h | 59 void catpt_ipc_init(struct catpt_ipc *ipc, struct device *dev); 91 struct catpt_ipc ipc; member
|
D | registers.h | 147 ((cdev)->lpe_ba + (cdev)->ipc.config.inbox_offset) 149 ((cdev)->lpe_ba + (cdev)->ipc.config.outbox_offset)
|
D | sysfs.c | 38 return sprintf(buf, "%s\n", cdev->ipc.config.fw_info); in fw_info_show()
|
/sound/soc/intel/skylake/ |
D | skl-sst-ipc.c | 296 static void skl_ipc_tx_msg(struct sst_generic_ipc *ipc, struct ipc_message *msg) in skl_ipc_tx_msg() argument 301 sst_dsp_outbox_write(ipc->dsp, msg->tx.data, msg->tx.size); in skl_ipc_tx_msg() 302 sst_dsp_shim_write_unlocked(ipc->dsp, SKL_ADSP_REG_HIPCIE, in skl_ipc_tx_msg() 304 sst_dsp_shim_write_unlocked(ipc->dsp, SKL_ADSP_REG_HIPCI, in skl_ipc_tx_msg() 325 static struct ipc_message *skl_ipc_reply_get_msg(struct sst_generic_ipc *ipc, in skl_ipc_reply_get_msg() argument 331 if (list_empty(&ipc->rx_list)) { in skl_ipc_reply_get_msg() 332 dev_err(ipc->dev, "ipc: rx list is empty but received 0x%x\n", in skl_ipc_reply_get_msg() 337 msg = list_first_entry(&ipc->rx_list, struct ipc_message, list); in skl_ipc_reply_get_msg() 345 int skl_ipc_process_notification(struct sst_generic_ipc *ipc, in skl_ipc_process_notification() argument 348 struct skl_dev *skl = container_of(ipc, struct skl_dev, ipc); in skl_ipc_process_notification() [all …]
|
D | skl-sst-ipc.h | 110 int skl_ipc_create_pipeline(struct sst_generic_ipc *ipc, 113 int skl_ipc_delete_pipeline(struct sst_generic_ipc *ipc, u8 instance_id); 115 int skl_ipc_set_pipeline_state(struct sst_generic_ipc *ipc, 118 int skl_ipc_save_pipeline(struct sst_generic_ipc *ipc, 121 int skl_ipc_restore_pipeline(struct sst_generic_ipc *ipc, u8 instance_id); 123 int skl_ipc_init_instance(struct sst_generic_ipc *ipc, 126 int skl_ipc_bind_unbind(struct sst_generic_ipc *ipc, 129 int skl_ipc_load_modules(struct sst_generic_ipc *ipc, 132 int skl_ipc_unload_modules(struct sst_generic_ipc *ipc, 135 int skl_ipc_set_dx(struct sst_generic_ipc *ipc, [all …]
|
D | skl-ssp-clk.c | 77 union skl_clk_ctrl_ipc *ipc; in skl_fill_clk_ipc() local 83 ipc = &rcfg->dma_ctl_ipc; in skl_fill_clk_ipc() 89 ipc->sclk_fs.hdr.size = sizeof(struct skl_dmactrl_sclkfs_cfg) - in skl_fill_clk_ipc() 91 ipc->sclk_fs.sampling_frequency = wfmt->samples_per_sec; in skl_fill_clk_ipc() 92 ipc->sclk_fs.bit_depth = wfmt->bits_per_sample; in skl_fill_clk_ipc() 93 ipc->sclk_fs.valid_bit_depth = in skl_fill_clk_ipc() 95 ipc->sclk_fs.number_of_channels = wfmt->channels; in skl_fill_clk_ipc() 97 ipc->mclk.hdr.type = DMA_CLK_CONTROLS; in skl_fill_clk_ipc() 99 ipc->mclk.hdr.size = sizeof(struct skl_dmactrl_mclk_cfg) - in skl_fill_clk_ipc() 113 union skl_clk_ctrl_ipc *ipc; in skl_send_clk_dma_control() local [all …]
|
D | cnl-sst.c | 234 ret = skl_ipc_set_dx(&cnl->ipc, CNL_INSTANCE_ID, in cnl_set_dsp_D0() 261 ret = skl_ipc_set_dx(&cnl->ipc, CNL_INSTANCE_ID, in cnl_set_dsp_D3() 316 struct sst_generic_ipc *ipc = &cnl->ipc; in cnl_dsp_irq_thread_handler() local 356 skl_ipc_process_reply(ipc, header); in cnl_dsp_irq_thread_handler() 359 skl_ipc_process_notification(ipc, header); in cnl_dsp_irq_thread_handler() 377 schedule_work(&ipc->kwork); in cnl_dsp_irq_thread_handler() 387 static void cnl_ipc_tx_msg(struct sst_generic_ipc *ipc, struct ipc_message *msg) in cnl_ipc_tx_msg() argument 392 sst_dsp_outbox_write(ipc->dsp, msg->tx.data, msg->tx.size); in cnl_ipc_tx_msg() 393 sst_dsp_shim_write_unlocked(ipc->dsp, CNL_ADSP_REG_HIPCIDD, in cnl_ipc_tx_msg() 395 sst_dsp_shim_write_unlocked(ipc->dsp, CNL_ADSP_REG_HIPCIDR, in cnl_ipc_tx_msg() [all …]
|
D | cnl-sst-dsp.c | 262 void cnl_ipc_free(struct sst_generic_ipc *ipc) in cnl_ipc_free() argument 264 cnl_ipc_op_int_disable(ipc->dsp); in cnl_ipc_free() 265 sst_ipc_fini(ipc); in cnl_ipc_free()
|
D | bxt-sst.c | 73 ret = skl_sst_ipc_load_library(&skl->ipc, dma_id, i, true); in bxt_load_library() 314 ret = skl_ipc_set_d0ix(&skl->ipc, &msg); in bxt_set_dsp_D0i3() 375 ret = skl_ipc_set_d0ix(&skl->ipc, &msg); in bxt_set_dsp_D0i0() 463 ret = skl_ipc_set_dx(&skl->ipc, BXT_INSTANCE_ID, in bxt_set_dsp_D0() 495 ret = skl_ipc_set_dx(&skl->ipc, BXT_INSTANCE_ID, in bxt_set_dsp_D3() 578 skl->ipc.ops.check_dsp_lp_on = skl_ipc_check_D0i0; in bxt_sst_dsp_init() 623 skl_ipc_free(&skl->ipc); in bxt_sst_dsp_cleanup()
|
D | skl-sst.c | 200 ret = skl_ipc_set_dx(&skl->ipc, SKL_INSTANCE_ID, in skl_set_dsp_D0() 224 ret = skl_ipc_set_dx(&skl->ipc, SKL_INSTANCE_ID, SKL_BASE_FW_MODULE_ID, &dx); in skl_set_dsp_D3() 344 ret = skl_ipc_load_modules(&skl->ipc, SKL_NUM_MODULES, &mod_id); in skl_transfer_module() 346 ret = skl_sst_ipc_load_library(&skl->ipc, 0, table_id, false); in skl_transfer_module() 458 ret = skl_ipc_unload_modules(&skl->ipc, in skl_unload_module() 589 skl_ipc_free(&skl->ipc); in skl_sst_dsp_cleanup()
|
D | skl-messages.c | 47 skl_ipc_set_large_config(&skl->ipc, &msg, data); in skl_dsp_set_astate_cfg() 653 err = skl_ipc_set_large_config(&skl->ipc, &msg, (u32 *)dma_ctrl); in skl_dsp_set_dma_control() 1010 ret = skl_ipc_init_instance(&skl->ipc, &msg, param_data); in skl_init_module() 1079 ret = skl_ipc_bind_unbind(&skl->ipc, &msg); in skl_unbind_modules() 1182 ret = skl_ipc_bind_unbind(&skl->ipc, &msg); in skl_bind_modules() 1203 return skl_ipc_set_pipeline_state(&skl->ipc, pipe->ppl_id, state); in skl_set_pipe_state() 1218 ret = skl_ipc_create_pipeline(&skl->ipc, pipe->memory_pages, in skl_create_pipeline() 1267 ret = skl_ipc_delete_pipeline(&skl->ipc, pipe->ppl_id); in skl_delete_pipe() 1372 return skl_ipc_set_large_config(&skl->ipc, &msg, params); in skl_set_module_params() 1386 return skl_ipc_get_large_config(&skl->ipc, &msg, ¶ms, &bytes); in skl_get_module_params()
|
D | Makefile | 3 skl-sst-ipc.o skl-sst-dsp.o cnl-sst-dsp.o skl-sst-cldma.o \
|
/sound/soc/sof/ |
D | ipc.c | 206 static int tx_wait_done(struct snd_sof_ipc *ipc, struct snd_sof_ipc_msg *msg, in tx_wait_done() argument 209 struct snd_sof_dev *sdev = ipc->sdev; in tx_wait_done() 220 snd_sof_handle_fw_exception(ipc->sdev); in tx_wait_done() 240 static int sof_ipc_tx_message_unlocked(struct snd_sof_ipc *ipc, u32 header, in sof_ipc_tx_message_unlocked() argument 244 struct snd_sof_dev *sdev = ipc->sdev; in sof_ipc_tx_message_unlocked() 248 if (ipc->disable_ipc_tx) in sof_ipc_tx_message_unlocked() 258 msg = &ipc->msg; in sof_ipc_tx_message_unlocked() 289 ret = tx_wait_done(ipc, msg, reply_data); in sof_ipc_tx_message_unlocked() 295 int sof_ipc_tx_message(struct snd_sof_ipc *ipc, u32 header, in sof_ipc_tx_message() argument 305 ret = snd_sof_dsp_set_power_state(ipc->sdev, &target_state); in sof_ipc_tx_message() [all …]
|
D | probe.c | 45 ret = sof_ipc_tx_message(sdev->ipc, msg->hdr.cmd, msg, msg->hdr.size, in sof_ipc_probe_init() 68 return sof_ipc_tx_message(sdev->ipc, msg.cmd, &msg, msg.size, in sof_ipc_probe_deinit() 90 ret = sof_ipc_tx_message(sdev->ipc, msg.rhdr.hdr.cmd, &msg, in sof_ipc_probe_info() 165 ret = sof_ipc_tx_message(sdev->ipc, msg->hdr.cmd, msg, msg->hdr.size, in sof_ipc_probe_dma_add() 199 ret = sof_ipc_tx_message(sdev->ipc, msg->hdr.cmd, msg, msg->hdr.size, in sof_ipc_probe_dma_remove() 253 ret = sof_ipc_tx_message(sdev->ipc, msg->hdr.cmd, msg, msg->hdr.size, in sof_ipc_probe_points_add() 285 ret = sof_ipc_tx_message(sdev->ipc, msg->hdr.cmd, msg, msg->hdr.size, in sof_ipc_probe_points_remove()
|
D | sof-audio.c | 207 ret = sof_ipc_tx_message(sdev->ipc, comp->hdr.cmd, in sof_restore_pipelines() 225 ret = sof_ipc_tx_message(sdev->ipc, hdr->cmd, in sof_restore_pipelines() 251 ret = sof_ipc_tx_message(sdev->ipc, in sof_restore_pipelines() 287 ret = sof_ipc_tx_message(sdev->ipc, in sof_restore_pipelines()
|
D | Makefile | 3 snd-sof-objs := core.o ops.o loader.o ipc.o pcm.o pm.o debug.o topology.o\
|
/sound/soc/sof/intel/ |
D | Makefile | 6 snd-sof-intel-ipc-objs := intel-ipc.o 9 hda-dsp.o hda-ipc.o hda-ctrl.o hda-pcm.o \ 18 obj-$(CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC) += snd-sof-intel-ipc.o
|
/sound/soc/sof/imx/ |
D | imx8m.c | 78 static void imx8m_dsp_handle_reply(struct imx_dsp_ipc *ipc) in imx8m_dsp_handle_reply() argument 80 struct imx8m_priv *priv = imx_dsp_get_data(ipc); in imx8m_dsp_handle_reply() 89 static void imx8m_dsp_handle_request(struct imx_dsp_ipc *ipc) in imx8m_dsp_handle_request() argument 91 struct imx8m_priv *priv = imx_dsp_get_data(ipc); in imx8m_dsp_handle_request()
|
D | imx8.c | 105 static void imx8_dsp_handle_reply(struct imx_dsp_ipc *ipc) in imx8_dsp_handle_reply() argument 107 struct imx8_priv *priv = imx_dsp_get_data(ipc); in imx8_dsp_handle_reply() 116 static void imx8_dsp_handle_request(struct imx_dsp_ipc *ipc) in imx8_dsp_handle_request() argument 118 struct imx8_priv *priv = imx_dsp_get_data(ipc); in imx8_dsp_handle_request()
|
/sound/soc/intel/atom/sst/ |
D | sst_ipc.c | 64 u32 drv_id, u32 ipc, void *data, u32 size) in sst_wake_up_block() argument 74 if (block->msg_id == ipc && block->drv_id == drv_id) { in sst_wake_up_block() 88 ipc, drv_id); in sst_wake_up_block()
|