Bluetooth: Controller: Fix radio_tmr_start_us for single timer use #83393
+70
−25
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit addresses two bugs in use of single time s/w switch implementation, incorrect aux_offset in subsequent ADV_EXT_IND and ISO receiver failing to receive second or greater BIS subevents.
Fix radio_tmr_start_now implementation to consider the initial latency in starting the event timer in single timer use mode. This fixes the incorrect aux_offset in ADV_EXT_IND PDUs.
Fix radio_tmr_start_us implementation for single timer use, as the timer is reset on every radio end, and hence the requested start_us has to be adjusted for the accumulated last_end_pdu_us value. This fixes the BIS subevent receptions.
Also, fix the maximum radio ISR latency value used in radio_tmr_start_us to consider the maximum Rx chain delay and maximum radio ramp up delays. 80 us + ~30 us + ~40 us should be able to meet the 150 us tIFS duration.
Relates to commit bcd28e0 ("Bluetooth: Controller: Fix sw switch single timer for spurious TXEN/RXEN").