Lines Matching refs:lmdesc
87 } lmdesc; member
216 struct rz_lmdesc *lmdesc) in rz_lmdesc_setup() argument
220 channel->lmdesc.base = lmdesc; in rz_lmdesc_setup()
221 channel->lmdesc.head = lmdesc; in rz_lmdesc_setup()
222 channel->lmdesc.tail = lmdesc; in rz_lmdesc_setup()
223 nxla = channel->lmdesc.base_dma; in rz_lmdesc_setup()
224 while (lmdesc < (channel->lmdesc.base + (DMAC_NR_LMDESC - 1))) { in rz_lmdesc_setup()
225 lmdesc->header = 0; in rz_lmdesc_setup()
226 nxla += sizeof(*lmdesc); in rz_lmdesc_setup()
227 lmdesc->nxla = nxla; in rz_lmdesc_setup()
228 lmdesc++; in rz_lmdesc_setup()
231 lmdesc->header = 0; in rz_lmdesc_setup()
232 lmdesc->nxla = channel->lmdesc.base_dma; in rz_lmdesc_setup()
242 struct rz_lmdesc *lmdesc = channel->lmdesc.head; in rz_dmac_lmdesc_recycle() local
244 while (!(lmdesc->header & HEADER_LV)) { in rz_dmac_lmdesc_recycle()
245 lmdesc->header = 0; in rz_dmac_lmdesc_recycle()
246 lmdesc++; in rz_dmac_lmdesc_recycle()
247 if (lmdesc >= (channel->lmdesc.base + DMAC_NR_LMDESC)) in rz_dmac_lmdesc_recycle()
248 lmdesc = channel->lmdesc.base; in rz_dmac_lmdesc_recycle()
250 channel->lmdesc.head = lmdesc; in rz_dmac_lmdesc_recycle()
268 nxla = channel->lmdesc.base_dma + in rz_dmac_enable_hw()
269 (sizeof(struct rz_lmdesc) * (channel->lmdesc.head - in rz_dmac_enable_hw()
270 channel->lmdesc.base)); in rz_dmac_enable_hw()
314 struct rz_lmdesc *lmdesc = channel->lmdesc.tail; in rz_dmac_prepare_desc_for_memcpy() local
319 lmdesc->sa = d->src; in rz_dmac_prepare_desc_for_memcpy()
320 lmdesc->da = d->dest; in rz_dmac_prepare_desc_for_memcpy()
321 lmdesc->tb = d->len; in rz_dmac_prepare_desc_for_memcpy()
322 lmdesc->chcfg = chcfg; in rz_dmac_prepare_desc_for_memcpy()
323 lmdesc->chitvl = 0; in rz_dmac_prepare_desc_for_memcpy()
324 lmdesc->chext = 0; in rz_dmac_prepare_desc_for_memcpy()
325 lmdesc->header = HEADER_LV; in rz_dmac_prepare_desc_for_memcpy()
339 struct rz_lmdesc *lmdesc; in rz_dmac_prepare_descs_for_slave_sg() local
351 lmdesc = channel->lmdesc.tail; in rz_dmac_prepare_descs_for_slave_sg()
355 lmdesc->sa = channel->src_per_address; in rz_dmac_prepare_descs_for_slave_sg()
356 lmdesc->da = sg_dma_address(sg); in rz_dmac_prepare_descs_for_slave_sg()
358 lmdesc->sa = sg_dma_address(sg); in rz_dmac_prepare_descs_for_slave_sg()
359 lmdesc->da = channel->dst_per_address; in rz_dmac_prepare_descs_for_slave_sg()
362 lmdesc->tb = sg_dma_len(sg); in rz_dmac_prepare_descs_for_slave_sg()
363 lmdesc->chitvl = 0; in rz_dmac_prepare_descs_for_slave_sg()
364 lmdesc->chext = 0; in rz_dmac_prepare_descs_for_slave_sg()
366 lmdesc->chcfg = (channel->chcfg & ~CHCFG_DEM); in rz_dmac_prepare_descs_for_slave_sg()
367 lmdesc->header = HEADER_LV; in rz_dmac_prepare_descs_for_slave_sg()
369 lmdesc->chcfg = channel->chcfg; in rz_dmac_prepare_descs_for_slave_sg()
370 lmdesc->header = HEADER_LV; in rz_dmac_prepare_descs_for_slave_sg()
372 if (++lmdesc >= (channel->lmdesc.base + DMAC_NR_LMDESC)) in rz_dmac_prepare_descs_for_slave_sg()
373 lmdesc = channel->lmdesc.base; in rz_dmac_prepare_descs_for_slave_sg()
376 channel->lmdesc.tail = lmdesc; in rz_dmac_prepare_descs_for_slave_sg()
441 struct rz_lmdesc *lmdesc = channel->lmdesc.base; in rz_dmac_free_chan_resources() local
449 lmdesc[i].header = 0; in rz_dmac_free_chan_resources()
761 struct rz_lmdesc *lmdesc; in rz_dmac_chan_probe() local
802 lmdesc = dma_alloc_coherent(&pdev->dev, in rz_dmac_chan_probe()
804 &channel->lmdesc.base_dma, GFP_KERNEL); in rz_dmac_chan_probe()
805 if (!lmdesc) { in rz_dmac_chan_probe()
809 rz_lmdesc_setup(channel, lmdesc); in rz_dmac_chan_probe()
959 channel->lmdesc.base, in rz_dmac_probe()
960 channel->lmdesc.base_dma); in rz_dmac_probe()
984 channel->lmdesc.base, in rz_dmac_remove()
985 channel->lmdesc.base_dma); in rz_dmac_remove()