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()
1209 hci_set_ext_adv_params_sync(struct hci_dev *hdev, struct adv_info *adv, in hci_set_ext_adv_params_sync() argument
1243 } else if (adv) { in hci_set_ext_adv_params_sync()
1244 adv->tx_power = rp->tx_power; in hci_set_ext_adv_params_sync()
1256 struct adv_info *adv = NULL; in hci_set_ext_adv_data_sync() local
1260 adv = hci_find_adv_instance(hdev, instance); in hci_set_ext_adv_data_sync()
1261 if (!adv || !adv->adv_data_changed) in hci_set_ext_adv_data_sync()
1269 pdu->handle = adv ? adv->handle : instance; in hci_set_ext_adv_data_sync()
1280 if (adv) { in hci_set_ext_adv_data_sync()
1281 adv->adv_data_changed = false; in hci_set_ext_adv_data_sync()
1333 struct adv_info *adv; in hci_setup_ext_adv_instance_sync() local
1337 adv = hci_find_adv_instance(hdev, instance); in hci_setup_ext_adv_instance_sync()
1338 if (!adv) in hci_setup_ext_adv_instance_sync()
1341 adv = NULL; in hci_setup_ext_adv_instance_sync()
1348 if (adv) { in hci_setup_ext_adv_instance_sync()
1369 require_privacy = !connectable && !(adv && adv->periodic); in hci_setup_ext_adv_instance_sync()
1372 adv_use_rpa(hdev, flags), adv, in hci_setup_ext_adv_instance_sync()
1379 if (adv) { in hci_setup_ext_adv_instance_sync()
1380 hci_cpu_to_le24(adv->min_interval, cp.min_interval); in hci_setup_ext_adv_instance_sync()
1381 hci_cpu_to_le24(adv->max_interval, cp.max_interval); in hci_setup_ext_adv_instance_sync()
1382 cp.tx_power = adv->tx_power; in hci_setup_ext_adv_instance_sync()
1383 cp.sid = adv->sid; in hci_setup_ext_adv_instance_sync()
1424 cp.handle = adv ? adv->handle : instance; in hci_setup_ext_adv_instance_sync()
1438 err = hci_set_ext_adv_params_sync(hdev, adv, &cp, &rp); in hci_setup_ext_adv_instance_sync()
1442 /* Update adv data as tx power is known now */ in hci_setup_ext_adv_instance_sync()
1451 if (adv) { in hci_setup_ext_adv_instance_sync()
1452 if (!bacmp(&random_addr, &adv->random_addr)) in hci_setup_ext_adv_instance_sync()
1471 struct adv_info *adv = NULL; in hci_set_ext_scan_rsp_data_sync() local
1475 adv = hci_find_adv_instance(hdev, instance); in hci_set_ext_scan_rsp_data_sync()
1476 if (!adv || !adv->scan_rsp_changed) in hci_set_ext_scan_rsp_data_sync()
1482 pdu->handle = adv ? adv->handle : instance; in hci_set_ext_scan_rsp_data_sync()
1493 if (adv) { in hci_set_ext_scan_rsp_data_sync()
1494 adv->scan_rsp_changed = false; in hci_set_ext_scan_rsp_data_sync()
1541 struct adv_info *adv; in hci_enable_ext_advertising_sync() local
1544 adv = hci_find_adv_instance(hdev, instance); in hci_enable_ext_advertising_sync()
1545 if (!adv) in hci_enable_ext_advertising_sync()
1548 if (adv->enabled) in hci_enable_ext_advertising_sync()
1551 adv = NULL; in hci_enable_ext_advertising_sync()
1564 set->handle = adv ? adv->handle : instance; in hci_enable_ext_advertising_sync()
1569 if (adv && adv->timeout) { in hci_enable_ext_advertising_sync()
1570 u16 duration = adv->timeout * MSEC_PER_SEC; in hci_enable_ext_advertising_sync()
1600 struct adv_info *adv = NULL; in hci_disable_per_advertising_sync() local
1603 adv = hci_find_adv_instance(hdev, instance); in hci_disable_per_advertising_sync()
1604 if (!adv || !adv->periodic || !adv->enabled) in hci_disable_per_advertising_sync()
1643 struct adv_info *adv = NULL; in hci_set_per_adv_data_sync() local
1646 adv = hci_find_adv_instance(hdev, instance); in hci_set_per_adv_data_sync()
1647 if (!adv || !adv->periodic) in hci_set_per_adv_data_sync()
1654 pdu->handle = adv ? adv->handle : instance; in hci_set_per_adv_data_sync()
1665 struct adv_info *adv = NULL; in hci_enable_per_advertising_sync() local
1668 adv = hci_find_adv_instance(hdev, instance); in hci_enable_per_advertising_sync()
1669 if (adv && adv->periodic && adv->enabled) in hci_enable_per_advertising_sync()
1684 static int hci_adv_bcast_annoucement(struct hci_dev *hdev, struct adv_info *adv) in hci_adv_bcast_annoucement() argument
1690 /* Skip if NULL adv as instance 0x00 is used for general purpose in hci_adv_bcast_annoucement()
1694 if (!adv) in hci_adv_bcast_annoucement()
1700 if (!eir_get_service_data(adv->per_adv_data, adv->per_adv_data_len, in hci_adv_bcast_annoucement()
1708 if (eir_get_service_data(adv->adv_data, adv->adv_data_len, 0x1852, in hci_adv_bcast_annoucement()
1715 memcpy(ad + len, adv->adv_data, adv->adv_data_len); in hci_adv_bcast_annoucement()
1716 hci_set_adv_instance_data(hdev, adv->instance, len + adv->adv_data_len, in hci_adv_bcast_annoucement()
1719 return hci_update_adv_data_sync(hdev, adv->instance); in hci_adv_bcast_annoucement()
1726 struct adv_info *adv = NULL; in hci_start_per_adv_sync() local
1733 adv = hci_find_adv_instance(hdev, instance); in hci_start_per_adv_sync()
1734 if (adv) { in hci_start_per_adv_sync()
1735 if (sid != HCI_SID_INVALID && adv->sid != sid) { in hci_start_per_adv_sync()
1739 adv = hci_find_adv_sid(hdev, sid); in hci_start_per_adv_sync()
1740 if (!adv) { in hci_start_per_adv_sync()
1748 adv->periodic = true; in hci_start_per_adv_sync()
1749 adv->per_adv_data_len = data_len; in hci_start_per_adv_sync()
1751 memcpy(adv->per_adv_data, data, data_len); in hci_start_per_adv_sync()
1752 adv->flags = flags; in hci_start_per_adv_sync()
1753 } else if (!adv) { in hci_start_per_adv_sync()
1755 adv = hci_add_per_instance(hdev, instance, sid, flags, in hci_start_per_adv_sync()
1759 if (IS_ERR(adv)) in hci_start_per_adv_sync()
1760 return PTR_ERR(adv); in hci_start_per_adv_sync()
1761 adv->pending = false; in hci_start_per_adv_sync()
1771 err = hci_adv_bcast_annoucement(hdev, adv); in hci_start_per_adv_sync()
1951 struct adv_info *adv = NULL; in hci_schedule_adv_instance_sync() local
1960 adv = hci_find_adv_instance(hdev, instance); in hci_schedule_adv_instance_sync()
1961 if (!adv) in hci_schedule_adv_instance_sync()
1972 if (adv->timeout == 0 || adv->duration <= adv->remaining_time) in hci_schedule_adv_instance_sync()
1973 timeout = adv->duration; in hci_schedule_adv_instance_sync()
1975 timeout = adv->remaining_time; in hci_schedule_adv_instance_sync()
1980 if (adv->timeout) in hci_schedule_adv_instance_sync()
1981 adv->remaining_time = adv->remaining_time - timeout; in hci_schedule_adv_instance_sync()
2022 struct adv_info *adv, *n; in hci_clear_adv_sync() local
2034 list_for_each_entry_safe(adv, n, &hdev->adv_instances, list) { in hci_clear_adv_sync()
2035 u8 instance = adv->instance; in hci_clear_adv_sync()
2038 if (!(force || adv->timeout)) in hci_clear_adv_sync()
2107 struct adv_info *adv = hci_find_adv_instance(hdev, instance); in hci_remove_advertising_sync() local
2109 if (force || (adv && adv->timeout && !adv->remaining_time)) { in hci_remove_advertising_sync()
2268 * - There is at least one ADV monitor in hci_update_interleaved_scan_sync()
2571 struct adv_info *adv, *tmp; in hci_resume_advertising_sync() local
2589 list_for_each_entry_safe(adv, tmp, &hdev->adv_instances, list) { in hci_resume_advertising_sync()
2591 adv->instance); in hci_resume_advertising_sync()
2596 hci_remove_ext_adv_instance_sync(hdev, adv->instance, in hci_resume_advertising_sync()
2882 * - There are 1 or more ADV monitors registered and it's not offloaded in hci_update_accept_list_sync()
3194 bt_dev_dbg(hdev, "ADV monitoring is %s", in hci_update_passive_scan_sync()
3203 * to be scanned for or no ADV monitors, we should stop the in hci_update_passive_scan_sync()
3336 struct adv_info *adv, *tmp; in hci_powered_update_adv_sync() local
3373 list_for_each_entry_safe(adv, tmp, &hdev->adv_instances, list) in hci_powered_update_adv_sync()
3374 hci_schedule_adv_instance_sync(hdev, adv->instance, true); in hci_powered_update_adv_sync()
3512 * Update adv data)
4308 /* If the controller supports LL Privacy feature or LE Extended Adv, in hci_le_set_event_mask_sync()
4417 * also included. So do not call it if extended adv in hci_le_read_adv_tx_power_sync()
6357 cp.handle = 0x00; /* Use instance 0 for directed adv */ in hci_le_ext_directed_advertising_sync()
6367 * So it is required to remove adv set for handle 0x00. since we use in hci_le_ext_directed_advertising_sync()
6368 * instance 0 for directed adv. in hci_le_ext_directed_advertising_sync()
6378 /* Update adv data as tx power is known now */ in hci_le_ext_directed_advertising_sync()