Lines Matching full:adv
459 bt_dev_err(hdev, "failed to reenable ADV: %d", status); in reenable_adv()
1152 struct adv_info *adv = NULL; in hci_disable_ext_adv_instance_sync() local
1156 adv = hci_find_adv_instance(hdev, instance); in hci_disable_ext_adv_instance_sync()
1157 if (!adv) in hci_disable_ext_adv_instance_sync()
1161 if (!adv->enabled) in hci_disable_ext_adv_instance_sync()
1174 set->handle = adv ? adv->handle : instance; in hci_disable_ext_adv_instance_sync()
1216 struct adv_info *adv; in hci_setup_ext_adv_instance_sync() local
1220 adv = hci_find_adv_instance(hdev, instance); in hci_setup_ext_adv_instance_sync()
1221 if (!adv) in hci_setup_ext_adv_instance_sync()
1224 adv = NULL; in hci_setup_ext_adv_instance_sync()
1231 if (adv && !adv->pending) { in hci_setup_ext_adv_instance_sync()
1253 adv_use_rpa(hdev, flags), adv, in hci_setup_ext_adv_instance_sync()
1260 if (adv) { in hci_setup_ext_adv_instance_sync()
1261 hci_cpu_to_le24(adv->min_interval, cp.min_interval); in hci_setup_ext_adv_instance_sync()
1262 hci_cpu_to_le24(adv->max_interval, cp.max_interval); in hci_setup_ext_adv_instance_sync()
1263 cp.tx_power = adv->tx_power; in hci_setup_ext_adv_instance_sync()
1303 cp.handle = adv ? adv->handle : instance; in hci_setup_ext_adv_instance_sync()
1326 if (adv) { in hci_setup_ext_adv_instance_sync()
1327 if (!bacmp(&random_addr, &adv->random_addr)) in hci_setup_ext_adv_instance_sync()
1346 struct adv_info *adv = NULL; in hci_set_ext_scan_rsp_data_sync() local
1350 adv = hci_find_adv_instance(hdev, instance); in hci_set_ext_scan_rsp_data_sync()
1351 if (!adv || !adv->scan_rsp_changed) in hci_set_ext_scan_rsp_data_sync()
1357 pdu->handle = adv ? adv->handle : instance; in hci_set_ext_scan_rsp_data_sync()
1368 if (adv) { in hci_set_ext_scan_rsp_data_sync()
1369 adv->scan_rsp_changed = false; in hci_set_ext_scan_rsp_data_sync()
1416 struct adv_info *adv; in hci_enable_ext_advertising_sync() local
1419 adv = hci_find_adv_instance(hdev, instance); in hci_enable_ext_advertising_sync()
1420 if (!adv) in hci_enable_ext_advertising_sync()
1423 if (adv->enabled) in hci_enable_ext_advertising_sync()
1426 adv = NULL; in hci_enable_ext_advertising_sync()
1439 set->handle = adv ? adv->handle : instance; in hci_enable_ext_advertising_sync()
1444 if (adv && adv->timeout) { in hci_enable_ext_advertising_sync()
1445 u16 duration = adv->timeout * MSEC_PER_SEC; in hci_enable_ext_advertising_sync()
1475 struct adv_info *adv = NULL; in hci_disable_per_advertising_sync() local
1478 adv = hci_find_adv_instance(hdev, instance); in hci_disable_per_advertising_sync()
1479 if (!adv || !adv->periodic || !adv->enabled) in hci_disable_per_advertising_sync()
1518 struct adv_info *adv = NULL; in hci_set_per_adv_data_sync() local
1521 adv = hci_find_adv_instance(hdev, instance); in hci_set_per_adv_data_sync()
1522 if (!adv || !adv->periodic) in hci_set_per_adv_data_sync()
1529 pdu->handle = adv ? adv->handle : instance; in hci_set_per_adv_data_sync()
1540 struct adv_info *adv = NULL; in hci_enable_per_advertising_sync() local
1543 adv = hci_find_adv_instance(hdev, instance); in hci_enable_per_advertising_sync()
1544 if (adv && adv->periodic && adv->enabled) in hci_enable_per_advertising_sync()
1559 static int hci_adv_bcast_annoucement(struct hci_dev *hdev, struct adv_info *adv) in hci_adv_bcast_annoucement() argument
1564 /* Skip if NULL adv as instance 0x00 is used for general purpose in hci_adv_bcast_annoucement()
1568 if (!adv) in hci_adv_bcast_annoucement()
1574 if (!eir_get_service_data(adv->per_adv_data, adv->per_adv_data_len, in hci_adv_bcast_annoucement()
1582 if (eir_get_service_data(adv->adv_data, adv->adv_data_len, 0x1852, in hci_adv_bcast_annoucement()
1589 hci_set_adv_instance_data(hdev, adv->instance, sizeof(ad), ad, 0, NULL); in hci_adv_bcast_annoucement()
1591 return hci_update_adv_data_sync(hdev, adv->instance); in hci_adv_bcast_annoucement()
1598 struct adv_info *adv = NULL; in hci_start_per_adv_sync() local
1605 adv = hci_find_adv_instance(hdev, instance); in hci_start_per_adv_sync()
1607 if (!adv) { in hci_start_per_adv_sync()
1608 adv = hci_add_per_instance(hdev, instance, flags, in hci_start_per_adv_sync()
1612 if (IS_ERR(adv)) in hci_start_per_adv_sync()
1613 return PTR_ERR(adv); in hci_start_per_adv_sync()
1614 adv->pending = false; in hci_start_per_adv_sync()
1624 err = hci_adv_bcast_annoucement(hdev, adv); in hci_start_per_adv_sync()
1806 struct adv_info *adv = NULL; in hci_set_ext_adv_data_sync() local
1810 adv = hci_find_adv_instance(hdev, instance); in hci_set_ext_adv_data_sync()
1811 if (!adv || !adv->adv_data_changed) in hci_set_ext_adv_data_sync()
1818 pdu->handle = adv ? adv->handle : instance; in hci_set_ext_adv_data_sync()
1829 if (adv) { in hci_set_ext_adv_data_sync()
1830 adv->adv_data_changed = false; in hci_set_ext_adv_data_sync()
1876 struct adv_info *adv = NULL; in hci_schedule_adv_instance_sync() local
1885 adv = hci_find_adv_instance(hdev, instance); in hci_schedule_adv_instance_sync()
1886 if (!adv) in hci_schedule_adv_instance_sync()
1897 if (adv->timeout == 0 || adv->duration <= adv->remaining_time) in hci_schedule_adv_instance_sync()
1898 timeout = adv->duration; in hci_schedule_adv_instance_sync()
1900 timeout = adv->remaining_time; in hci_schedule_adv_instance_sync()
1905 if (adv->timeout) in hci_schedule_adv_instance_sync()
1906 adv->remaining_time = adv->remaining_time - timeout; in hci_schedule_adv_instance_sync()
1947 struct adv_info *adv, *n; in hci_clear_adv_sync() local
1962 list_for_each_entry_safe(adv, n, &hdev->adv_instances, list) { in hci_clear_adv_sync()
1963 u8 instance = adv->instance; in hci_clear_adv_sync()
1966 if (!(force || adv->timeout)) in hci_clear_adv_sync()
2037 struct adv_info *adv = hci_find_adv_instance(hdev, instance); in hci_remove_advertising_sync() local
2039 if (force || (adv && adv->timeout && !adv->remaining_time)) { in hci_remove_advertising_sync()
2201 * - There is at least one ADV monitor in hci_update_interleaved_scan_sync()
2500 struct adv_info *adv, *tmp; in hci_resume_advertising_sync() local
2518 list_for_each_entry_safe(adv, tmp, &hdev->adv_instances, list) { in hci_resume_advertising_sync()
2520 adv->instance); in hci_resume_advertising_sync()
2525 hci_remove_ext_adv_instance_sync(hdev, adv->instance, in hci_resume_advertising_sync()
2804 * - There are 1 or more ADV monitors registered and it's not offloaded in hci_update_accept_list_sync()
3116 bt_dev_dbg(hdev, "ADV monitoring is %s", in hci_update_passive_scan_sync()
3125 * to be scanned for or no ADV monitors, we should stop the in hci_update_passive_scan_sync()
3258 struct adv_info *adv, *tmp; in hci_powered_update_adv_sync() local
3295 list_for_each_entry_safe(adv, tmp, &hdev->adv_instances, list) in hci_powered_update_adv_sync()
3296 hci_schedule_adv_instance_sync(hdev, adv->instance, true); in hci_powered_update_adv_sync()
3434 * Update adv data)
4230 /* If the controller supports LL Privacy feature or LE Extended Adv, in hci_le_set_event_mask_sync()
4339 * also included. So do not call it if extended adv in hci_le_read_adv_tx_power_sync()
6275 cp.handle = 0x00; /* Use instance 0 for directed adv */ in hci_le_ext_directed_advertising_sync()
6285 * So it is required to remove adv set for handle 0x00. since we use in hci_le_ext_directed_advertising_sync()
6286 * instance 0 for directed adv. in hci_le_ext_directed_advertising_sync()