[Sound-open-firmware] [PATCH] ipc: trace: reduce number of IPC messges used to enable DMA trace

Liam Girdwood liam.r.girdwood at linux.intel.com
Thu Oct 19 18:33:25 CEST 2017


No need to 2 IPCs to enable DMA trace. Just use one IPC.

Signed-off-by: Liam Girdwood <liam.r.girdwood at linux.intel.com>
---
 src/include/uapi/ipc.h |  3 +--
 src/ipc/intel-ipc.c    | 30 ++++--------------------------
 2 files changed, 5 insertions(+), 28 deletions(-)

diff --git a/src/include/uapi/ipc.h b/src/include/uapi/ipc.h
index 05952ab..281e77a 100644
--- a/src/include/uapi/ipc.h
+++ b/src/include/uapi/ipc.h
@@ -117,8 +117,7 @@
 #define SOF_IPC_STREAM_VORBIS_FREE		SOF_CMD_TYPE(0x011)
 
 /* trace and debug */
-#define SOF_IPC_TRACE_DMA_INIT			SOF_CMD_TYPE(0x001)
-#define SOF_IPC_TRACE_DMA_PARAMS		SOF_CMD_TYPE(0x002)
+#define SOF_IPC_TRACE_DMA_PARAMS		SOF_CMD_TYPE(0x001)
 
 /* Get message component id */
 #define SOF_IPC_MESSAGE_ID(x)			(x & 0xffff)
diff --git a/src/ipc/intel-ipc.c b/src/ipc/intel-ipc.c
index 9b47ca9..f6d88ef 100644
--- a/src/ipc/intel-ipc.c
+++ b/src/ipc/intel-ipc.c
@@ -574,12 +574,14 @@ static int ipc_glb_pm_message(uint32_t header)
  * Debug IPC Operations.
  */
 
-static int ipc_dma_trace_init(uint32_t header)
+static int ipc_dma_trace_config(uint32_t header)
 {
+	struct intel_ipc_data *iipc = ipc_get_drvdata(_ipc);
+	struct sof_ipc_dma_trace_params *params = _ipc->comp_data;
 	struct sof_ipc_reply reply;
 	int err;
 
-	trace_ipc("Dti");
+	trace_ipc_error("DA1");
 
 	/* Initialize DMA for Trace*/
 	err = dma_trace_init(&_ipc->dmat);
@@ -588,28 +590,6 @@ static int ipc_dma_trace_init(uint32_t header)
 		goto error;
 	}
 
-	/* write component values to the outbox */
-	reply.hdr.size = sizeof(reply);
-	reply.hdr.cmd = header;
-	reply.error = 0;
-	mailbox_hostbox_write(0, &reply, sizeof(reply));
-	return 0;
-
-error:
-	if (err < 0)
-		trace_ipc_error("eA!");
-	return -EINVAL;
-}
-
-static int ipc_dma_trace_config(uint32_t header)
-{
-	struct intel_ipc_data *iipc = ipc_get_drvdata(_ipc);
-	struct sof_ipc_dma_trace_params *params = _ipc->comp_data;
-	struct sof_ipc_reply reply;
-	int err;
-
-	trace_ipc("DAl");
-
 	/* use DMA to read in compressed page table ringbuffer from host */
 	err = get_page_descriptors(iipc, &params->buffer);
 	if (err < 0) {
@@ -653,8 +633,6 @@ static int ipc_glb_debug_message(uint32_t header)
 	trace_ipc("Idn");
 
 	switch (cmd) {
-	case iCS(SOF_IPC_TRACE_DMA_INIT):
-		return ipc_dma_trace_init(header);
 	case iCS(SOF_IPC_TRACE_DMA_PARAMS):
 		return ipc_dma_trace_config(header);
 	default:
-- 
2.11.0



More information about the Sound-open-firmware mailing list