diff --git a/nimble/controller/src/ble_ll_adv.c b/nimble/controller/src/ble_ll_adv.c index 7af35c295..27e70dff9 100644 --- a/nimble/controller/src/ble_ll_adv.c +++ b/nimble/controller/src/ble_ll_adv.c @@ -2299,6 +2299,37 @@ ble_ll_adv_set_adv_data(uint8_t *cmd, uint8_t cmd_len, uint8_t instance, } #if MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_EXT_ADV) +static bool +pri_phy_valid(uint8_t phy) +{ + switch (phy) { +#if MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_CODED_PHY) + case BLE_HCI_LE_PHY_CODED: +#endif + case BLE_HCI_LE_PHY_1M: + return true; + default: + return false; + } +} + +static bool +sec_phy_valid(uint8_t phy) +{ + switch (phy) { +#if MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_CODED_PHY) + case BLE_HCI_LE_PHY_CODED: +#endif +#if MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_2M_PHY) + case BLE_HCI_LE_PHY_2M: +#endif + case BLE_HCI_LE_PHY_1M: + return true; + default: + return false; + } +} + int ble_ll_adv_ext_set_param(uint8_t *cmdbuf, uint8_t *rspbuf, uint8_t *rsplen) { @@ -2440,14 +2471,13 @@ ble_ll_adv_ext_set_param(uint8_t *cmdbuf, uint8_t *rspbuf, uint8_t *rsplen) } pri_phy = cmdbuf[20]; - if (pri_phy != BLE_HCI_LE_PHY_1M && pri_phy != BLE_HCI_LE_PHY_CODED) { + if (!pri_phy_valid(pri_phy)) { rc = BLE_ERR_INV_HCI_CMD_PARMS; goto done; } sec_phy = cmdbuf[22]; - if (sec_phy != BLE_HCI_LE_PHY_1M && sec_phy != BLE_HCI_LE_PHY_2M && - sec_phy != BLE_HCI_LE_PHY_CODED) { + if (!sec_phy_valid(sec_phy)) { rc = BLE_ERR_INV_HCI_CMD_PARMS; goto done; } diff --git a/nimble/controller/src/ble_ll_dtm.c b/nimble/controller/src/ble_ll_dtm.c index 33a0e02b7..68dfd22f3 100644 --- a/nimble/controller/src/ble_ll_dtm.c +++ b/nimble/controller/src/ble_ll_dtm.c @@ -147,9 +147,9 @@ ble_ll_dtm_set_next(struct dtm_ctx *ctx) sch->start_time += ctx->itvl_ticks; sch->remainder += ctx->itvl_rem_usec; - if (sch->remainder > 30) { + if (sch->remainder >= 31) { sch->start_time++; - sch->remainder -= 30; + sch->remainder -= 31; } sch->start_time -= g_ble_ll_sched_offset_ticks;