Lines Matching refs:header
236 u32 header; member
439 static void hsw_fw_ready(struct sst_hsw *hsw, u32 header) in hsw_fw_ready() argument
447 offset = (header & 0x1FFFFFFF) << 3; in hsw_fw_ready()
450 header, offset); in hsw_fw_ready()
490 reason = msg_get_notify_reason(stream->header); in hsw_notification_work()
514 stream->header); in hsw_notification_work()
529 u32 header = msg->header & ~(IPC_STATUS_MASK | IPC_GLB_REPLY_MASK); in hsw_stream_update() local
530 u32 stream_id = msg_get_stream_id(header); in hsw_stream_update()
531 u32 stream_msg = msg_get_stream_type(header); in hsw_stream_update()
557 static int hsw_process_reply(struct sst_hsw *hsw, u32 header) in hsw_process_reply() argument
560 u32 reply = msg_get_global_reply(header); in hsw_process_reply()
562 trace_ipc_reply("processing -->", header); in hsw_process_reply()
564 msg = sst_ipc_reply_find_msg(&hsw->ipc, header); in hsw_process_reply()
566 trace_ipc_error("error: can't find message header", header); in hsw_process_reply()
573 trace_ipc_pending_reply("received", header); in hsw_process_reply()
579 trace_ipc_pending_reply("completed", header); in hsw_process_reply()
591 trace_ipc_error("error: unknown message type", header); in hsw_process_reply()
595 trace_ipc_error("error: out of resources", header); in hsw_process_reply()
599 trace_ipc_error("error: reply busy", header); in hsw_process_reply()
603 trace_ipc_error("error: reply failure", header); in hsw_process_reply()
607 trace_ipc_error("error: stage uninitialized", header); in hsw_process_reply()
611 trace_ipc_error("error: reply not found", header); in hsw_process_reply()
615 trace_ipc_error("error: source not started", header); in hsw_process_reply()
619 trace_ipc_error("error: invalid request", header); in hsw_process_reply()
623 trace_ipc_error("error: invalid parameter", header); in hsw_process_reply()
627 trace_ipc_error("error: unknown reply", header); in hsw_process_reply()
633 if (msg_get_global_type(header) == IPC_GLB_STREAM_MESSAGE) in hsw_process_reply()
643 static int hsw_module_message(struct sst_hsw *hsw, u32 header) in hsw_module_message() argument
648 operation = msg_get_module_operation(header); in hsw_module_message()
649 module_id = msg_get_module_id(header); in hsw_module_message()
651 header); in hsw_module_message()
661 handled = hsw_process_reply(hsw, header); in hsw_module_message()
668 static int hsw_stream_message(struct sst_hsw *hsw, u32 header) in hsw_stream_message() argument
674 stream_msg = msg_get_stream_type(header); in hsw_stream_message()
675 stream_id = msg_get_stream_id(header); in hsw_stream_message()
676 stage_type = msg_get_stage_type(header); in hsw_stream_message()
682 stream->header = header; in hsw_stream_message()
687 header); in hsw_stream_message()
694 handled = hsw_process_reply(hsw, header); in hsw_stream_message()
701 static int hsw_log_message(struct sst_hsw *hsw, u32 header) in hsw_log_message() argument
703 u32 operation = (header & IPC_LOG_OP_MASK) >> IPC_LOG_OP_SHIFT; in hsw_log_message()
709 "error: log msg not implemented 0x%8.8x\n", header); in hsw_log_message()
727 u32 type, header; in hsw_process_notification() local
730 header = sst_dsp_shim_read_unlocked(sst, SST_IPCD); in hsw_process_notification()
731 type = msg_get_global_type(header); in hsw_process_notification()
733 trace_ipc_request("processing -->", header); in hsw_process_notification()
736 if (!hsw->boot_complete && header & IPC_FW_READY) { in hsw_process_notification()
737 hsw_fw_ready(hsw, header); in hsw_process_notification()
755 type, header); in hsw_process_notification()
758 handled = hsw_stream_message(hsw, header); in hsw_process_notification()
761 handled = hsw_log_message(hsw, header); in hsw_process_notification()
764 handled = hsw_module_message(hsw, header); in hsw_process_notification()
768 type, header); in hsw_process_notification()
864 u32 header; in sst_hsw_stream_set_volume() local
872 header = IPC_GLB_TYPE(IPC_GLB_STREAM_MESSAGE) | in sst_hsw_stream_set_volume()
874 header |= (stream->reply.stream_hw_id << IPC_STR_ID_SHIFT); in sst_hsw_stream_set_volume()
875 header |= (IPC_STG_SET_VOLUME << IPC_STG_TYPE_SHIFT); in sst_hsw_stream_set_volume()
876 header |= (stage_id << IPC_STG_ID_SHIFT); in sst_hsw_stream_set_volume()
901 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, req, in sst_hsw_stream_set_volume()
929 u32 header; in sst_hsw_mixer_set_volume() local
957 header = IPC_GLB_TYPE(IPC_GLB_STREAM_MESSAGE) | in sst_hsw_mixer_set_volume()
959 header |= (hsw->mixer_info.mixer_hw_id << IPC_STR_ID_SHIFT); in sst_hsw_mixer_set_volume()
960 header |= (IPC_STG_SET_VOLUME << IPC_STG_TYPE_SHIFT); in sst_hsw_mixer_set_volume()
961 header |= (stage_id << IPC_STG_ID_SHIFT); in sst_hsw_mixer_set_volume()
967 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, &req, in sst_hsw_mixer_set_volume()
1007 u32 header; in sst_hsw_stream_free() local
1024 header = IPC_GLB_TYPE(IPC_GLB_FREE_STREAM); in sst_hsw_stream_free()
1026 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, &stream->free_req, in sst_hsw_stream_free()
1201 u32 header; in sst_hsw_stream_commit() local
1216 header = IPC_GLB_TYPE(IPC_GLB_ALLOCATE_STREAM); in sst_hsw_stream_commit()
1218 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, str_req, in sst_hsw_stream_commit()
1260 u32 header; in sst_hsw_mixer_get_info() local
1264 header = IPC_GLB_TYPE(IPC_GLB_GET_MIXER_STREAM_INFO); in sst_hsw_mixer_get_info()
1268 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, NULL, 0, in sst_hsw_mixer_get_info()
1284 u32 header; in sst_hsw_stream_operations() local
1286 header = IPC_GLB_TYPE(IPC_GLB_STREAM_MESSAGE) | IPC_STR_TYPE(type); in sst_hsw_stream_operations()
1287 header |= (stream_id << IPC_STR_ID_SHIFT); in sst_hsw_stream_operations()
1290 return sst_ipc_tx_message_wait(&hsw->ipc, header, in sst_hsw_stream_operations()
1293 return sst_ipc_tx_message_nowait(&hsw->ipc, header, NULL, 0); in sst_hsw_stream_operations()
1402 u32 header; in sst_hsw_device_set_config() local
1418 header = IPC_GLB_TYPE(IPC_GLB_SET_DEVICE_FORMATS); in sst_hsw_device_set_config()
1420 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, &config, in sst_hsw_device_set_config()
1433 u32 header, state_; in sst_hsw_dx_set_state() local
1436 header = IPC_GLB_TYPE(IPC_GLB_ENTER_DX_STATE); in sst_hsw_dx_set_state()
1441 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, &state_, in sst_hsw_dx_set_state()
1902 u32 header = 0; in sst_hsw_module_enable() local
1931 header = IPC_GLB_TYPE(IPC_GLB_MODULE_OPERATION) | in sst_hsw_module_enable()
1934 dev_dbg(dev, "module enable header: %x\n", header); in sst_hsw_module_enable()
1956 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, in sst_hsw_module_enable()
1970 u32 header; in sst_hsw_module_disable() local
1991 header = IPC_GLB_TYPE(IPC_GLB_MODULE_OPERATION) | in sst_hsw_module_disable()
1995 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, NULL, 0, NULL, 0); in sst_hsw_module_disable()
2010 u32 header = 0; in sst_hsw_module_set_param() local
2016 header = IPC_GLB_TYPE(IPC_GLB_MODULE_OPERATION) | in sst_hsw_module_set_param()
2019 dev_dbg(dev, "sst_hsw_module_set_param header=%x\n", header); in sst_hsw_module_set_param()
2049 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, in sst_hsw_module_set_param()
2072 sst_dsp_ipc_msg_tx(ipc->dsp, msg->header); in hsw_tx_msg()
2096 static u64 hsw_reply_msg_match(u64 header, u64 *mask) in hsw_reply_msg_match() argument
2099 header &= ~(IPC_STATUS_MASK | IPC_GLB_REPLY_MASK); in hsw_reply_msg_match()
2102 return header; in hsw_reply_msg_match()