Lines Matching refs:desc

121 	struct jz4780_dma_hwdesc *desc;
138 struct jz4780_dma_desc *desc;
235 struct jz4780_dma_desc *desc;
240 desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
241 if (!desc)
244 desc->desc = dma_pool_alloc(jzchan->desc_pool, GFP_NOWAIT,
245 &desc->desc_phys);
246 if (!desc->desc) {
247 kfree(desc);
251 desc->count = count;
252 desc->type = type;
255 desc->transfer_type = jzchan->transfer_type_rx;
257 desc->transfer_type = jzchan->transfer_type_tx;
259 return desc;
264 struct jz4780_dma_desc *desc = to_jz4780_dma_desc(vdesc);
267 dma_pool_free(jzchan->desc_pool, desc->desc, desc->desc_phys);
268 kfree(desc);
310 struct jz4780_dma_hwdesc *desc, dma_addr_t addr, size_t len,
317 desc->dcm = JZ_DMA_DCM_SAI;
318 desc->dsa = addr;
319 desc->dta = config->dst_addr;
324 desc->dcm = JZ_DMA_DCM_DAI;
325 desc->dsa = config->src_addr;
326 desc->dta = addr;
353 desc->dcm |= tsz << JZ_DMA_DCM_TSZ_SHIFT;
354 desc->dcm |= width << JZ_DMA_DCM_SP_SHIFT;
355 desc->dcm |= width << JZ_DMA_DCM_DP_SHIFT;
357 desc->dtc = len >> jzchan->transfer_shift;
368 struct jz4780_dma_desc *desc;
372 desc = jz4780_dma_desc_alloc(jzchan, sg_len, DMA_SLAVE, direction);
373 if (!desc)
377 err = jz4780_dma_setup_hwdesc(jzchan, &desc->desc[i],
382 jz4780_dma_desc_free(&jzchan->desc->vdesc);
386 desc->desc[i].dcm |= JZ_DMA_DCM_TIE;
391 desc->desc[i].dcm |= JZ_DMA_DCM_LINK;
398 desc->desc[i].dtc |=
399 (((i + 1) * sizeof(*desc->desc)) >> 4) << 24;
403 return vchan_tx_prep(&jzchan->vchan, &desc->vdesc, flags);
412 struct jz4780_dma_desc *desc;
421 desc = jz4780_dma_desc_alloc(jzchan, periods, DMA_CYCLIC, direction);
422 if (!desc)
426 err = jz4780_dma_setup_hwdesc(jzchan, &desc->desc[i], buf_addr,
429 jz4780_dma_desc_free(&jzchan->desc->vdesc);
441 desc->desc[i].dcm |= JZ_DMA_DCM_TIE | JZ_DMA_DCM_LINK;
450 desc->desc[i].dtc |=
451 (((i + 1) * sizeof(*desc->desc)) >> 4) << 24;
455 return vchan_tx_prep(&jzchan->vchan, &desc->vdesc, flags);
463 struct jz4780_dma_desc *desc;
466 desc = jz4780_dma_desc_alloc(jzchan, 1, DMA_MEMCPY, 0);
467 if (!desc)
473 desc->transfer_type = JZ_DMA_DRT_AUTO;
475 desc->desc[0].dsa = src;
476 desc->desc[0].dta = dest;
477 desc->desc[0].dcm = JZ_DMA_DCM_TIE | JZ_DMA_DCM_SAI | JZ_DMA_DCM_DAI |
481 desc->desc[0].dtc = len >> jzchan->transfer_shift;
483 return vchan_tx_prep(&jzchan->vchan, &desc->vdesc, flags);
493 if (!jzchan->desc) {
500 jzchan->desc = to_jz4780_dma_desc(vdesc);
503 if (jzchan->desc->type == DMA_CYCLIC && vdesc->tx.callback) {
518 for (i = 0; i < jzchan->desc->count; i++)
519 jzchan->desc->desc[i].dcm &= ~JZ_DMA_DCM_LINK;
528 (jzchan->curr_hwdesc + 1) % jzchan->desc->count;
539 jzchan->desc->transfer_type);
548 jzchan->desc->desc[jzchan->curr_hwdesc].dtc);
551 desc_phys = jzchan->desc->desc_phys +
552 (jzchan->curr_hwdesc * sizeof(*jzchan->desc->desc));
568 if (vchan_issue_pending(&jzchan->vchan) && !jzchan->desc)
585 if (jzchan->desc) {
586 vchan_terminate_vdesc(&jzchan->desc->vdesc);
587 jzchan->desc = NULL;
625 struct jz4780_dma_desc *desc, unsigned int next_sg)
631 for (i = next_sg; i < desc->count; i++)
632 count += desc->desc[i].dtc & GENMASK(23, 0);
661 } else if (cookie == jzchan->desc->vdesc.tx.cookie) {
662 residue = jz4780_dma_desc_residue(jzchan, jzchan->desc,
667 if (vdesc && jzchan->desc && vdesc == &jzchan->desc->vdesc
668 && jzchan->desc->status & (JZ_DMA_DCS_AR | JZ_DMA_DCS_HLT))
680 struct jz4780_dma_desc *desc = jzchan->desc;
699 if (jzchan->desc) {
700 jzchan->desc->status = dcs;
703 if (jzchan->desc->type == DMA_CYCLIC) {
704 vchan_cyclic_callback(&jzchan->desc->vdesc);
709 (jzchan->curr_hwdesc + 1 == desc->count)) {
710 vchan_cookie_complete(&desc->vdesc);
711 jzchan->desc = NULL;