Correctly return the tick at which the RF will be fully enabled.
Always returning 0 (when `MYNEWT_VAL_BLE_LL_RFMGMT_ENABLE_TIME` is not defined), rather than a time near to the current tick, causes an issue in at least one place: `ble_ll_adv_sm_start()`, where the calculation of `delta` overflows when the system timer is at 0x80000000 or above -- causing an incorrect, huge adjustment to be made to the scheduled time, ultimately stopping adverts from being sent.
This commit is contained in:
parent
8a2b86dc83
commit
d7ca217872
|
@ -51,7 +51,7 @@ static inline void ble_ll_rfmgmt_reset(void) { }
|
||||||
static inline void ble_ll_rfmgmt_scan_changed(bool e, uint32_t n) { }
|
static inline void ble_ll_rfmgmt_scan_changed(bool e, uint32_t n) { }
|
||||||
static inline void ble_ll_rfmgmt_sched_changed(struct ble_ll_sched_item *f) { }
|
static inline void ble_ll_rfmgmt_sched_changed(struct ble_ll_sched_item *f) { }
|
||||||
static inline void ble_ll_rfmgmt_release(void) { }
|
static inline void ble_ll_rfmgmt_release(void) { }
|
||||||
static inline uint32_t ble_ll_rfmgmt_enable_now(void) { return 0; }
|
static inline uint32_t ble_ll_rfmgmt_enable_now(void) { return os_cputime_get32(); }
|
||||||
static inline bool ble_ll_rfmgmt_is_enabled(void) { return true; }
|
static inline bool ble_ll_rfmgmt_is_enabled(void) { return true; }
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue