Lines Matching refs:xfer

965 	struct svc_i3c_xfer *xfer;  in svc_i3c_master_alloc_xfer()  local
967 xfer = kzalloc(struct_size(xfer, cmds, ncmds), GFP_KERNEL); in svc_i3c_master_alloc_xfer()
968 if (!xfer) in svc_i3c_master_alloc_xfer()
971 INIT_LIST_HEAD(&xfer->node); in svc_i3c_master_alloc_xfer()
972 xfer->ncmds = ncmds; in svc_i3c_master_alloc_xfer()
973 xfer->ret = -ETIMEDOUT; in svc_i3c_master_alloc_xfer()
975 return xfer; in svc_i3c_master_alloc_xfer()
978 static void svc_i3c_master_free_xfer(struct svc_i3c_xfer *xfer) in svc_i3c_master_free_xfer() argument
980 kfree(xfer); in svc_i3c_master_free_xfer()
984 struct svc_i3c_xfer *xfer) in svc_i3c_master_dequeue_xfer_locked() argument
986 if (master->xferqueue.cur == xfer) in svc_i3c_master_dequeue_xfer_locked()
989 list_del_init(&xfer->node); in svc_i3c_master_dequeue_xfer_locked()
993 struct svc_i3c_xfer *xfer) in svc_i3c_master_dequeue_xfer() argument
998 svc_i3c_master_dequeue_xfer_locked(master, xfer); in svc_i3c_master_dequeue_xfer()
1004 struct svc_i3c_xfer *xfer = master->xferqueue.cur; in svc_i3c_master_start_xfer_locked() local
1007 if (!xfer) in svc_i3c_master_start_xfer_locked()
1010 for (i = 0; i < xfer->ncmds; i++) { in svc_i3c_master_start_xfer_locked()
1011 struct svc_i3c_cmd *cmd = &xfer->cmds[i]; in svc_i3c_master_start_xfer_locked()
1013 ret = svc_i3c_master_xfer(master, cmd->rnw, xfer->type, in svc_i3c_master_start_xfer_locked()
1021 xfer->ret = ret; in svc_i3c_master_start_xfer_locked()
1022 complete(&xfer->comp); in svc_i3c_master_start_xfer_locked()
1025 svc_i3c_master_dequeue_xfer_locked(master, xfer); in svc_i3c_master_start_xfer_locked()
1027 xfer = list_first_entry_or_null(&master->xferqueue.list, in svc_i3c_master_start_xfer_locked()
1030 if (xfer) in svc_i3c_master_start_xfer_locked()
1031 list_del_init(&xfer->node); in svc_i3c_master_start_xfer_locked()
1033 master->xferqueue.cur = xfer; in svc_i3c_master_start_xfer_locked()
1038 struct svc_i3c_xfer *xfer) in svc_i3c_master_enqueue_xfer() argument
1042 init_completion(&xfer->comp); in svc_i3c_master_enqueue_xfer()
1045 list_add_tail(&xfer->node, &master->xferqueue.list); in svc_i3c_master_enqueue_xfer()
1047 master->xferqueue.cur = xfer; in svc_i3c_master_enqueue_xfer()
1065 struct svc_i3c_xfer *xfer; in svc_i3c_master_send_bdcast_ccc_cmd() local
1070 xfer = svc_i3c_master_alloc_xfer(master, 1); in svc_i3c_master_send_bdcast_ccc_cmd()
1071 if (!xfer) in svc_i3c_master_send_bdcast_ccc_cmd()
1076 svc_i3c_master_free_xfer(xfer); in svc_i3c_master_send_bdcast_ccc_cmd()
1083 xfer->type = SVC_I3C_MCTRL_TYPE_I3C; in svc_i3c_master_send_bdcast_ccc_cmd()
1085 cmd = &xfer->cmds[0]; in svc_i3c_master_send_bdcast_ccc_cmd()
1094 svc_i3c_master_enqueue_xfer(master, xfer); in svc_i3c_master_send_bdcast_ccc_cmd()
1095 if (!wait_for_completion_timeout(&xfer->comp, msecs_to_jiffies(1000))) in svc_i3c_master_send_bdcast_ccc_cmd()
1096 svc_i3c_master_dequeue_xfer(master, xfer); in svc_i3c_master_send_bdcast_ccc_cmd()
1098 ret = xfer->ret; in svc_i3c_master_send_bdcast_ccc_cmd()
1100 svc_i3c_master_free_xfer(xfer); in svc_i3c_master_send_bdcast_ccc_cmd()
1110 struct svc_i3c_xfer *xfer; in svc_i3c_master_send_direct_ccc_cmd() local
1114 xfer = svc_i3c_master_alloc_xfer(master, 2); in svc_i3c_master_send_direct_ccc_cmd()
1115 if (!xfer) in svc_i3c_master_send_direct_ccc_cmd()
1118 xfer->type = SVC_I3C_MCTRL_TYPE_I3C; in svc_i3c_master_send_direct_ccc_cmd()
1121 cmd = &xfer->cmds[0]; in svc_i3c_master_send_direct_ccc_cmd()
1131 cmd = &xfer->cmds[1]; in svc_i3c_master_send_direct_ccc_cmd()
1140 svc_i3c_master_enqueue_xfer(master, xfer); in svc_i3c_master_send_direct_ccc_cmd()
1141 if (!wait_for_completion_timeout(&xfer->comp, msecs_to_jiffies(1000))) in svc_i3c_master_send_direct_ccc_cmd()
1142 svc_i3c_master_dequeue_xfer(master, xfer); in svc_i3c_master_send_direct_ccc_cmd()
1144 ret = xfer->ret; in svc_i3c_master_send_direct_ccc_cmd()
1145 svc_i3c_master_free_xfer(xfer); in svc_i3c_master_send_direct_ccc_cmd()
1169 struct svc_i3c_xfer *xfer; in svc_i3c_master_priv_xfers() local
1172 xfer = svc_i3c_master_alloc_xfer(master, nxfers); in svc_i3c_master_priv_xfers()
1173 if (!xfer) in svc_i3c_master_priv_xfers()
1176 xfer->type = SVC_I3C_MCTRL_TYPE_I3C; in svc_i3c_master_priv_xfers()
1179 struct svc_i3c_cmd *cmd = &xfer->cmds[i]; in svc_i3c_master_priv_xfers()
1190 svc_i3c_master_enqueue_xfer(master, xfer); in svc_i3c_master_priv_xfers()
1191 if (!wait_for_completion_timeout(&xfer->comp, msecs_to_jiffies(1000))) in svc_i3c_master_priv_xfers()
1192 svc_i3c_master_dequeue_xfer(master, xfer); in svc_i3c_master_priv_xfers()
1194 ret = xfer->ret; in svc_i3c_master_priv_xfers()
1195 svc_i3c_master_free_xfer(xfer); in svc_i3c_master_priv_xfers()
1207 struct svc_i3c_xfer *xfer; in svc_i3c_master_i2c_xfers() local
1210 xfer = svc_i3c_master_alloc_xfer(master, nxfers); in svc_i3c_master_i2c_xfers()
1211 if (!xfer) in svc_i3c_master_i2c_xfers()
1214 xfer->type = SVC_I3C_MCTRL_TYPE_I2C; in svc_i3c_master_i2c_xfers()
1217 struct svc_i3c_cmd *cmd = &xfer->cmds[i]; in svc_i3c_master_i2c_xfers()
1228 svc_i3c_master_enqueue_xfer(master, xfer); in svc_i3c_master_i2c_xfers()
1229 if (!wait_for_completion_timeout(&xfer->comp, msecs_to_jiffies(1000))) in svc_i3c_master_i2c_xfers()
1230 svc_i3c_master_dequeue_xfer(master, xfer); in svc_i3c_master_i2c_xfers()
1232 ret = xfer->ret; in svc_i3c_master_i2c_xfers()
1233 svc_i3c_master_free_xfer(xfer); in svc_i3c_master_i2c_xfers()