Lines Matching refs:cmd
112 struct digital_cmd *cmd; in digital_wq_cmd_complete() local
119 cmd = list_first_entry_or_null(&ddev->cmd_queue, struct digital_cmd, in digital_wq_cmd_complete()
121 if (!cmd) { in digital_wq_cmd_complete()
126 list_del(&cmd->queue); in digital_wq_cmd_complete()
130 if (!IS_ERR(cmd->resp)) in digital_wq_cmd_complete()
132 cmd->resp->data, cmd->resp->len, false); in digital_wq_cmd_complete()
134 cmd->cmd_cb(ddev, cmd->cb_context, cmd->resp); in digital_wq_cmd_complete()
136 kfree(cmd->mdaa_params); in digital_wq_cmd_complete()
137 kfree(cmd); in digital_wq_cmd_complete()
145 struct digital_cmd *cmd = arg; in digital_send_cmd_complete() local
147 cmd->resp = resp; in digital_send_cmd_complete()
155 struct digital_cmd *cmd; in digital_wq_cmd() local
163 cmd = list_first_entry_or_null(&ddev->cmd_queue, struct digital_cmd, in digital_wq_cmd()
165 if (!cmd || cmd->pending) { in digital_wq_cmd()
170 cmd->pending = 1; in digital_wq_cmd()
174 if (cmd->req) in digital_wq_cmd()
176 cmd->req->data, cmd->req->len, false); in digital_wq_cmd()
178 switch (cmd->type) { in digital_wq_cmd()
180 rc = ddev->ops->in_send_cmd(ddev, cmd->req, cmd->timeout, in digital_wq_cmd()
181 digital_send_cmd_complete, cmd); in digital_wq_cmd()
185 rc = ddev->ops->tg_send_cmd(ddev, cmd->req, cmd->timeout, in digital_wq_cmd()
186 digital_send_cmd_complete, cmd); in digital_wq_cmd()
190 rc = ddev->ops->tg_listen(ddev, cmd->timeout, in digital_wq_cmd()
191 digital_send_cmd_complete, cmd); in digital_wq_cmd()
195 params = cmd->mdaa_params; in digital_wq_cmd()
197 rc = ddev->ops->tg_listen_mdaa(ddev, params, cmd->timeout, in digital_wq_cmd()
198 digital_send_cmd_complete, cmd); in digital_wq_cmd()
202 rc = ddev->ops->tg_listen_md(ddev, cmd->timeout, in digital_wq_cmd()
203 digital_send_cmd_complete, cmd); in digital_wq_cmd()
207 pr_err("Unknown cmd type %d\n", cmd->type); in digital_wq_cmd()
217 list_del(&cmd->queue); in digital_wq_cmd()
220 kfree_skb(cmd->req); in digital_wq_cmd()
221 kfree(cmd->mdaa_params); in digital_wq_cmd()
222 kfree(cmd); in digital_wq_cmd()
232 struct digital_cmd *cmd; in digital_send_cmd() local
234 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); in digital_send_cmd()
235 if (!cmd) in digital_send_cmd()
238 cmd->type = cmd_type; in digital_send_cmd()
239 cmd->timeout = timeout; in digital_send_cmd()
240 cmd->req = skb; in digital_send_cmd()
241 cmd->mdaa_params = params; in digital_send_cmd()
242 cmd->cmd_cb = cmd_cb; in digital_send_cmd()
243 cmd->cb_context = cb_context; in digital_send_cmd()
244 INIT_LIST_HEAD(&cmd->queue); in digital_send_cmd()
247 list_add_tail(&cmd->queue, &ddev->cmd_queue); in digital_send_cmd()
825 struct digital_cmd *cmd, *n; in nfc_digital_unregister_device() local
837 list_for_each_entry_safe(cmd, n, &ddev->cmd_queue, queue) { in nfc_digital_unregister_device()
838 list_del(&cmd->queue); in nfc_digital_unregister_device()
844 if (cmd->cmd_cb) in nfc_digital_unregister_device()
845 cmd->cmd_cb(ddev, cmd->cb_context, ERR_PTR(-ENODEV)); in nfc_digital_unregister_device()
847 kfree(cmd->mdaa_params); in nfc_digital_unregister_device()
848 kfree(cmd); in nfc_digital_unregister_device()