Lines Matching full:info

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