Lines Matching refs:cp

904 	struct hci_cp_le_set_scan_rsp_data cp;  in update_inst_scan_rsp_data()  local
910 memset(&cp, 0, sizeof(cp)); in update_inst_scan_rsp_data()
913 len = create_instance_scan_rsp_data(hdev, instance, cp.data); in update_inst_scan_rsp_data()
915 len = create_default_scan_rsp_data(hdev, cp.data); in update_inst_scan_rsp_data()
918 !memcmp(cp.data, hdev->scan_rsp_data, len)) in update_inst_scan_rsp_data()
921 memcpy(hdev->scan_rsp_data, cp.data, sizeof(cp.data)); in update_inst_scan_rsp_data()
924 cp.length = len; in update_inst_scan_rsp_data()
926 hci_req_add(req, HCI_OP_LE_SET_SCAN_RSP_DATA, sizeof(cp), &cp); in update_inst_scan_rsp_data()
943 struct mgmt_mode *cp = cmd->param; in get_adv_discov_flags() local
944 if (cp->val == 0x01) in get_adv_discov_flags()
946 else if (cp->val == 0x02) in get_adv_discov_flags()
967 struct mgmt_mode *cp = cmd->param; in get_connectable() local
969 return cp->val; in get_connectable()
1094 struct hci_cp_le_set_adv_data cp; in update_inst_adv_data() local
1100 memset(&cp, 0, sizeof(cp)); in update_inst_adv_data()
1102 len = create_instance_adv_data(hdev, instance, cp.data); in update_inst_adv_data()
1106 memcmp(cp.data, hdev->adv_data, len) == 0) in update_inst_adv_data()
1109 memcpy(hdev->adv_data, cp.data, sizeof(cp.data)); in update_inst_adv_data()
1112 cp.length = len; in update_inst_adv_data()
1114 hci_req_add(req, HCI_OP_LE_SET_ADV_DATA, sizeof(cp), &cp); in update_inst_adv_data()
1183 struct hci_cp_write_eir cp; in update_eir() local
1197 memset(&cp, 0, sizeof(cp)); in update_eir()
1199 create_eir(hdev, cp.data); in update_eir()
1201 if (memcmp(cp.data, hdev->eir, sizeof(cp.data)) == 0) in update_eir()
1204 memcpy(hdev->eir, cp.data, sizeof(cp.data)); in update_eir()
1206 hci_req_add(req, HCI_OP_WRITE_EIR, sizeof(cp), &cp); in update_eir()
1259 struct hci_cp_le_set_adv_param cp; in enable_advertising() local
1294 memset(&cp, 0, sizeof(cp)); in enable_advertising()
1295 cp.min_interval = cpu_to_le16(hdev->le_adv_min_interval); in enable_advertising()
1296 cp.max_interval = cpu_to_le16(hdev->le_adv_max_interval); in enable_advertising()
1299 cp.type = LE_ADV_IND; in enable_advertising()
1301 cp.type = LE_ADV_SCAN_IND; in enable_advertising()
1303 cp.type = LE_ADV_NONCONN_IND; in enable_advertising()
1305 cp.own_address_type = own_addr_type; in enable_advertising()
1306 cp.channel_map = hdev->le_adv_channel_map; in enable_advertising()
1308 hci_req_add(req, HCI_OP_LE_SET_ADV_PARAM, sizeof(cp), &cp); in enable_advertising()
1422 struct hci_cp_remote_name_req_cancel cp; in hci_stop_discovery() local
1443 bacpy(&cp.bdaddr, &e->data.bdaddr); in hci_stop_discovery()
1444 hci_req_add(req, HCI_OP_REMOTE_NAME_REQ_CANCEL, sizeof(cp), in hci_stop_discovery()
1445 &cp); in hci_stop_discovery()
1656 struct mgmt_mode *cp = data; in set_powered() local
1662 if (cp->val != 0x00 && cp->val != 0x01) in set_powered()
1677 if (cp->val) { in set_powered()
1685 if (!!cp->val == hdev_is_powered(hdev)) { in set_powered()
1696 if (cp->val) { in set_powered()
1812 struct mgmt_mode *cp; in set_discoverable_complete() local
1831 cp = cmd->param; in set_discoverable_complete()
1832 if (cp->val) { in set_discoverable_complete()
1869 struct mgmt_cp_set_discoverable *cp = data; in set_discoverable() local
1883 if (cp->val != 0x00 && cp->val != 0x01 && cp->val != 0x02) in set_discoverable()
1887 timeout = __le16_to_cpu(cp->timeout); in set_discoverable()
1892 if ((cp->val == 0x00 && timeout > 0) || in set_discoverable()
1893 (cp->val == 0x02 && timeout == 0)) in set_discoverable()
1925 if (!!cp->val != hci_dev_test_flag(hdev, HCI_DISCOVERABLE)) { in set_discoverable()
1944 if (!!cp->val == hci_dev_test_flag(hdev, HCI_DISCOVERABLE) && in set_discoverable()
1945 (cp->val == 0x02) == hci_dev_test_flag(hdev, in set_discoverable()
1950 if (cp->val && hdev->discov_timeout > 0) { in set_discoverable()
1974 if (cp->val == 0x02) in set_discoverable()
1989 if (cp->val) { in set_discoverable()
1992 if (cp->val == 0x02) { in set_discoverable()
2070 struct mgmt_mode *cp; in set_connectable_complete() local
2087 cp = cmd->param; in set_connectable_complete()
2088 if (cp->val) { in set_connectable_complete()
2148 struct mgmt_mode *cp = data; in set_connectable() local
2161 if (cp->val != 0x00 && cp->val != 0x01) in set_connectable()
2168 err = set_connectable_update_settings(hdev, sk, cp->val); in set_connectable()
2192 if (!cp->val) { in set_connectable()
2197 } else if (cp->val != test_bit(HCI_PSCAN, &hdev->flags)) { in set_connectable()
2198 if (cp->val) { in set_connectable()
2233 cp->val); in set_connectable()
2245 struct mgmt_mode *cp = data; in set_bondable() local
2251 if (cp->val != 0x00 && cp->val != 0x01) in set_bondable()
2257 if (cp->val) in set_bondable()
2277 struct mgmt_mode *cp = data; in set_link_security() local
2289 if (cp->val != 0x00 && cp->val != 0x01) in set_link_security()
2298 if (!!cp->val != hci_dev_test_flag(hdev, HCI_LINK_SECURITY)) { in set_link_security()
2319 val = !!cp->val; in set_link_security()
2345 struct mgmt_mode *cp = data; in set_ssp() local
2360 if (cp->val != 0x00 && cp->val != 0x01) in set_ssp()
2369 if (cp->val) { in set_ssp()
2398 if (!!cp->val == hci_dev_test_flag(hdev, HCI_SSP_ENABLED)) { in set_ssp()
2409 if (!cp->val && hci_dev_test_flag(hdev, HCI_USE_DEBUG_KEYS)) in set_ssp()
2411 sizeof(cp->val), &cp->val); in set_ssp()
2413 err = hci_send_cmd(hdev, HCI_OP_WRITE_SSP_MODE, 1, &cp->val); in set_ssp()
2426 struct mgmt_mode *cp = data; in set_hs() local
2445 if (cp->val != 0x00 && cp->val != 0x01) in set_hs()
2457 if (cp->val) { in set_hs()
2523 struct mgmt_mode *cp = data; in set_le() local
2536 if (cp->val != 0x00 && cp->val != 0x01) in set_le()
2550 if (cp->val == 0x01) in set_le()
2559 val = !!cp->val; in set_le()
2695 struct mgmt_cp_add_uuid *cp = data; in add_uuid() local
2717 memcpy(uuid->uuid, cp->uuid, 16); in add_uuid()
2718 uuid->svc_hint = cp->svc_hint; in add_uuid()
2719 uuid->size = get_uuid_size(cp->uuid); in add_uuid()
2775 struct mgmt_cp_remove_uuid *cp = data; in remove_uuid() local
2792 if (memcmp(cp->uuid, bt_uuid_any, 16) == 0) { in remove_uuid()
2808 if (memcmp(match->uuid, cp->uuid, 16) != 0) in remove_uuid()
2861 struct mgmt_cp_set_dev_class *cp = data; in set_dev_class() local
2880 if ((cp->minor & 0x03) != 0 || (cp->major & 0xe0) != 0) { in set_dev_class()
2886 hdev->major_class = cp->major; in set_dev_class()
2887 hdev->minor_class = cp->minor; in set_dev_class()
2932 struct mgmt_cp_load_link_keys *cp = data; in load_link_keys() local
2933 const u16 max_key_count = ((U16_MAX - sizeof(*cp)) / in load_link_keys()
2945 key_count = __le16_to_cpu(cp->key_count); in load_link_keys()
2953 expected_len = sizeof(*cp) + key_count * in load_link_keys()
2962 if (cp->debug_keys != 0x00 && cp->debug_keys != 0x01) in load_link_keys()
2966 BT_DBG("%s debug_keys %u key_count %u", hdev->name, cp->debug_keys, in load_link_keys()
2970 struct mgmt_link_key_info *key = &cp->keys[i]; in load_link_keys()
2982 if (cp->debug_keys) in load_link_keys()
2992 struct mgmt_link_key_info *key = &cp->keys[i]; in load_link_keys()
3026 struct mgmt_cp_unpair_device *cp = data; in unpair_device() local
3035 bacpy(&rp.addr.bdaddr, &cp->addr.bdaddr); in unpair_device()
3036 rp.addr.type = cp->addr.type; in unpair_device()
3038 if (!bdaddr_type_is_valid(cp->addr.type)) in unpair_device()
3043 if (cp->disconnect != 0x00 && cp->disconnect != 0x01) in unpair_device()
3057 if (cp->addr.type == BDADDR_BREDR) { in unpair_device()
3065 if (cp->disconnect) in unpair_device()
3067 &cp->addr.bdaddr); in unpair_device()
3071 err = hci_remove_link_key(hdev, &cp->addr.bdaddr); in unpair_device()
3084 addr_type = le_addr_type(cp->addr.type); in unpair_device()
3086 hci_remove_irk(hdev, &cp->addr.bdaddr, addr_type); in unpair_device()
3088 err = hci_remove_ltk(hdev, &cp->addr.bdaddr, addr_type); in unpair_device()
3096 conn = hci_conn_hash_lookup_le(hdev, &cp->addr.bdaddr, addr_type); in unpair_device()
3098 hci_conn_params_del(hdev, &cp->addr.bdaddr, addr_type); in unpair_device()
3111 params = hci_conn_params_lookup(hdev, &cp->addr.bdaddr, addr_type); in unpair_device()
3122 if (!cp->disconnect) in unpair_device()
3132 device_unpaired(hdev, &cp->addr.bdaddr, cp->addr.type, sk); in unpair_device()
3136 cmd = mgmt_pending_add(sk, MGMT_OP_UNPAIR_DEVICE, hdev, cp, in unpair_device()
3137 sizeof(*cp)); in unpair_device()
3157 struct mgmt_cp_disconnect *cp = data; in disconnect() local
3166 bacpy(&rp.addr.bdaddr, &cp->addr.bdaddr); in disconnect()
3167 rp.addr.type = cp->addr.type; in disconnect()
3169 if (!bdaddr_type_is_valid(cp->addr.type)) in disconnect()
3189 if (cp->addr.type == BDADDR_BREDR) in disconnect()
3191 &cp->addr.bdaddr); in disconnect()
3193 conn = hci_conn_hash_lookup_le(hdev, &cp->addr.bdaddr, in disconnect()
3194 le_addr_type(cp->addr.type)); in disconnect()
3298 struct mgmt_cp_pin_code_neg_reply *cp) in send_pin_code_neg_reply() argument
3303 cmd = mgmt_pending_add(sk, MGMT_OP_PIN_CODE_NEG_REPLY, hdev, cp, in send_pin_code_neg_reply()
3304 sizeof(*cp)); in send_pin_code_neg_reply()
3309 sizeof(cp->addr.bdaddr), &cp->addr.bdaddr); in send_pin_code_neg_reply()
3320 struct mgmt_cp_pin_code_reply *cp = data; in pin_code_reply() local
3335 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->addr.bdaddr); in pin_code_reply()
3342 if (conn->pending_sec_level == BT_SECURITY_HIGH && cp->pin_len != 16) { in pin_code_reply()
3345 memcpy(&ncp.addr, &cp->addr, sizeof(ncp.addr)); in pin_code_reply()
3365 bacpy(&reply.bdaddr, &cp->addr.bdaddr); in pin_code_reply()
3366 reply.pin_len = cp->pin_len; in pin_code_reply()
3367 memcpy(reply.pin_code, cp->pin_code, sizeof(reply.pin_code)); in pin_code_reply()
3381 struct mgmt_cp_set_io_capability *cp = data; in set_io_capability() local
3385 if (cp->io_capability > SMP_IO_KEYBOARD_DISPLAY) in set_io_capability()
3391 hdev->io_capability = cp->io_capability; in set_io_capability()
3499 struct mgmt_cp_pair_device *cp = data; in pair_device() local
3509 bacpy(&rp.addr.bdaddr, &cp->addr.bdaddr); in pair_device()
3510 rp.addr.type = cp->addr.type; in pair_device()
3512 if (!bdaddr_type_is_valid(cp->addr.type)) in pair_device()
3517 if (cp->io_cap > SMP_IO_KEYBOARD_DISPLAY) in pair_device()
3531 if (hci_bdaddr_is_paired(hdev, &cp->addr.bdaddr, cp->addr.type)) { in pair_device()
3541 if (cp->addr.type == BDADDR_BREDR) { in pair_device()
3542 conn = hci_connect_acl(hdev, &cp->addr.bdaddr, sec_level, in pair_device()
3545 u8 addr_type = le_addr_type(cp->addr.type); in pair_device()
3557 p = hci_conn_params_add(hdev, &cp->addr.bdaddr, addr_type); in pair_device()
3562 conn = hci_connect_le_scan(hdev, &cp->addr.bdaddr, in pair_device()
3602 if (cp->addr.type == BDADDR_BREDR) { in pair_device()
3612 conn->io_capability = cp->io_cap; in pair_device()
3725 struct hci_cp_user_passkey_reply cp; in user_pairing_resp() local
3727 bacpy(&cp.bdaddr, &addr->bdaddr); in user_pairing_resp()
3728 cp.passkey = passkey; in user_pairing_resp()
3729 err = hci_send_cmd(hdev, hci_op, sizeof(cp), &cp); in user_pairing_resp()
3745 struct mgmt_cp_pin_code_neg_reply *cp = data; in pin_code_neg_reply() local
3749 return user_pairing_resp(sk, hdev, &cp->addr, in pin_code_neg_reply()
3757 struct mgmt_cp_user_confirm_reply *cp = data; in user_confirm_reply() local
3761 if (len != sizeof(*cp)) in user_confirm_reply()
3765 return user_pairing_resp(sk, hdev, &cp->addr, in user_confirm_reply()
3773 struct mgmt_cp_user_confirm_neg_reply *cp = data; in user_confirm_neg_reply() local
3777 return user_pairing_resp(sk, hdev, &cp->addr, in user_confirm_neg_reply()
3785 struct mgmt_cp_user_passkey_reply *cp = data; in user_passkey_reply() local
3789 return user_pairing_resp(sk, hdev, &cp->addr, in user_passkey_reply()
3791 HCI_OP_USER_PASSKEY_REPLY, cp->passkey); in user_passkey_reply()
3797 struct mgmt_cp_user_passkey_neg_reply *cp = data; in user_passkey_neg_reply() local
3801 return user_pairing_resp(sk, hdev, &cp->addr, in user_passkey_neg_reply()
3809 struct hci_cp_write_local_name cp; in update_name() local
3811 memcpy(cp.name, hdev->dev_name, sizeof(cp.name)); in update_name()
3813 hci_req_add(req, HCI_OP_WRITE_LOCAL_NAME, sizeof(cp), &cp); in update_name()
3818 struct mgmt_cp_set_local_name *cp; in set_name_complete() local
3829 cp = cmd->param; in set_name_complete()
3836 cp, sizeof(*cp)); in set_name_complete()
3847 struct mgmt_cp_set_local_name *cp = data; in set_local_name() local
3859 if (!memcmp(hdev->dev_name, cp->name, sizeof(hdev->dev_name)) && in set_local_name()
3860 !memcmp(hdev->short_name, cp->short_name, in set_local_name()
3867 memcpy(hdev->short_name, cp->short_name, sizeof(hdev->short_name)); in set_local_name()
3870 memcpy(hdev->dev_name, cp->name, sizeof(hdev->dev_name)); in set_local_name()
3889 memcpy(hdev->dev_name, cp->name, sizeof(hdev->dev_name)); in set_local_name()
4040 struct mgmt_cp_add_remote_oob_data *cp = data; in add_remote_oob_data() local
4043 if (cp->addr.type != BDADDR_BREDR) { in add_remote_oob_data()
4047 &cp->addr, sizeof(cp->addr)); in add_remote_oob_data()
4051 err = hci_add_remote_oob_data(hdev, &cp->addr.bdaddr, in add_remote_oob_data()
4052 cp->addr.type, cp->hash, in add_remote_oob_data()
4053 cp->rand, NULL, NULL); in add_remote_oob_data()
4061 &cp->addr, sizeof(cp->addr)); in add_remote_oob_data()
4063 struct mgmt_cp_add_remote_oob_ext_data *cp = data; in add_remote_oob_data() local
4067 if (bdaddr_type_is_le(cp->addr.type)) { in add_remote_oob_data()
4071 if (memcmp(cp->rand192, ZERO_KEY, 16) || in add_remote_oob_data()
4072 memcmp(cp->hash192, ZERO_KEY, 16)) { in add_remote_oob_data()
4086 if (!memcmp(cp->rand192, ZERO_KEY, 16) || in add_remote_oob_data()
4087 !memcmp(cp->hash192, ZERO_KEY, 16)) { in add_remote_oob_data()
4091 rand192 = cp->rand192; in add_remote_oob_data()
4092 hash192 = cp->hash192; in add_remote_oob_data()
4099 if (!memcmp(cp->rand256, ZERO_KEY, 16) || in add_remote_oob_data()
4100 !memcmp(cp->hash256, ZERO_KEY, 16)) { in add_remote_oob_data()
4104 rand256 = cp->rand256; in add_remote_oob_data()
4105 hash256 = cp->hash256; in add_remote_oob_data()
4108 err = hci_add_remote_oob_data(hdev, &cp->addr.bdaddr, in add_remote_oob_data()
4109 cp->addr.type, hash192, rand192, in add_remote_oob_data()
4118 status, &cp->addr, sizeof(cp->addr)); in add_remote_oob_data()
4133 struct mgmt_cp_remove_remote_oob_data *cp = data; in remove_remote_oob_data() local
4139 if (cp->addr.type != BDADDR_BREDR) in remove_remote_oob_data()
4143 &cp->addr, sizeof(cp->addr)); in remove_remote_oob_data()
4147 if (!bacmp(&cp->addr.bdaddr, BDADDR_ANY)) { in remove_remote_oob_data()
4153 err = hci_remove_remote_oob_data(hdev, &cp->addr.bdaddr, cp->addr.type); in remove_remote_oob_data()
4161 status, &cp->addr, sizeof(cp->addr)); in remove_remote_oob_data()
4170 struct hci_cp_inquiry cp; in trigger_bredr_inquiry() local
4185 memset(&cp, 0, sizeof(cp)); in trigger_bredr_inquiry()
4186 memcpy(&cp.lap, lap, sizeof(cp.lap)); in trigger_bredr_inquiry()
4187 cp.length = DISCOV_BREDR_INQUIRY_LEN; in trigger_bredr_inquiry()
4189 hci_req_add(req, HCI_OP_INQUIRY, sizeof(cp), &cp); in trigger_bredr_inquiry()
4381 struct mgmt_cp_start_discovery *cp = data; in start_discovery() local
4394 &cp->type, sizeof(cp->type)); in start_discovery()
4401 MGMT_STATUS_BUSY, &cp->type, in start_discovery()
4402 sizeof(cp->type)); in start_discovery()
4419 hdev->discovery.type = cp->type; in start_discovery()
4426 status, &cp->type, sizeof(cp->type)); in start_discovery()
4454 struct mgmt_cp_start_service_discovery *cp = data; in start_service_discovery() local
4457 const u16 max_uuid_count = ((U16_MAX - sizeof(*cp)) / 16); in start_service_discovery()
4470 &cp->type, sizeof(cp->type)); in start_service_discovery()
4478 MGMT_STATUS_BUSY, &cp->type, in start_service_discovery()
4479 sizeof(cp->type)); in start_service_discovery()
4483 uuid_count = __le16_to_cpu(cp->uuid_count); in start_service_discovery()
4489 MGMT_STATUS_INVALID_PARAMS, &cp->type, in start_service_discovery()
4490 sizeof(cp->type)); in start_service_discovery()
4494 expected_len = sizeof(*cp) + uuid_count * 16; in start_service_discovery()
4500 MGMT_STATUS_INVALID_PARAMS, &cp->type, in start_service_discovery()
4501 sizeof(cp->type)); in start_service_discovery()
4520 hdev->discovery.type = cp->type; in start_service_discovery()
4521 hdev->discovery.rssi = cp->rssi; in start_service_discovery()
4525 hdev->discovery.uuids = kmemdup(cp->uuids, uuid_count * 16, in start_service_discovery()
4531 &cp->type, sizeof(cp->type)); in start_service_discovery()
4542 status, &cp->type, sizeof(cp->type)); in start_service_discovery()
4641 struct mgmt_cp_confirm_name *cp = data; in confirm_name() local
4651 MGMT_STATUS_FAILED, &cp->addr, in confirm_name()
4652 sizeof(cp->addr)); in confirm_name()
4656 e = hci_inquiry_cache_lookup_unknown(hdev, &cp->addr.bdaddr); in confirm_name()
4659 MGMT_STATUS_INVALID_PARAMS, &cp->addr, in confirm_name()
4660 sizeof(cp->addr)); in confirm_name()
4664 if (cp->name_known) { in confirm_name()
4673 &cp->addr, sizeof(cp->addr)); in confirm_name()
4683 struct mgmt_cp_block_device *cp = data; in block_device() local
4689 if (!bdaddr_type_is_valid(cp->addr.type)) in block_device()
4692 &cp->addr, sizeof(cp->addr)); in block_device()
4696 err = hci_bdaddr_list_add(&hdev->blacklist, &cp->addr.bdaddr, in block_device()
4697 cp->addr.type); in block_device()
4703 mgmt_event(MGMT_EV_DEVICE_BLOCKED, hdev, &cp->addr, sizeof(cp->addr), in block_device()
4709 &cp->addr, sizeof(cp->addr)); in block_device()
4719 struct mgmt_cp_unblock_device *cp = data; in unblock_device() local
4725 if (!bdaddr_type_is_valid(cp->addr.type)) in unblock_device()
4728 &cp->addr, sizeof(cp->addr)); in unblock_device()
4732 err = hci_bdaddr_list_del(&hdev->blacklist, &cp->addr.bdaddr, in unblock_device()
4733 cp->addr.type); in unblock_device()
4739 mgmt_event(MGMT_EV_DEVICE_UNBLOCKED, hdev, &cp->addr, sizeof(cp->addr), in unblock_device()
4745 &cp->addr, sizeof(cp->addr)); in unblock_device()
4755 struct mgmt_cp_set_device_id *cp = data; in set_device_id() local
4762 source = __le16_to_cpu(cp->source); in set_device_id()
4771 hdev->devid_vendor = __le16_to_cpu(cp->vendor); in set_device_id()
4772 hdev->devid_product = __le16_to_cpu(cp->product); in set_device_id()
4773 hdev->devid_version = __le16_to_cpu(cp->version); in set_device_id()
4860 struct mgmt_mode *cp = data; in set_advertising() local
4873 if (cp->val != 0x00 && cp->val != 0x01 && cp->val != 0x02) in set_advertising()
4879 val = !!cp->val; in set_advertising()
4888 (cp->val == 0x02) == hci_dev_test_flag(hdev, HCI_ADVERTISING_CONNECTABLE)) || in set_advertising()
4894 if (cp->val) { in set_advertising()
4896 if (cp->val == 0x02) in set_advertising()
4930 if (cp->val == 0x02) in set_advertising()
4961 struct mgmt_cp_set_static_address *cp = data; in set_static_address() local
4974 if (bacmp(&cp->bdaddr, BDADDR_ANY)) { in set_static_address()
4975 if (!bacmp(&cp->bdaddr, BDADDR_NONE)) in set_static_address()
4981 if ((cp->bdaddr.b[5] & 0xc0) != 0xc0) in set_static_address()
4989 bacpy(&hdev->static_addr, &cp->bdaddr); in set_static_address()
5005 struct mgmt_cp_set_scan_params *cp = data; in set_scan_params() local
5015 interval = __le16_to_cpu(cp->interval); in set_scan_params()
5021 window = __le16_to_cpu(cp->window); in set_scan_params()
5076 struct mgmt_mode *cp = cmd->param; in fast_connectable_complete() local
5078 if (cp->val) in fast_connectable_complete()
5096 struct mgmt_mode *cp = data; in set_fast_connectable() local
5108 if (cp->val != 0x00 && cp->val != 0x01) in set_fast_connectable()
5120 if (!!cp->val == hci_dev_test_flag(hdev, HCI_FAST_CONNECTABLE)) { in set_fast_connectable()
5143 write_fast_connectable(&req, cp->val); in set_fast_connectable()
5192 struct mgmt_mode *cp = data; in set_bredr() local
5207 if (cp->val != 0x00 && cp->val != 0x01) in set_bredr()
5213 if (cp->val == hci_dev_test_flag(hdev, HCI_BREDR_ENABLED)) { in set_bredr()
5219 if (!cp->val) { in set_bredr()
5238 if (!cp->val) { in set_bredr()
5305 struct mgmt_mode *cp; in sc_enable_complete() local
5321 cp = cmd->param; in sc_enable_complete()
5323 switch (cp->val) { in sc_enable_complete()
5350 struct mgmt_mode *cp = data; in set_secure_conn() local
5369 if (cp->val != 0x00 && cp->val != 0x01 && cp->val != 0x02) in set_secure_conn()
5379 if (cp->val) { in set_secure_conn()
5382 if (cp->val == 0x02) in set_secure_conn()
5408 val = !!cp->val; in set_secure_conn()
5411 (cp->val == 0x02) == hci_dev_test_flag(hdev, HCI_SC_ONLY)) { in set_secure_conn()
5438 struct mgmt_mode *cp = data; in set_debug_keys() local
5444 if (cp->val != 0x00 && cp->val != 0x01 && cp->val != 0x02) in set_debug_keys()
5450 if (cp->val) in set_debug_keys()
5456 if (cp->val == 0x02) in set_debug_keys()
5465 u8 mode = (cp->val == 0x02) ? 0x01 : 0x00; in set_debug_keys()
5485 struct mgmt_cp_set_privacy *cp = cp_data; in set_privacy() local
5495 if (cp->privacy != 0x00 && cp->privacy != 0x01) in set_privacy()
5510 if (cp->privacy) { in set_privacy()
5512 memcpy(hdev->irk, cp->irk, sizeof(hdev->irk)); in set_privacy()
5551 struct mgmt_cp_load_irks *cp = cp_data; in load_irks() local
5552 const u16 max_irk_count = ((U16_MAX - sizeof(*cp)) / in load_irks()
5563 irk_count = __le16_to_cpu(cp->irk_count); in load_irks()
5570 expected_len = sizeof(*cp) + irk_count * sizeof(struct mgmt_irk_info); in load_irks()
5581 struct mgmt_irk_info *key = &cp->irks[i]; in load_irks()
5594 struct mgmt_irk_info *irk = &cp->irks[i]; in load_irks()
5632 struct mgmt_cp_load_long_term_keys *cp = cp_data; in load_long_term_keys() local
5633 const u16 max_key_count = ((U16_MAX - sizeof(*cp)) / in load_long_term_keys()
5644 key_count = __le16_to_cpu(cp->key_count); in load_long_term_keys()
5651 expected_len = sizeof(*cp) + key_count * in load_long_term_keys()
5663 struct mgmt_ltk_info *key = &cp->keys[i]; in load_long_term_keys()
5676 struct mgmt_ltk_info *key = &cp->keys[i]; in load_long_term_keys()
5746 struct hci_cp_read_rssi *cp; in conn_info_refresh_complete() local
5765 cp = hci_sent_cmd_data(hdev, HCI_OP_READ_RSSI); in conn_info_refresh_complete()
5766 if (!cp) { in conn_info_refresh_complete()
5767 cp = hci_sent_cmd_data(hdev, HCI_OP_READ_TX_POWER); in conn_info_refresh_complete()
5773 if (!cp) { in conn_info_refresh_complete()
5778 handle = __le16_to_cpu(cp->handle); in conn_info_refresh_complete()
5799 struct mgmt_cp_get_conn_info *cp = data; in get_conn_info() local
5808 bacpy(&rp.addr.bdaddr, &cp->addr.bdaddr); in get_conn_info()
5809 rp.addr.type = cp->addr.type; in get_conn_info()
5811 if (!bdaddr_type_is_valid(cp->addr.type)) in get_conn_info()
5825 if (cp->addr.type == BDADDR_BREDR) in get_conn_info()
5827 &cp->addr.bdaddr); in get_conn_info()
5829 conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, &cp->addr.bdaddr); in get_conn_info()
5870 if (!bdaddr_type_is_le(cp->addr.type) || in get_conn_info()
5988 struct mgmt_cp_get_clock_info *cp = data; in get_clock_info() local
5999 bacpy(&rp.addr.bdaddr, &cp->addr.bdaddr); in get_clock_info()
6000 rp.addr.type = cp->addr.type; in get_clock_info()
6002 if (cp->addr.type != BDADDR_BREDR) in get_clock_info()
6016 if (bacmp(&cp->addr.bdaddr, BDADDR_ANY)) { in get_clock_info()
6018 &cp->addr.bdaddr); in get_clock_info()
6167 struct mgmt_cp_add_device *cp = data; in add_device() local
6175 if (!bdaddr_type_is_valid(cp->addr.type) || in add_device()
6176 !bacmp(&cp->addr.bdaddr, BDADDR_ANY)) in add_device()
6179 &cp->addr, sizeof(cp->addr)); in add_device()
6181 if (cp->action != 0x00 && cp->action != 0x01 && cp->action != 0x02) in add_device()
6184 &cp->addr, sizeof(cp->addr)); in add_device()
6198 if (cp->addr.type == BDADDR_BREDR) { in add_device()
6200 if (cp->action != 0x01) { in add_device()
6207 err = hci_bdaddr_list_add(&hdev->whitelist, &cp->addr.bdaddr, in add_device()
6208 cp->addr.type); in add_device()
6217 addr_type = le_addr_type(cp->addr.type); in add_device()
6219 if (cp->action == 0x02) in add_device()
6221 else if (cp->action == 0x01) in add_device()
6231 if (!hci_is_identity_address(&cp->addr.bdaddr, addr_type)) { in add_device()
6240 if (hci_conn_params_set(&req, &cp->addr.bdaddr, addr_type, in add_device()
6248 device_added(sk, hdev, &cp->addr.bdaddr, cp->addr.type, cp->action); in add_device()
6298 struct mgmt_cp_remove_device *cp = data; in remove_device() local
6317 if (bacmp(&cp->addr.bdaddr, BDADDR_ANY)) { in remove_device()
6321 if (!bdaddr_type_is_valid(cp->addr.type)) { in remove_device()
6328 if (cp->addr.type == BDADDR_BREDR) { in remove_device()
6330 &cp->addr.bdaddr, in remove_device()
6331 cp->addr.type); in remove_device()
6341 device_removed(sk, hdev, &cp->addr.bdaddr, in remove_device()
6342 cp->addr.type); in remove_device()
6346 addr_type = le_addr_type(cp->addr.type); in remove_device()
6353 if (!hci_is_identity_address(&cp->addr.bdaddr, addr_type)) { in remove_device()
6360 params = hci_conn_params_lookup(hdev, &cp->addr.bdaddr, in remove_device()
6382 device_removed(sk, hdev, &cp->addr.bdaddr, cp->addr.type); in remove_device()
6387 if (cp->addr.type) { in remove_device()
6439 struct mgmt_cp_load_conn_param *cp = data; in load_conn_param() local
6440 const u16 max_param_count = ((U16_MAX - sizeof(*cp)) / in load_conn_param()
6449 param_count = __le16_to_cpu(cp->param_count); in load_conn_param()
6457 expected_len = sizeof(*cp) + param_count * in load_conn_param()
6473 struct mgmt_conn_param *param = &cp->params[i]; in load_conn_param()
6525 struct mgmt_cp_set_external_config *cp = data; in set_external_config() local
6535 if (cp->config != 0x00 && cp->config != 0x01) in set_external_config()
6545 if (cp->config) in set_external_config()
6581 struct mgmt_cp_set_public_address *cp = data; in set_public_address() local
6591 if (!bacmp(&cp->bdaddr, BDADDR_ANY)) in set_public_address()
6601 changed = !!bacmp(&hdev->public_addr, &cp->bdaddr); in set_public_address()
6602 bacpy(&hdev->public_addr, &cp->bdaddr); in set_public_address()
6753 struct mgmt_cp_read_local_oob_ext_data *cp) in read_local_ssp_oob_req() argument
6760 cp, sizeof(*cp)); in read_local_ssp_oob_req()
6783 struct mgmt_cp_read_local_oob_ext_data *cp = data; in read_local_oob_ext_data() local
6793 switch (cp->type) { in read_local_oob_ext_data()
6829 switch (cp->type) { in read_local_oob_ext_data()
6832 err = read_local_ssp_oob_req(hdev, sk, cp); in read_local_oob_ext_data()
6918 rp->type = cp->type; in read_local_oob_ext_data()
7059 struct mgmt_cp_add_advertising *cp; in add_advertising_complete() local
7094 cp = cmd->param; in add_advertising_complete()
7095 rp.instance = cp->instance; in add_advertising_complete()
7138 struct mgmt_cp_add_advertising *cp = data; in add_advertising() local
7158 if (data_len != sizeof(*cp) + cp->adv_data_len + cp->scan_rsp_len) in add_advertising()
7162 flags = __le32_to_cpu(cp->flags); in add_advertising()
7163 timeout = __le16_to_cpu(cp->timeout); in add_advertising()
7164 duration = __le16_to_cpu(cp->duration); in add_advertising()
7190 if (!tlv_data_is_valid(hdev, flags, cp->data, cp->adv_data_len, true) || in add_advertising()
7191 !tlv_data_is_valid(hdev, flags, cp->data + cp->adv_data_len, in add_advertising()
7192 cp->scan_rsp_len, false)) { in add_advertising()
7198 err = hci_add_adv_instance(hdev, cp->instance, flags, in add_advertising()
7199 cp->adv_data_len, cp->data, in add_advertising()
7200 cp->scan_rsp_len, in add_advertising()
7201 cp->data + cp->adv_data_len, in add_advertising()
7213 advertising_added(sk, hdev, cp->instance); in add_advertising()
7217 if (hdev->cur_adv_instance == cp->instance) { in add_advertising()
7225 next_instance = hci_get_next_instance(hdev, cp->instance); in add_advertising()
7232 schedule_instance = cp->instance; in add_advertising()
7242 rp.instance = cp->instance; in add_advertising()
7278 struct mgmt_cp_remove_advertising *cp; in remove_advertising_complete() local
7293 cp = cmd->param; in remove_advertising_complete()
7294 rp.instance = cp->instance; in remove_advertising_complete()
7307 struct mgmt_cp_remove_advertising *cp = data; in remove_advertising() local
7317 if (cp->instance && !hci_find_adv_instance(hdev, cp->instance)) { in remove_advertising()
7340 clear_adv_instance(hdev, &req, cp->instance, true); in remove_advertising()
7352 rp.instance = cp->instance; in remove_advertising()
7611 struct hci_cp_write_le_host_supported cp; in powered_update_hci() local
7613 cp.le = 0x01; in powered_update_hci()
7614 cp.simul = 0x00; in powered_update_hci()
7619 if (cp.le != lmp_host_le_capable(hdev) || in powered_update_hci()
7620 cp.simul != lmp_host_le_br_capable(hdev)) in powered_update_hci()
7622 sizeof(cp), &cp); in powered_update_hci()
7975 struct mgmt_cp_unpair_device *cp = cmd->param; in unpair_device_rsp() local
7977 device_unpaired(hdev, &cp->addr.bdaddr, cp->addr.type, cmd->sk); in unpair_device_rsp()
7986 struct mgmt_mode *cp; in mgmt_powering_down() local
7992 cp = cmd->param; in mgmt_powering_down()
7993 if (!cp->val) in mgmt_powering_down()
8039 struct mgmt_cp_disconnect *cp; in mgmt_disconnect_failed() local
8049 cp = cmd->param; in mgmt_disconnect_failed()
8051 if (bacmp(bdaddr, &cp->addr.bdaddr)) in mgmt_disconnect_failed()
8054 if (cp->addr.type != bdaddr_type) in mgmt_disconnect_failed()
8262 struct hci_cp_write_eir cp; in clear_eir() local
8269 memset(&cp, 0, sizeof(cp)); in clear_eir()
8271 hci_req_add(req, HCI_OP_WRITE_EIR, sizeof(cp), &cp); in clear_eir()