diff options
author | Dawid Niedzwiecki <dn@semihalf.com> | 2020-11-06 09:20:56 +0100 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-12-14 19:59:09 +0000 |
commit | f96f176c303a73973d7cf5ddf1abf86f534a6e39 (patch) | |
tree | a793c58f008cfa94cc93ea34627fd1b6457e3a1b /core | |
parent | a23ef3d074335f2b6953194671f966117fd1fe60 (diff) | |
download | chrome-ec-f96f176c303a73973d7cf5ddf1abf86f534a6e39.tar.gz |
task_set_event: remove the wait argument
There is an option in the task_set_event function which force
the calling task to wait for an event. However, the option is never
used thus remove it.
This also will help in the Zephyr migration process.
BUG=b:172360521
BRANCH=none
TEST=make buildall
Signed-off-by: Dawid Niedzwiecki <dn@semihalf.com>
Change-Id: Ic152fd3d6862d487bcc0024c48d136556c0b81bc
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2521599
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Tom Hughes <tomhughes@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
Diffstat (limited to 'core')
-rw-r--r-- | core/cortex-m/task.c | 12 | ||||
-rw-r--r-- | core/cortex-m0/task.c | 26 | ||||
-rw-r--r-- | core/host/task.c | 6 | ||||
-rw-r--r-- | core/minute-ia/task.c | 9 | ||||
-rw-r--r-- | core/nds32/task.c | 9 | ||||
-rw-r--r-- | core/riscv-rv32i/task.c | 21 |
6 files changed, 38 insertions, 45 deletions
diff --git a/core/cortex-m/task.c b/core/cortex-m/task.c index 8cecafffa3..b88baf4511 100644 --- a/core/cortex-m/task.c +++ b/core/cortex-m/task.c @@ -426,7 +426,7 @@ static uint32_t __wait_evt(int timeout_us, task_id_t resched) return evt; } -uint32_t task_set_event(task_id_t tskid, uint32_t event, int wait) +uint32_t task_set_event(task_id_t tskid, uint32_t event) { task_ *receiver = __task_id_to_ptr(tskid); ASSERT(receiver); @@ -443,10 +443,7 @@ uint32_t task_set_event(task_id_t tskid, uint32_t event, int wait) need_resched_or_profiling = 1; #endif } else { - if (wait) - return __wait_evt(-1, tskid); - else - __schedule(0, tskid); + __schedule(0, tskid); } return 0; @@ -765,8 +762,7 @@ int task_reset_cleanup(void) */ if (notify_id < TASK_ID_COUNT) task_set_event(notify_id, - TASK_EVENT_RESET_DONE, - 0); + TASK_EVENT_RESET_DONE); } } @@ -917,7 +913,7 @@ void mutex_unlock(struct mutex *mtx) waiters &= ~BIT(id); /* Somebody is waiting on the mutex */ - task_set_event(id, TASK_EVENT_MUTEX, 0); + task_set_event(id, TASK_EVENT_MUTEX); } /* Ensure no event is remaining from mutex wake-up */ diff --git a/core/cortex-m0/task.c b/core/cortex-m0/task.c index 67da26008e..16922e10eb 100644 --- a/core/cortex-m0/task.c +++ b/core/cortex-m0/task.c @@ -354,7 +354,7 @@ static uint32_t __wait_evt(int timeout_us, task_id_t resched) return evt; } -uint32_t task_set_event(task_id_t tskid, uint32_t event, int wait) +uint32_t task_set_event(task_id_t tskid, uint32_t event) { task_ *receiver = __task_id_to_ptr(tskid); ASSERT(receiver); @@ -374,19 +374,15 @@ uint32_t task_set_event(task_id_t tskid, uint32_t event, int wait) CPU_SCB_ICSR = BIT(28); } } else { - if (wait) { - return __wait_evt(-1, tskid); - } else { - /* - * We need to ensure that the execution priority is - * actually decreased after the "cpsie i" in the atomic - * operation above else the "svc" in the __schedule - * call below will trigger a HardFault. - * Use a barrier to force it at that point. - */ - asm volatile("isb"); - __schedule(0, tskid); - } + /* + * We need to ensure that the execution priority is + * actually decreased after the "cpsie i" in the atomic + * operation above else the "svc" in the __schedule + * call below will trigger a HardFault. + * Use a barrier to force it at that point. + */ + asm volatile("isb"); + __schedule(0, tskid); } return 0; @@ -535,7 +531,7 @@ void mutex_unlock(struct mutex *mtx) waiters &= ~BIT(id); /* Somebody is waiting on the mutex */ - task_set_event(id, TASK_EVENT_MUTEX, 0); + task_set_event(id, TASK_EVENT_MUTEX); } /* Ensure no event is remaining from mutex wake-up */ diff --git a/core/host/task.c b/core/host/task.c index d6227384e1..36cb3467c0 100644 --- a/core/host/task.c +++ b/core/host/task.c @@ -198,11 +198,9 @@ pthread_t task_get_thread(task_id_t tskid) return tasks[tskid].thread; } -uint32_t task_set_event(task_id_t tskid, uint32_t event, int wait) +uint32_t task_set_event(task_id_t tskid, uint32_t event) { atomic_or(&tasks[tskid].event, event); - if (wait) - return task_wait_event(-1); return 0; } @@ -286,7 +284,7 @@ void mutex_unlock(struct mutex *mtx) for (v = 31; v >= 0; --v) if ((1ul << v) & mtx->waiters) { mtx->waiters &= ~(1ul << v); - task_set_event(v, TASK_EVENT_MUTEX, 0); + task_set_event(v, TASK_EVENT_MUTEX); break; } } diff --git a/core/minute-ia/task.c b/core/minute-ia/task.c index 6d5be5f92d..0cdc8a41e5 100644 --- a/core/minute-ia/task.c +++ b/core/minute-ia/task.c @@ -331,7 +331,7 @@ static uint32_t __wait_evt(int timeout_us, task_id_t resched) return evt; } -uint32_t task_set_event(task_id_t tskid, uint32_t event, int wait) +uint32_t task_set_event(task_id_t tskid, uint32_t event) { task_ *receiver = __task_id_to_ptr(tskid); @@ -352,10 +352,7 @@ uint32_t task_set_event(task_id_t tskid, uint32_t event, int wait) /* The receiver might run again */ atomic_or(&tasks_ready, 1 << tskid); } else { - if (wait) - return __wait_evt(-1, tskid); - else - __schedule(0, tskid); + __schedule(0, tskid); } return 0; @@ -493,7 +490,7 @@ void mutex_unlock(struct mutex *mtx) waiters &= ~BIT(id); /* Somebody is waiting on the mutex */ - task_set_event(id, TASK_EVENT_MUTEX, 0); + task_set_event(id, TASK_EVENT_MUTEX); } /* Ensure no event is remaining from mutex wake-up */ diff --git a/core/nds32/task.c b/core/nds32/task.c index f4446bdacb..9969db34bc 100644 --- a/core/nds32/task.c +++ b/core/nds32/task.c @@ -417,7 +417,7 @@ static uint32_t __ram_code __wait_evt(int timeout_us, task_id_t resched) return evt; } -uint32_t __ram_code task_set_event(task_id_t tskid, uint32_t event, int wait) +uint32_t __ram_code task_set_event(task_id_t tskid, uint32_t event) { task_ *receiver = __task_id_to_ptr(tskid); ASSERT(receiver); @@ -432,10 +432,7 @@ uint32_t __ram_code task_set_event(task_id_t tskid, uint32_t event, int wait) if (start_called) need_resched = 1; } else { - if (wait) - return __wait_evt(-1, tskid); - else - __schedule(0, tskid, 0); + __schedule(0, tskid, 0); } return 0; @@ -649,7 +646,7 @@ void __ram_code mutex_unlock(struct mutex *mtx) waiters &= ~BIT(id); /* Somebody is waiting on the mutex */ - task_set_event(id, TASK_EVENT_MUTEX, 0); + task_set_event(id, TASK_EVENT_MUTEX); } /* Ensure no event is remaining from mutex wake-up */ diff --git a/core/riscv-rv32i/task.c b/core/riscv-rv32i/task.c index e39e854a3e..eef46efce7 100644 --- a/core/riscv-rv32i/task.c +++ b/core/riscv-rv32i/task.c @@ -410,7 +410,19 @@ static uint32_t __ram_code __wait_evt(int timeout_us, task_id_t resched) return evt; } -uint32_t __ram_code task_set_event(task_id_t tskid, uint32_t event, int wait) +/* TODO: Remove the remove_me function. + * At the moment "make BOARD=it8xxx2_evb" returns an error + * "relocation truncated to fit" without it. + */ +uint32_t __ram_code remove_me(task_id_t tskid) +{ + task_ *receiver = __task_id_to_ptr(tskid); + + ASSERT(receiver); + return 0; +} + +uint32_t __ram_code task_set_event(task_id_t tskid, uint32_t event) { task_ *receiver = __task_id_to_ptr(tskid); @@ -426,10 +438,7 @@ uint32_t __ram_code task_set_event(task_id_t tskid, uint32_t event, int wait) if (start_called) need_resched = 1; } else { - if (wait) - return __wait_evt(-1, tskid); - else - __schedule(0, tskid, 0); + __schedule(0, tskid, 0); } return 0; @@ -594,7 +603,7 @@ void __ram_code mutex_unlock(struct mutex *mtx) waiters &= ~BIT(id); /* Somebody is waiting on the mutex */ - task_set_event(id, TASK_EVENT_MUTEX, 0); + task_set_event(id, TASK_EVENT_MUTEX); } /* Ensure no event is remaining from mutex wake-up */ |