Lines Matching refs:unit

68 static void hci_cmd_create_con(struct hci_unit *unit, uint8_t status);
164 hci_event(struct mbuf *m, struct hci_unit *unit) in hci_event() argument
181 device_xname(unit->hci_dev), hci_eventstr(hdr.event)); in hci_event()
185 hci_event_command_status(unit, m); in hci_event()
189 hci_event_command_compl(unit, m); in hci_event()
193 hci_event_num_compl_pkts(unit, m); in hci_event()
197 hci_event_inquiry_result(unit, m); in hci_event()
201 hci_event_rssi_result(unit, m); in hci_event()
205 hci_event_extended_result(unit, m); in hci_event()
209 hci_event_con_compl(unit, m); in hci_event()
213 hci_event_discon_compl(unit, m); in hci_event()
217 hci_event_con_req(unit, m); in hci_event()
221 hci_event_auth_compl(unit, m); in hci_event()
225 hci_event_encryption_change(unit, m); in hci_event()
229 hci_event_change_con_link_key_compl(unit, m); in hci_event()
233 hci_event_read_clock_offset_compl(unit, m); in hci_event()
250 hci_event_command_status(struct hci_unit *unit, struct mbuf *m) in hci_event_command_status() argument
263 device_xname(unit->hci_dev), in hci_event_command_status()
268 hci_num_cmds(unit, ep.num_cmd_pkts); in hci_event_command_status()
275 hci_cmd_create_con(unit, ep.status); in hci_event_command_status()
282 aprint_error_dev(unit->hci_dev, in hci_event_command_status()
297 hci_event_command_compl(struct hci_unit *unit, struct mbuf *m) in hci_event_command_compl() argument
309 device_xname(unit->hci_dev), in hci_event_command_compl()
313 hci_num_cmds(unit, ep.num_cmd_pkts); in hci_event_command_compl()
323 aprint_error_dev(unit->hci_dev, in hci_event_command_compl()
334 hci_cmd_read_bdaddr(unit, m); in hci_event_command_compl()
338 hci_cmd_read_buffer_size(unit, m); in hci_event_command_compl()
342 hci_cmd_read_local_features(unit, m); in hci_event_command_compl()
346 hci_cmd_read_local_extended_features(unit, m); in hci_event_command_compl()
350 hci_cmd_read_local_ver(unit, m); in hci_event_command_compl()
354 hci_cmd_read_local_commands(unit, m); in hci_event_command_compl()
358 hci_cmd_read_encryption_key_size(unit, m); in hci_event_command_compl()
362 hci_cmd_reset(unit, m); in hci_event_command_compl()
380 hci_event_num_compl_pkts(struct hci_unit *unit, struct mbuf *m) in hci_event_num_compl_pkts() argument
405 link = hci_link_lookup_handle(unit, handle); in hci_event_num_compl_pkts()
416 aprint_error_dev(unit->hci_dev, in hci_event_num_compl_pkts()
430 unit->hci_num_acl_pkts += num_acl; in hci_event_num_compl_pkts()
431 unit->hci_num_sco_pkts += num_sco; in hci_event_num_compl_pkts()
433 link = TAILQ_FIRST(&unit->hci_links); in hci_event_num_compl_pkts()
434 while (link && (unit->hci_num_acl_pkts > 0 || unit->hci_num_sco_pkts > 0)) { in hci_event_num_compl_pkts()
438 if (unit->hci_num_acl_pkts > 0 && link->hl_txqlen > 0) in hci_event_num_compl_pkts()
441 if (unit->hci_num_sco_pkts > 0 && link->hl_txqlen > 0) in hci_event_num_compl_pkts()
456 hci_event_inquiry_result(struct hci_unit *unit, struct mbuf *m) in hci_event_inquiry_result() argument
482 memo = hci_memo_new(unit, &ir.bdaddr); in hci_event_inquiry_result()
497 hci_event_rssi_result(struct hci_unit *unit, struct mbuf *m) in hci_event_rssi_result() argument
523 memo = hci_memo_new(unit, &rr.bdaddr); in hci_event_rssi_result()
538 hci_event_extended_result(struct hci_unit *unit, struct mbuf *m) in hci_event_extended_result() argument
556 memo = hci_memo_new(unit, &ep.bdaddr); in hci_event_extended_result()
572 hci_event_con_compl(struct hci_unit *unit, struct mbuf *m) in hci_event_con_compl() argument
587 device_xname(unit->hci_dev), in hci_event_con_compl()
593 link = hci_link_lookup_bdaddr(unit, &ep.bdaddr, ep.link_type); in hci_event_con_compl()
627 hci_send_cmd(unit, HCI_CMD_DISCONNECT, &dp, sizeof(dp)); in hci_event_con_compl()
642 cp.settings = htole16(unit->hci_link_policy); in hci_event_con_compl()
643 err = hci_send_cmd(unit, HCI_CMD_WRITE_LINK_POLICY_SETTINGS, in hci_event_con_compl()
646 aprint_error_dev(unit->hci_dev, in hci_event_con_compl()
649 err = hci_send_cmd(unit, HCI_CMD_READ_CLOCK_OFFSET, in hci_event_con_compl()
652 aprint_error_dev(unit->hci_dev, in hci_event_con_compl()
672 hci_event_discon_compl(struct hci_unit *unit, struct mbuf *m) in hci_event_discon_compl() argument
687 link = hci_link_lookup_handle(unit, HCI_CON_HANDLE(ep.con_handle)); in hci_event_discon_compl()
699 hci_event_con_req(struct hci_unit *unit, struct mbuf *m) in hci_event_con_req() argument
720 link = hci_acl_newconn(unit, &ep.bdaddr); in hci_event_con_req()
722 link = hci_sco_newconn(unit, &ep.bdaddr); in hci_event_con_req()
729 hci_send_cmd(unit, HCI_CMD_REJECT_CON, &rp, sizeof(rp)); in hci_event_con_req()
733 if (unit->hci_flags & BTF_MASTER) in hci_event_con_req()
738 hci_send_cmd(unit, HCI_CMD_ACCEPT_CON, &ap, sizeof(ap)); in hci_event_con_req()
749 hci_event_auth_compl(struct hci_unit *unit, struct mbuf *m) in hci_event_auth_compl() argument
765 link = hci_link_lookup_handle(unit, ep.con_handle); in hci_event_auth_compl()
791 hci_event_encryption_change(struct hci_unit *unit, struct mbuf *m) in hci_event_encryption_change() argument
809 link = hci_link_lookup_handle(unit, con_handle); in hci_event_encryption_change()
816 } else if (unit->hci_cmds[20] & (1<<4)) { in hci_event_encryption_change()
817 err = hci_send_cmd(unit, HCI_CMD_READ_ENCRYPTION_KEY_SIZE, in hci_event_encryption_change()
845 hci_event_change_con_link_key_compl(struct hci_unit *unit, struct mbuf *m) in hci_event_change_con_link_key_compl() argument
861 link = hci_link_lookup_handle(unit, ep.con_handle); in hci_event_change_con_link_key_compl()
888 hci_event_read_clock_offset_compl(struct hci_unit *unit, struct mbuf *m) in hci_event_read_clock_offset_compl() argument
903 link = hci_link_lookup_handle(unit, ep.con_handle); in hci_event_read_clock_offset_compl()
915 hci_cmd_read_bdaddr(struct hci_unit *unit, struct mbuf *m) in hci_cmd_read_bdaddr() argument
928 if ((unit->hci_flags & BTF_INIT_BDADDR) == 0) in hci_cmd_read_bdaddr()
931 bdaddr_copy(&unit->hci_bdaddr, &rp.bdaddr); in hci_cmd_read_bdaddr()
933 unit->hci_flags &= ~BTF_INIT_BDADDR; in hci_cmd_read_bdaddr()
935 cv_broadcast(&unit->hci_init); in hci_cmd_read_bdaddr()
942 hci_cmd_read_buffer_size(struct hci_unit *unit, struct mbuf *m) in hci_cmd_read_buffer_size() argument
955 if ((unit->hci_flags & BTF_INIT_BUFFER_SIZE) == 0) in hci_cmd_read_buffer_size()
958 unit->hci_max_acl_size = le16toh(rp.max_acl_size); in hci_cmd_read_buffer_size()
959 unit->hci_num_acl_pkts = le16toh(rp.num_acl_pkts); in hci_cmd_read_buffer_size()
960 unit->hci_max_acl_pkts = le16toh(rp.num_acl_pkts); in hci_cmd_read_buffer_size()
961 unit->hci_max_sco_size = rp.max_sco_size; in hci_cmd_read_buffer_size()
962 unit->hci_num_sco_pkts = le16toh(rp.num_sco_pkts); in hci_cmd_read_buffer_size()
963 unit->hci_max_sco_pkts = le16toh(rp.num_sco_pkts); in hci_cmd_read_buffer_size()
965 unit->hci_flags &= ~BTF_INIT_BUFFER_SIZE; in hci_cmd_read_buffer_size()
967 cv_broadcast(&unit->hci_init); in hci_cmd_read_buffer_size()
974 hci_cmd_read_local_features(struct hci_unit *unit, struct mbuf *m) in hci_cmd_read_local_features() argument
987 if ((unit->hci_flags & BTF_INIT_FEATURES) == 0) in hci_cmd_read_local_features()
990 memcpy(unit->hci_feat0, rp.features, HCI_FEATURES_SIZE); in hci_cmd_read_local_features()
992 unit->hci_lmp_mask = 0; in hci_cmd_read_local_features()
995 unit->hci_lmp_mask |= HCI_LINK_POLICY_ENABLE_ROLE_SWITCH; in hci_cmd_read_local_features()
998 unit->hci_lmp_mask |= HCI_LINK_POLICY_ENABLE_HOLD_MODE; in hci_cmd_read_local_features()
1001 unit->hci_lmp_mask |= HCI_LINK_POLICY_ENABLE_SNIFF_MODE; in hci_cmd_read_local_features()
1004 unit->hci_lmp_mask |= HCI_LINK_POLICY_ENABLE_PARK_MODE; in hci_cmd_read_local_features()
1007 device_xname(unit->hci_dev), unit->hci_lmp_mask); in hci_cmd_read_local_features()
1010 unit->hci_acl_mask = HCI_PKT_DM1 | HCI_PKT_DH1; in hci_cmd_read_local_features()
1013 unit->hci_acl_mask |= HCI_PKT_DM3 | HCI_PKT_DH3; in hci_cmd_read_local_features()
1016 unit->hci_acl_mask |= HCI_PKT_DM5 | HCI_PKT_DH5; in hci_cmd_read_local_features()
1019 unit->hci_acl_mask |= HCI_PKT_2MBPS_DH1 in hci_cmd_read_local_features()
1024 unit->hci_acl_mask |= HCI_PKT_3MBPS_DH1 in hci_cmd_read_local_features()
1029 unit->hci_acl_mask |= HCI_PKT_2MBPS_DH3 in hci_cmd_read_local_features()
1033 unit->hci_acl_mask |= HCI_PKT_2MBPS_DH5 in hci_cmd_read_local_features()
1037 device_xname(unit->hci_dev), unit->hci_acl_mask); in hci_cmd_read_local_features()
1039 unit->hci_packet_type = unit->hci_acl_mask; in hci_cmd_read_local_features()
1042 unit->hci_sco_mask = 0; in hci_cmd_read_local_features()
1044 unit->hci_sco_mask |= HCI_PKT_HV1; in hci_cmd_read_local_features()
1047 unit->hci_sco_mask |= HCI_PKT_HV2; in hci_cmd_read_local_features()
1050 unit->hci_sco_mask |= HCI_PKT_HV3; in hci_cmd_read_local_features()
1053 unit->hci_sco_mask |= HCI_PKT_EV3; in hci_cmd_read_local_features()
1056 unit->hci_sco_mask |= HCI_PKT_EV4; in hci_cmd_read_local_features()
1059 unit->hci_sco_mask |= HCI_PKT_EV5; in hci_cmd_read_local_features()
1064 device_xname(unit->hci_dev), unit->hci_sco_mask); in hci_cmd_read_local_features()
1071 hci_send_cmd(unit, HCI_CMD_READ_LOCAL_EXTENDED_FEATURES, in hci_cmd_read_local_features()
1077 unit->hci_flags &= ~BTF_INIT_FEATURES; in hci_cmd_read_local_features()
1078 cv_broadcast(&unit->hci_init); in hci_cmd_read_local_features()
1085 hci_cmd_read_local_extended_features(struct hci_unit *unit, struct mbuf *m) in hci_cmd_read_local_extended_features() argument
1098 if ((unit->hci_flags & BTF_INIT_FEATURES) == 0) in hci_cmd_read_local_extended_features()
1101 DPRINTFN(1, "%s: page %d of %d\n", device_xname(unit->hci_dev), in hci_cmd_read_local_extended_features()
1106 memcpy(unit->hci_feat2, rp.features, HCI_FEATURES_SIZE); in hci_cmd_read_local_extended_features()
1110 memcpy(unit->hci_feat1, rp.features, HCI_FEATURES_SIZE); in hci_cmd_read_local_extended_features()
1122 hci_send_cmd(unit, HCI_CMD_READ_LOCAL_EXTENDED_FEATURES, in hci_cmd_read_local_extended_features()
1128 unit->hci_flags &= ~BTF_INIT_FEATURES; in hci_cmd_read_local_extended_features()
1129 cv_broadcast(&unit->hci_init); in hci_cmd_read_local_extended_features()
1138 hci_cmd_read_local_ver(struct hci_unit *unit, struct mbuf *m) in hci_cmd_read_local_ver() argument
1151 if ((unit->hci_flags & BTF_INIT_COMMANDS) == 0) in hci_cmd_read_local_ver()
1155 unit->hci_flags &= ~BTF_INIT_COMMANDS; in hci_cmd_read_local_ver()
1156 cv_broadcast(&unit->hci_init); in hci_cmd_read_local_ver()
1160 hci_send_cmd(unit, HCI_CMD_READ_LOCAL_COMMANDS, NULL, 0); in hci_cmd_read_local_ver()
1167 hci_cmd_read_local_commands(struct hci_unit *unit, struct mbuf *m) in hci_cmd_read_local_commands() argument
1180 if ((unit->hci_flags & BTF_INIT_COMMANDS) == 0) in hci_cmd_read_local_commands()
1183 unit->hci_flags &= ~BTF_INIT_COMMANDS; in hci_cmd_read_local_commands()
1184 memcpy(unit->hci_cmds, rp.commands, HCI_COMMANDS_SIZE); in hci_cmd_read_local_commands()
1186 cv_broadcast(&unit->hci_init); in hci_cmd_read_local_commands()
1193 hci_cmd_read_encryption_key_size(struct hci_unit *unit, struct mbuf *m) in hci_cmd_read_encryption_key_size() argument
1213 link = hci_link_lookup_handle(unit, rp.con_handle); in hci_cmd_read_encryption_key_size()
1247 hci_cmd_reset(struct hci_unit *unit, struct mbuf *m) in hci_cmd_reset() argument
1267 next = TAILQ_FIRST(&unit->hci_links); in hci_cmd_reset()
1275 unit->hci_num_acl_pkts = 0; in hci_cmd_reset()
1276 unit->hci_num_sco_pkts = 0; in hci_cmd_reset()
1278 if (hci_send_cmd(unit, HCI_CMD_READ_BDADDR, NULL, 0)) in hci_cmd_reset()
1281 if (hci_send_cmd(unit, HCI_CMD_READ_BUFFER_SIZE, NULL, 0)) in hci_cmd_reset()
1284 if (hci_send_cmd(unit, HCI_CMD_READ_LOCAL_FEATURES, NULL, 0)) in hci_cmd_reset()
1287 if (hci_send_cmd(unit, HCI_CMD_READ_LOCAL_VER, NULL, 0)) in hci_cmd_reset()
1306 hci_cmd_create_con(struct hci_unit *unit, uint8_t status) in hci_cmd_create_con() argument
1310 TAILQ_FOREACH(link, &unit->hci_links, hl_next) { in hci_cmd_create_con()