Lines Matching full:ipc
34 {3, "Not enough space in the IPC reply buffer to complete the request"},
36 {5, "Replaced ADSP IPC PENDING (unused)"},
266 sof_ipc4_log_header(sdev->dev, "ipc tx reply", ipc4_reply, false); in sof_ipc4_get_reply()
284 /* wait for IPC message reply */
285 static int ipc4_wait_tx_done(struct snd_sof_ipc *ipc, void *reply_data) in ipc4_wait_tx_done() argument
287 struct snd_sof_ipc_msg *msg = &ipc->msg; in ipc4_wait_tx_done()
289 struct snd_sof_dev *sdev = ipc->sdev; in ipc4_wait_tx_done()
292 /* wait for DSP IPC completion */ in ipc4_wait_tx_done()
296 dev_err(sdev->dev, "ipc timed out for %#x|%#x\n", in ipc4_wait_tx_done()
298 snd_sof_handle_fw_exception(ipc->sdev, "IPC timeout"); in ipc4_wait_tx_done()
303 dev_err(sdev->dev, "ipc error for msg %#x|%#x\n", in ipc4_wait_tx_done()
322 sof_ipc4_log_header(sdev->dev, "ipc tx done ", ipc4_msg, true); in ipc4_wait_tx_done()
325 /* re-enable dumps after successful IPC tx */ in ipc4_wait_tx_done()
334 static int ipc4_tx_msg_unlocked(struct snd_sof_ipc *ipc, in ipc4_tx_msg_unlocked() argument
339 struct snd_sof_dev *sdev = ipc->sdev; in ipc4_tx_msg_unlocked()
342 if (msg_bytes > ipc->max_payload_size || reply_bytes > ipc->max_payload_size) in ipc4_tx_msg_unlocked()
348 "%s: ipc message send for %#x|%#x failed: %d\n", in ipc4_tx_msg_unlocked()
353 sof_ipc4_log_header(sdev->dev, "ipc tx ", msg_data, true); in ipc4_tx_msg_unlocked()
356 return ipc4_wait_tx_done(ipc, reply_data); in ipc4_tx_msg_unlocked()
362 struct snd_sof_ipc *ipc = sdev->ipc; in sof_ipc4_tx_msg() local
371 /* Serialise IPC TX */ in sof_ipc4_tx_msg()
372 mutex_lock(&ipc->tx_mutex); in sof_ipc4_tx_msg()
374 ret = ipc4_tx_msg_unlocked(ipc, msg_data, msg_bytes, reply_data, reply_bytes); in sof_ipc4_tx_msg()
376 mutex_unlock(&ipc->tx_mutex); in sof_ipc4_tx_msg()
395 size_t payload_limit = sdev->ipc->max_payload_size; in sof_ipc4_set_get_data()
425 /* Serialise IPC TX */ in sof_ipc4_set_get_data()
426 mutex_lock(&sdev->ipc->tx_mutex); in sof_ipc4_set_get_data()
462 ret = ipc4_tx_msg_unlocked(sdev->ipc, &tx, tx_size, &rx, rx_size); in sof_ipc4_set_get_data()
501 mutex_unlock(&sdev->ipc->tx_mutex); in sof_ipc4_set_get_data()
509 struct snd_sof_ipc_msg *msg = &sdev->ipc->msg; in sof_ipc4_init_msg_memory()
512 sdev->ipc->max_payload_size = SOF_IPC4_MSG_MAX_SIZE; in sof_ipc4_init_msg_memory()
515 msg->reply_data = devm_kzalloc(sdev->dev, sdev->ipc->max_payload_size + in sof_ipc4_init_msg_memory()
534 /* Set up the windows for IPC communication */ in ipc4_fw_ready()
563 struct sof_ipc4_msg *ipc4_msg = sdev->ipc->msg.rx_data; in sof_ipc4_rx_msg()
573 sof_ipc4_log_header(sdev->dev, "ipc rx ", ipc4_msg, false); in sof_ipc4_rx_msg()
611 sof_ipc4_log_header(sdev->dev, "ipc rx done ", ipc4_msg, true); in sof_ipc4_rx_msg()