8#ifndef __SOF_PERFORMANCE_MONITOR_H__
9#define __SOF_PERFORMANCE_MONITOR_H__
11#include <ipc4/base_fw.h>
14#define WIN3_MBASE DT_REG_ADDR(DT_PHANDLE(DT_NODELABEL(mem_window3), memory))
15#define ADSP_PMW ((volatile uint32_t *) \
16 (sys_cache_uncached_ptr_get((__sparse_force void __sparse_cache *) \
17 (WIN3_MBASE + WIN3_OFFSET))))
19#if IS_ENABLED(CONFIG_SOF_TELEMETRY_PERFORMANCE_MEASUREMENTS)
115 return IPC4_PERF_MEASUREMENTS_DISABLED;
143#ifdef CONFIG_SOF_TELEMETRY_IO_PERFORMANCE_MEASUREMENTS
145struct io_perf_data_item {
149 uint32_t instance : 8;
151 uint32_t direction : 1;
155 uint32_t power_mode : 2;
158 uint32_t is_removed : 1;
183enum io_perf_data_item_dir {
184 IO_PERF_INPUT_DIRECTION = 0,
185 IO_PERF_OUTPUT_DIRECTION = 1,
188enum io_perf_data_item_state {
189 IO_PERF_POWERED_DOWN_DISABLED = 0,
190 IO_PERF_POWERED_UP_ENABLED = 1,
193enum io_perf_data_item_power_mode {
194 IO_PERF_D0_POWER_MODE = 0,
195 IO_PERF_D0IX_POWER_MODE = 1,
198enum io_perf_data_item_id {
203 IO_PERF_SOUND_WIRE_ID = 4,
209 IO_PERF_I3C_INTERRUPT_ID = 10,
210 IO_PERF_UART_ID = 11,
212 IO_PERF_CSI_2_ID = 13,
214 IO_PERF_INVALID_ID = 0xFF
217struct io_global_perf_data {
219 uint32_t perf_item_count;
221 struct io_perf_data_item perf_items[0];
228int io_perf_monitor_init(
void);
235int io_perf_monitor_release_slot(
struct io_perf_data_item *slot_id);
243io_perf_monitor_get_performance_data(
struct io_global_perf_data *io_global_perf_data);
251io_perf_monitor_set_state(
enum ipc4_perf_measurements_state_set state);
257enum ipc4_perf_measurements_state_set io_perf_monitor_get_state(
void);
264int io_perf_monitor_init_data(
struct io_perf_data_item **slot_id,
265 struct io_perf_data_item *init_data);
274void io_perf_monitor_update_data(
struct io_perf_data_item *slot_id,
282void io_perf_monitor_update_io_state(
struct io_perf_data_item *slot_id,
283 bool const power_up);
290void io_perf_monitor_update_power_mode(
struct io_perf_data_item *slot_id,
291 bool const power_mode);
uint8_t rsvd
Definition auth_api_iface.h:3
uint32_t data[]
Definition debug_stream_slot.h:2
#define __packed
Definition ext_manifest.h:43