Lines Matching refs:header
236 u32 header; member
435 static void hsw_fw_ready(struct sst_hsw *hsw, u32 header) in hsw_fw_ready() argument
443 offset = (header & 0x1FFFFFFF) << 3; in hsw_fw_ready()
446 header, offset); in hsw_fw_ready()
486 reason = msg_get_notify_reason(stream->header); in hsw_notification_work()
510 stream->header); in hsw_notification_work()
525 u32 header = msg->header & ~(IPC_STATUS_MASK | IPC_GLB_REPLY_MASK); in hsw_stream_update() local
526 u32 stream_id = msg_get_stream_id(header); in hsw_stream_update()
527 u32 stream_msg = msg_get_stream_type(header); in hsw_stream_update()
553 static int hsw_process_reply(struct sst_hsw *hsw, u32 header) in hsw_process_reply() argument
556 u32 reply = msg_get_global_reply(header); in hsw_process_reply()
558 trace_ipc_reply("processing -->", header); in hsw_process_reply()
560 msg = sst_ipc_reply_find_msg(&hsw->ipc, header); in hsw_process_reply()
562 trace_ipc_error("error: can't find message header", header); in hsw_process_reply()
569 trace_ipc_pending_reply("received", header); in hsw_process_reply()
575 trace_ipc_pending_reply("completed", header); in hsw_process_reply()
587 trace_ipc_error("error: unknown message type", header); in hsw_process_reply()
591 trace_ipc_error("error: out of resources", header); in hsw_process_reply()
595 trace_ipc_error("error: reply busy", header); in hsw_process_reply()
599 trace_ipc_error("error: reply failure", header); in hsw_process_reply()
603 trace_ipc_error("error: stage uninitialized", header); in hsw_process_reply()
607 trace_ipc_error("error: reply not found", header); in hsw_process_reply()
611 trace_ipc_error("error: source not started", header); in hsw_process_reply()
615 trace_ipc_error("error: invalid request", header); in hsw_process_reply()
619 trace_ipc_error("error: invalid parameter", header); in hsw_process_reply()
623 trace_ipc_error("error: unknown reply", header); in hsw_process_reply()
629 if (msg_get_global_type(header) == IPC_GLB_STREAM_MESSAGE) in hsw_process_reply()
639 static int hsw_module_message(struct sst_hsw *hsw, u32 header) in hsw_module_message() argument
644 operation = msg_get_module_operation(header); in hsw_module_message()
645 module_id = msg_get_module_id(header); in hsw_module_message()
647 header); in hsw_module_message()
657 handled = hsw_process_reply(hsw, header); in hsw_module_message()
664 static int hsw_stream_message(struct sst_hsw *hsw, u32 header) in hsw_stream_message() argument
670 stream_msg = msg_get_stream_type(header); in hsw_stream_message()
671 stream_id = msg_get_stream_id(header); in hsw_stream_message()
672 stage_type = msg_get_stage_type(header); in hsw_stream_message()
678 stream->header = header; in hsw_stream_message()
683 header); in hsw_stream_message()
690 handled = hsw_process_reply(hsw, header); in hsw_stream_message()
697 static int hsw_log_message(struct sst_hsw *hsw, u32 header) in hsw_log_message() argument
699 u32 operation = (header & IPC_LOG_OP_MASK) >> IPC_LOG_OP_SHIFT; in hsw_log_message()
705 "error: log msg not implemented 0x%8.8x\n", header); in hsw_log_message()
723 u32 type, header; in hsw_process_notification() local
726 header = sst_dsp_shim_read_unlocked(sst, SST_IPCD); in hsw_process_notification()
727 type = msg_get_global_type(header); in hsw_process_notification()
729 trace_ipc_request("processing -->", header); in hsw_process_notification()
732 if (!hsw->boot_complete && header & IPC_FW_READY) { in hsw_process_notification()
733 hsw_fw_ready(hsw, header); in hsw_process_notification()
751 type, header); in hsw_process_notification()
754 handled = hsw_stream_message(hsw, header); in hsw_process_notification()
757 handled = hsw_log_message(hsw, header); in hsw_process_notification()
760 handled = hsw_module_message(hsw, header); in hsw_process_notification()
764 type, header); in hsw_process_notification()
860 u32 header; in sst_hsw_stream_set_volume() local
868 header = IPC_GLB_TYPE(IPC_GLB_STREAM_MESSAGE) | in sst_hsw_stream_set_volume()
870 header |= (stream->reply.stream_hw_id << IPC_STR_ID_SHIFT); in sst_hsw_stream_set_volume()
871 header |= (IPC_STG_SET_VOLUME << IPC_STG_TYPE_SHIFT); in sst_hsw_stream_set_volume()
872 header |= (stage_id << IPC_STG_ID_SHIFT); in sst_hsw_stream_set_volume()
897 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, req, in sst_hsw_stream_set_volume()
925 u32 header; in sst_hsw_mixer_set_volume() local
953 header = IPC_GLB_TYPE(IPC_GLB_STREAM_MESSAGE) | in sst_hsw_mixer_set_volume()
955 header |= (hsw->mixer_info.mixer_hw_id << IPC_STR_ID_SHIFT); in sst_hsw_mixer_set_volume()
956 header |= (IPC_STG_SET_VOLUME << IPC_STG_TYPE_SHIFT); in sst_hsw_mixer_set_volume()
957 header |= (stage_id << IPC_STG_ID_SHIFT); in sst_hsw_mixer_set_volume()
963 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, &req, in sst_hsw_mixer_set_volume()
1003 u32 header; in sst_hsw_stream_free() local
1020 header = IPC_GLB_TYPE(IPC_GLB_FREE_STREAM); in sst_hsw_stream_free()
1022 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, &stream->free_req, in sst_hsw_stream_free()
1197 u32 header; in sst_hsw_stream_commit() local
1212 header = IPC_GLB_TYPE(IPC_GLB_ALLOCATE_STREAM); in sst_hsw_stream_commit()
1214 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, str_req, in sst_hsw_stream_commit()
1256 u32 header; in sst_hsw_mixer_get_info() local
1260 header = IPC_GLB_TYPE(IPC_GLB_GET_MIXER_STREAM_INFO); in sst_hsw_mixer_get_info()
1264 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, NULL, 0, in sst_hsw_mixer_get_info()
1280 u32 header; in sst_hsw_stream_operations() local
1282 header = IPC_GLB_TYPE(IPC_GLB_STREAM_MESSAGE) | IPC_STR_TYPE(type); in sst_hsw_stream_operations()
1283 header |= (stream_id << IPC_STR_ID_SHIFT); in sst_hsw_stream_operations()
1286 return sst_ipc_tx_message_wait(&hsw->ipc, header, in sst_hsw_stream_operations()
1289 return sst_ipc_tx_message_nowait(&hsw->ipc, header, NULL, 0); in sst_hsw_stream_operations()
1398 u32 header; in sst_hsw_device_set_config() local
1414 header = IPC_GLB_TYPE(IPC_GLB_SET_DEVICE_FORMATS); in sst_hsw_device_set_config()
1416 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, &config, in sst_hsw_device_set_config()
1429 u32 header, state_; in sst_hsw_dx_set_state() local
1432 header = IPC_GLB_TYPE(IPC_GLB_ENTER_DX_STATE); in sst_hsw_dx_set_state()
1437 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, &state_, in sst_hsw_dx_set_state()
1898 u32 header = 0; in sst_hsw_module_enable() local
1927 header = IPC_GLB_TYPE(IPC_GLB_MODULE_OPERATION) | in sst_hsw_module_enable()
1930 dev_dbg(dev, "module enable header: %x\n", header); in sst_hsw_module_enable()
1952 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, in sst_hsw_module_enable()
1966 u32 header; in sst_hsw_module_disable() local
1987 header = IPC_GLB_TYPE(IPC_GLB_MODULE_OPERATION) | in sst_hsw_module_disable()
1991 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, NULL, 0, NULL, 0); in sst_hsw_module_disable()
2006 u32 header = 0; in sst_hsw_module_set_param() local
2012 header = IPC_GLB_TYPE(IPC_GLB_MODULE_OPERATION) | in sst_hsw_module_set_param()
2015 dev_dbg(dev, "sst_hsw_module_set_param header=%x\n", header); in sst_hsw_module_set_param()
2045 ret = sst_ipc_tx_message_wait(&hsw->ipc, header, in sst_hsw_module_set_param()
2068 sst_dsp_ipc_msg_tx(ipc->dsp, msg->header); in hsw_tx_msg()
2092 static u64 hsw_reply_msg_match(u64 header, u64 *mask) in hsw_reply_msg_match() argument
2095 header &= ~(IPC_STATUS_MASK | IPC_GLB_REPLY_MASK); in hsw_reply_msg_match()
2098 return header; in hsw_reply_msg_match()