Lines Matching refs:desc

89 	struct fsl_re_desc *desc;
94 desc = to_fsl_re_dma_desc(tx);
99 list_add_tail(&desc->node, &re_chan->submit_q);
110 struct fsl_re_desc *desc, *_desc;
119 list_for_each_entry_safe(desc, _desc, &re_chan->submit_q, node) {
123 list_move_tail(&desc->node, &re_chan->active_q);
126 &desc->hwdesc, sizeof(struct fsl_re_hw_desc));
136 static void fsl_re_desc_done(struct fsl_re_desc *desc)
138 dma_cookie_complete(&desc->async_tx);
139 dma_descriptor_unmap(&desc->async_tx);
140 dmaengine_desc_get_callback_invoke(&desc->async_tx, NULL);
145 struct fsl_re_desc *desc, *_desc;
149 list_for_each_entry_safe(desc, _desc, &re_chan->ack_q, node) {
150 if (async_tx_test_ack(&desc->async_tx))
151 list_move_tail(&desc->node, &re_chan->free_q);
161 struct fsl_re_desc *desc, *_desc;
174 list_for_each_entry_safe(desc, _desc, &re_chan->active_q,
177 if (desc->hwdesc.lbea32 == hwdesc->lbea32 &&
178 desc->hwdesc.addr_low == hwdesc->addr_low) {
185 fsl_re_desc_done(desc);
186 list_move_tail(&desc->node, &re_chan->ack_q);
251 struct fsl_re_desc *desc,
254 desc->re_chan = re_chan;
255 desc->async_tx.tx_submit = fsl_re_tx_submit;
256 dma_async_tx_descriptor_init(&desc->async_tx, &re_chan->chan);
257 INIT_LIST_HEAD(&desc->node);
259 desc->hwdesc.fmt32 = FSL_RE_FRAME_FORMAT << FSL_RE_HWDESC_FMT_SHIFT;
260 desc->hwdesc.lbea32 = upper_32_bits(paddr);
261 desc->hwdesc.addr_low = lower_32_bits(paddr);
262 desc->cf_addr = cf;
263 desc->cf_paddr = paddr;
265 desc->cdb_addr = (void *)(cf + FSL_RE_CF_DESC_SIZE);
266 desc->cdb_paddr = paddr + FSL_RE_CF_DESC_SIZE;
268 return desc;
274 struct fsl_re_desc *desc = NULL;
283 /* take one desc from free_q */
284 desc = list_first_entry(&re_chan->free_q,
286 list_del(&desc->node);
288 desc->async_tx.flags = flags;
292 if (!desc) {
293 desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
294 if (!desc)
300 kfree(desc);
304 desc = fsl_re_init_desc(re_chan, desc, cf, paddr);
305 desc->async_tx.flags = flags;
312 return desc;
321 struct fsl_re_desc *desc;
336 desc = fsl_re_chan_alloc_desc(re_chan, flags);
337 if (desc <= 0)
351 xor = desc->cdb_addr;
367 cf = desc->cf_addr;
368 fill_cfd_frame(cf, 0, sizeof(*xor), desc->cdb_paddr, 0);
383 return &desc->async_tx;
408 struct fsl_re_desc *desc;
440 desc = to_fsl_re_dma_desc(tx);
460 desc = fsl_re_chan_alloc_desc(re_chan, flags);
461 if (desc <= 0)
471 pq = desc->cdb_addr;
488 cf = desc->cf_addr;
489 fill_cfd_frame(cf, 0, sizeof(struct fsl_re_pq_cdb), desc->cdb_paddr, 0);
517 return &desc->async_tx;
530 struct fsl_re_desc *desc;
544 desc = fsl_re_chan_alloc_desc(re_chan, flags);
545 if (desc <= 0)
554 move = desc->cdb_addr;
558 cf = desc->cf_addr;
559 fill_cfd_frame(cf, 0, sizeof(*move), desc->cdb_paddr, 0);
569 return &desc->async_tx;
575 struct fsl_re_desc *desc;
582 desc = kzalloc(sizeof(*desc), GFP_KERNEL);
583 if (!desc)
589 kfree(desc);
593 INIT_LIST_HEAD(&desc->node);
594 fsl_re_init_desc(re_chan, desc, cf, paddr);
596 list_add_tail(&desc->node, &re_chan->free_q);
605 struct fsl_re_desc *desc;
609 desc = list_first_entry(&re_chan->free_q,
613 list_del(&desc->node);
614 dma_pool_free(re_chan->re_dev->cf_desc_pool, desc->cf_addr,
615 desc->cf_paddr);
616 kfree(desc);
811 dev_err(dev, "No memory for fsl re_cf desc pool\n");
819 dev_err(dev, "No memory for fsl re_hw desc pool\n");