Lines Matching refs:hcon
26 struct hci_conn *hcon; member
130 static struct iso_conn *iso_conn_add(struct hci_conn *hcon) in iso_conn_add() argument
132 struct iso_conn *conn = hcon->iso_data; in iso_conn_add()
135 if (!conn->hcon) in iso_conn_add()
136 conn->hcon = hcon; in iso_conn_add()
147 hcon->iso_data = conn; in iso_conn_add()
148 conn->hcon = hcon; in iso_conn_add()
151 BT_DBG("hcon %p conn %p", hcon, conn); in iso_conn_add()
172 if (conn->hcon) in iso_chan_del()
173 hci_conn_drop(conn->hcon); in iso_chan_del()
190 static void iso_conn_del(struct hci_conn *hcon, int err) in iso_conn_del() argument
192 struct iso_conn *conn = hcon->iso_data; in iso_conn_del()
198 BT_DBG("hcon %p conn %p, err %d", hcon, conn, err); in iso_conn_del()
218 hcon->iso_data = NULL; in iso_conn_del()
267 struct hci_conn *hcon; in iso_connect_bis() local
300 hcon = hci_bind_bis(hdev, &iso_pi(sk)->dst, in iso_connect_bis()
303 if (IS_ERR(hcon)) { in iso_connect_bis()
304 err = PTR_ERR(hcon); in iso_connect_bis()
308 hcon = hci_connect_bis(hdev, &iso_pi(sk)->dst, in iso_connect_bis()
312 if (IS_ERR(hcon)) { in iso_connect_bis()
313 err = PTR_ERR(hcon); in iso_connect_bis()
318 conn = iso_conn_add(hcon); in iso_connect_bis()
320 hci_conn_drop(hcon); in iso_connect_bis()
334 bacpy(&iso_pi(sk)->src, &hcon->src); in iso_connect_bis()
336 if (hcon->state == BT_CONNECTED) { in iso_connect_bis()
358 struct hci_conn *hcon; in iso_connect_cis() local
391 hcon = hci_bind_cis(hdev, &iso_pi(sk)->dst, in iso_connect_cis()
394 if (IS_ERR(hcon)) { in iso_connect_cis()
395 err = PTR_ERR(hcon); in iso_connect_cis()
399 hcon = hci_connect_cis(hdev, &iso_pi(sk)->dst, in iso_connect_cis()
402 if (IS_ERR(hcon)) { in iso_connect_cis()
403 err = PTR_ERR(hcon); in iso_connect_cis()
408 conn = iso_conn_add(hcon); in iso_connect_cis()
410 hci_conn_drop(hcon); in iso_connect_cis()
424 bacpy(&iso_pi(sk)->src, &hcon->src); in iso_connect_cis()
426 if (hcon->state == BT_CONNECTED) { in iso_connect_cis()
448 return &iso_pi(sk)->conn->hcon->iso_qos; in iso_sock_get_qos()
474 hci_send_iso(conn->hcon, skb); in iso_send_frame()
610 if (iso_pi(parent)->conn && iso_pi(parent)->conn->hcon && in iso_sock_cleanup_listen()
611 test_bit(HCI_CONN_PA_SYNC, &iso_pi(parent)->conn->hcon->flags)) { in iso_sock_cleanup_listen()
642 hci_conn_drop(iso_pi(sk)->conn->hcon); in iso_sock_disconn()
643 iso_pi(sk)->conn->hcon = NULL; in iso_sock_disconn()
659 if (iso_pi(sk)->conn->hcon) in __iso_sock_close()
666 if (iso_pi(sk)->conn->hcon && in __iso_sock_close()
667 (test_bit(HCI_CONN_PA_SYNC, &iso_pi(sk)->conn->hcon->flags) || in __iso_sock_close()
668 test_bit(HCI_CONN_PA_SYNC_FAILED, &iso_pi(sk)->conn->hcon->flags))) in __iso_sock_close()
1103 mtu = iso_pi(sk)->conn->hcon->hdev->iso_mtu; in iso_sock_sendmsg()
1178 err = hci_le_big_create_sync(hdev, iso_pi(sk)->conn->hcon, in iso_conn_big_sync()
1201 if (pi->conn->hcon && in iso_sock_recvmsg()
1202 test_bit(HCI_CONN_PA_SYNC, &pi->conn->hcon->flags)) { in iso_sock_recvmsg()
1207 iso_conn_defer_accept(pi->conn->hcon); in iso_sock_recvmsg()
1454 base_len = iso_pi(sk)->conn->hcon->le_per_adv_data_len; in iso_sock_getsockopt()
1455 base = iso_pi(sk)->conn->hcon->le_per_adv_data; in iso_sock_getsockopt()
1560 struct hci_conn *hcon; member
1582 struct hci_conn *hcon; in iso_conn_ready() local
1589 hcon = conn->hcon; in iso_conn_ready()
1590 if (!hcon) in iso_conn_ready()
1593 if (test_bit(HCI_CONN_BIG_SYNC, &hcon->flags) || in iso_conn_ready()
1594 test_bit(HCI_CONN_BIG_SYNC_FAILED, &hcon->flags)) { in iso_conn_ready()
1595 ev = hci_recv_event_data(hcon->hdev, in iso_conn_ready()
1599 parent = iso_get_sock_listen(&hcon->src, in iso_conn_ready()
1600 &hcon->dst, in iso_conn_ready()
1603 parent = iso_get_sock_listen(&hcon->src, in iso_conn_ready()
1604 &hcon->dst, in iso_conn_ready()
1606 } else if (test_bit(HCI_CONN_PA_SYNC, &hcon->flags) || in iso_conn_ready()
1607 test_bit(HCI_CONN_PA_SYNC_FAILED, &hcon->flags)) { in iso_conn_ready()
1608 ev2 = hci_recv_event_data(hcon->hdev, in iso_conn_ready()
1611 parent = iso_get_sock_listen(&hcon->src, in iso_conn_ready()
1612 &hcon->dst, in iso_conn_ready()
1617 parent = iso_get_sock_listen(&hcon->src, in iso_conn_ready()
1634 bacpy(&iso_pi(sk)->src, &hcon->src); in iso_conn_ready()
1637 if (hcon->src_type == ADDR_LE_DEV_PUBLIC) in iso_conn_ready()
1647 if (!bacmp(&hcon->dst, BDADDR_ANY)) { in iso_conn_ready()
1648 bacpy(&hcon->dst, &iso_pi(parent)->dst); in iso_conn_ready()
1649 hcon->dst_type = iso_pi(parent)->dst_type; in iso_conn_ready()
1650 hcon->sync_handle = iso_pi(parent)->sync_handle; in iso_conn_ready()
1660 bacpy(&iso_pi(sk)->dst, &hcon->dst); in iso_conn_ready()
1661 iso_pi(sk)->dst_type = hcon->dst_type; in iso_conn_ready()
1666 hci_conn_hold(hcon); in iso_conn_ready()
1800 static void iso_connect_cfm(struct hci_conn *hcon, __u8 status) in iso_connect_cfm() argument
1802 if (hcon->type != ISO_LINK) { in iso_connect_cfm()
1803 if (hcon->type != LE_LINK) in iso_connect_cfm()
1810 list_for_each_entry_safe(link, t, &hcon->link_list, in iso_connect_cfm()
1818 hci_le_create_cis_pending(hcon->hdev); in iso_connect_cfm()
1822 BT_DBG("hcon %p bdaddr %pMR status %d", hcon, &hcon->dst, status); in iso_connect_cfm()
1829 if (!status || test_bit(HCI_CONN_BIG_SYNC_FAILED, &hcon->flags) || in iso_connect_cfm()
1830 test_bit(HCI_CONN_PA_SYNC_FAILED, &hcon->flags)) { in iso_connect_cfm()
1833 conn = iso_conn_add(hcon); in iso_connect_cfm()
1837 iso_conn_del(hcon, bt_to_errno(status)); in iso_connect_cfm()
1841 static void iso_disconn_cfm(struct hci_conn *hcon, __u8 reason) in iso_disconn_cfm() argument
1843 if (hcon->type != ISO_LINK) in iso_disconn_cfm()
1846 BT_DBG("hcon %p reason %d", hcon, reason); in iso_disconn_cfm()
1848 iso_conn_del(hcon, bt_to_errno(reason)); in iso_disconn_cfm()
1851 void iso_recv(struct hci_conn *hcon, struct sk_buff *skb, u16 flags) in iso_recv() argument
1853 struct iso_conn *conn = hcon->iso_data; in iso_recv()