Lines Matching refs:reqs
58 struct virtio_i2c_req *reqs, in virtio_i2c_prepare_reqs() argument
67 init_completion(&reqs[i].completion); in virtio_i2c_prepare_reqs()
73 reqs[i].out_hdr.addr = cpu_to_le16(msgs[i].addr << 1); in virtio_i2c_prepare_reqs()
76 reqs[i].out_hdr.flags |= cpu_to_le32(VIRTIO_I2C_FLAGS_M_RD); in virtio_i2c_prepare_reqs()
79 reqs[i].out_hdr.flags |= cpu_to_le32(VIRTIO_I2C_FLAGS_FAIL_NEXT); in virtio_i2c_prepare_reqs()
81 sg_init_one(&out_hdr, &reqs[i].out_hdr, sizeof(reqs[i].out_hdr)); in virtio_i2c_prepare_reqs()
85 reqs[i].buf = i2c_get_dma_safe_msg_buf(&msgs[i], 1); in virtio_i2c_prepare_reqs()
86 if (!reqs[i].buf) in virtio_i2c_prepare_reqs()
89 sg_init_one(&msg_buf, reqs[i].buf, msgs[i].len); in virtio_i2c_prepare_reqs()
97 sg_init_one(&in_hdr, &reqs[i].in_hdr, sizeof(reqs[i].in_hdr)); in virtio_i2c_prepare_reqs()
100 if (virtqueue_add_sgs(vq, sgs, outcnt, incnt, &reqs[i], GFP_KERNEL)) { in virtio_i2c_prepare_reqs()
101 i2c_put_dma_safe_msg_buf(reqs[i].buf, &msgs[i], false); in virtio_i2c_prepare_reqs()
110 struct virtio_i2c_req *reqs, in virtio_i2c_complete_reqs() argument
117 struct virtio_i2c_req *req = &reqs[i]; in virtio_i2c_complete_reqs()
124 i2c_put_dma_safe_msg_buf(reqs[i].buf, &msgs[i], !failed); in virtio_i2c_complete_reqs()
138 struct virtio_i2c_req *reqs; in virtio_i2c_xfer() local
141 reqs = kcalloc(num, sizeof(*reqs), GFP_KERNEL); in virtio_i2c_xfer()
142 if (!reqs) in virtio_i2c_xfer()
145 count = virtio_i2c_prepare_reqs(vq, reqs, msgs, num); in virtio_i2c_xfer()
159 count = virtio_i2c_complete_reqs(vq, reqs, msgs, count); in virtio_i2c_xfer()
162 kfree(reqs); in virtio_i2c_xfer()