Bluetooth: controller: split: Fix regression errors

This commit fixes problems with LL tests CON/SLA/129, CON/SLA/130,
CON/SLA/132, CON/MAS/126, CON/MAS/127, CON/MAS/129, CON/MAS/55,
CON/SLA/57

Signed-off-by: Andries Kruithof <Andries.Kruithof@nordicsemi.no>
This commit is contained in:
Andries Kruithof 2020-02-27 08:23:41 +01:00 committed by Johan Hedberg
commit 2c70df32b7

View file

@ -3374,14 +3374,11 @@ static u16_t calc_eff_time(u8_t max_octets, u8_t phy, u16_t default_time)
u16_t time = PKT_US(max_octets, phy); u16_t time = PKT_US(max_octets, phy);
u16_t eff_time; u16_t eff_time;
if (time >= PKT_US(PDU_DC_PAYLOAD_SIZE_MIN, 0)) { eff_time = MAX(PDU_DC_PAYLOAD_TIME_MIN, time);
eff_time = MIN(time, default_time); eff_time = MIN(eff_time, default_time);
#if defined(CONFIG_BT_CTLR_PHY_CODED) #if defined(CONFIG_BT_CTLR_PHY_CODED)
eff_time = MAX(eff_time, PKT_US(PDU_DC_PAYLOAD_SIZE_MIN, phy)); eff_time = MAX(eff_time, PKT_US(PDU_DC_PAYLOAD_SIZE_MIN, phy));
#endif /* CONFIG_BT_CTLR_PHY_CODED */ #endif
} else {
eff_time = PKT_US(PDU_DC_PAYLOAD_SIZE_MIN, 0);
}
return eff_time; return eff_time;
} }
@ -3601,6 +3598,9 @@ static inline void event_phy_upd_ind_prep(struct ll_conn *conn,
#if defined(CONFIG_BT_CTLR_DATA_LENGTH) #if defined(CONFIG_BT_CTLR_DATA_LENGTH)
u16_t eff_tx_time = lll->max_tx_time; u16_t eff_tx_time = lll->max_tx_time;
u16_t eff_rx_time = lll->max_rx_time; u16_t eff_rx_time = lll->max_rx_time;
u16_t max_rx_time, max_tx_time;
dle_max_time_get(conn, &max_rx_time, &max_tx_time);
#endif /* CONFIG_BT_CTLR_DATA_LENGTH */ #endif /* CONFIG_BT_CTLR_DATA_LENGTH */
if (conn->llcp.phy_upd_ind.tx) { if (conn->llcp.phy_upd_ind.tx) {
@ -3609,7 +3609,8 @@ static inline void event_phy_upd_ind_prep(struct ll_conn *conn,
#if defined(CONFIG_BT_CTLR_DATA_LENGTH) #if defined(CONFIG_BT_CTLR_DATA_LENGTH)
eff_tx_time = calc_eff_time(lll->max_tx_octets, eff_tx_time = calc_eff_time(lll->max_tx_octets,
lll->phy_tx, lll->phy_tx,
conn->default_tx_time); max_tx_time);
#endif /* CONFIG_BT_CTLR_DATA_LENGTH */ #endif /* CONFIG_BT_CTLR_DATA_LENGTH */
} }
if (conn->llcp.phy_upd_ind.rx) { if (conn->llcp.phy_upd_ind.rx) {
@ -3618,8 +3619,8 @@ static inline void event_phy_upd_ind_prep(struct ll_conn *conn,
#if defined(CONFIG_BT_CTLR_DATA_LENGTH) #if defined(CONFIG_BT_CTLR_DATA_LENGTH)
eff_rx_time = eff_rx_time =
calc_eff_time(lll->max_rx_octets, lll->phy_rx, calc_eff_time(lll->max_rx_octets, lll->phy_rx,
PKT_US(LL_LENGTH_OCTETS_RX_MAX, max_rx_time);
BIT(2)));
#endif /* CONFIG_BT_CTLR_DATA_LENGTH */ #endif /* CONFIG_BT_CTLR_DATA_LENGTH */
} }
lll->phy_flags = conn->phy_pref_flags; lll->phy_flags = conn->phy_pref_flags;
@ -3675,7 +3676,9 @@ static inline void event_phy_upd_ind_prep(struct ll_conn *conn,
/* Update max tx and/or max rx if changed */ /* Update max tx and/or max rx if changed */
if ((eff_tx_time <= lll->max_tx_time) && if ((eff_tx_time <= lll->max_tx_time) &&
(eff_rx_time <= lll->max_rx_time)) { (lll->max_tx_time <= max_tx_time) &&
(eff_rx_time <= lll->max_rx_time) &&
(lll->max_rx_time <= max_rx_time)) {
/* Mark buffer for release */ /* Mark buffer for release */
rx->hdr.type = NODE_RX_TYPE_DC_PDU_RELEASE; rx->hdr.type = NODE_RX_TYPE_DC_PDU_RELEASE;