@@ -1547,7 +1547,7 @@ static int qos_set_bis(struct hci_dev *hdev, struct bt_iso_qos *qos)
15471547/* This function requires the caller holds hdev->lock */
15481548static struct hci_conn * hci_add_bis (struct hci_dev * hdev , bdaddr_t * dst ,
15491549 __u8 sid , struct bt_iso_qos * qos ,
1550- __u8 base_len , __u8 * base )
1550+ __u8 base_len , __u8 * base , u16 timeout )
15511551{
15521552 struct hci_conn * conn ;
15531553 int err ;
@@ -1589,6 +1589,7 @@ static struct hci_conn *hci_add_bis(struct hci_dev *hdev, bdaddr_t *dst,
15891589
15901590 conn -> state = BT_CONNECT ;
15911591 conn -> sid = sid ;
1592+ conn -> conn_timeout = timeout ;
15921593
15931594 hci_conn_hold (conn );
15941595 return conn ;
@@ -1929,7 +1930,8 @@ static bool hci_le_set_cig_params(struct hci_conn *conn, struct bt_iso_qos *qos)
19291930}
19301931
19311932struct hci_conn * hci_bind_cis (struct hci_dev * hdev , bdaddr_t * dst ,
1932- __u8 dst_type , struct bt_iso_qos * qos )
1933+ __u8 dst_type , struct bt_iso_qos * qos ,
1934+ u16 timeout )
19331935{
19341936 struct hci_conn * cis ;
19351937
@@ -1944,6 +1946,7 @@ struct hci_conn *hci_bind_cis(struct hci_dev *hdev, bdaddr_t *dst,
19441946 cis -> dst_type = dst_type ;
19451947 cis -> iso_qos .ucast .cig = BT_ISO_QOS_CIG_UNSET ;
19461948 cis -> iso_qos .ucast .cis = BT_ISO_QOS_CIS_UNSET ;
1949+ cis -> conn_timeout = timeout ;
19471950 }
19481951
19491952 if (cis -> state == BT_CONNECTED )
@@ -2183,7 +2186,7 @@ static void create_big_complete(struct hci_dev *hdev, void *data, int err)
21832186
21842187struct hci_conn * hci_bind_bis (struct hci_dev * hdev , bdaddr_t * dst , __u8 sid ,
21852188 struct bt_iso_qos * qos ,
2186- __u8 base_len , __u8 * base )
2189+ __u8 base_len , __u8 * base , u16 timeout )
21872190{
21882191 struct hci_conn * conn ;
21892192 struct hci_conn * parent ;
@@ -2204,7 +2207,7 @@ struct hci_conn *hci_bind_bis(struct hci_dev *hdev, bdaddr_t *dst, __u8 sid,
22042207 base , base_len );
22052208
22062209 /* We need hci_conn object using the BDADDR_ANY as dst */
2207- conn = hci_add_bis (hdev , dst , sid , qos , base_len , eir );
2210+ conn = hci_add_bis (hdev , dst , sid , qos , base_len , eir , timeout );
22082211 if (IS_ERR (conn ))
22092212 return conn ;
22102213
@@ -2257,13 +2260,13 @@ static void bis_mark_per_adv(struct hci_conn *conn, void *data)
22572260struct hci_conn * hci_connect_bis (struct hci_dev * hdev , bdaddr_t * dst ,
22582261 __u8 dst_type , __u8 sid ,
22592262 struct bt_iso_qos * qos ,
2260- __u8 base_len , __u8 * base )
2263+ __u8 base_len , __u8 * base , u16 timeout )
22612264{
22622265 struct hci_conn * conn ;
22632266 int err ;
22642267 struct iso_list_data data ;
22652268
2266- conn = hci_bind_bis (hdev , dst , sid , qos , base_len , base );
2269+ conn = hci_bind_bis (hdev , dst , sid , qos , base_len , base , timeout );
22672270 if (IS_ERR (conn ))
22682271 return conn ;
22692272
@@ -2306,7 +2309,8 @@ struct hci_conn *hci_connect_bis(struct hci_dev *hdev, bdaddr_t *dst,
23062309}
23072310
23082311struct hci_conn * hci_connect_cis (struct hci_dev * hdev , bdaddr_t * dst ,
2309- __u8 dst_type , struct bt_iso_qos * qos )
2312+ __u8 dst_type , struct bt_iso_qos * qos ,
2313+ u16 timeout )
23102314{
23112315 struct hci_conn * le ;
23122316 struct hci_conn * cis ;
@@ -2330,7 +2334,7 @@ struct hci_conn *hci_connect_cis(struct hci_dev *hdev, bdaddr_t *dst,
23302334 hci_iso_qos_setup (hdev , le , & qos -> ucast .in ,
23312335 le -> le_rx_phy ? le -> le_rx_phy : hdev -> le_rx_def_phys );
23322336
2333- cis = hci_bind_cis (hdev , dst , dst_type , qos );
2337+ cis = hci_bind_cis (hdev , dst , dst_type , qos , timeout );
23342338 if (IS_ERR (cis )) {
23352339 hci_conn_drop (le );
23362340 return cis ;
0 commit comments