Lines Matching refs:ndev
123 static u8 st21nfcb_se_get_bwi(struct nci_dev *ndev) in st21nfcb_se_get_bwi() argument
127 struct st21nfcb_nci_info *info = nci_get_drvdata(ndev); in st21nfcb_se_get_bwi()
142 static void st21nfcb_se_get_atr(struct nci_dev *ndev) in st21nfcb_se_get_atr() argument
144 struct st21nfcb_nci_info *info = nci_get_drvdata(ndev); in st21nfcb_se_get_atr()
148 r = nci_hci_get_param(ndev, ST21NFCB_APDU_READER_GATE, in st21nfcb_se_get_atr()
157 ST21NFCB_BWI_TO_TIMEOUT(st21nfcb_se_get_bwi(ndev)); in st21nfcb_se_get_atr()
162 int st21nfcb_hci_load_session(struct nci_dev *ndev) in st21nfcb_hci_load_session() argument
188 r = nci_hci_connect_gate(ndev, ST21NFCB_HOST_CONTROLLER_ID, in st21nfcb_hci_load_session()
195 r = nci_hci_send_cmd(ndev, ST21NFCB_DEVICE_MGNT_GATE, in st21nfcb_hci_load_session()
204 r = nci_hci_send_cmd(ndev, ST21NFCB_DEVICE_MGNT_GATE, in st21nfcb_hci_load_session()
237 ndev->hci_dev->gate2pipe[st21nfcb_gates[j].gate] = in st21nfcb_hci_load_session()
239 ndev->hci_dev->pipes[st21nfcb_gates[j].pipe].gate = in st21nfcb_hci_load_session()
241 ndev->hci_dev->pipes[st21nfcb_gates[j].pipe].host = in st21nfcb_hci_load_session()
246 memcpy(ndev->hci_dev->init_data.gates, st21nfcb_gates, in st21nfcb_hci_load_session()
256 static void st21nfcb_hci_admin_event_received(struct nci_dev *ndev, in st21nfcb_hci_admin_event_received() argument
259 struct st21nfcb_nci_info *info = nci_get_drvdata(ndev); in st21nfcb_hci_admin_event_received()
278 static int st21nfcb_hci_apdu_reader_event_received(struct nci_dev *ndev, in st21nfcb_hci_apdu_reader_event_received() argument
283 struct st21nfcb_nci_info *info = nci_get_drvdata(ndev); in st21nfcb_hci_apdu_reader_event_received()
309 static int st21nfcb_hci_connectivity_event_received(struct nci_dev *ndev, in st21nfcb_hci_connectivity_event_received() argument
314 struct device *dev = &ndev->nfc_dev->dev; in st21nfcb_hci_connectivity_event_received()
349 r = nfc_se_transaction(ndev->nfc_dev, host, transaction); in st21nfcb_hci_connectivity_event_received()
358 void st21nfcb_hci_event_received(struct nci_dev *ndev, u8 pipe, in st21nfcb_hci_event_received() argument
361 u8 gate = ndev->hci_dev->pipes[pipe].gate; in st21nfcb_hci_event_received()
362 u8 host = ndev->hci_dev->pipes[pipe].host; in st21nfcb_hci_event_received()
366 st21nfcb_hci_admin_event_received(ndev, event, skb); in st21nfcb_hci_event_received()
369 st21nfcb_hci_apdu_reader_event_received(ndev, event, skb); in st21nfcb_hci_event_received()
372 st21nfcb_hci_connectivity_event_received(ndev, host, event, in st21nfcb_hci_event_received()
380 void st21nfcb_hci_cmd_received(struct nci_dev *ndev, u8 pipe, u8 cmd, in st21nfcb_hci_cmd_received() argument
383 struct st21nfcb_nci_info *info = nci_get_drvdata(ndev); in st21nfcb_hci_cmd_received()
384 u8 gate = ndev->hci_dev->pipes[pipe].gate; in st21nfcb_hci_cmd_received()
391 ndev->hci_dev->pipes[pipe].host != ST21NFCB_UICC_HOST_ID) in st21nfcb_hci_cmd_received()
392 ndev->hci_dev->count_pipes++; in st21nfcb_hci_cmd_received()
394 if (ndev->hci_dev->count_pipes == in st21nfcb_hci_cmd_received()
395 ndev->hci_dev->expected_pipes) { in st21nfcb_hci_cmd_received()
398 ndev->hci_dev->count_pipes = 0; in st21nfcb_hci_cmd_received()
410 static int st21nfcb_nci_control_se(struct nci_dev *ndev, u8 se_idx, in st21nfcb_nci_control_se() argument
413 struct st21nfcb_nci_info *info = nci_get_drvdata(ndev); in st21nfcb_nci_control_se()
420 ndev->hci_dev->count_pipes = 0; in st21nfcb_nci_control_se()
421 ndev->hci_dev->expected_pipes = ST21NFCB_SE_COUNT_PIPE_UICC; in st21nfcb_nci_control_se()
424 ndev->hci_dev->count_pipes = 0; in st21nfcb_nci_control_se()
425 ndev->hci_dev->expected_pipes = ST21NFCB_SE_COUNT_PIPE_EMBEDDED; in st21nfcb_nci_control_se()
436 r = nci_nfcee_mode_set(ndev, se_idx, NCI_NFCEE_ENABLE); in st21nfcb_nci_control_se()
454 r = nci_hci_get_param(ndev, NCI_HCI_ADMIN_GATE, in st21nfcb_nci_control_se()
469 int st21nfcb_nci_disable_se(struct nci_dev *ndev, u32 se_idx) in st21nfcb_nci_disable_se() argument
476 r = nci_hci_send_event(ndev, ST21NFCB_APDU_READER_GATE, in st21nfcb_nci_disable_se()
486 int st21nfcb_nci_enable_se(struct nci_dev *ndev, u32 se_idx) in st21nfcb_nci_enable_se() argument
493 r = nci_hci_send_event(ndev, ST21NFCB_APDU_READER_GATE, in st21nfcb_nci_enable_se()
503 static int st21nfcb_hci_network_init(struct nci_dev *ndev) in st21nfcb_hci_network_init() argument
520 spec_params.id = ndev->hci_dev->nfcee_id; in st21nfcb_hci_network_init()
523 r = nci_core_conn_create(ndev, NCI_DESTINATION_NFCEE, 1, in st21nfcb_hci_network_init()
530 conn_info = ndev->hci_dev->conn_info; in st21nfcb_hci_network_init()
534 memcpy(ndev->hci_dev->init_data.gates, st21nfcb_gates, in st21nfcb_hci_network_init()
547 scnprintf(ndev->hci_dev->init_data.session_id, in st21nfcb_hci_network_init()
548 sizeof(ndev->hci_dev->init_data.session_id), in st21nfcb_hci_network_init()
551 r = nci_hci_dev_session_init(ndev); in st21nfcb_hci_network_init()
555 r = nci_nfcee_mode_set(ndev, ndev->hci_dev->conn_info->id, in st21nfcb_hci_network_init()
567 int st21nfcb_nci_discover_se(struct nci_dev *ndev) in st21nfcb_nci_discover_se() argument
575 r = st21nfcb_hci_network_init(ndev); in st21nfcb_nci_discover_se()
581 r = nci_hci_set_param(ndev, NCI_HCI_ADMIN_GATE, in st21nfcb_nci_discover_se()
587 r = st21nfcb_nci_control_se(ndev, ST21NFCB_UICC_HOST_ID, in st21nfcb_nci_discover_se()
590 nfc_add_se(ndev->nfc_dev, ST21NFCB_UICC_HOST_ID, NFC_SE_UICC); in st21nfcb_nci_discover_se()
595 r = st21nfcb_nci_control_se(ndev, ST21NFCB_HCI_HOST_ID_ESE, in st21nfcb_nci_discover_se()
598 nfc_add_se(ndev->nfc_dev, ST21NFCB_HCI_HOST_ID_ESE, in st21nfcb_nci_discover_se()
601 st21nfcb_se_get_atr(ndev); in st21nfcb_nci_discover_se()
608 int st21nfcb_nci_se_io(struct nci_dev *ndev, u32 se_idx, in st21nfcb_nci_se_io() argument
612 struct st21nfcb_nci_info *info = nci_get_drvdata(ndev); in st21nfcb_nci_se_io()
623 return nci_hci_send_event(ndev, ST21NFCB_APDU_READER_GATE, in st21nfcb_nci_se_io()
653 nci_hci_send_event(info->ndlc->ndev, ST21NFCB_APDU_READER_GATE, in st21nfcb_se_wt_timeout()
657 nci_hci_send_event(info->ndlc->ndev, ST21NFCB_DEVICE_MGNT_GATE, in st21nfcb_se_wt_timeout()
674 int st21nfcb_se_init(struct nci_dev *ndev) in st21nfcb_se_init() argument
676 struct st21nfcb_nci_info *info = nci_get_drvdata(ndev); in st21nfcb_se_init()
700 void st21nfcb_se_deinit(struct nci_dev *ndev) in st21nfcb_se_deinit() argument
702 struct st21nfcb_nci_info *info = nci_get_drvdata(ndev); in st21nfcb_se_deinit()