Skip to content

Commit a10f59d

Browse files
committed
base_fw: Add perf measurement state set ipc
Adds performance measurement state ipc to change the state of performance measurement. Signed-off-by: Tobiasz Dryjanski <tobiaszx.dryjanski@intel.com>
1 parent a987e76 commit a10f59d

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/audio/base_fw.c

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,28 @@ int schedulers_info_get(uint32_t *data_off_size,
504504
return 0;
505505
}
506506

507+
void set_perf_meas_state(const char *data)
508+
{
509+
enum ipc4_perf_measurements_state_set state = *data;
510+
511+
struct telemetry_wnd_data *wnd_data =
512+
(struct telemetry_wnd_data *)ADSP_DW->slots[DW_TELEMETRY_SLOT];
513+
struct system_tick_info *systick_info =
514+
(struct system_tick_info *)wnd_data->system_tick_info;
515+
516+
switch (state) {
517+
case IPC4_PERF_MEASUREMENTS_DISABLED:
518+
break;
519+
case IPC4_PERF_MEASUREMENTS_STOPPED:
520+
for (int i = 0; i < CONFIG_MAX_CORE_COUNT; i++)
521+
systick_info[i].peak_utilization = 0;
522+
break;
523+
case IPC4_PERF_MEASUREMENTS_STARTED:
524+
case IPC4_PERF_MEASUREMENTS_PAUSED:
525+
break;
526+
}
527+
}
528+
507529
static int basefw_get_large_config(struct comp_dev *dev,
508530
uint32_t param_id,
509531
bool first_block,
@@ -579,6 +601,7 @@ static int basefw_set_large_config(struct comp_dev *dev,
579601
case IPC4_FW_CONFIG:
580602
return basefw_set_fw_config(first_block, last_block, data_offset, data);
581603
case IPC4_PERF_MEASUREMENTS_STATE:
604+
set_perf_meas_state(data);
582605
return 0;
583606
case IPC4_SYSTEM_TIME:
584607
return basefw_set_system_time(param_id, first_block,

0 commit comments

Comments
 (0)