Lines Matching refs:ndev
28 static void nci_core_reset_rsp_packet(struct nci_dev *ndev, struct sk_buff *skb) in nci_core_reset_rsp_packet() argument
35 ndev->nci_ver = rsp->nci_ver; in nci_core_reset_rsp_packet()
40 nci_req_complete(ndev, rsp->status); in nci_core_reset_rsp_packet()
43 static void nci_core_init_rsp_packet(struct nci_dev *ndev, struct sk_buff *skb) in nci_core_init_rsp_packet() argument
53 ndev->nfcc_features = __le32_to_cpu(rsp_1->nfcc_features); in nci_core_init_rsp_packet()
54 ndev->num_supported_rf_interfaces = rsp_1->num_supported_rf_interfaces; in nci_core_init_rsp_packet()
56 if (ndev->num_supported_rf_interfaces > in nci_core_init_rsp_packet()
58 ndev->num_supported_rf_interfaces = in nci_core_init_rsp_packet()
62 memcpy(ndev->supported_rf_interfaces, in nci_core_init_rsp_packet()
64 ndev->num_supported_rf_interfaces); in nci_core_init_rsp_packet()
68 ndev->max_logical_connections = rsp_2->max_logical_connections; in nci_core_init_rsp_packet()
69 ndev->max_routing_table_size = in nci_core_init_rsp_packet()
71 ndev->max_ctrl_pkt_payload_len = in nci_core_init_rsp_packet()
73 ndev->max_size_for_large_params = in nci_core_init_rsp_packet()
75 ndev->manufact_id = in nci_core_init_rsp_packet()
77 ndev->manufact_specific_info = in nci_core_init_rsp_packet()
81 ndev->nfcc_features); in nci_core_init_rsp_packet()
83 ndev->num_supported_rf_interfaces); in nci_core_init_rsp_packet()
85 ndev->supported_rf_interfaces[0]); in nci_core_init_rsp_packet()
87 ndev->supported_rf_interfaces[1]); in nci_core_init_rsp_packet()
89 ndev->supported_rf_interfaces[2]); in nci_core_init_rsp_packet()
91 ndev->supported_rf_interfaces[3]); in nci_core_init_rsp_packet()
93 ndev->max_logical_connections); in nci_core_init_rsp_packet()
95 ndev->max_routing_table_size); in nci_core_init_rsp_packet()
97 ndev->max_ctrl_pkt_payload_len); in nci_core_init_rsp_packet()
99 ndev->max_size_for_large_params); in nci_core_init_rsp_packet()
101 ndev->manufact_id); in nci_core_init_rsp_packet()
103 ndev->manufact_specific_info); in nci_core_init_rsp_packet()
106 nci_req_complete(ndev, rsp_1->status); in nci_core_init_rsp_packet()
109 static void nci_core_set_config_rsp_packet(struct nci_dev *ndev, in nci_core_set_config_rsp_packet() argument
116 nci_req_complete(ndev, rsp->status); in nci_core_set_config_rsp_packet()
119 static void nci_rf_disc_map_rsp_packet(struct nci_dev *ndev, in nci_rf_disc_map_rsp_packet() argument
126 nci_req_complete(ndev, status); in nci_rf_disc_map_rsp_packet()
129 static void nci_rf_disc_rsp_packet(struct nci_dev *ndev, struct sk_buff *skb) in nci_rf_disc_rsp_packet() argument
137 atomic_set(&ndev->state, NCI_DISCOVERY); in nci_rf_disc_rsp_packet()
139 conn_info = ndev->rf_conn_info; in nci_rf_disc_rsp_packet()
141 conn_info = devm_kzalloc(&ndev->nfc_dev->dev, in nci_rf_disc_rsp_packet()
150 list_add(&conn_info->list, &ndev->conn_info_list); in nci_rf_disc_rsp_packet()
151 ndev->rf_conn_info = conn_info; in nci_rf_disc_rsp_packet()
156 nci_req_complete(ndev, status); in nci_rf_disc_rsp_packet()
159 static void nci_rf_disc_select_rsp_packet(struct nci_dev *ndev, in nci_rf_disc_select_rsp_packet() argument
168 nci_req_complete(ndev, status); in nci_rf_disc_select_rsp_packet()
171 static void nci_rf_deactivate_rsp_packet(struct nci_dev *ndev, in nci_rf_deactivate_rsp_packet() argument
180 (atomic_read(&ndev->state) != NCI_POLL_ACTIVE)) { in nci_rf_deactivate_rsp_packet()
181 nci_clear_target_list(ndev); in nci_rf_deactivate_rsp_packet()
182 atomic_set(&ndev->state, NCI_IDLE); in nci_rf_deactivate_rsp_packet()
183 nci_req_complete(ndev, status); in nci_rf_deactivate_rsp_packet()
187 static void nci_nfcee_discover_rsp_packet(struct nci_dev *ndev, in nci_nfcee_discover_rsp_packet() argument
193 nci_req_complete(ndev, NCI_STATUS_NFCEE_PROTOCOL_ERROR); in nci_nfcee_discover_rsp_packet()
201 nci_req_complete(ndev, discover_rsp->status); in nci_nfcee_discover_rsp_packet()
204 static void nci_nfcee_mode_set_rsp_packet(struct nci_dev *ndev, in nci_nfcee_mode_set_rsp_packet() argument
210 nci_req_complete(ndev, status); in nci_nfcee_mode_set_rsp_packet()
213 static void nci_core_conn_create_rsp_packet(struct nci_dev *ndev, in nci_core_conn_create_rsp_packet() argument
225 conn_info = devm_kzalloc(&ndev->nfc_dev->dev, in nci_core_conn_create_rsp_packet()
232 conn_info->dest_params = devm_kzalloc(&ndev->nfc_dev->dev, in nci_core_conn_create_rsp_packet()
240 conn_info->dest_type = ndev->cur_dest_type; in nci_core_conn_create_rsp_packet()
241 conn_info->dest_params->id = ndev->cur_params.id; in nci_core_conn_create_rsp_packet()
242 conn_info->dest_params->protocol = ndev->cur_params.protocol; in nci_core_conn_create_rsp_packet()
250 list_add(&conn_info->list, &ndev->conn_info_list); in nci_core_conn_create_rsp_packet()
252 if (ndev->cur_params.id == ndev->hci_dev->nfcee_id) in nci_core_conn_create_rsp_packet()
253 ndev->hci_dev->conn_info = conn_info; in nci_core_conn_create_rsp_packet()
262 devm_kfree(&ndev->nfc_dev->dev, conn_info); in nci_core_conn_create_rsp_packet()
265 nci_req_complete(ndev, status); in nci_core_conn_create_rsp_packet()
268 static void nci_core_conn_close_rsp_packet(struct nci_dev *ndev, in nci_core_conn_close_rsp_packet() argument
276 conn_info = nci_get_conn_info_by_conn_id(ndev, in nci_core_conn_close_rsp_packet()
277 ndev->cur_conn_id); in nci_core_conn_close_rsp_packet()
280 if (conn_info == ndev->rf_conn_info) in nci_core_conn_close_rsp_packet()
281 ndev->rf_conn_info = NULL; in nci_core_conn_close_rsp_packet()
282 devm_kfree(&ndev->nfc_dev->dev, conn_info); in nci_core_conn_close_rsp_packet()
285 nci_req_complete(ndev, status); in nci_core_conn_close_rsp_packet()
288 void nci_rsp_packet(struct nci_dev *ndev, struct sk_buff *skb) in nci_rsp_packet() argument
293 del_timer(&ndev->cmd_timer); in nci_rsp_packet()
305 if (nci_prop_rsp_packet(ndev, rsp_opcode, skb) == -ENOTSUPP) { in nci_rsp_packet()
315 nci_core_reset_rsp_packet(ndev, skb); in nci_rsp_packet()
319 nci_core_init_rsp_packet(ndev, skb); in nci_rsp_packet()
323 nci_core_set_config_rsp_packet(ndev, skb); in nci_rsp_packet()
327 nci_core_conn_create_rsp_packet(ndev, skb); in nci_rsp_packet()
331 nci_core_conn_close_rsp_packet(ndev, skb); in nci_rsp_packet()
335 nci_rf_disc_map_rsp_packet(ndev, skb); in nci_rsp_packet()
339 nci_rf_disc_rsp_packet(ndev, skb); in nci_rsp_packet()
343 nci_rf_disc_select_rsp_packet(ndev, skb); in nci_rsp_packet()
347 nci_rf_deactivate_rsp_packet(ndev, skb); in nci_rsp_packet()
351 nci_nfcee_discover_rsp_packet(ndev, skb); in nci_rsp_packet()
355 nci_nfcee_mode_set_rsp_packet(ndev, skb); in nci_rsp_packet()
363 nci_core_rsp_packet(ndev, rsp_opcode, skb); in nci_rsp_packet()
368 atomic_set(&ndev->cmd_cnt, 1); in nci_rsp_packet()
369 if (!skb_queue_empty(&ndev->cmd_q)) in nci_rsp_packet()
370 queue_work(ndev->cmd_wq, &ndev->cmd_work); in nci_rsp_packet()