Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions src/logging/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,10 @@ config LOG_BACKEND_SOF_PROBE_OUTPUT
help
Set the logging format for SOF probe output.

config LOG_BACKEND_SOF_PROBE_OUTPUT_AUTO_ENABLE
bool "Automatically enabe probes logging when probe dma is started"
depends on LOG_BACKEND_SOF_PROBE_OUTPUT
help
Automatically enable logging on probes extraction dma.

endmenu
27 changes: 27 additions & 0 deletions src/probe/probe.c
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,8 @@ static enum task_state probe_task(void *data)
return SOF_TASK_STATE_RESCHEDULE;
}

static void probe_auto_enable_logs(uint32_t stream_tag);

int probe_init(struct probe_dma *probe_dma)
{
struct probe_pdata *_probe = probe_get();
Expand Down Expand Up @@ -323,6 +325,10 @@ int probe_init(struct probe_dma *probe_dma)
for (i = 0; i < CONFIG_PROBE_POINTS_MAX; i++)
_probe->probe_points[i].stream_tag = PROBE_POINT_INVALID;

#if CONFIG_LOG_BACKEND_SOF_PROBE
if (probe_dma)
probe_auto_enable_logs(probe_dma->stream_tag);
#endif
return 0;
}

Expand Down Expand Up @@ -1206,6 +1212,27 @@ int probe_point_add(uint32_t count, struct probe_point *probe)
return 0;
}

static void probe_auto_enable_logs(uint32_t stream_tag)
{
struct probe_point log_point = {
#if CONFIG_IPC_MAJOR_4
.buffer_id = {
.full_id = 0,
},
#else
.buffer_id = 0,
#endif
.purpose = PROBE_PURPOSE_EXTRACTION,
.stream_tag = stream_tag,
};
int ret;
ret = probe_point_add(1, &log_point);

if (ret)
tr_err(&pr_tr, "probe_auto_enable_logs() failed");

}

#if CONFIG_IPC_MAJOR_3
int probe_dma_info(struct sof_ipc_probe_info_params *data, uint32_t max_size)
{
Expand Down