Lines Matching refs:fw_info
65 struct nxp_nci_fw_info *fw_info = &info->fw_info; in nxp_nci_fw_work_complete() local
76 if (fw_info->fw) { in nxp_nci_fw_work_complete()
77 release_firmware(fw_info->fw); in nxp_nci_fw_work_complete()
78 fw_info->fw = NULL; in nxp_nci_fw_work_complete()
81 nfc_fw_download_done(info->ndev->nfc_dev, fw_info->name, (u32) -result); in nxp_nci_fw_work_complete()
101 struct nxp_nci_fw_info *fw_info = &info->fw_info; in nxp_nci_fw_send_chunk() local
115 remaining_len = fw_info->frame_size - fw_info->written; in nxp_nci_fw_send_chunk()
127 memcpy(skb_put(skb, chunk_len), fw_info->data + fw_info->written, in nxp_nci_fw_send_chunk()
145 struct nxp_nci_fw_info *fw_info = &info->fw_info; in nxp_nci_fw_send() local
149 reinit_completion(&fw_info->cmd_completion); in nxp_nci_fw_send()
151 if (fw_info->written == 0) { in nxp_nci_fw_send()
152 fw_info->frame_size = get_unaligned_be16(fw_info->data) & in nxp_nci_fw_send()
154 fw_info->data += NXP_NCI_FW_HDR_LEN; in nxp_nci_fw_send()
155 fw_info->size -= NXP_NCI_FW_HDR_LEN; in nxp_nci_fw_send()
158 if (fw_info->frame_size > fw_info->size) in nxp_nci_fw_send()
165 fw_info->written += r; in nxp_nci_fw_send()
167 if (*fw_info->data == NXP_NCI_FW_CMD_RESET) { in nxp_nci_fw_send()
168 fw_info->cmd_result = 0; in nxp_nci_fw_send()
169 if (fw_info->fw) in nxp_nci_fw_send()
170 schedule_work(&fw_info->work); in nxp_nci_fw_send()
173 &fw_info->cmd_completion, NXP_NCI_FW_ANSWER_TIMEOUT); in nxp_nci_fw_send()
184 struct nxp_nci_fw_info *fw_info; in nxp_nci_fw_work() local
187 fw_info = container_of(work, struct nxp_nci_fw_info, work); in nxp_nci_fw_work()
188 info = container_of(fw_info, struct nxp_nci_info, fw_info); in nxp_nci_fw_work()
192 r = fw_info->cmd_result; in nxp_nci_fw_work()
196 if (fw_info->written == fw_info->frame_size) { in nxp_nci_fw_work()
197 fw_info->data += fw_info->frame_size; in nxp_nci_fw_work()
198 fw_info->size -= fw_info->frame_size; in nxp_nci_fw_work()
199 fw_info->written = 0; in nxp_nci_fw_work()
202 if (fw_info->size > 0) in nxp_nci_fw_work()
206 if (r < 0 || fw_info->size == 0) in nxp_nci_fw_work()
214 struct nxp_nci_fw_info *fw_info = &info->fw_info; in nxp_nci_fw_download() local
229 strcpy(fw_info->name, firmware_name); in nxp_nci_fw_download()
231 r = request_firmware(&fw_info->fw, firmware_name, in nxp_nci_fw_download()
238 release_firmware(fw_info->fw); in nxp_nci_fw_download()
244 fw_info->data = fw_info->fw->data; in nxp_nci_fw_download()
245 fw_info->size = fw_info->fw->size; in nxp_nci_fw_download()
246 fw_info->written = 0; in nxp_nci_fw_download()
247 fw_info->frame_size = 0; in nxp_nci_fw_download()
248 fw_info->cmd_result = 0; in nxp_nci_fw_download()
250 schedule_work(&fw_info->work); in nxp_nci_fw_download()
307 struct nxp_nci_fw_info *fw_info = &info->fw_info; in nxp_nci_fw_recv_frame() local
309 complete(&fw_info->cmd_completion); in nxp_nci_fw_recv_frame()
313 fw_info->cmd_result = -EBADMSG; in nxp_nci_fw_recv_frame()
315 fw_info->cmd_result = nxp_nci_fw_read_status( in nxp_nci_fw_recv_frame()
319 fw_info->cmd_result = -EIO; in nxp_nci_fw_recv_frame()
322 if (fw_info->fw) in nxp_nci_fw_recv_frame()
323 schedule_work(&fw_info->work); in nxp_nci_fw_recv_frame()