diff --git a/subsys/bluetooth/controller/ll_sw/ctrl.c b/subsys/bluetooth/controller/ll_sw/ctrl.c index 5ee6f34c754..3baa73ba3c5 100644 --- a/subsys/bluetooth/controller/ll_sw/ctrl.c +++ b/subsys/bluetooth/controller/ll_sw/ctrl.c @@ -8301,6 +8301,20 @@ u32_t radio_adv_is_enabled(void) return _radio.advertiser.is_enabled; } +u32_t radio_adv_filter_pol_get(void) +{ + /* NOTE: filter_policy is only written in thread mode; if is_enabled is + * unset by ISR, returning the stale filter_policy is acceptable because + * the unset code path in ISR will generate a connection complete + * event. + */ + if (_radio.advertiser.is_enabled) { + return _radio.advertiser.filter_policy; + } + + return 0; +} + u32_t radio_scan_enable(u8_t type, u8_t init_addr_type, u8_t *init_addr, u16_t interval, u16_t window, u8_t filter_policy) { @@ -8425,6 +8439,20 @@ u32_t radio_scan_is_enabled(void) return _radio.scanner.is_enabled; } +u32_t radio_scan_filter_pol_get(void) +{ + /* NOTE: filter_policy is only written in thread mode; if is_enabled is + * unset by ISR, returning the stale filter_policy is acceptable because + * the unset code path in ISR will generate a connection complete + * event. + */ + if (_radio.scanner.is_enabled) { + return _radio.scanner.filter_policy; + } + + return 0; +} + u32_t radio_connect_enable(u8_t adv_addr_type, u8_t *adv_addr, u16_t interval, u16_t latency, u16_t timeout) { diff --git a/subsys/bluetooth/controller/ll_sw/ctrl.h b/subsys/bluetooth/controller/ll_sw/ctrl.h index 85ff8a2bf56..ded4855ece1 100644 --- a/subsys/bluetooth/controller/ll_sw/ctrl.h +++ b/subsys/bluetooth/controller/ll_sw/ctrl.h @@ -319,12 +319,14 @@ u32_t radio_adv_enable(u16_t interval, u8_t chl_map, u8_t filter_policy); u32_t radio_adv_disable(void); u32_t radio_adv_is_enabled(void); +u32_t radio_adv_filter_pol_get(void); /* Downstream - Scanner */ u32_t radio_scan_enable(u8_t type, u8_t init_addr_type, u8_t *init_addr, u16_t interval, u16_t window, u8_t filter_policy); u32_t radio_scan_disable(void); u32_t radio_scan_is_enabled(void); +u32_t radio_scan_filter_pol_get(void); u32_t radio_connect_enable(u8_t adv_addr_type, u8_t *adv_addr, u16_t interval, u16_t latency,