Repository navigation
wov: [CI TEST] initial fixes for wov regressions on several targets. #11309
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
0c8adf7
94b7380
537c410
8cbec56
610f318
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -283,8 +283,13 @@ static int pipeline_comp_prepare(struct comp_dev *current, | |
| } | ||
|
|
||
| err = comp_prepare(current); | ||
| if (err < 0 || err == PPL_STATUS_PATH_STOP) | ||
| if (err < 0 || err == PPL_STATUS_PATH_STOP) { | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this looks like a separate patch |
||
| if (err < 0) { | ||
| pipe_err(current->pipeline, "comp_prepare for comp 0x%x failed %d", | ||
| dev_comp_id(current), err); | ||
| } | ||
| return err; | ||
| } | ||
|
|
||
| return pipeline_for_each_comp(current, ctx, dir); | ||
| } | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -36,29 +36,30 @@ SOF_DEFINE_REG_UUID(dp_sched); | |
| /* unused with Zephyr, generates no output */ | ||
| DECLARE_TR_CTX(dp_tr, SOF_UUID(dp_sched_uuid), LOG_LEVEL_INFO); | ||
|
|
||
| #define DP_LOCK_INIT(i, _) Z_SEM_INITIALIZER(dp_lock[i], 1, 1) | ||
| /* k_mutex, not k_sem: priority inheritance keeps a preempted DP holder from stalling LL */ | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
| #define DP_LOCK_INIT(i, _) Z_MUTEX_INITIALIZER(dp_lock[i]) | ||
| #define DP_LOCK_INIT_LIST LISTIFY(CONFIG_MP_MAX_NUM_CPUS, DP_LOCK_INIT, (,)) | ||
|
|
||
| /* User threads don't need access to this array. Access is performed from | ||
| * the kernel space via a syscall. Array must be placed in special section | ||
| * to be qualified as initialized by the gen_kobject_list.py script. | ||
| */ | ||
| static | ||
| STRUCT_SECTION_ITERABLE_ARRAY(k_sem, dp_lock, CONFIG_MP_MAX_NUM_CPUS) = { DP_LOCK_INIT_LIST }; | ||
| STRUCT_SECTION_ITERABLE_ARRAY(k_mutex, dp_lock, CONFIG_MP_MAX_NUM_CPUS) = { DP_LOCK_INIT_LIST }; | ||
|
|
||
| /* Each per-core instance of DP scheduler has separate structures; hence, locks are per-core. | ||
| * | ||
| * TODO: consider using cpu_get_id() instead of supplying core as a parameter. | ||
| */ | ||
| unsigned int scheduler_dp_lock(uint16_t core) | ||
| { | ||
| k_sem_take(&dp_lock[core], K_FOREVER); | ||
| k_mutex_lock(&dp_lock[core], K_FOREVER); | ||
| return core; | ||
| } | ||
|
|
||
| void scheduler_dp_unlock(unsigned int key) | ||
| { | ||
| k_sem_give(&dp_lock[key]); | ||
| k_mutex_unlock(&dp_lock[key]); | ||
| } | ||
|
|
||
| void scheduler_dp_grant(k_tid_t thread_id, uint16_t core) | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -86,6 +86,7 @@ static int schedule_edf_task_running(void *data, struct task *task) | |
|
|
||
| static int schedule_edf_task_free(void *data, struct task *task) | ||
| { | ||
| k_work_cancel_delayable(&task->z_delayed_work); | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. unrelated to this patch |
||
| task->state = SOF_TASK_STATE_FREE; | ||
| task->ops.run = NULL; | ||
| task->data = NULL; | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should be its own patch.