Lines Matching defs:hdev

105 struct hci_conn *phylink_add(struct hci_dev *hdev, struct amp_mgr *mgr,
112 hcon = hci_conn_add(hdev, AMP_LINK, dst, role);
169 struct hci_dev *hdev = conn->hdev;
182 bt_dev_err(hdev, "legacy key type %d", conn->key_type);
189 key = hci_find_link_key(hdev, &conn->dst);
202 bt_dev_err(hdev, "could not derive Generic AMP Key: err %d", err);
216 static void read_local_amp_assoc_complete(struct hci_dev *hdev, u8 status,
220 struct amp_assoc *assoc = &hdev->loc_assoc;
223 BT_DBG("%s status 0x%2.2x", hdev->name, rp->status);
238 amp_read_loc_assoc_frag(hdev, rp->phy_handle);
249 a2mp_send_getampassoc_rsp(hdev, rp->status);
250 a2mp_send_create_phy_link_req(hdev, rp->status);
253 void amp_read_loc_assoc_frag(struct hci_dev *hdev, u8 phy_handle)
256 struct amp_assoc *loc_assoc = &hdev->loc_assoc;
260 BT_DBG("%s handle %d", hdev->name, phy_handle);
263 cp.max_len = cpu_to_le16(hdev->amp_assoc_size);
266 hci_req_init(&req, hdev);
270 a2mp_send_getampassoc_rsp(hdev, A2MP_STATUS_INVALID_CTRL_ID);
273 void amp_read_loc_assoc(struct hci_dev *hdev, struct amp_mgr *mgr)
279 memset(&hdev->loc_assoc, 0, sizeof(struct amp_assoc));
282 cp.max_len = cpu_to_le16(hdev->amp_assoc_size);
285 hci_req_init(&req, hdev);
289 a2mp_send_getampassoc_rsp(hdev, A2MP_STATUS_INVALID_CTRL_ID);
292 void amp_read_loc_assoc_final_data(struct hci_dev *hdev,
305 cp.max_len = cpu_to_le16(hdev->amp_assoc_size);
310 hci_req_init(&req, hdev);
314 a2mp_send_getampassoc_rsp(hdev, A2MP_STATUS_INVALID_CTRL_ID);
317 static void write_remote_amp_assoc_complete(struct hci_dev *hdev, u8 status,
323 hdev->name, rp->status, rp->phy_handle);
328 amp_write_rem_assoc_continue(hdev, rp->phy_handle);
332 static bool amp_write_rem_assoc_frag(struct hci_dev *hdev,
376 hci_req_init(&req, hdev);
385 void amp_write_rem_assoc_continue(struct hci_dev *hdev, u8 handle)
389 BT_DBG("%s phy handle 0x%2.2x", hdev->name, handle);
391 hcon = hci_conn_hash_lookup_handle(hdev, handle);
396 if (amp_write_rem_assoc_frag(hdev, hcon))
397 a2mp_send_create_phy_link_rsp(hdev, 0);
400 void amp_write_remote_assoc(struct hci_dev *hdev, u8 handle)
404 BT_DBG("%s phy handle 0x%2.2x", hdev->name, handle);
406 hcon = hci_conn_hash_lookup_handle(hdev, handle);
410 BT_DBG("%s phy handle 0x%2.2x hcon %p", hdev->name, handle, hcon);
412 amp_write_rem_assoc_frag(hdev, hcon);
415 static void create_phylink_complete(struct hci_dev *hdev, u8 status,
420 BT_DBG("%s status 0x%2.2x", hdev->name, status);
422 cp = hci_sent_cmd_data(hdev, HCI_OP_CREATE_PHY_LINK);
426 hci_dev_lock(hdev);
431 hcon = hci_conn_hash_lookup_handle(hdev, cp->phy_handle);
435 amp_write_remote_assoc(hdev, cp->phy_handle);
438 hci_dev_unlock(hdev);
441 void amp_create_phylink(struct hci_dev *hdev, struct amp_mgr *mgr,
449 BT_DBG("%s hcon %p phy handle 0x%2.2x", hdev->name, hcon,
458 hci_req_init(&req, hdev);
463 static void accept_phylink_complete(struct hci_dev *hdev, u8 status,
468 BT_DBG("%s status 0x%2.2x", hdev->name, status);
473 cp = hci_sent_cmd_data(hdev, HCI_OP_ACCEPT_PHY_LINK);
477 amp_write_remote_assoc(hdev, cp->phy_handle);
480 void amp_accept_phylink(struct hci_dev *hdev, struct amp_mgr *mgr,
488 BT_DBG("%s hcon %p phy handle 0x%2.2x", hdev->name, hcon,
497 hci_req_init(&req, hdev);
504 struct hci_dev *bredr_hdev = hci_dev_hold(bredr_hcon->hdev);
519 bredr_chan->local_amp_id = hs_hcon->hdev->id;
521 bredr_chan->conn->mtu = hs_hcon->hdev->block_mtu;
534 struct hci_dev *hdev;
542 hdev = hci_dev_hold(chan->hs_hcon->hdev);
543 if (!hdev)
563 hci_send_cmd(hdev, HCI_OP_CREATE_LOGICAL_LINK, sizeof(cp),
566 hci_send_cmd(hdev, HCI_OP_ACCEPT_LOGICAL_LINK, sizeof(cp),
569 hci_dev_put(hdev);
583 hci_send_cmd(hcon->hdev, HCI_OP_DISCONN_LOGICAL_LINK, sizeof(cp), &cp);