Revert "Bluetooth: Controller: Fix ull_prepare_dequeue for skipped events"

These change are reverted as part of fixing regression
failure in LL/DDI/SCN/BV-21-C and LL/DDI/SCN/BV-25-C.

This reverts commit 0d54ca8761.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
Vinayak Kariappa Chettimada 2023-09-01 05:11:50 +02:00 committed by Carles Cufí
commit 91781306e9
2 changed files with 21 additions and 33 deletions

View file

@ -930,8 +930,8 @@ static uint32_t preempt_ticker_start(struct lll_event *first,
TICKER_NULL_REMAINDER,
TICKER_NULL_LAZY,
TICKER_NULL_SLOT,
preempt_ticker_cb, first->prepare_param.param,
ticker_start_op_cb, NULL);
preempt_ticker_cb, first,
ticker_start_op_cb, first);
return ret;
}
@ -1007,7 +1007,7 @@ static void preempt(void *param)
}
/* Preemptor not in pipeline */
if (next->prepare_param.param != param) {
if (next != param) {
uint32_t ret;
/* Start the preempt timeout */

View file

@ -2063,8 +2063,6 @@ void *ull_prepare_dequeue_iter(uint8_t *idx)
void ull_prepare_dequeue(uint8_t caller_id)
{
void *param_normal_head = NULL;
void *param_normal_next = NULL;
void *param_resume_head = NULL;
void *param_resume_next = NULL;
struct lll_event *next;
@ -2105,41 +2103,31 @@ void ull_prepare_dequeue(uint8_t caller_id)
/* The prepare element was not a resume event, it would
* use the radio or was enqueued back into prepare
* pipeline with a preempt timeout being set.
*
* Remember the first encountered and the next element
* in the prepare pipeline so that we do not infinitely
* loop through the resume events in prepare pipeline.
*/
if (!is_resume) {
if (!param_normal_head) {
param_normal_head = param;
} else if (!param_normal_next) {
param_normal_next = param;
}
} else {
if (!param_resume_head) {
param_resume_head = param;
} else if (!param_resume_next) {
param_resume_next = param;
}
break;
}
/* Remember the first encountered resume and the next
* resume element in the prepare pipeline so that we do
* not infinitely loop through the resume events in
* prepare pipeline.
*/
if (!param_resume_head) {
param_resume_head = param;
} else if (!param_resume_next) {
param_resume_next = param;
}
/* Stop traversing the prepare pipeline when we reach
* back to the first or next event where we
* back to the first or next resume event where we
* initially started processing the prepare pipeline.
*/
if (!next->is_aborted &&
((!next->is_resume &&
((next->prepare_param.param ==
param_normal_head) ||
(next->prepare_param.param ==
param_normal_next))) ||
(next->is_resume &&
!param_normal_next &&
((next->prepare_param.param ==
param_resume_head) ||
(next->prepare_param.param ==
param_resume_next))))) {
if (next->is_resume &&
((next->prepare_param.param ==
param_resume_head) ||
(next->prepare_param.param ==
param_resume_next))) {
break;
}
}