core_data
void *core_data;
core_data = tee_shm_get_va(pvt_data.fw_shm_pool, 0);
if (IS_ERR(core_data)) {
return PTR_ERR(core_data);
memcpy(buf, core_data, nbytes);
fw_mem->core_data = kzalloc(fw_mem->core_data_alloc_size, GFP_KERNEL);
(!fw_mem->core_data && fw_mem->core_data_alloc_size)) {
fw_mem->core_data, fw_mem->core_code_alloc_size);
if (fw_mem->core_data)
memcpy(fw_core_data_ptr, fw_mem->core_data, fw_mem->core_data_alloc_size);
kfree(fw_mem->core_data);
if (fw_mem->core_data) {
err = pvr_copy_to_fw(fw_mem->core_data_obj, fw_mem->core_data,
kfree(fw_mem->core_data);
u8 *core_data;
if (!pdata->core_data) {
pdata->core_data = kzalloc_objs(struct temp_data *,
if (!pdata->core_data)
pdata->core_data[tdata->index] = tdata;
kfree(pdata->core_data);
pdata->core_data = NULL;
pdata->core_data[tdata->index] = NULL;
if (pdata->core_data[i] &&
pdata->core_data[i]->cpu_core_id == topology_core_id(cpu))
return pdata->core_data[i];
struct temp_data **core_data;
kproc->data = cluster->soc_data->core_data;
.core_data = &r5_data,
.core_data = &r5_data,
.core_data = &r5_data,
.core_data = &r5_data,
const struct k3_rproc_dev_data *core_data;
struct st_data_s *core_data;
for_class_mod_mem_type(type, core_data)
for_class_mod_mem_type(type, core_data)
struct sof_mtrace_core_data *core_data = inode->i_private;
guard(mutex)(&core_data->buffer_lock);
if (core_data->log_buffer)
core_data->log_buffer = kmalloc(SOF_IPC4_DEBUG_SLOT_SIZE, GFP_KERNEL);
if (!core_data->log_buffer) {
kfree(core_data->log_buffer);
static bool sof_wait_mtrace_avail(struct sof_mtrace_core_data *core_data)
if (core_data->host_read_ptr != core_data->dsp_write_ptr)
add_wait_queue(&core_data->trace_sleep, &wait);
remove_wait_queue(&core_data->trace_sleep, &wait);
if (core_data->host_read_ptr != core_data->dsp_write_ptr)
struct sof_mtrace_core_data *core_data = file->private_data;
struct snd_sof_dev *sdev = core_data->sdev;
void *log_buffer = core_data->log_buffer;
if (!sof_wait_mtrace_avail(core_data)) {
if (core_data->slot_offset == SOF_IPC4_INVALID_SLOT_OFFSET)
log_buffer_offset = core_data->slot_offset + (sizeof(u32) * 2);
read_ptr = core_data->host_read_ptr;
write_ptr = core_data->dsp_write_ptr;
core_data->id, read_ptr, write_ptr, avail);
sof_mailbox_write(sdev, core_data->slot_offset, &read_ptr, sizeof(read_ptr));
core_data->host_read_ptr = read_ptr;
struct sof_mtrace_core_data *core_data = inode->i_private;
scoped_guard(mutex, &core_data->buffer_lock) {
kfree(core_data->log_buffer);
core_data->log_buffer = NULL;
struct sof_mtrace_core_data *core_data = &priv->cores[i];
core_data->host_read_ptr = 0;
core_data->dsp_write_ptr = 0;
wake_up(&core_data->trace_sleep);
struct sof_mtrace_core_data *core_data;
core_data = &priv->cores[core];
core_data->slot_offset = sdev->debug_box.offset;
core_data->slot_offset += SOF_IPC4_DEBUG_SLOT_SIZE * (i + 1);
if (core_data->delayed_pos_update) {
core_data->delayed_pos_update = false;
struct sof_mtrace_core_data *core_data = &priv->cores[i];
init_waitqueue_head(&core_data->trace_sleep);
mutex_init(&core_data->buffer_lock);
core_data->sdev = sdev;
core_data->id = i;
struct sof_mtrace_core_data *core_data;
core_data = &priv->cores[core];
if (core_data->slot_offset == SOF_IPC4_INVALID_SLOT_OFFSET) {
core_data->delayed_pos_update = true;
sof_mailbox_read(sdev, core_data->slot_offset + sizeof(u32),
&core_data->dsp_write_ptr, 4);
core_data->dsp_write_ptr -= core_data->dsp_write_ptr % 4;
core, core_data->host_read_ptr, core_data->dsp_write_ptr);
wake_up(&core_data->trace_sleep);
struct core_data *cores;
#define PER_THREAD_PARAMS struct thread_data *t, struct core_data *c, struct pkg_data *p
int for_all_cpus(int (func) (struct thread_data *, struct core_data *, struct pkg_data *),
struct thread_data *thread_base, struct core_data *core_base, struct pkg_data *pkg_base)
struct core_data *c;
int is_cpu_first_thread_in_core(struct thread_data *t, struct core_data *c)
int is_cpu_first_thread_in_package(struct thread_data *t, struct core_data *c, struct pkg_data *p)
void delta_core(struct core_data *new, struct core_data *old)
int delta_thread(struct thread_data *new, struct thread_data *old, struct core_data *core_delta)
int delta_cpu(struct thread_data *t, struct core_data *c, struct pkg_data *p, struct thread_data *t2, struct core_data *c2, struct pkg_data *p2)
int get_rapl_counters(int cpu, unsigned int domain, struct core_data *c, struct pkg_data *p)
int for_all_cpus_2(int (func) (struct thread_data *, struct core_data *,
struct pkg_data *, struct thread_data *, struct core_data *,
struct core_data *core_base, struct pkg_data *pkg_base,
struct thread_data *thread_base2, struct core_data *core_base2, struct pkg_data *pkg_base2)
struct core_data *c, *c2;
counters->cores = calloc(1, sizeof(struct core_data));
counters->cores = calloc(num_cores, sizeof(struct core_data));
void init_counter(struct thread_data *thread_base, struct core_data *core_base, struct pkg_data *pkg_base, int cpu_id)
struct core_data *c;