Lines Matching refs:d

127 static inline struct bcm2835_dmadev *to_bcm2835_dma_dev(struct dma_device *d)  in to_bcm2835_dma_dev()  argument
129 return container_of(d, struct bcm2835_dmadev, ddev); in to_bcm2835_dma_dev()
191 struct bcm2835_desc *d; in bcm2835_dma_start_desc() local
200 c->desc = d = to_bcm2835_dma_desc(&vd->tx); in bcm2835_dma_start_desc()
202 writel(d->control_block_base_phys, c->chan_base + BCM2835_DMA_ADDR); in bcm2835_dma_start_desc()
209 struct bcm2835_desc *d; in bcm2835_dma_callback() local
217 d = c->desc; in bcm2835_dma_callback()
219 if (d) { in bcm2835_dma_callback()
221 vchan_cyclic_callback(&d->vd); in bcm2835_dma_callback()
253 static size_t bcm2835_dma_desc_size(struct bcm2835_desc *d) in bcm2835_dma_desc_size() argument
255 return d->size; in bcm2835_dma_desc_size()
258 static size_t bcm2835_dma_desc_size_pos(struct bcm2835_desc *d, dma_addr_t addr) in bcm2835_dma_desc_size_pos() argument
263 for (size = i = 0; i < d->frames; i++) { in bcm2835_dma_desc_size_pos()
265 &d->control_block_base[i]; in bcm2835_dma_desc_size_pos()
269 if (d->dir == DMA_DEV_TO_MEM) in bcm2835_dma_desc_size_pos()
301 struct bcm2835_desc *d = c->desc; in bcm2835_dma_tx_status() local
304 if (d->dir == DMA_MEM_TO_DEV) in bcm2835_dma_tx_status()
306 else if (d->dir == DMA_DEV_TO_MEM) in bcm2835_dma_tx_status()
311 txstate->residue = bcm2835_dma_desc_size_pos(d, pos); in bcm2835_dma_tx_status()
342 struct bcm2835_desc *d; in bcm2835_dma_prep_dma_cyclic() local
373 d = kzalloc(sizeof(*d), GFP_NOWAIT); in bcm2835_dma_prep_dma_cyclic()
374 if (!d) in bcm2835_dma_prep_dma_cyclic()
377 d->dir = direction; in bcm2835_dma_prep_dma_cyclic()
378 d->frames = buf_len / period_len; in bcm2835_dma_prep_dma_cyclic()
381 d->control_block_size = d->frames * sizeof(struct bcm2835_dma_cb); in bcm2835_dma_prep_dma_cyclic()
382 d->control_block_base = dma_zalloc_coherent(chan->device->dev, in bcm2835_dma_prep_dma_cyclic()
383 d->control_block_size, &d->control_block_base_phys, in bcm2835_dma_prep_dma_cyclic()
386 if (!d->control_block_base) { in bcm2835_dma_prep_dma_cyclic()
387 kfree(d); in bcm2835_dma_prep_dma_cyclic()
395 for (frame = 0; frame < d->frames; frame++) { in bcm2835_dma_prep_dma_cyclic()
397 &d->control_block_base[frame]; in bcm2835_dma_prep_dma_cyclic()
400 if (d->dir == DMA_DEV_TO_MEM) { in bcm2835_dma_prep_dma_cyclic()
424 d->size += control_block->length; in bcm2835_dma_prep_dma_cyclic()
431 control_block->next = d->control_block_base_phys + in bcm2835_dma_prep_dma_cyclic()
433 * ((frame + 1) % d->frames); in bcm2835_dma_prep_dma_cyclic()
436 return vchan_tx_prep(&c->vc, &d->vd, flags); in bcm2835_dma_prep_dma_cyclic()
460 struct bcm2835_dmadev *d = to_bcm2835_dma_dev(c->vc.chan.device); in bcm2835_dma_terminate_all() local
468 spin_lock(&d->lock); in bcm2835_dma_terminate_all()
470 spin_unlock(&d->lock); in bcm2835_dma_terminate_all()
492 dev_err(d->ddev.dev, "DMA transfer could not be terminated\n"); in bcm2835_dma_terminate_all()
502 static int bcm2835_dma_chan_init(struct bcm2835_dmadev *d, int chan_id, int irq) in bcm2835_dma_chan_init() argument
506 c = devm_kzalloc(d->ddev.dev, sizeof(*c), GFP_KERNEL); in bcm2835_dma_chan_init()
511 vchan_init(&c->vc, &d->ddev); in bcm2835_dma_chan_init()
514 c->chan_base = BCM2835_DMA_CHANIO(d->base, chan_id); in bcm2835_dma_chan_init()
541 struct bcm2835_dmadev *d = ofdma->of_dma_data; in bcm2835_dma_xlate() local
544 chan = dma_get_any_slave_channel(&d->ddev); in bcm2835_dma_xlate()