Lines Matching refs:xfer
195 struct hci_xfer *xfer; in i3c_hci_send_ccc_cmd() local
205 xfer = hci_alloc_xfer(nxfers); in i3c_hci_send_ccc_cmd()
206 if (!xfer) in i3c_hci_send_ccc_cmd()
210 xfer->data = NULL; in i3c_hci_send_ccc_cmd()
211 xfer->data_len = 0; in i3c_hci_send_ccc_cmd()
212 xfer->rnw = false; in i3c_hci_send_ccc_cmd()
213 hci->cmd->prep_ccc(hci, xfer, I3C_BROADCAST_ADDR, in i3c_hci_send_ccc_cmd()
215 xfer++; in i3c_hci_send_ccc_cmd()
219 xfer[i].data = ccc->dests[i].payload.data; in i3c_hci_send_ccc_cmd()
220 xfer[i].data_len = ccc->dests[i].payload.len; in i3c_hci_send_ccc_cmd()
221 xfer[i].rnw = ccc->rnw; in i3c_hci_send_ccc_cmd()
222 ret = hci->cmd->prep_ccc(hci, &xfer[i], ccc->dests[i].addr, in i3c_hci_send_ccc_cmd()
226 xfer[i].cmd_desc[0] |= CMD_0_ROC; in i3c_hci_send_ccc_cmd()
229 xfer[last].cmd_desc[0] |= CMD_0_TOC; in i3c_hci_send_ccc_cmd()
230 xfer[last].completion = &done; in i3c_hci_send_ccc_cmd()
233 xfer--; in i3c_hci_send_ccc_cmd()
235 ret = hci->io->queue_xfer(hci, xfer, nxfers); in i3c_hci_send_ccc_cmd()
239 hci->io->dequeue_xfer(hci, xfer, nxfers)) { in i3c_hci_send_ccc_cmd()
246 RESP_DATA_LENGTH(xfer[i].response); in i3c_hci_send_ccc_cmd()
247 if (RESP_STATUS(xfer[i].response) != RESP_SUCCESS) { in i3c_hci_send_ccc_cmd()
258 hci_free_xfer(xfer, nxfers); in i3c_hci_send_ccc_cmd()
277 struct hci_xfer *xfer; in i3c_hci_priv_xfers() local
284 xfer = hci_alloc_xfer(nxfers); in i3c_hci_priv_xfers()
285 if (!xfer) in i3c_hci_priv_xfers()
291 xfer[i].data_len = i3c_xfers[i].len; in i3c_hci_priv_xfers()
293 if (xfer[i].data_len >= size_limit) in i3c_hci_priv_xfers()
295 xfer[i].rnw = i3c_xfers[i].rnw; in i3c_hci_priv_xfers()
297 xfer[i].data = i3c_xfers[i].data.in; in i3c_hci_priv_xfers()
300 xfer[i].data = (void *) i3c_xfers[i].data.out; in i3c_hci_priv_xfers()
302 hci->cmd->prep_i3c_xfer(hci, dev, &xfer[i]); in i3c_hci_priv_xfers()
303 xfer[i].cmd_desc[0] |= CMD_0_ROC; in i3c_hci_priv_xfers()
306 xfer[last].cmd_desc[0] |= CMD_0_TOC; in i3c_hci_priv_xfers()
307 xfer[last].completion = &done; in i3c_hci_priv_xfers()
309 ret = hci->io->queue_xfer(hci, xfer, nxfers); in i3c_hci_priv_xfers()
313 hci->io->dequeue_xfer(hci, xfer, nxfers)) { in i3c_hci_priv_xfers()
319 i3c_xfers[i].len = RESP_DATA_LENGTH(xfer[i].response); in i3c_hci_priv_xfers()
320 if (RESP_STATUS(xfer[i].response) != RESP_SUCCESS) { in i3c_hci_priv_xfers()
327 hci_free_xfer(xfer, nxfers); in i3c_hci_priv_xfers()
336 struct hci_xfer *xfer; in i3c_hci_i2c_xfers() local
342 xfer = hci_alloc_xfer(nxfers); in i3c_hci_i2c_xfers()
343 if (!xfer) in i3c_hci_i2c_xfers()
347 xfer[i].data = i2c_xfers[i].buf; in i3c_hci_i2c_xfers()
348 xfer[i].data_len = i2c_xfers[i].len; in i3c_hci_i2c_xfers()
349 xfer[i].rnw = i2c_xfers[i].flags & I2C_M_RD; in i3c_hci_i2c_xfers()
350 hci->cmd->prep_i2c_xfer(hci, dev, &xfer[i]); in i3c_hci_i2c_xfers()
351 xfer[i].cmd_desc[0] |= CMD_0_ROC; in i3c_hci_i2c_xfers()
354 xfer[last].cmd_desc[0] |= CMD_0_TOC; in i3c_hci_i2c_xfers()
355 xfer[last].completion = &done; in i3c_hci_i2c_xfers()
357 ret = hci->io->queue_xfer(hci, xfer, nxfers); in i3c_hci_i2c_xfers()
361 hci->io->dequeue_xfer(hci, xfer, nxfers)) { in i3c_hci_i2c_xfers()
366 if (RESP_STATUS(xfer[i].response) != RESP_SUCCESS) { in i3c_hci_i2c_xfers()
373 hci_free_xfer(xfer, nxfers); in i3c_hci_i2c_xfers()