File tree Expand file tree Collapse file tree 1 file changed +23
-0
lines changed
Expand file tree Collapse file tree 1 file changed +23
-0
lines changed Original file line number Diff line number Diff 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+
507529static 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 ,
You can’t perform that action at this time.
0 commit comments