Lines Matching refs:xfer

138 	struct i3c_priv_xfer *xfer;  member
1150 struct svc_i3c_xfer *xfer; in svc_i3c_master_alloc_xfer() local
1152 xfer = kzalloc(struct_size(xfer, cmds, ncmds), GFP_KERNEL); in svc_i3c_master_alloc_xfer()
1153 if (!xfer) in svc_i3c_master_alloc_xfer()
1156 INIT_LIST_HEAD(&xfer->node); in svc_i3c_master_alloc_xfer()
1157 xfer->ncmds = ncmds; in svc_i3c_master_alloc_xfer()
1158 xfer->ret = -ETIMEDOUT; in svc_i3c_master_alloc_xfer()
1160 return xfer; in svc_i3c_master_alloc_xfer()
1163 static void svc_i3c_master_free_xfer(struct svc_i3c_xfer *xfer) in svc_i3c_master_free_xfer() argument
1165 kfree(xfer); in svc_i3c_master_free_xfer()
1169 struct svc_i3c_xfer *xfer) in svc_i3c_master_dequeue_xfer_locked() argument
1171 if (master->xferqueue.cur == xfer) in svc_i3c_master_dequeue_xfer_locked()
1174 list_del_init(&xfer->node); in svc_i3c_master_dequeue_xfer_locked()
1178 struct svc_i3c_xfer *xfer) in svc_i3c_master_dequeue_xfer() argument
1183 svc_i3c_master_dequeue_xfer_locked(master, xfer); in svc_i3c_master_dequeue_xfer()
1189 struct svc_i3c_xfer *xfer = master->xferqueue.cur; in svc_i3c_master_start_xfer_locked() local
1192 if (!xfer) in svc_i3c_master_start_xfer_locked()
1198 for (i = 0; i < xfer->ncmds; i++) { in svc_i3c_master_start_xfer_locked()
1199 struct svc_i3c_cmd *cmd = &xfer->cmds[i]; in svc_i3c_master_start_xfer_locked()
1201 ret = svc_i3c_master_xfer(master, cmd->rnw, xfer->type, in svc_i3c_master_start_xfer_locked()
1206 if (cmd->xfer) in svc_i3c_master_start_xfer_locked()
1207 cmd->xfer->actual_len = cmd->actual_len; in svc_i3c_master_start_xfer_locked()
1213 xfer->ret = ret; in svc_i3c_master_start_xfer_locked()
1214 complete(&xfer->comp); in svc_i3c_master_start_xfer_locked()
1217 svc_i3c_master_dequeue_xfer_locked(master, xfer); in svc_i3c_master_start_xfer_locked()
1219 xfer = list_first_entry_or_null(&master->xferqueue.list, in svc_i3c_master_start_xfer_locked()
1222 if (xfer) in svc_i3c_master_start_xfer_locked()
1223 list_del_init(&xfer->node); in svc_i3c_master_start_xfer_locked()
1225 master->xferqueue.cur = xfer; in svc_i3c_master_start_xfer_locked()
1230 struct svc_i3c_xfer *xfer) in svc_i3c_master_enqueue_xfer() argument
1241 init_completion(&xfer->comp); in svc_i3c_master_enqueue_xfer()
1244 list_add_tail(&xfer->node, &master->xferqueue.list); in svc_i3c_master_enqueue_xfer()
1246 master->xferqueue.cur = xfer; in svc_i3c_master_enqueue_xfer()
1267 struct svc_i3c_xfer *xfer; in svc_i3c_master_send_bdcast_ccc_cmd() local
1272 xfer = svc_i3c_master_alloc_xfer(master, 1); in svc_i3c_master_send_bdcast_ccc_cmd()
1273 if (!xfer) in svc_i3c_master_send_bdcast_ccc_cmd()
1278 svc_i3c_master_free_xfer(xfer); in svc_i3c_master_send_bdcast_ccc_cmd()
1285 xfer->type = SVC_I3C_MCTRL_TYPE_I3C; in svc_i3c_master_send_bdcast_ccc_cmd()
1287 cmd = &xfer->cmds[0]; in svc_i3c_master_send_bdcast_ccc_cmd()
1297 svc_i3c_master_enqueue_xfer(master, xfer); in svc_i3c_master_send_bdcast_ccc_cmd()
1298 if (!wait_for_completion_timeout(&xfer->comp, msecs_to_jiffies(1000))) in svc_i3c_master_send_bdcast_ccc_cmd()
1299 svc_i3c_master_dequeue_xfer(master, xfer); in svc_i3c_master_send_bdcast_ccc_cmd()
1302 ret = xfer->ret; in svc_i3c_master_send_bdcast_ccc_cmd()
1304 svc_i3c_master_free_xfer(xfer); in svc_i3c_master_send_bdcast_ccc_cmd()
1314 struct svc_i3c_xfer *xfer; in svc_i3c_master_send_direct_ccc_cmd() local
1318 xfer = svc_i3c_master_alloc_xfer(master, 2); in svc_i3c_master_send_direct_ccc_cmd()
1319 if (!xfer) in svc_i3c_master_send_direct_ccc_cmd()
1322 xfer->type = SVC_I3C_MCTRL_TYPE_I3C; in svc_i3c_master_send_direct_ccc_cmd()
1325 cmd = &xfer->cmds[0]; in svc_i3c_master_send_direct_ccc_cmd()
1335 cmd = &xfer->cmds[1]; in svc_i3c_master_send_direct_ccc_cmd()
1345 svc_i3c_master_enqueue_xfer(master, xfer); in svc_i3c_master_send_direct_ccc_cmd()
1346 if (!wait_for_completion_timeout(&xfer->comp, msecs_to_jiffies(1000))) in svc_i3c_master_send_direct_ccc_cmd()
1347 svc_i3c_master_dequeue_xfer(master, xfer); in svc_i3c_master_send_direct_ccc_cmd()
1353 ret = xfer->ret; in svc_i3c_master_send_direct_ccc_cmd()
1354 svc_i3c_master_free_xfer(xfer); in svc_i3c_master_send_direct_ccc_cmd()
1384 struct svc_i3c_xfer *xfer; in svc_i3c_master_priv_xfers() local
1387 xfer = svc_i3c_master_alloc_xfer(master, nxfers); in svc_i3c_master_priv_xfers()
1388 if (!xfer) in svc_i3c_master_priv_xfers()
1391 xfer->type = SVC_I3C_MCTRL_TYPE_I3C; in svc_i3c_master_priv_xfers()
1394 struct svc_i3c_cmd *cmd = &xfer->cmds[i]; in svc_i3c_master_priv_xfers()
1396 cmd->xfer = &xfers[i]; in svc_i3c_master_priv_xfers()
1407 svc_i3c_master_enqueue_xfer(master, xfer); in svc_i3c_master_priv_xfers()
1408 if (!wait_for_completion_timeout(&xfer->comp, msecs_to_jiffies(1000))) in svc_i3c_master_priv_xfers()
1409 svc_i3c_master_dequeue_xfer(master, xfer); in svc_i3c_master_priv_xfers()
1412 ret = xfer->ret; in svc_i3c_master_priv_xfers()
1413 svc_i3c_master_free_xfer(xfer); in svc_i3c_master_priv_xfers()
1425 struct svc_i3c_xfer *xfer; in svc_i3c_master_i2c_xfers() local
1428 xfer = svc_i3c_master_alloc_xfer(master, nxfers); in svc_i3c_master_i2c_xfers()
1429 if (!xfer) in svc_i3c_master_i2c_xfers()
1432 xfer->type = SVC_I3C_MCTRL_TYPE_I2C; in svc_i3c_master_i2c_xfers()
1435 struct svc_i3c_cmd *cmd = &xfer->cmds[i]; in svc_i3c_master_i2c_xfers()
1447 svc_i3c_master_enqueue_xfer(master, xfer); in svc_i3c_master_i2c_xfers()
1448 if (!wait_for_completion_timeout(&xfer->comp, msecs_to_jiffies(1000))) in svc_i3c_master_i2c_xfers()
1449 svc_i3c_master_dequeue_xfer(master, xfer); in svc_i3c_master_i2c_xfers()
1452 ret = xfer->ret; in svc_i3c_master_i2c_xfers()
1453 svc_i3c_master_free_xfer(xfer); in svc_i3c_master_i2c_xfers()