diff --git a/subsys/bluetooth/controller/ll_sw/openisa/lll/lll.c b/subsys/bluetooth/controller/ll_sw/openisa/lll/lll.c index 1e55a3b59bf..53075230cc0 100644 --- a/subsys/bluetooth/controller/ll_sw/openisa/lll/lll.c +++ b/subsys/bluetooth/controller/ll_sw/openisa/lll/lll.c @@ -49,10 +49,7 @@ static struct { static const struct device *dev_entropy; static int init_reset(void); -static int prepare(lll_is_abort_cb_t is_abort_cb, lll_abort_cb_t abort_cb, - lll_prepare_cb_t prepare_cb, int prio, - struct lll_prepare_param *prepare_param, uint8_t is_resume); -static int resume_enqueue(lll_prepare_cb_t resume_cb, int resume_prio); +static int resume_enqueue(lll_prepare_cb_t resume_cb); #if !defined(CONFIG_BT_CTLR_LOW_LAT) static void ticker_start_op_cb(uint32_t status, void *param); @@ -193,24 +190,6 @@ int lll_reset(void) return 0; } -int lll_prepare(lll_is_abort_cb_t is_abort_cb, lll_abort_cb_t abort_cb, - lll_prepare_cb_t prepare_cb, int prio, - struct lll_prepare_param *prepare_param) -{ - return prepare(is_abort_cb, abort_cb, prepare_cb, prio, prepare_param, - 0); -} - -void lll_resume(void *param) -{ - struct lll_event *next = param; - int ret; - - ret = prepare(next->is_abort_cb, next->abort_cb, next->prepare_cb, - next->prio, &next->prepare_param, next->is_resume); - LL_ASSERT(!ret || ret == -EINPROGRESS); -} - void lll_disable(void *param) { /* LLL disable of current event, done is generated */ @@ -305,8 +284,7 @@ bool lll_is_done(void *param) return !event.curr.abort_cb; } -int lll_is_abort_cb(void *next, int prio, void *curr, - lll_prepare_cb_t *resume_cb, int *resume_prio) +int lll_is_abort_cb(void *next, void *curr, lll_prepare_cb_t *resume_cb) { return -ECANCELED; } @@ -440,9 +418,10 @@ static int init_reset(void) return 0; } -static int prepare(lll_is_abort_cb_t is_abort_cb, lll_abort_cb_t abort_cb, - lll_prepare_cb_t prepare_cb, int prio, - struct lll_prepare_param *prepare_param, uint8_t is_resume) +int lll_prepare_resolve(lll_is_abort_cb_t is_abort_cb, lll_abort_cb_t abort_cb, + lll_prepare_cb_t prepare_cb, + struct lll_prepare_param *prepare_param, + uint8_t is_resume, uint8_t is_dequeue) { uint8_t idx = UINT8_MAX; struct lll_event *p; @@ -469,7 +448,7 @@ static int prepare(lll_is_abort_cb_t is_abort_cb, lll_abort_cb_t abort_cb, /* Store the next prepare for deferred call */ ret = ull_prepare_enqueue(is_abort_cb, abort_cb, prepare_param, - prepare_cb, prio, is_resume); + prepare_cb, is_resume); LL_ASSERT(!ret); #if !defined(CONFIG_BT_CTLR_LOW_LAT) @@ -499,11 +478,11 @@ static int prepare(lll_is_abort_cb_t is_abort_cb, lll_abort_cb_t abort_cb, if (next) { /* check if resume requested by curr */ ret = event.curr.is_abort_cb(NULL, 0, event.curr.param, - &resume_cb, &resume_prio); + &resume_cb); LL_ASSERT(ret); if (ret == -EAGAIN) { - ret = resume_enqueue(resume_cb, resume_prio); + ret = resume_enqueue(resume_cb); LL_ASSERT(!ret); } else { LL_ASSERT(ret == -ECANCELED); @@ -527,7 +506,7 @@ static int prepare(lll_is_abort_cb_t is_abort_cb, lll_abort_cb_t abort_cb, return err; } -static int resume_enqueue(lll_prepare_cb_t resume_cb, int resume_prio) +static int resume_enqueue(lll_prepare_cb_t resume_cb) { struct lll_prepare_param prepare_param; @@ -535,7 +514,7 @@ static int resume_enqueue(lll_prepare_cb_t resume_cb, int resume_prio) event.curr.param = NULL; return ull_prepare_enqueue(event.curr.is_abort_cb, event.curr.abort_cb, - &prepare_param, resume_cb, resume_prio, 1); + &prepare_param, resume_cb, 1); } #if !defined(CONFIG_BT_CTLR_LOW_LAT) @@ -598,7 +577,6 @@ static void preempt(void *param) struct lll_event *next = ull_prepare_dequeue_get(); lll_prepare_cb_t resume_cb; uint8_t idx = UINT8_MAX; - int resume_prio; int ret; if (!event.curr.abort_cb || !event.curr.param) { @@ -618,9 +596,9 @@ static void preempt(void *param) return; } - ret = event.curr.is_abort_cb(next->prepare_param.param, next->prio, + ret = event.curr.is_abort_cb(next->prepare_param.param, event.curr.param, - &resume_cb, &resume_prio); + &resume_cb); if (!ret) { /* Let LLL know about the cancelled prepare */ next->is_aborted = 1; @@ -647,7 +625,7 @@ static void preempt(void *param) iter = ull_prepare_dequeue_iter(&iter_idx); } - ret = resume_enqueue(resume_cb, resume_prio); + ret = resume_enqueue(resume_cb); LL_ASSERT(!ret); } else { LL_ASSERT(ret == -ECANCELED); diff --git a/subsys/bluetooth/controller/ll_sw/openisa/lll/lll_adv.c b/subsys/bluetooth/controller/ll_sw/openisa/lll/lll_adv.c index d1c7cf39ff7..69498753fab 100644 --- a/subsys/bluetooth/controller/ll_sw/openisa/lll/lll_adv.c +++ b/subsys/bluetooth/controller/ll_sw/openisa/lll/lll_adv.c @@ -46,8 +46,7 @@ static int init_reset(void); static int prepare_cb(struct lll_prepare_param *prepare_param); -static int is_abort_cb(void *next, int prio, void *curr, - lll_prepare_cb_t *resume_cb, int *resume_prio); +static int is_abort_cb(void *next, void *curr, lll_prepare_cb_t *resume_cb); static void abort_cb(struct lll_prepare_param *prepare_param, void *param); static void isr_tx(void *param); static void isr_rx(void *param); @@ -447,8 +446,7 @@ static int resume_prepare_cb(struct lll_prepare_param *p) } #endif /* CONFIG_BT_PERIPHERAL */ -static int is_abort_cb(void *next, int prio, void *curr, - lll_prepare_cb_t *resume_cb, int *resume_prio) +static int is_abort_cb(void *next, void *curr, lll_prepare_cb_t *resume_cb) { #if defined(CONFIG_BT_PERIPHERAL) struct lll_adv *lll = curr; @@ -464,7 +462,6 @@ static int is_abort_cb(void *next, int prio, void *curr, /* wrap back after the pre-empter */ *resume_cb = resume_prepare_cb; - *resume_prio = 0; /* TODO: */ /* Retain HF clk */ err = lll_clk_on(); diff --git a/subsys/bluetooth/controller/ll_sw/openisa/lll/lll_internal.h b/subsys/bluetooth/controller/ll_sw/openisa/lll/lll_internal.h index 39d1379709c..69a9827812e 100644 --- a/subsys/bluetooth/controller/ll_sw/openisa/lll/lll_internal.h +++ b/subsys/bluetooth/controller/ll_sw/openisa/lll/lll_internal.h @@ -4,14 +4,10 @@ * SPDX-License-Identifier: Apache-2.0 */ -int lll_prepare(lll_is_abort_cb_t is_abort_cb, lll_abort_cb_t abort_cb, - lll_prepare_cb_t prepare_cb, int prio, - struct lll_prepare_param *prepare_param); int lll_prepare_done(void *param); int lll_done(void *param); bool lll_is_done(void *param); -int lll_is_abort_cb(void *next, int prio, void *curr, - lll_prepare_cb_t *resume_cb, int *resume_prio); +int lll_is_abort_cb(void *next, void *curr, lll_prepare_cb_t *resume_cb); void lll_abort_cb(struct lll_prepare_param *prepare_param, void *param); int lll_clk_on(void); diff --git a/subsys/bluetooth/controller/ll_sw/openisa/lll/lll_scan.c b/subsys/bluetooth/controller/ll_sw/openisa/lll/lll_scan.c index 371587cdcc6..5f130101ffa 100644 --- a/subsys/bluetooth/controller/ll_sw/openisa/lll/lll_scan.c +++ b/subsys/bluetooth/controller/ll_sw/openisa/lll/lll_scan.c @@ -41,8 +41,7 @@ static int init_reset(void); static int prepare_cb(struct lll_prepare_param *prepare_param); -static int is_abort_cb(void *next, int prio, void *curr, - lll_prepare_cb_t *resume_cb, int *resume_prio); +static int is_abort_cb(void *next, void *curr, lll_prepare_cb_t *resume_cb); static void abort_cb(struct lll_prepare_param *prepare_param, void *param); static void ticker_stop_cb(uint32_t ticks_at_expire, uint32_t remainder, uint16_t lazy, uint8_t force, void *param); @@ -276,8 +275,7 @@ static int resume_prepare_cb(struct lll_prepare_param *p) return prepare_cb(p); } -static int is_abort_cb(void *next, int prio, void *curr, - lll_prepare_cb_t *resume_cb, int *resume_prio) +static int is_abort_cb(void *next, void *curr, lll_prepare_cb_t *resume_cb) { struct lll_scan *lll = curr; @@ -287,7 +285,6 @@ static int is_abort_cb(void *next, int prio, void *curr, /* wrap back after the pre-empter */ *resume_cb = resume_prepare_cb; - *resume_prio = 0; /* TODO: */ /* Retain HF clk */ err = lll_clk_on();