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