Lines Matching full:info
23 static int s3fwrn5_firmware_init(struct s3fwrn5_info *info) in s3fwrn5_firmware_init() argument
25 struct s3fwrn5_fw_info *fw_info = &info->fw_info; in s3fwrn5_firmware_init()
38 static int s3fwrn5_firmware_update(struct s3fwrn5_info *info) in s3fwrn5_firmware_update() argument
45 s3fwrn5_set_wake(info, false); in s3fwrn5_firmware_update()
46 s3fwrn5_set_mode(info, S3FWRN5_MODE_FW); in s3fwrn5_firmware_update()
48 ret = s3fwrn5_fw_setup(&info->fw_info); in s3fwrn5_firmware_update()
52 need_update = s3fwrn5_fw_check_version(&info->fw_info, in s3fwrn5_firmware_update()
53 info->ndev->manufact_specific_info); in s3fwrn5_firmware_update()
57 dev_info(&info->ndev->nfc_dev->dev, "Detected new firmware version\n"); in s3fwrn5_firmware_update()
59 ret = s3fwrn5_fw_download(&info->fw_info); in s3fwrn5_firmware_update()
65 s3fwrn5_set_mode(info, S3FWRN5_MODE_NCI); in s3fwrn5_firmware_update()
67 s3fwrn5_set_wake(info, true); in s3fwrn5_firmware_update()
68 ret = s3fwrn5_nci_rf_configure(info, "sec_s3fwrn5_rfreg.bin"); in s3fwrn5_firmware_update()
69 s3fwrn5_set_wake(info, false); in s3fwrn5_firmware_update()
72 s3fwrn5_set_mode(info, S3FWRN5_MODE_COLD); in s3fwrn5_firmware_update()
73 s3fwrn5_fw_cleanup(&info->fw_info); in s3fwrn5_firmware_update()
79 struct s3fwrn5_info *info = nci_get_drvdata(ndev); in s3fwrn5_nci_open() local
81 if (s3fwrn5_get_mode(info) != S3FWRN5_MODE_COLD) in s3fwrn5_nci_open()
84 s3fwrn5_set_mode(info, S3FWRN5_MODE_NCI); in s3fwrn5_nci_open()
85 s3fwrn5_set_wake(info, true); in s3fwrn5_nci_open()
92 struct s3fwrn5_info *info = nci_get_drvdata(ndev); in s3fwrn5_nci_close() local
94 s3fwrn5_set_wake(info, false); in s3fwrn5_nci_close()
95 s3fwrn5_set_mode(info, S3FWRN5_MODE_COLD); in s3fwrn5_nci_close()
102 struct s3fwrn5_info *info = nci_get_drvdata(ndev); in s3fwrn5_nci_send() local
105 mutex_lock(&info->mutex); in s3fwrn5_nci_send()
107 if (s3fwrn5_get_mode(info) != S3FWRN5_MODE_NCI) { in s3fwrn5_nci_send()
109 mutex_unlock(&info->mutex); in s3fwrn5_nci_send()
113 ret = s3fwrn5_write(info, skb); in s3fwrn5_nci_send()
116 mutex_unlock(&info->mutex); in s3fwrn5_nci_send()
121 mutex_unlock(&info->mutex); in s3fwrn5_nci_send()
127 struct s3fwrn5_info *info = nci_get_drvdata(ndev); in s3fwrn5_nci_post_setup() local
130 if (s3fwrn5_firmware_init(info)) { in s3fwrn5_nci_post_setup()
135 ret = s3fwrn5_firmware_update(info); in s3fwrn5_nci_post_setup()
141 s3fwrn5_set_mode(info, S3FWRN5_MODE_NCI); in s3fwrn5_nci_post_setup()
142 s3fwrn5_set_wake(info, true); in s3fwrn5_nci_post_setup()
144 ret = nci_core_reset(info->ndev); in s3fwrn5_nci_post_setup()
148 return nci_core_init(info->ndev); in s3fwrn5_nci_post_setup()
163 struct s3fwrn5_info *info; in s3fwrn5_probe() local
166 info = devm_kzalloc(pdev, sizeof(*info), GFP_KERNEL); in s3fwrn5_probe()
167 if (!info) in s3fwrn5_probe()
170 info->phy_id = phy_id; in s3fwrn5_probe()
171 info->pdev = pdev; in s3fwrn5_probe()
172 info->phy_ops = phy_ops; in s3fwrn5_probe()
173 mutex_init(&info->mutex); in s3fwrn5_probe()
175 s3fwrn5_set_mode(info, S3FWRN5_MODE_COLD); in s3fwrn5_probe()
177 info->ndev = nci_allocate_device(&s3fwrn5_nci_ops, in s3fwrn5_probe()
179 if (!info->ndev) in s3fwrn5_probe()
182 nci_set_parent_dev(info->ndev, pdev); in s3fwrn5_probe()
183 nci_set_drvdata(info->ndev, info); in s3fwrn5_probe()
185 ret = nci_register_device(info->ndev); in s3fwrn5_probe()
187 nci_free_device(info->ndev); in s3fwrn5_probe()
191 info->fw_info.ndev = info->ndev; in s3fwrn5_probe()
193 *ndev = info->ndev; in s3fwrn5_probe()
201 struct s3fwrn5_info *info = nci_get_drvdata(ndev); in s3fwrn5_remove() local
203 s3fwrn5_set_mode(info, S3FWRN5_MODE_COLD); in s3fwrn5_remove()