Bluetooth: controller: LLL refactoring of openisa for API changes

Update openisa LLL to match common LLL changes and make CI pass.

Signed-off-by: Morten Priess <mtpr@oticon.com>
This commit is contained in:
Morten Priess 2021-04-10 00:43:09 +02:00 committed by Carles Cufí
parent 772a77718e
commit cc46dee7d0
4 changed files with 19 additions and 51 deletions

View File

@ -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);

View File

@ -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();

View File

@ -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);

View File

@ -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();