Lines Matching full:ipc

28 	{3, "Not enough space in the IPC reply buffer to complete the request"},
30 {5, "Replaced ADSP IPC PENDING (unused)"},
275 sof_ipc4_log_header(sdev->dev, "ipc tx reply", ipc4_reply, false); in sof_ipc4_get_reply()
293 /* wait for IPC message reply */
294 static int ipc4_wait_tx_done(struct snd_sof_ipc *ipc, void *reply_data) in ipc4_wait_tx_done() argument
296 struct snd_sof_ipc_msg *msg = &ipc->msg; in ipc4_wait_tx_done()
298 struct snd_sof_dev *sdev = ipc->sdev; in ipc4_wait_tx_done()
301 /* wait for DSP IPC completion */ in ipc4_wait_tx_done()
305 dev_err(sdev->dev, "ipc timed out for %#x|%#x\n", in ipc4_wait_tx_done()
307 snd_sof_handle_fw_exception(ipc->sdev, "IPC timeout"); in ipc4_wait_tx_done()
312 dev_err(sdev->dev, "ipc error for msg %#x|%#x\n", in ipc4_wait_tx_done()
331 sof_ipc4_log_header(sdev->dev, "ipc tx done ", ipc4_msg, true); in ipc4_wait_tx_done()
334 /* re-enable dumps after successful IPC tx */ in ipc4_wait_tx_done()
343 static int ipc4_tx_msg_unlocked(struct snd_sof_ipc *ipc, in ipc4_tx_msg_unlocked() argument
348 struct snd_sof_dev *sdev = ipc->sdev; in ipc4_tx_msg_unlocked()
351 if (msg_bytes > ipc->max_payload_size || reply_bytes > ipc->max_payload_size) in ipc4_tx_msg_unlocked()
354 sof_ipc4_log_header(sdev->dev, "ipc tx ", msg_data, true); in ipc4_tx_msg_unlocked()
359 "%s: ipc message send for %#x|%#x failed: %d\n", in ipc4_tx_msg_unlocked()
365 return ipc4_wait_tx_done(ipc, reply_data); in ipc4_tx_msg_unlocked()
371 struct snd_sof_ipc *ipc = sdev->ipc; in sof_ipc4_tx_msg() local
382 /* ensure the DSP is in D0i0 before sending a new IPC */ in sof_ipc4_tx_msg()
388 /* Serialise IPC TX */ in sof_ipc4_tx_msg()
389 mutex_lock(&ipc->tx_mutex); in sof_ipc4_tx_msg()
391 ret = ipc4_tx_msg_unlocked(ipc, msg_data, msg_bytes, reply_data, reply_bytes); in sof_ipc4_tx_msg()
406 mutex_unlock(&ipc->tx_mutex); in sof_ipc4_tx_msg()
417 size_t payload_limit = sdev->ipc->max_payload_size; in sof_ipc4_set_get_data()
447 /* ensure the DSP is in D0i0 before sending IPC */ in sof_ipc4_set_get_data()
452 /* Serialise IPC TX */ in sof_ipc4_set_get_data()
453 mutex_lock(&sdev->ipc->tx_mutex); in sof_ipc4_set_get_data()
489 ret = ipc4_tx_msg_unlocked(sdev->ipc, &tx, tx_size, &rx, rx_size); in sof_ipc4_set_get_data()
529 mutex_unlock(&sdev->ipc->tx_mutex); in sof_ipc4_set_get_data()
537 struct snd_sof_ipc_msg *msg = &sdev->ipc->msg; in sof_ipc4_init_msg_memory()
540 sdev->ipc->max_payload_size = SOF_IPC4_MSG_MAX_SIZE; in sof_ipc4_init_msg_memory()
543 msg->reply_data = devm_kzalloc(sdev->dev, sdev->ipc->max_payload_size + in sof_ipc4_init_msg_memory()
626 const struct sof_ipc_tplg_ops *tplg_ops = sdev->ipc->ops->tplg; in sof_ipc4_module_notification_handler()
635 struct sof_ipc4_msg *ipc4_msg = sdev->ipc->msg.rx_data; in sof_ipc4_rx_msg()
646 sof_ipc4_log_header(sdev->dev, "ipc rx ", ipc4_msg, false); in sof_ipc4_rx_msg()
690 dev_err(sdev->dev, "failed to read IPC notification data: %d\n", err); in sof_ipc4_rx_msg()
702 sof_ipc4_log_header(sdev->dev, "ipc rx done ", ipc4_msg, true); in sof_ipc4_rx_msg()
777 /* Set up the windows for IPC communication */ in sof_ipc4_init()