Commit e4f12c73 authored by Vinayak Kariappa Chettimada's avatar Vinayak Kariappa Chettimada Committed by Carles Cufi
Browse files

Bluetooth: Controller: Use PDU_BIS_US and PDU_BIS_MAX_US correctly



Use PDU_BIS_US and PDU_BIS_MAX_US macro correctly to
calculate BIS PDU time.

Signed-off-by: default avatarVinayak Kariappa Chettimada <vich@nordicsemi.no>
parent 929cf24a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ struct lll_adv_iso {
	uint16_t data_chan_remap_idx;

	uint64_t payload_count:39;
	uint64_t enc:1;
	uint64_t framing:1;
	uint64_t handle:8;
	uint64_t cssn:3;
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ struct lll_sync_iso {
	uint16_t data_chan_remap_idx;

	uint64_t payload_count:39;
	uint64_t enc:1;
	uint64_t ctrl:1;
	uint64_t cssn_curr:3;
	uint64_t cssn_next:3;
+4 −4
Original line number Diff line number Diff line
@@ -301,8 +301,8 @@ static int prepare_cb_common(struct lll_prepare_param *p)
	} else {
		uint16_t iss_us;

		/* FIXME: for encrypted PDU */
		iss_us = lll->sub_interval - PKT_BIS_US(pdu->len, 0, lll->phy);
		iss_us = lll->sub_interval -
			 PDU_BIS_US(pdu->len, lll->enc, lll->phy, 1);
		radio_tmr_tifs_set(iss_us);
		radio_switch_complete_and_b2b_tx(lll->phy, 0, lll->phy, 0);
	}
@@ -493,8 +493,8 @@ static void isr_tx_common(void *param,
	} else {
		uint16_t iss_us;

		/* FIXME: for encrypted PDU */
		iss_us = lll->sub_interval - PKT_BIS_US(pdu->len, 0, lll->phy);
		iss_us = lll->sub_interval -
			 PDU_BIS_US(pdu->len, lll->enc, lll->phy, 1);
		radio_tmr_tifs_set(iss_us);
		radio_switch_complete_and_b2b_tx(lll->phy, 0, lll->phy, 0);

+8 −1
Original line number Diff line number Diff line
@@ -212,7 +212,14 @@

#define PDU_AC_US(octets, phy, cs)   PDU_US((octets), 0, (phy), (cs))

#define PKT_BIS_US(octets, mic, phy) PDU_MAX_US((octets), (mic), (phy))
#define PDU_BIS_MAX_US(octets, enc, phy) PDU_MAX_US((octets), \
						    ((enc) ? \
						     (PDU_MIC_SIZE) : 0), \
						    (phy))

#define PDU_BIS_US(octets, enc, phy, s8) PDU_US((octets), \
						((enc) ? (PDU_MIC_SIZE) : 0), \
						(phy), (s8))

/* TODO: verify if the following lines are correct */
/* Extra bytes for enqueued node_rx metadata: rssi (always), resolving
+6 −18
Original line number Diff line number Diff line
@@ -176,6 +176,7 @@ uint8_t ll_big_create(uint8_t big_handle, uint8_t adv_handle, uint8_t num_bis,
	lll_adv_iso = &adv_iso->lll;
	lll_adv_iso->handle = big_handle;
	lll_adv_iso->max_pdu = LL_BIS_OCTETS_TX_MAX;
	lll_adv_iso->phy = phy;

	/* Mandatory Num_BIS = 1 */
	lll_adv_iso->num_bis = num_bis;
@@ -203,23 +204,11 @@ uint8_t ll_big_create(uint8_t big_handle, uint8_t adv_handle, uint8_t num_bis,
	 *       else if sequential, then by our implementation, lets keep it
	 *       max_tx_time for Max_PDU + tMSS.
	 */
	if (encryption) {
		lll_adv_iso->sub_interval =
			PKT_BIS_US(lll_adv_iso->max_pdu, PDU_MIC_SIZE,
				   phy) +
			EVENT_MSS_US;
		ctrl_spacing = PKT_BIS_US(sizeof(struct pdu_big_ctrl),
					  PDU_MIC_SIZE, phy) +
			       EVENT_IFS_US;
	} else {
		lll_adv_iso->sub_interval =
			PKT_BIS_US(lll_adv_iso->max_pdu, 0U,
				   phy) +
	lll_adv_iso->sub_interval = PDU_BIS_US(lll_adv_iso->max_pdu, encryption,
					       phy, 1) +
				    EVENT_MSS_US;
		ctrl_spacing = PKT_BIS_US(sizeof(struct pdu_big_ctrl),
					  0U, phy) +
			       EVENT_IFS_US;
	}
	ctrl_spacing = PDU_BIS_US(sizeof(struct pdu_big_ctrl), encryption, phy,
				  1) + EVENT_IFS_US;

	latency_pdu = max_latency * lll_adv_iso->bn / bn;

@@ -285,7 +274,6 @@ uint8_t ll_big_create(uint8_t big_handle, uint8_t adv_handle, uint8_t num_bis,
		       sizeof(lll_adv_iso->base_crc_init));
	lll_adv_iso->data_chan_count =
		ull_chan_map_get(lll_adv_iso->data_chan_map);
	lll_adv_iso->phy = phy;
	lll_adv_iso->latency_prepare = 0U;
	lll_adv_iso->latency_event = 0U;
	lll_adv_iso->term_req = 0U;
Loading