Lines Matching refs:ndev

51 	struct nci_dev *ndev;  member
68 void (*data_pkt_counter_cb)(struct nci_dev *ndev);
90 static int fdp_nci_create_conn(struct nci_dev *ndev) in fdp_nci_create_conn() argument
92 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_create_conn()
100 r = nci_core_conn_create(info->ndev, FDP_PATCH_CONN_DEST, 1, in fdp_nci_create_conn()
105 return nci_get_conn_info_by_id(ndev, 0); in fdp_nci_create_conn()
108 static inline int fdp_nci_get_versions(struct nci_dev *ndev) in fdp_nci_get_versions() argument
110 return nci_core_cmd(ndev, NCI_OP_CORE_GET_CONFIG_CMD, in fdp_nci_get_versions()
115 static inline int fdp_nci_patch_cmd(struct nci_dev *ndev, u8 type) in fdp_nci_patch_cmd() argument
117 return nci_prop_cmd(ndev, NCI_OP_PROP_PATCH_OID, sizeof(type), &type); in fdp_nci_patch_cmd()
120 static inline int fdp_nci_set_production_data(struct nci_dev *ndev, u8 len, in fdp_nci_set_production_data() argument
123 return nci_prop_cmd(ndev, NCI_OP_PROP_SET_PDATA_OID, len, data); in fdp_nci_set_production_data()
126 static int fdp_nci_set_clock(struct nci_dev *ndev, u8 clock_type, in fdp_nci_set_clock() argument
148 return fdp_nci_set_production_data(ndev, 9, data); in fdp_nci_set_clock()
151 static void fdp_nci_send_patch_cb(struct nci_dev *ndev) in fdp_nci_send_patch_cb() argument
153 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_send_patch_cb()
166 static void fdp_nci_set_data_pkt_counter(struct nci_dev *ndev, in fdp_nci_set_data_pkt_counter() argument
167 void (*cb)(struct nci_dev *ndev), int count) in fdp_nci_set_data_pkt_counter() argument
169 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_set_data_pkt_counter()
188 static int fdp_nci_send_patch(struct nci_dev *ndev, u8 conn_id, u8 type) in fdp_nci_send_patch() argument
190 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_send_patch()
206 max_size = nci_conn_max_data_pkt_payload_size(ndev, conn_id); in fdp_nci_send_patch()
212 fdp_nci_set_data_pkt_counter(ndev, fdp_nci_send_patch_cb, in fdp_nci_send_patch()
220 skb = nci_skb_alloc(ndev, (NCI_CTRL_HDR_SIZE + payload_size), in fdp_nci_send_patch()
223 fdp_nci_set_data_pkt_counter(ndev, NULL, 0); in fdp_nci_send_patch()
233 rc = nci_send_data(ndev, conn_id, skb); in fdp_nci_send_patch()
236 fdp_nci_set_data_pkt_counter(ndev, NULL, 0); in fdp_nci_send_patch()
246 static int fdp_nci_open(struct nci_dev *ndev) in fdp_nci_open() argument
249 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_open()
259 static int fdp_nci_close(struct nci_dev *ndev) in fdp_nci_close() argument
261 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_close()
268 static int fdp_nci_send(struct nci_dev *ndev, struct sk_buff *skb) in fdp_nci_send() argument
270 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_send()
276 info->data_pkt_counter_cb(ndev); in fdp_nci_send()
281 int fdp_nci_recv_frame(struct nci_dev *ndev, struct sk_buff *skb) in fdp_nci_recv_frame() argument
283 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_recv_frame()
287 return nci_recv_frame(ndev, skb); in fdp_nci_recv_frame()
291 static int fdp_nci_request_firmware(struct nci_dev *ndev) in fdp_nci_request_firmware() argument
293 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_request_firmware()
336 static void fdp_nci_release_firmware(struct nci_dev *ndev) in fdp_nci_release_firmware() argument
338 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_release_firmware()
351 static int fdp_nci_patch_otp(struct nci_dev *ndev) in fdp_nci_patch_otp() argument
353 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_patch_otp()
366 r = fdp_nci_patch_cmd(ndev, NCI_PATCH_TYPE_OTP); in fdp_nci_patch_otp()
371 conn_id = fdp_nci_create_conn(ndev); in fdp_nci_patch_otp()
378 r = fdp_nci_send_patch(ndev, conn_id, NCI_PATCH_TYPE_OTP); in fdp_nci_patch_otp()
390 r = nci_core_conn_close(info->ndev, conn_id); in fdp_nci_patch_otp()
395 if (fdp_nci_patch_cmd(ndev, NCI_PATCH_TYPE_EOT)) { in fdp_nci_patch_otp()
422 static int fdp_nci_patch_ram(struct nci_dev *ndev) in fdp_nci_patch_ram() argument
424 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_patch_ram()
437 r = fdp_nci_patch_cmd(ndev, NCI_PATCH_TYPE_RAM); in fdp_nci_patch_ram()
442 conn_id = fdp_nci_create_conn(ndev); in fdp_nci_patch_ram()
449 r = fdp_nci_send_patch(ndev, conn_id, NCI_PATCH_TYPE_RAM); in fdp_nci_patch_ram()
461 r = nci_core_conn_close(info->ndev, conn_id); in fdp_nci_patch_ram()
466 if (fdp_nci_patch_cmd(ndev, NCI_PATCH_TYPE_EOT)) { in fdp_nci_patch_ram()
493 static int fdp_nci_setup(struct nci_dev *ndev) in fdp_nci_setup() argument
496 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_setup()
503 r = nci_core_init(ndev); in fdp_nci_setup()
508 r = fdp_nci_get_versions(ndev); in fdp_nci_setup()
513 r = fdp_nci_request_firmware(ndev); in fdp_nci_setup()
519 r = fdp_nci_patch_otp(ndev); in fdp_nci_setup()
527 r = fdp_nci_patch_ram(ndev); in fdp_nci_setup()
534 fdp_nci_release_firmware(ndev); in fdp_nci_setup()
538 r = nci_core_init(ndev); in fdp_nci_setup()
542 r = fdp_nci_get_versions(ndev); in fdp_nci_setup()
558 return nci_core_reset(ndev); in fdp_nci_setup()
561 fdp_nci_release_firmware(ndev); in fdp_nci_setup()
566 static int fdp_nci_post_setup(struct nci_dev *ndev) in fdp_nci_post_setup() argument
568 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_post_setup()
576 r = fdp_nci_set_production_data(ndev, info->fw_vsc_cfg[3], in fdp_nci_post_setup()
586 r = fdp_nci_set_clock(ndev, info->clock_type, info->clock_freq); in fdp_nci_post_setup()
595 r = nci_core_reset(ndev); in fdp_nci_post_setup()
603 return nci_core_init(ndev); in fdp_nci_post_setup()
606 static int fdp_nci_core_reset_ntf_packet(struct nci_dev *ndev, in fdp_nci_core_reset_ntf_packet() argument
609 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_core_reset_ntf_packet()
619 static int fdp_nci_prop_patch_ntf_packet(struct nci_dev *ndev, in fdp_nci_prop_patch_ntf_packet() argument
622 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_prop_patch_ntf_packet()
633 static int fdp_nci_prop_patch_rsp_packet(struct nci_dev *ndev, in fdp_nci_prop_patch_rsp_packet() argument
636 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_prop_patch_rsp_packet()
641 nci_req_complete(ndev, status); in fdp_nci_prop_patch_rsp_packet()
646 static int fdp_nci_prop_set_production_data_rsp_packet(struct nci_dev *ndev, in fdp_nci_prop_set_production_data_rsp_packet() argument
649 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_prop_set_production_data_rsp_packet()
654 nci_req_complete(ndev, status); in fdp_nci_prop_set_production_data_rsp_packet()
659 static int fdp_nci_core_get_config_rsp_packet(struct nci_dev *ndev, in fdp_nci_core_get_config_rsp_packet() argument
662 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_core_get_config_rsp_packet()
700 nci_req_complete(ndev, rsp->status); in fdp_nci_core_get_config_rsp_packet()
748 struct nci_dev *ndev; in fdp_nci_probe() local
774 ndev = nci_allocate_device(&nci_ops, protocols, tx_headroom, in fdp_nci_probe()
776 if (!ndev) { in fdp_nci_probe()
782 r = nci_register_device(ndev); in fdp_nci_probe()
786 *ndevp = ndev; in fdp_nci_probe()
787 info->ndev = ndev; in fdp_nci_probe()
789 nci_set_drvdata(ndev, info); in fdp_nci_probe()
794 nci_free_device(ndev); in fdp_nci_probe()
802 void fdp_nci_remove(struct nci_dev *ndev) in fdp_nci_remove() argument
804 struct fdp_nci_info *info = nci_get_drvdata(ndev); in fdp_nci_remove()
809 nci_unregister_device(ndev); in fdp_nci_remove()
810 nci_free_device(ndev); in fdp_nci_remove()