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:
parent
a9750d4fea
commit
91781306e9
2 changed files with 21 additions and 33 deletions
|
|
@ -930,8 +930,8 @@ static uint32_t preempt_ticker_start(struct lll_event *first,
|
||||||
TICKER_NULL_REMAINDER,
|
TICKER_NULL_REMAINDER,
|
||||||
TICKER_NULL_LAZY,
|
TICKER_NULL_LAZY,
|
||||||
TICKER_NULL_SLOT,
|
TICKER_NULL_SLOT,
|
||||||
preempt_ticker_cb, first->prepare_param.param,
|
preempt_ticker_cb, first,
|
||||||
ticker_start_op_cb, NULL);
|
ticker_start_op_cb, first);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
@ -1007,7 +1007,7 @@ static void preempt(void *param)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Preemptor not in pipeline */
|
/* Preemptor not in pipeline */
|
||||||
if (next->prepare_param.param != param) {
|
if (next != param) {
|
||||||
uint32_t ret;
|
uint32_t ret;
|
||||||
|
|
||||||
/* Start the preempt timeout */
|
/* Start the preempt timeout */
|
||||||
|
|
|
||||||
|
|
@ -2063,8 +2063,6 @@ void *ull_prepare_dequeue_iter(uint8_t *idx)
|
||||||
|
|
||||||
void ull_prepare_dequeue(uint8_t caller_id)
|
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_head = NULL;
|
||||||
void *param_resume_next = NULL;
|
void *param_resume_next = NULL;
|
||||||
struct lll_event *next;
|
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
|
/* The prepare element was not a resume event, it would
|
||||||
* use the radio or was enqueued back into prepare
|
* use the radio or was enqueued back into prepare
|
||||||
* pipeline with a preempt timeout being set.
|
* 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 (!is_resume) {
|
||||||
if (!param_normal_head) {
|
break;
|
||||||
param_normal_head = param;
|
}
|
||||||
} else if (!param_normal_next) {
|
|
||||||
param_normal_next = param;
|
/* Remember the first encountered resume and the next
|
||||||
}
|
* resume element in the prepare pipeline so that we do
|
||||||
} else {
|
* not infinitely loop through the resume events in
|
||||||
if (!param_resume_head) {
|
* prepare pipeline.
|
||||||
param_resume_head = param;
|
*/
|
||||||
} else if (!param_resume_next) {
|
if (!param_resume_head) {
|
||||||
param_resume_next = param;
|
param_resume_head = param;
|
||||||
}
|
} else if (!param_resume_next) {
|
||||||
|
param_resume_next = param;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Stop traversing the prepare pipeline when we reach
|
/* 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.
|
* initially started processing the prepare pipeline.
|
||||||
*/
|
*/
|
||||||
if (!next->is_aborted &&
|
if (next->is_resume &&
|
||||||
((!next->is_resume &&
|
((next->prepare_param.param ==
|
||||||
((next->prepare_param.param ==
|
param_resume_head) ||
|
||||||
param_normal_head) ||
|
(next->prepare_param.param ==
|
||||||
(next->prepare_param.param ==
|
param_resume_next))) {
|
||||||
param_normal_next))) ||
|
|
||||||
(next->is_resume &&
|
|
||||||
!param_normal_next &&
|
|
||||||
((next->prepare_param.param ==
|
|
||||||
param_resume_head) ||
|
|
||||||
(next->prepare_param.param ==
|
|
||||||
param_resume_next))))) {
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue