gpi_desc
struct gpi_desc *gpi_desc;
gpi_desc = to_gpi_desc(vd);
result.residue = gpi_desc->len - compl_event->length;
kfree(gpi_desc);
gpi_desc = NULL;
struct gpi_desc *gpi_desc = to_gpi_desc(vd);
kfree(gpi_desc);
gpi_desc = NULL;
static int gpi_create_i2c_tre(struct gchan *chan, struct gpi_desc *desc,
static int gpi_create_spi_tre(struct gchan *chan, struct gpi_desc *desc,
struct gpi_desc *gpi_desc;
gpi_desc = kzalloc_obj(*gpi_desc, GFP_NOWAIT);
if (!gpi_desc)
i = gpi_create_spi_tre(gchan, gpi_desc, sgl, direction);
i = gpi_create_i2c_tre(gchan, gpi_desc, sgl, direction, flags);
kfree(gpi_desc);
gpi_desc->gchan = gchan;
gpi_desc->len = sg_dma_len(sgl);
gpi_desc->num_tre = i;
return vchan_tx_prep(&gchan->vc, &gpi_desc->vd, flags);
struct gpi_desc *gpi_desc;
gpi_desc = to_gpi_desc(vd);
for (i = 0; i < gpi_desc->num_tre; i++) {
tre = &gpi_desc->tre[i];
gpi_desc->db = ch_ring->wp;
gpi_write_ch_db(gchan, &gchan->ch_ring, gpi_desc->db);
static inline struct gpi_desc *to_gpi_desc(struct virt_dma_desc *vd)
return container_of(vd, struct gpi_desc, vd);
struct gpi_desc *gpi_desc;
gpi_desc = to_gpi_desc(vd);
result.residue = gpi_desc->len - imed_event->length;
kfree(gpi_desc);
gpi_desc = NULL;