Use nrfx_gpiote and nrfx_ppi allocators to allocate channels
at runtime instead of fixed, device-tree based allocation which
is harder to maintain.
Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
The define for PDU_AC_LL_SIZE_EXTRA was removed in main, but not in
the topic-branch. The merge of topic/branch erroneously reintroduced
this define, so it needs to be removed
Signed-off-by: Andries Kruithof <Andries.Kruithof@nordicsemi.no>
During work on the new LLCP the assignment to
phy_aux_flags_rx was by accident deleted.
This reverts that deletion
Signed-off-by: Andries Kruithof <Andries.Kruithof@nordicsemi.no>
Initial attempt at integrating the ISOAL datapath with ISO
Synchronized Receiver implementation to generate HCI ISO
data packets.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Implement ISO Synchronized Receiver connection handle
representing the streams in the BIG Sync. Add implementation
to return these handles on Sync Established event, and to
release these on Sync Lost.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Implement ISO Broadcaster connection handle representing the
streams in the created BIG. Add implementation to return
these handles on BIG complete event, and to release these on
BIG terminate.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
As EVENT_OVERHEAD_START_US offset is used in ticks unit in
LLL, ULL scheduling using ticker should also use ticks unit
for EVENT_OVERHEAD_START_US when reducing the first ISO
Broadcast and Synchronized Receiver event preparation.
Relates to commit 858dc7fab4 ("Bluetooth: controller: Fix
EVENT_OVERHEAD_START_US jitter").
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix the dummy ISO Broadcast PDU for correct LLID when
testing with burst number, immediate repetition count and
pre-transmission offset.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix missing link buffer allocation for ISO Broadcaster role.
Without this allocation, create BIG will fail.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix ISO Broadcast only supported related conditional compile
so that data path setup does not return command disallowed.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix PTC iteration value calculation for pre-transmission
subevents to consider multiple BIS events in the BIG event.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Use memcpy to access the reference to AD data passed in the
list of length encoded parameters used to construct the
Common Extended Payload Format in AUX_SYNC_IND PDU.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Add implementation to send ISO Sync payload number and
timestamp from LLL to HCI/ISOAL layer.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Move the iso_interval field from ULL to LLL context to
facilitate calculation of timestamp when there is PTO in
the BIG events.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix missing initialization of ISO sync control procedure
variables.
Without this initialization, after synchronization the sync
is lost.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix ISO Sync implementation to use the CRC ok status of
anchor point PDU, and not the last PDU receive, when
generating the event done message.
Without this fix, ISO sync is lost if there is continous
CRC error in the last PDU before the event is done.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Adds configuration BT_CTLR_SCHED_ADVANCED_CENTRAL_CONN_SPACING to enable
per-application preferred central connection spacing. This is an
extension of feature BT_CTLR_SCHED_ADVANCED, which when enabled, adds
user defined spacing between existing, and new central initiated
connections.
This is crucial for ensuring that centrals acting as ACL connection
based multi-channel streaming sources do not get overlapping
connections, and that spacing allows full frame transfer without
scheduling collision.
Due to the simple, compile-time configuration, use is limited to
specific applications in which the specified spacing is required.
Signed-off-by: Morten Priess <mtpr@oticon.com>
Limit the maximum ACL Tx buffer size to 251 octets due to
implementation restricted use of uint8_t for PDU len field,
also used as the Tx buffer size data type.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix compile warning filling 24-bit value in 3 octets using
sys_put_le32, used sys_put_le24 instead.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Remove misplaced declaration of ll_tx_ack_put in
ull_internal.h file while it is already present in
ull_conn_internal.h.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Use defines for AD data format field sizes and offsets when
populating AD data format in advertising PDUs.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
As ISO interval is to be returned in the HCI LE BIG Sync
Established event, store it in ULL context.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This is initial commit towards integration of ISOAL Rx for
Broadcast/Synchronized Receiver ISO support.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
ULL reference count is checked in ULL_LOW context to decide
if LLL events are pending, but the reference count can be
decremented by the ULL HIGH execution context which can
prevent the set `disabled_cb` function not being called due
to no pending event to produce the done events.
Fixed by checking the reference count in the ULL HIGH
execution context using a mayfly to schedule the check.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix side effect in assertion when checking a volatile
variable inside assert check.
Fixes#32904, #32923.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Added implementation of BIG Sync to use any succussful
received subevent to calculate the anchor sync. Also, use
window widening on subevents if previous subevent did not
sync.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Implementation of ISO Synchronized Receiver data subevents
and control subevent. Implementation of terminate procedure
in the receiver side.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Update ISO Broadcaster subevent implementation for incorrect
calculation and use of PTO.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Update the ISO Synchronized Receiver Terminate and context
release handling to check for prepares in pipeline and
accordingly call lll_disable.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Update the ISO Broadcaster Terminate and context release
handling to check for prepares in pipeline and accordingly
call lll_disable.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
When BIG events are close such that their prepares overlap
and are placed in the pipeline, then more than one done
complete event is generated, ignore them.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Implementation of ISO Broadcast data subevents and control
subevent. Implementation of terminate procedure in the
broadcaster side.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix Broadcast ISO BigInfo structure to be filled with
correct payload counter value considering accumulated
latency and ticker lazy value.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix missing use of EVENT_TICKER_RES_MARGIN_US in Periodic
Synchronization and Synchronized Receiver implementation.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>