[Sound-open-firmware] [PATCH 2/2] ipc: make sure all IPC return error values are processed correctly
Liam Girdwood
liam.r.girdwood at linux.intel.com
Thu Jun 15 14:48:14 CEST 2017
Return int instead of uint32_t for errors.
Signed-off-by: Liam Girdwood <liam.r.girdwood at linux.intel.com>
---
src/include/reef/intel-ipc.h | 2 +-
src/ipc/intel-ipc.c | 45 ++++++++++++++++++++++----------------------
2 files changed, 23 insertions(+), 24 deletions(-)
diff --git a/src/include/reef/intel-ipc.h b/src/include/reef/intel-ipc.h
index b5bf35a..c884e44 100644
--- a/src/include/reef/intel-ipc.h
+++ b/src/include/reef/intel-ipc.h
@@ -44,6 +44,6 @@ struct intel_ipc_data {
int pm_prepare_D3; /* do we need to prepare for D3 */
};
-uint32_t ipc_cmd(void);
+int ipc_cmd(void);
#endif
diff --git a/src/ipc/intel-ipc.c b/src/ipc/intel-ipc.c
index 57922cc..5530000 100644
--- a/src/ipc/intel-ipc.c
+++ b/src/ipc/intel-ipc.c
@@ -195,7 +195,7 @@ static int parse_page_descriptors(struct intel_ipc_data *iipc,
*/
/* allocate a new stream */
-static uint32_t ipc_stream_pcm_params(uint32_t stream)
+static int ipc_stream_pcm_params(uint32_t stream)
{
struct intel_ipc_data *iipc = ipc_get_drvdata(_ipc);
struct sof_ipc_pcm_params *pcm_params = _ipc->comp_data;
@@ -244,7 +244,7 @@ error:
}
/* free stream resources */
-static uint32_t ipc_stream_pcm_free(uint32_t header)
+static int ipc_stream_pcm_free(uint32_t header)
{
struct sof_ipc_stream *free_req = _ipc->comp_data;
struct ipc_comp_dev *pcm_dev;
@@ -261,7 +261,7 @@ static uint32_t ipc_stream_pcm_free(uint32_t header)
return 0;
}
-static uint32_t ipc_stream_trigger(uint32_t header)
+static int ipc_stream_trigger(uint32_t header)
{
struct ipc_comp_dev *pcm_dev;
uint32_t cmd = COMP_CMD_RELEASE;
@@ -310,7 +310,7 @@ error:
return 0;
}
-static uint32_t ipc_glb_stream_message(uint32_t header)
+static int ipc_glb_stream_message(uint32_t header)
{
uint32_t cmd = (header & SOF_CMD_TYPE_MASK) >> SOF_CMD_TYPE_SHIFT;
@@ -335,7 +335,7 @@ static uint32_t ipc_glb_stream_message(uint32_t header)
* DAI IPC Operations.
*/
-static uint32_t ipc_dai_ssp_config(uint32_t header)
+static int ipc_dai_ssp_config(uint32_t header)
{
struct sof_ipc_dai_ssp_params *ssp = _ipc->comp_data;
struct ipc_comp_dev *dai_dev;
@@ -363,7 +363,7 @@ error:
* PM IPC Operations.
*/
-static uint32_t ipc_pm_context_size(uint32_t header)
+static int ipc_pm_context_size(uint32_t header)
{
struct sof_ipc_pm_ctx pm_ctx;
@@ -379,7 +379,7 @@ static uint32_t ipc_pm_context_size(uint32_t header)
return 0;
}
-static uint32_t ipc_pm_context_save(uint32_t header)
+static int ipc_pm_context_save(uint32_t header)
{
struct sof_ipc_pm_ctx *pm_ctx = _ipc->comp_data;
@@ -415,7 +415,7 @@ static uint32_t ipc_pm_context_save(uint32_t header)
return 0;
}
-static uint32_t ipc_pm_context_restore(uint32_t header)
+static int ipc_pm_context_restore(uint32_t header)
{
// struct sof_ipc_pm_ctx pm_ctx = _ipc->comp_data;
@@ -426,7 +426,7 @@ static uint32_t ipc_pm_context_restore(uint32_t header)
return 0;
}
-static uint32_t ipc_glb_pm_message(uint32_t header)
+static int ipc_glb_pm_message(uint32_t header)
{
uint32_t cmd = (header & SOF_CMD_TYPE_MASK) >> SOF_CMD_TYPE_SHIFT;
@@ -449,7 +449,7 @@ static uint32_t ipc_glb_pm_message(uint32_t header)
* Topology IPC Operations.
*/
-static uint32_t ipc_comp_set_value(uint32_t header, uint32_t cmd)
+static int ipc_comp_set_value(uint32_t header, uint32_t cmd)
{
struct ipc_comp_dev *stream_dev;
struct sof_ipc_ctrl_values *values = _ipc->comp_data;
@@ -465,7 +465,7 @@ static uint32_t ipc_comp_set_value(uint32_t header, uint32_t cmd)
return comp_cmd(stream_dev->cd, cmd, values);
}
-static uint32_t ipc_comp_get_value(uint32_t header, uint32_t cmd)
+static int ipc_comp_get_value(uint32_t header, uint32_t cmd)
{
struct ipc_comp_dev *stream_dev;
struct sof_ipc_ctrl_values *values = _ipc->comp_data;
@@ -473,7 +473,6 @@ static uint32_t ipc_comp_get_value(uint32_t header, uint32_t cmd)
trace_ipc("VoG");
-
/* get the component */
stream_dev = ipc_get_comp(_ipc, values->comp_id);
if (stream_dev == NULL)
@@ -490,7 +489,7 @@ static uint32_t ipc_comp_get_value(uint32_t header, uint32_t cmd)
return 0;
}
-static uint32_t ipc_glb_comp_message(uint32_t header)
+static int ipc_glb_comp_message(uint32_t header)
{
uint32_t cmd = (header & SOF_CMD_TYPE_MASK) >> SOF_CMD_TYPE_SHIFT;
@@ -520,15 +519,15 @@ static uint32_t ipc_glb_comp_message(uint32_t header)
default:
trace_ipc_error("eCc");
trace_value(header);
- return EINVAL;
+ return -EINVAL;
}
}
-static uint32_t ipc_glb_tplg_comp_new(uint32_t header)
+static int ipc_glb_tplg_comp_new(uint32_t header)
{
struct sof_ipc_comp *comp = _ipc->comp_data;
struct sof_ipc_comp_reply reply;
- uint32_t ret;
+ int ret;
trace_ipc("tcn");
@@ -542,14 +541,14 @@ static uint32_t ipc_glb_tplg_comp_new(uint32_t header)
return 0;
}
-static uint32_t ipc_glb_tplg_buffer_new(uint32_t header)
+static int ipc_glb_tplg_buffer_new(uint32_t header)
{
struct sof_ipc_buffer *ipc_buffer = _ipc->comp_data;
return ipc_buffer_new(_ipc, ipc_buffer);
}
-static uint32_t ipc_glb_tplg_pipe_new(uint32_t header)
+static int ipc_glb_tplg_pipe_new(uint32_t header)
{
struct sof_ipc_pipe_new *ipc_pipeline = _ipc->comp_data;
@@ -558,7 +557,7 @@ static uint32_t ipc_glb_tplg_pipe_new(uint32_t header)
return ipc_pipeline_new(_ipc, ipc_pipeline);
}
-static uint32_t ipc_glb_tplg_comp_connect(uint32_t header)
+static int ipc_glb_tplg_comp_connect(uint32_t header)
{
struct sof_ipc_pipe_comp_connect *connect = _ipc->comp_data;
@@ -567,7 +566,7 @@ static uint32_t ipc_glb_tplg_comp_connect(uint32_t header)
return ipc_comp_connect(_ipc, connect);
}
-static uint32_t ipc_glb_tplg_pipe_connect(uint32_t header)
+static int ipc_glb_tplg_pipe_connect(uint32_t header)
{
struct sof_ipc_pipe_pipe_connect *connect = _ipc->comp_data;
@@ -576,7 +575,7 @@ static uint32_t ipc_glb_tplg_pipe_connect(uint32_t header)
return ipc_pipe_connect(_ipc, connect);
}
-static uint32_t ipc_glb_tplg_free(uint32_t header,
+static int ipc_glb_tplg_free(uint32_t header,
void (*free_func)(struct ipc *ipc, uint32_t id))
{
struct sof_ipc_free *ipc_free = _ipc->comp_data;
@@ -589,7 +588,7 @@ static uint32_t ipc_glb_tplg_free(uint32_t header,
return 0;
}
-static uint32_t ipc_glb_tplg_message(uint32_t header)
+static int ipc_glb_tplg_message(uint32_t header)
{
uint32_t cmd = (header & SOF_CMD_TYPE_MASK) >> SOF_CMD_TYPE_SHIFT;
@@ -623,7 +622,7 @@ static uint32_t ipc_glb_tplg_message(uint32_t header)
* Global IPC Operations.
*/
-uint32_t ipc_cmd(void)
+int ipc_cmd(void)
{
struct sof_ipc_hdr *hdr;
uint32_t type;
--
1.9.1
More information about the Sound-open-firmware
mailing list