Lines Matching refs:param

81 static int hci_le_create_cis(const struct bt_iso_connect_param *param, size_t count);
1710 const struct bt_iso_cig_param *param) in hci_le_set_cig_params() argument
1728 req->c_latency = sys_cpu_to_le16(param->c_to_p_latency); in hci_le_set_cig_params()
1729 req->p_latency = sys_cpu_to_le16(param->p_to_c_latency); in hci_le_set_cig_params()
1730 sys_put_le24(param->c_to_p_interval, req->c_interval); in hci_le_set_cig_params()
1731 sys_put_le24(param->p_to_c_interval, req->p_interval); in hci_le_set_cig_params()
1733 req->sca = param->sca; in hci_le_set_cig_params()
1734 req->packing = param->packing; in hci_le_set_cig_params()
1735 req->framing = param->framing; in hci_le_set_cig_params()
1736 req->num_cis = param->num_cis; in hci_le_set_cig_params()
1741 cig->id, param->c_to_p_latency, param->p_to_c_latency, param->c_to_p_interval, in hci_le_set_cig_params()
1742 param->p_to_c_interval, param->sca, param->packing, param->framing, param->num_cis); in hci_le_set_cig_params()
1745 for (i = 0; i < param->num_cis; i++) { in hci_le_set_cig_params()
1746 struct bt_iso_chan *cis = param->cis_channels[i]; in hci_le_set_cig_params()
1798 const struct bt_iso_cig_param *param) in hci_le_set_cig_test_params() argument
1816 sys_put_le24(param->c_to_p_interval, req->c_interval); in hci_le_set_cig_test_params()
1817 sys_put_le24(param->p_to_c_interval, req->p_interval); in hci_le_set_cig_test_params()
1819 req->c_ft = param->c_to_p_ft; in hci_le_set_cig_test_params()
1820 req->p_ft = param->p_to_c_ft; in hci_le_set_cig_test_params()
1821 req->iso_interval = sys_cpu_to_le16(param->iso_interval); in hci_le_set_cig_test_params()
1822 req->sca = param->sca; in hci_le_set_cig_test_params()
1823 req->packing = param->packing; in hci_le_set_cig_test_params()
1824 req->framing = param->framing; in hci_le_set_cig_test_params()
1825 req->num_cis = param->num_cis; in hci_le_set_cig_test_params()
1829 cig->id, param->c_to_p_interval, param->p_to_c_interval, param->c_to_p_ft, in hci_le_set_cig_test_params()
1830 param->p_to_c_ft, param->iso_interval, param->sca, param->packing, param->framing, in hci_le_set_cig_test_params()
1831 param->num_cis); in hci_le_set_cig_test_params()
1834 for (uint8_t i = 0U; i < param->num_cis; i++) { in hci_le_set_cig_test_params()
1835 const struct bt_iso_chan *cis = param->cis_channels[i]; in hci_le_set_cig_test_params()
1890 static bool is_advanced_cig_param(const struct bt_iso_cig_param *param) in is_advanced_cig_param() argument
1892 if (param->c_to_p_ft != 0U || param->p_to_c_ft != 0U || param->iso_interval != 0U) { in is_advanced_cig_param()
1897 for (uint8_t i = 0U; i < param->num_cis; i++) { in is_advanced_cig_param()
1898 const struct bt_iso_chan *cis = param->cis_channels[i]; in is_advanced_cig_param()
1961 static int cig_init_cis(struct bt_iso_cig *cig, const struct bt_iso_cig_param *param) in cig_init_cis() argument
1963 for (uint8_t i = 0; i < param->num_cis; i++) { in cig_init_cis()
1964 struct bt_iso_chan *cis = param->cis_channels[i]; in cig_init_cis()
2005 static bool valid_cig_param(const struct bt_iso_cig_param *param, bool advanced, in valid_cig_param() argument
2011 if (param == NULL) { in valid_cig_param()
2015 for (uint8_t i = 0; i < param->num_cis; i++) { in valid_cig_param()
2016 struct bt_iso_chan *cis = param->cis_channels[i]; in valid_cig_param()
2039 if (cis == param->cis_channels[j]) { in valid_cig_param()
2054 if (param->framing != BT_ISO_FRAMING_UNFRAMED && param->framing != BT_ISO_FRAMING_FRAMED) { in valid_cig_param()
2055 LOG_DBG("Invalid framing parameter: %u", param->framing); in valid_cig_param()
2059 if (param->packing != BT_ISO_PACKING_SEQUENTIAL && in valid_cig_param()
2060 param->packing != BT_ISO_PACKING_INTERLEAVED) { in valid_cig_param()
2061 LOG_DBG("Invalid packing parameter: %u", param->packing); in valid_cig_param()
2065 if (param->num_cis > BT_ISO_MAX_GROUP_ISO_COUNT || in valid_cig_param()
2066 param->num_cis > CONFIG_BT_ISO_MAX_CHAN) { in valid_cig_param()
2067 LOG_DBG("num_cis (%u) shall be lower than: %u", param->num_cis, in valid_cig_param()
2073 !IN_RANGE(param->c_to_p_interval, BT_ISO_SDU_INTERVAL_MIN, BT_ISO_SDU_INTERVAL_MAX)) { in valid_cig_param()
2074 LOG_DBG("Invalid C to P interval: %u", param->c_to_p_interval); in valid_cig_param()
2079 !IN_RANGE(param->p_to_c_interval, BT_ISO_SDU_INTERVAL_MIN, BT_ISO_SDU_INTERVAL_MAX)) { in valid_cig_param()
2080 LOG_DBG("Invalid P to C interval: %u", param->p_to_c_interval); in valid_cig_param()
2086 !IN_RANGE(param->c_to_p_latency, BT_ISO_LATENCY_MIN, BT_ISO_LATENCY_MAX)) { in valid_cig_param()
2087 LOG_DBG("Invalid C to P latency: %u", param->c_to_p_latency); in valid_cig_param()
2092 !IN_RANGE(param->p_to_c_latency, BT_ISO_LATENCY_MIN, BT_ISO_LATENCY_MAX)) { in valid_cig_param()
2093 LOG_DBG("Invalid P to C latency: %u", param->p_to_c_latency); in valid_cig_param()
2100 if (!IN_RANGE(param->c_to_p_ft, BT_ISO_FT_MIN, BT_ISO_FT_MAX)) { in valid_cig_param()
2101 LOG_DBG("Invalid Central to Peripheral FT %u", param->c_to_p_ft); in valid_cig_param()
2106 if (!IN_RANGE(param->p_to_c_ft, BT_ISO_FT_MIN, BT_ISO_FT_MAX)) { in valid_cig_param()
2107 LOG_DBG("Invalid Peripheral to Central FT %u", param->p_to_c_ft); in valid_cig_param()
2112 if (!IN_RANGE(param->iso_interval, BT_ISO_ISO_INTERVAL_MIN, in valid_cig_param()
2114 LOG_DBG("Invalid ISO interval %u", param->iso_interval); in valid_cig_param()
2124 int bt_iso_cig_create(const struct bt_iso_cig_param *param, struct bt_iso_cig **out_cig) in bt_iso_cig_create() argument
2134 CHECKIF(param == NULL) { in bt_iso_cig_create()
2152 CHECKIF(param->cis_channels == NULL) { in bt_iso_cig_create()
2157 CHECKIF(param->num_cis == 0) { in bt_iso_cig_create()
2158 LOG_DBG("Invalid number of CIS %u", param->num_cis); in bt_iso_cig_create()
2163 advanced = is_advanced_cig_param(param); in bt_iso_cig_create()
2166 CHECKIF(!valid_cig_param(param, advanced, NULL)) { in bt_iso_cig_create()
2177 err = cig_init_cis(cig, param); in bt_iso_cig_create()
2185 rsp = hci_le_set_cig_params(cig, param); in bt_iso_cig_create()
2188 rsp = hci_le_set_cig_test_params(cig, param); in bt_iso_cig_create()
2201 if (rsp->len < sizeof(*cig_rsp) || cig_rsp->num_handles != param->num_cis) { in bt_iso_cig_create()
2243 int bt_iso_cig_reconfigure(struct bt_iso_cig *cig, const struct bt_iso_cig_param *param) in bt_iso_cig_reconfigure() argument
2256 CHECKIF(param == NULL) { in bt_iso_cig_reconfigure()
2267 advanced = is_advanced_cig_param(param); in bt_iso_cig_reconfigure()
2270 CHECKIF(!valid_cig_param(param, advanced, cig)) { in bt_iso_cig_reconfigure()
2278 err = cig_init_cis(cig, param); in bt_iso_cig_reconfigure()
2286 rsp = hci_le_set_cig_params(cig, param); in bt_iso_cig_reconfigure()
2289 rsp = hci_le_set_cig_test_params(cig, param); in bt_iso_cig_reconfigure()
2311 if (cig_rsp->num_handles != param->num_cis) { in bt_iso_cig_reconfigure()
2313 cig_rsp->num_handles, param->num_cis); in bt_iso_cig_reconfigure()
2320 for (uint8_t i = 0u; i < param->num_cis; i++) { in bt_iso_cig_reconfigure()
2322 struct bt_iso_chan *cis = param->cis_channels[i]; in bt_iso_cig_reconfigure()
2360 struct bt_iso_connect_param param[CONFIG_BT_ISO_MAX_CHAN]; in bt_iso_security_changed() local
2394 param[param_count].acl = acl; in bt_iso_security_changed()
2395 param[param_count].iso_chan = iso_chan; in bt_iso_security_changed()
2417 err = hci_le_create_cis(param, param_count); in bt_iso_security_changed()
2422 struct bt_iso_chan *iso_chan = param[i].iso_chan; in bt_iso_security_changed()
2437 struct bt_iso_chan *iso_chan = param[i].iso_chan; in bt_iso_security_changed()
2448 static int hci_le_create_cis(const struct bt_iso_connect_param *param, size_t count) in hci_le_create_cis() argument
2465 struct bt_iso_chan *iso_chan = param[i].iso_chan; in hci_le_create_cis()
2475 cis->cis_handle = sys_cpu_to_le16(param[i].iso_chan->iso->handle); in hci_le_create_cis()
2476 cis->acl_handle = sys_cpu_to_le16(param[i].acl->handle); in hci_le_create_cis()
2493 static int iso_chan_connect_security(const struct bt_iso_connect_param *param, size_t count) in iso_chan_connect_security() argument
2504 struct bt_iso_chan *iso_chan = param[i].iso_chan; in iso_chan_connect_security()
2505 struct bt_conn *acl = param[i].acl; in iso_chan_connect_security()
2518 iso_chan = param[j].iso_chan; in iso_chan_connect_security()
2561 int bt_iso_chan_connect(const struct bt_iso_connect_param *param, size_t count) in bt_iso_chan_connect() argument
2565 CHECKIF(param == NULL) { in bt_iso_chan_connect()
2581 CHECKIF(param[i].iso_chan == NULL) { in bt_iso_chan_connect()
2582 LOG_DBG("[%zu]: Invalid iso (%p)", i, param[i].iso_chan); in bt_iso_chan_connect()
2586 CHECKIF(param[i].acl == NULL) { in bt_iso_chan_connect()
2587 LOG_DBG("[%zu]: Invalid acl (%p)", i, param[i].acl); in bt_iso_chan_connect()
2591 CHECKIF((param[i].acl->type & BT_CONN_TYPE_LE) == 0) { in bt_iso_chan_connect()
2593 param[i].acl->type); in bt_iso_chan_connect()
2597 if (param[i].iso_chan->iso == NULL) { in bt_iso_chan_connect()
2602 if (param[i].iso_chan->state != BT_ISO_STATE_DISCONNECTED) { in bt_iso_chan_connect()
2604 param[i].iso_chan->state); in bt_iso_chan_connect()
2618 err = iso_chan_connect_security(param, count); in bt_iso_chan_connect()
2625 err = hci_le_create_cis(param, count); in bt_iso_chan_connect()
2638 struct bt_iso_chan *iso_chan = param[i].iso_chan; in bt_iso_chan_connect()
2645 iso_chan->iso->iso.acl = bt_conn_ref(param[i].acl); in bt_iso_chan_connect()
2792 struct bt_iso_big_create_param *param) in hci_le_create_big() argument
2817 sys_put_le24(param->interval, req->sdu_interval); in hci_le_create_big()
2819 req->max_latency = sys_cpu_to_le16(param->latency); in hci_le_create_big()
2822 req->packing = param->packing; in hci_le_create_big()
2823 req->framing = param->framing; in hci_le_create_big()
2824 req->encryption = param->encryption; in hci_le_create_big()
2826 memcpy(req->bcode, param->bcode, sizeof(req->bcode)); in hci_le_create_big()
2833 big->handle, padv->handle, big->num_bis, param->interval, qos->sdu, param->latency, in hci_le_create_big()
2834 qos->rtn, qos->phy, param->packing, param->framing, param->encryption); in hci_le_create_big()
2852 const struct bt_iso_big_create_param *param) in hci_le_create_big_test() argument
2877 sys_put_le24(param->interval, req->sdu_interval); in hci_le_create_big_test()
2878 req->iso_interval = sys_cpu_to_le16(param->iso_interval); in hci_le_create_big_test()
2883 req->packing = param->packing; in hci_le_create_big_test()
2884 req->framing = param->framing; in hci_le_create_big_test()
2886 req->irc = param->irc; in hci_le_create_big_test()
2887 req->pto = param->pto; in hci_le_create_big_test()
2888 req->encryption = param->encryption; in hci_le_create_big_test()
2890 memcpy(req->bcode, param->bcode, sizeof(req->bcode)); in hci_le_create_big_test()
2898 req->big_handle, req->adv_handle, req->num_bis, param->interval, in hci_le_create_big_test()
2899 param->iso_interval, req->nse, req->max_sdu, req->max_pdu, req->phy, req->packing, in hci_le_create_big_test()
2915 static bool is_advanced_big_param(const struct bt_iso_big_create_param *param) in is_advanced_big_param() argument
2917 if (param->irc != 0U || param->iso_interval != 0U) { in is_advanced_big_param()
2922 for (uint8_t i = 0U; i < param->num_bis; i++) { in is_advanced_big_param()
2923 const struct bt_iso_chan *bis = param->bis_channels[i]; in is_advanced_big_param()
2941 static bool valid_big_param(const struct bt_iso_big_create_param *param, bool advanced) in valid_big_param() argument
2943 CHECKIF(!param->bis_channels) { in valid_big_param()
2949 CHECKIF(!param->num_bis) { in valid_big_param()
2950 LOG_DBG("Invalid number of BIS %u", param->num_bis); in valid_big_param()
2955 for (uint8_t i = 0; i < param->num_bis; i++) { in valid_big_param()
2956 struct bt_iso_chan *bis = param->bis_channels[i]; in valid_big_param()
2984 CHECKIF(param->framing != BT_ISO_FRAMING_UNFRAMED && in valid_big_param()
2985 param->framing != BT_ISO_FRAMING_FRAMED) { in valid_big_param()
2986 LOG_DBG("Invalid framing parameter: %u", param->framing); in valid_big_param()
2991 CHECKIF(param->packing != BT_ISO_PACKING_SEQUENTIAL && in valid_big_param()
2992 param->packing != BT_ISO_PACKING_INTERLEAVED) { in valid_big_param()
2993 LOG_DBG("Invalid packing parameter: %u", param->packing); in valid_big_param()
2998 CHECKIF(param->num_bis > BT_ISO_MAX_GROUP_ISO_COUNT || in valid_big_param()
2999 param->num_bis > CONFIG_BT_ISO_MAX_CHAN) { in valid_big_param()
3000 LOG_DBG("num_bis (%u) shall be lower than: %u", param->num_bis, in valid_big_param()
3006 CHECKIF(!IN_RANGE(param->interval, BT_ISO_SDU_INTERVAL_MIN, BT_ISO_SDU_INTERVAL_MAX)) { in valid_big_param()
3007 LOG_DBG("Invalid interval: %u", param->interval); in valid_big_param()
3012 CHECKIF(!advanced && !IN_RANGE(param->latency, BT_ISO_LATENCY_MIN, BT_ISO_LATENCY_MAX)) { in valid_big_param()
3013 LOG_DBG("Invalid latency: %u", param->latency); in valid_big_param()
3020 CHECKIF(!IN_RANGE(param->irc, BT_ISO_IRC_MIN, BT_ISO_IRC_MAX)) { in valid_big_param()
3021 LOG_DBG("Invalid IRC %u", param->irc); in valid_big_param()
3026 CHECKIF(!IN_RANGE(param->pto, BT_ISO_PTO_MIN, BT_ISO_PTO_MAX)) { in valid_big_param()
3027 LOG_DBG("Invalid PTO %u", param->pto); in valid_big_param()
3032 CHECKIF(!IN_RANGE(param->iso_interval, BT_ISO_ISO_INTERVAL_MIN, in valid_big_param()
3034 LOG_DBG("Invalid ISO interval %u", param->iso_interval); in valid_big_param()
3044 int bt_iso_big_create(struct bt_le_ext_adv *padv, struct bt_iso_big_create_param *param, in bt_iso_big_create() argument
3057 CHECKIF(param == NULL) { in bt_iso_big_create()
3073 advanced = is_advanced_big_param(param); in bt_iso_big_create()
3076 if (!valid_big_param(param, advanced)) { in bt_iso_big_create()
3088 bis_channels = param->bis_channels; in bt_iso_big_create()
3089 for (uint8_t i = 0; i < param->num_bis; i++) { in bt_iso_big_create()
3102 big->num_bis = param->num_bis; in bt_iso_big_create()
3105 err = hci_le_create_big(padv, big, param); in bt_iso_big_create()
3108 err = hci_le_create_big_test(padv, big, param); in bt_iso_big_create()
3417 const struct bt_iso_big_sync_param *param) in hci_le_big_create_sync() argument
3433 req->encryption = param->encryption; in hci_le_big_create_sync()
3435 memcpy(req->bcode, param->bcode, sizeof(req->bcode)); in hci_le_big_create_sync()
3439 req->mse = param->mse; in hci_le_big_create_sync()
3440 req->sync_timeout = sys_cpu_to_le16(param->sync_timeout); in hci_le_big_create_sync()
3444 if (param->bis_bitfield & BT_ISO_BIS_INDEX_BIT(i)) { in hci_le_big_create_sync()
3465 int bt_iso_big_sync(struct bt_le_per_adv_sync *sync, struct bt_iso_big_sync_param *param, in bt_iso_big_sync() argument
3479 CHECKIF(param == NULL) { in bt_iso_big_sync()
3494 CHECKIF(param->mse > BT_ISO_SYNC_MSE_MAX) { in bt_iso_big_sync()
3495 LOG_DBG("Invalid MSE 0x%02x", param->mse); in bt_iso_big_sync()
3499 CHECKIF(param->sync_timeout < BT_ISO_SYNC_TIMEOUT_MIN || in bt_iso_big_sync()
3500 param->sync_timeout > BT_ISO_SYNC_TIMEOUT_MAX) { in bt_iso_big_sync()
3501 LOG_DBG("Invalid sync timeout 0x%04x", param->sync_timeout); in bt_iso_big_sync()
3505 CHECKIF(!BT_ISO_VALID_BIS_BITFIELD(param->bis_bitfield)) { in bt_iso_big_sync()
3506 LOG_DBG("Invalid BIS bitfield 0x%08x", param->bis_bitfield); in bt_iso_big_sync()
3510 CHECKIF(!param->bis_channels) { in bt_iso_big_sync()
3515 CHECKIF(!param->num_bis) { in bt_iso_big_sync()
3516 LOG_DBG("Invalid number of BIS %u", param->num_bis); in bt_iso_big_sync()
3520 for (uint8_t i = 0; i < param->num_bis; i++) { in bt_iso_big_sync()
3521 struct bt_iso_chan *param_bis = param->bis_channels[i]; in bt_iso_big_sync()
3550 bitfield_copy = param->bis_bitfield; in bt_iso_big_sync()
3551 bis_channels = param->bis_channels; in bt_iso_big_sync()
3552 for (uint8_t i = 0; i < param->num_bis; i++) { in bt_iso_big_sync()
3573 big->num_bis = param->num_bis; in bt_iso_big_sync()
3575 err = hci_le_big_create_sync(sync, big, param); in bt_iso_big_sync()