Lines Matching full:monitor
133 /* To synchronize add/remove address filter and monitor device event.*/
263 struct adv_monitor *monitor, in msft_le_monitor_advertisement_cb() argument
289 handle_data->mgmt_handle = monitor->handle; in msft_le_monitor_advertisement_cb()
295 monitor->state = ADV_MONITOR_STATE_OFFLOADED; in msft_le_monitor_advertisement_cb()
299 hci_free_adv_monitor(hdev, monitor); in msft_le_monitor_advertisement_cb()
372 struct adv_monitor *monitor, in msft_le_cancel_monitor_advertisement_cb() argument
393 handle_data = msft_find_handle_data(hdev, monitor->handle, true); in msft_le_cancel_monitor_advertisement_cb()
396 if (monitor->state == ADV_MONITOR_STATE_OFFLOADED) in msft_le_cancel_monitor_advertisement_cb()
397 monitor->state = ADV_MONITOR_STATE_REGISTERED; in msft_le_cancel_monitor_advertisement_cb()
399 /* Do not free the monitor if it is being removed due to in msft_le_cancel_monitor_advertisement_cb()
403 hci_free_adv_monitor(hdev, monitor); in msft_le_cancel_monitor_advertisement_cb()
405 /* Clear any monitored devices by this Adv Monitor */ in msft_le_cancel_monitor_advertisement_cb()
428 struct adv_monitor *monitor) in msft_remove_monitor_sync() argument
434 handle_data = msft_find_handle_data(hdev, monitor->handle, true); in msft_remove_monitor_sync()
452 monitor, skb); in msft_remove_monitor_sync()
459 struct adv_monitor *monitor; in msft_suspend_sync() local
468 monitor = idr_get_next(&hdev->adv_monitors_idr, &handle); in msft_suspend_sync()
469 if (!monitor) in msft_suspend_sync()
472 msft_remove_monitor_sync(hdev, monitor); in msft_suspend_sync()
483 static bool msft_monitor_rssi_valid(struct adv_monitor *monitor) in msft_monitor_rssi_valid() argument
485 struct adv_rssi_thresholds *r = &monitor->rssi; in msft_monitor_rssi_valid()
506 static bool msft_monitor_pattern_valid(struct adv_monitor *monitor) in msft_monitor_pattern_valid() argument
508 return msft_monitor_rssi_valid(monitor); in msft_monitor_pattern_valid()
509 /* No additional check needed for pattern-based monitor */ in msft_monitor_pattern_valid()
513 struct adv_monitor *monitor) in msft_add_monitor_sync() argument
526 if (!msft_monitor_pattern_valid(monitor)) in msft_add_monitor_sync()
529 list_for_each_entry(entry, &monitor->patterns, list) { in msft_add_monitor_sync()
539 cp->rssi_high = monitor->rssi.high_threshold; in msft_add_monitor_sync()
540 cp->rssi_low = monitor->rssi.low_threshold; in msft_add_monitor_sync()
541 cp->rssi_low_interval = (u8)monitor->rssi.low_threshold_timeout; in msft_add_monitor_sync()
542 cp->rssi_sampling_period = monitor->rssi.sampling_period; in msft_add_monitor_sync()
549 list_for_each_entry(entry, &monitor->patterns, list) { in msft_add_monitor_sync()
568 monitor, skb); in msft_add_monitor_sync()
572 handle_data = msft_find_handle_data(hdev, monitor->handle, true); in msft_add_monitor_sync()
591 struct adv_monitor *monitor; in reregister_monitor() local
601 monitor = idr_get_next(&hdev->adv_monitors_idr, &handle); in reregister_monitor()
602 if (!monitor) in reregister_monitor()
605 msft_add_monitor_sync(hdev, monitor); in reregister_monitor()
668 * tell the controller to re-monitor. in msft_do_open()
679 struct adv_monitor *monitor; in msft_do_close() local
687 * Therefore, remove handle_data mapping and reset monitor state. in msft_do_close()
690 monitor = idr_find(&hdev->adv_monitors_idr, in msft_do_close()
693 if (monitor && monitor->state == ADV_MONITOR_STATE_OFFLOADED) in msft_do_close()
694 monitor->state = ADV_MONITOR_STATE_REGISTERED; in msft_do_close()
955 * avoided when receiving monitor device event (found/lost) frequently in msft_add_address_filter()
1005 * monitors. Pattern monitor always has its address filters for in msft_monitor_device_evt()
1023 /* This device event is not from pattern monitor. in msft_monitor_device_evt()
1156 int msft_add_monitor_pattern(struct hci_dev *hdev, struct adv_monitor *monitor) in msft_add_monitor_pattern() argument
1166 return msft_add_monitor_sync(hdev, monitor); in msft_add_monitor_pattern()
1170 int msft_remove_monitor(struct hci_dev *hdev, struct adv_monitor *monitor) in msft_remove_monitor() argument
1180 return msft_remove_monitor_sync(hdev, monitor); in msft_remove_monitor()