Lines Matching refs:ndev
113 static u8 st_nci_se_get_bwi(struct nci_dev *ndev) in st_nci_se_get_bwi() argument
117 struct st_nci_info *info = nci_get_drvdata(ndev); in st_nci_se_get_bwi()
132 static void st_nci_se_get_atr(struct nci_dev *ndev) in st_nci_se_get_atr() argument
134 struct st_nci_info *info = nci_get_drvdata(ndev); in st_nci_se_get_atr()
138 r = nci_hci_get_param(ndev, ST_NCI_APDU_READER_GATE, in st_nci_se_get_atr()
147 ST_NCI_BWI_TO_TIMEOUT(st_nci_se_get_bwi(ndev)); in st_nci_se_get_atr()
152 int st_nci_hci_load_session(struct nci_dev *ndev) in st_nci_hci_load_session() argument
178 r = nci_hci_connect_gate(ndev, ST_NCI_HOST_CONTROLLER_ID, in st_nci_hci_load_session()
185 r = nci_hci_send_cmd(ndev, ST_NCI_DEVICE_MGNT_GATE, in st_nci_hci_load_session()
194 r = nci_hci_send_cmd(ndev, ST_NCI_DEVICE_MGNT_GATE, in st_nci_hci_load_session()
226 ndev->hci_dev->init_data.gates[j].pipe = pipe_info[2]; in st_nci_hci_load_session()
228 ndev->hci_dev->gate2pipe[st_nci_gates[j].gate] = in st_nci_hci_load_session()
230 ndev->hci_dev->pipes[pipe_info[2]].gate = in st_nci_hci_load_session()
232 ndev->hci_dev->pipes[pipe_info[2]].host = in st_nci_hci_load_session()
242 r = nci_hci_connect_gate(ndev, ST_NCI_HOST_CONTROLLER_ID, in st_nci_hci_load_session()
251 static void st_nci_hci_admin_event_received(struct nci_dev *ndev, in st_nci_hci_admin_event_received() argument
254 struct st_nci_info *info = nci_get_drvdata(ndev); in st_nci_hci_admin_event_received()
271 nfc_err(&ndev->nfc_dev->dev, "Unexpected event on admin gate\n"); in st_nci_hci_admin_event_received()
275 static int st_nci_hci_apdu_reader_event_received(struct nci_dev *ndev, in st_nci_hci_apdu_reader_event_received() argument
279 struct st_nci_info *info = nci_get_drvdata(ndev); in st_nci_hci_apdu_reader_event_received()
295 nfc_err(&ndev->nfc_dev->dev, "Unexpected event on apdu reader gate\n"); in st_nci_hci_apdu_reader_event_received()
308 static int st_nci_hci_connectivity_event_received(struct nci_dev *ndev, in st_nci_hci_connectivity_event_received() argument
313 struct device *dev = &ndev->nfc_dev->dev; in st_nci_hci_connectivity_event_received()
322 r = nfc_se_connectivity(ndev->nfc_dev, host); in st_nci_hci_connectivity_event_received()
372 r = nfc_se_transaction(ndev->nfc_dev, host, transaction); in st_nci_hci_connectivity_event_received()
375 nfc_err(&ndev->nfc_dev->dev, "Unexpected event on connectivity gate\n"); in st_nci_hci_connectivity_event_received()
382 void st_nci_hci_event_received(struct nci_dev *ndev, u8 pipe, in st_nci_hci_event_received() argument
385 u8 gate = ndev->hci_dev->pipes[pipe].gate; in st_nci_hci_event_received()
386 u8 host = ndev->hci_dev->pipes[pipe].host; in st_nci_hci_event_received()
390 st_nci_hci_admin_event_received(ndev, event, skb); in st_nci_hci_event_received()
393 st_nci_hci_apdu_reader_event_received(ndev, event, skb); in st_nci_hci_event_received()
396 st_nci_hci_connectivity_event_received(ndev, host, event, skb); in st_nci_hci_event_received()
402 void st_nci_hci_cmd_received(struct nci_dev *ndev, u8 pipe, u8 cmd, in st_nci_hci_cmd_received() argument
405 struct st_nci_info *info = nci_get_drvdata(ndev); in st_nci_hci_cmd_received()
406 u8 gate = ndev->hci_dev->pipes[pipe].gate; in st_nci_hci_cmd_received()
413 ndev->hci_dev->pipes[pipe].host != ST_NCI_UICC_HOST_ID) in st_nci_hci_cmd_received()
414 ndev->hci_dev->count_pipes++; in st_nci_hci_cmd_received()
416 if (ndev->hci_dev->count_pipes == in st_nci_hci_cmd_received()
417 ndev->hci_dev->expected_pipes) { in st_nci_hci_cmd_received()
420 ndev->hci_dev->count_pipes = 0; in st_nci_hci_cmd_received()
428 static int st_nci_control_se(struct nci_dev *ndev, u8 se_idx, in st_nci_control_se() argument
431 struct st_nci_info *info = nci_get_drvdata(ndev); in st_nci_control_se()
438 ndev->hci_dev->count_pipes = 0; in st_nci_control_se()
439 ndev->hci_dev->expected_pipes = ST_NCI_SE_COUNT_PIPE_UICC; in st_nci_control_se()
442 ndev->hci_dev->count_pipes = 0; in st_nci_control_se()
443 ndev->hci_dev->expected_pipes = ST_NCI_SE_COUNT_PIPE_EMBEDDED; in st_nci_control_se()
454 r = nci_nfcee_mode_set(ndev, se_idx, state); in st_nci_control_se()
474 r = nci_hci_get_param(ndev, NCI_HCI_ADMIN_GATE, in st_nci_control_se()
492 int st_nci_disable_se(struct nci_dev *ndev, u32 se_idx) in st_nci_disable_se() argument
501 r = st_nci_control_se(ndev, se_idx, ST_NCI_SE_MODE_OFF); in st_nci_disable_se()
505 r = nci_hci_send_event(ndev, ST_NCI_APDU_READER_GATE, in st_nci_disable_se()
516 int st_nci_enable_se(struct nci_dev *ndev, u32 se_idx) in st_nci_enable_se() argument
525 r = st_nci_control_se(ndev, se_idx, ST_NCI_SE_MODE_ON); in st_nci_enable_se()
527 st_nci_se_get_atr(ndev); in st_nci_enable_se()
528 r = nci_hci_send_event(ndev, ST_NCI_APDU_READER_GATE, in st_nci_enable_se()
537 nfc_remove_se(ndev->nfc_dev, se_idx); in st_nci_enable_se()
545 static int st_nci_hci_network_init(struct nci_dev *ndev) in st_nci_hci_network_init() argument
547 struct st_nci_info *info = nci_get_drvdata(ndev); in st_nci_hci_network_init()
561 spec_params.id = ndev->hci_dev->nfcee_id; in st_nci_hci_network_init()
565 r = nci_core_conn_create(ndev, NCI_DESTINATION_NFCEE, 1, in st_nci_hci_network_init()
572 conn_info = ndev->hci_dev->conn_info; in st_nci_hci_network_init()
576 ndev->hci_dev->init_data.gate_count = ARRAY_SIZE(st_nci_gates); in st_nci_hci_network_init()
577 memcpy(ndev->hci_dev->init_data.gates, st_nci_gates, in st_nci_hci_network_init()
590 scnprintf(ndev->hci_dev->init_data.session_id, in st_nci_hci_network_init()
591 sizeof(ndev->hci_dev->init_data.session_id), in st_nci_hci_network_init()
594 r = nci_hci_dev_session_init(ndev); in st_nci_hci_network_init()
604 r = nci_nfcee_mode_set(ndev, in st_nci_hci_network_init()
605 ndev->hci_dev->conn_info->dest_params->id, in st_nci_hci_network_init()
608 r = nci_nfcee_mode_set(ndev, in st_nci_hci_network_init()
609 ndev->hci_dev->conn_info->dest_params->id, in st_nci_hci_network_init()
617 int st_nci_discover_se(struct nci_dev *ndev) in st_nci_discover_se() argument
622 struct st_nci_info *info = nci_get_drvdata(ndev); in st_nci_discover_se()
624 r = st_nci_hci_network_init(ndev); in st_nci_discover_se()
637 r = nci_hci_set_param(ndev, NCI_HCI_ADMIN_GATE, in st_nci_discover_se()
645 nfc_add_se(ndev->nfc_dev, ST_NCI_UICC_HOST_ID, NFC_SE_UICC); in st_nci_discover_se()
650 nfc_add_se(ndev->nfc_dev, ST_NCI_ESE_HOST_ID, NFC_SE_EMBEDDED); in st_nci_discover_se()
658 int st_nci_se_io(struct nci_dev *ndev, u32 se_idx, in st_nci_se_io() argument
662 struct st_nci_info *info = nci_get_drvdata(ndev); in st_nci_se_io()
671 return nci_hci_send_event(ndev, ST_NCI_APDU_READER_GATE, in st_nci_se_io()
705 nci_hci_send_event(info->ndlc->ndev, ST_NCI_APDU_READER_GATE, in st_nci_se_wt_timeout()
709 nci_hci_send_event(info->ndlc->ndev, ST_NCI_DEVICE_MGNT_GATE, in st_nci_se_wt_timeout()
725 int st_nci_se_init(struct nci_dev *ndev, struct st_nci_se_status *se_status) in st_nci_se_init() argument
727 struct st_nci_info *info = nci_get_drvdata(ndev); in st_nci_se_init()
749 void st_nci_se_deinit(struct nci_dev *ndev) in st_nci_se_deinit() argument
751 struct st_nci_info *info = nci_get_drvdata(ndev); in st_nci_se_deinit()