Lines Matching defs:core_data

118 	struct sof_mtrace_core_data *core_data = inode->i_private;
121 guard(mutex)(&core_data->buffer_lock);
123 if (core_data->log_buffer)
130 core_data->log_buffer = kmalloc(SOF_IPC4_DEBUG_SLOT_SIZE, GFP_KERNEL);
131 if (!core_data->log_buffer) {
138 kfree(core_data->log_buffer);
145 static bool sof_wait_mtrace_avail(struct sof_mtrace_core_data *core_data)
150 if (core_data->host_read_ptr != core_data->dsp_write_ptr)
156 add_wait_queue(&core_data->trace_sleep, &wait);
162 remove_wait_queue(&core_data->trace_sleep, &wait);
164 if (core_data->host_read_ptr != core_data->dsp_write_ptr)
173 struct sof_mtrace_core_data *core_data = file->private_data;
175 struct snd_sof_dev *sdev = core_data->sdev;
177 void *log_buffer = core_data->log_buffer;
189 if (!sof_wait_mtrace_avail(core_data)) {
198 if (core_data->slot_offset == SOF_IPC4_INVALID_SLOT_OFFSET)
202 log_buffer_offset = core_data->slot_offset + (sizeof(u32) * 2);
206 read_ptr = core_data->host_read_ptr;
207 write_ptr = core_data->dsp_write_ptr;
227 core_data->id, read_ptr, write_ptr, avail);
257 sof_mailbox_write(sdev, core_data->slot_offset, &read_ptr, sizeof(read_ptr));
261 core_data->host_read_ptr = read_ptr;
274 struct sof_mtrace_core_data *core_data = inode->i_private;
278 scoped_guard(mutex, &core_data->buffer_lock) {
279 kfree(core_data->log_buffer);
280 core_data->log_buffer = NULL;
477 struct sof_mtrace_core_data *core_data = &priv->cores[i];
479 core_data->host_read_ptr = 0;
480 core_data->dsp_write_ptr = 0;
481 wake_up(&core_data->trace_sleep);
494 struct sof_mtrace_core_data *core_data;
513 core_data = &priv->cores[core];
520 core_data->slot_offset = sdev->debug_box.offset;
521 core_data->slot_offset += SOF_IPC4_DEBUG_SLOT_SIZE * (i + 1);
523 if (core_data->delayed_pos_update) {
525 core_data->delayed_pos_update = false;
564 struct sof_mtrace_core_data *core_data = &priv->cores[i];
566 init_waitqueue_head(&core_data->trace_sleep);
567 mutex_init(&core_data->buffer_lock);
568 core_data->sdev = sdev;
569 core_data->id = i;
610 struct sof_mtrace_core_data *core_data;
619 core_data = &priv->cores[core];
621 if (core_data->slot_offset == SOF_IPC4_INVALID_SLOT_OFFSET) {
622 core_data->delayed_pos_update = true;
627 sof_mailbox_read(sdev, core_data->slot_offset + sizeof(u32),
628 &core_data->dsp_write_ptr, 4);
629 core_data->dsp_write_ptr -= core_data->dsp_write_ptr % 4;
633 core, core_data->host_read_ptr, core_data->dsp_write_ptr);
635 wake_up(&core_data->trace_sleep);