Lines Matching defs:desc

88 	struct fsl_re_desc *desc;
93 desc = to_fsl_re_dma_desc(tx);
98 list_add_tail(&desc->node, &re_chan->submit_q);
109 struct fsl_re_desc *desc, *_desc;
118 list_for_each_entry_safe(desc, _desc, &re_chan->submit_q, node) {
122 list_move_tail(&desc->node, &re_chan->active_q);
125 &desc->hwdesc, sizeof(struct fsl_re_hw_desc));
135 static void fsl_re_desc_done(struct fsl_re_desc *desc)
137 dma_cookie_complete(&desc->async_tx);
138 dma_descriptor_unmap(&desc->async_tx);
139 dmaengine_desc_get_callback_invoke(&desc->async_tx, NULL);
144 struct fsl_re_desc *desc, *_desc;
148 list_for_each_entry_safe(desc, _desc, &re_chan->ack_q, node) {
149 if (async_tx_test_ack(&desc->async_tx))
150 list_move_tail(&desc->node, &re_chan->free_q);
160 struct fsl_re_desc *desc, *_desc;
173 list_for_each_entry_safe(desc, _desc, &re_chan->active_q,
176 if (desc->hwdesc.lbea32 == hwdesc->lbea32 &&
177 desc->hwdesc.addr_low == hwdesc->addr_low) {
184 fsl_re_desc_done(desc);
185 list_move_tail(&desc->node, &re_chan->ack_q);
250 struct fsl_re_desc *desc,
253 desc->re_chan = re_chan;
254 desc->async_tx.tx_submit = fsl_re_tx_submit;
255 dma_async_tx_descriptor_init(&desc->async_tx, &re_chan->chan);
256 INIT_LIST_HEAD(&desc->node);
258 desc->hwdesc.fmt32 = FSL_RE_FRAME_FORMAT << FSL_RE_HWDESC_FMT_SHIFT;
259 desc->hwdesc.lbea32 = upper_32_bits(paddr);
260 desc->hwdesc.addr_low = lower_32_bits(paddr);
261 desc->cf_addr = cf;
262 desc->cf_paddr = paddr;
264 desc->cdb_addr = (void *)(cf + FSL_RE_CF_DESC_SIZE);
265 desc->cdb_paddr = paddr + FSL_RE_CF_DESC_SIZE;
267 return desc;
273 struct fsl_re_desc *desc = NULL;
282 /* take one desc from free_q */
283 desc = list_first_entry(&re_chan->free_q,
285 list_del(&desc->node);
287 desc->async_tx.flags = flags;
291 if (!desc) {
292 desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
293 if (!desc)
299 kfree(desc);
303 desc = fsl_re_init_desc(re_chan, desc, cf, paddr);
304 desc->async_tx.flags = flags;
311 return desc;
320 struct fsl_re_desc *desc;
335 desc = fsl_re_chan_alloc_desc(re_chan, flags);
336 if (desc <= 0)
350 xor = desc->cdb_addr;
366 cf = desc->cf_addr;
367 fill_cfd_frame(cf, 0, sizeof(*xor), desc->cdb_paddr, 0);
382 return &desc->async_tx;
407 struct fsl_re_desc *desc;
439 desc = to_fsl_re_dma_desc(tx);
459 desc = fsl_re_chan_alloc_desc(re_chan, flags);
460 if (desc <= 0)
470 pq = desc->cdb_addr;
487 cf = desc->cf_addr;
488 fill_cfd_frame(cf, 0, sizeof(struct fsl_re_pq_cdb), desc->cdb_paddr, 0);
516 return &desc->async_tx;
529 struct fsl_re_desc *desc;
543 desc = fsl_re_chan_alloc_desc(re_chan, flags);
544 if (desc <= 0)
553 move = desc->cdb_addr;
557 cf = desc->cf_addr;
558 fill_cfd_frame(cf, 0, sizeof(*move), desc->cdb_paddr, 0);
568 return &desc->async_tx;
574 struct fsl_re_desc *desc;
581 desc = kzalloc(sizeof(*desc), GFP_KERNEL);
582 if (!desc)
588 kfree(desc);
592 INIT_LIST_HEAD(&desc->node);
593 fsl_re_init_desc(re_chan, desc, cf, paddr);
595 list_add_tail(&desc->node, &re_chan->free_q);
604 struct fsl_re_desc *desc;
608 desc = list_first_entry(&re_chan->free_q,
612 list_del(&desc->node);
613 dma_pool_free(re_chan->re_dev->cf_desc_pool, desc->cf_addr,
614 desc->cf_paddr);
615 kfree(desc);
810 dev_err(dev, "No memory for fsl re_cf desc pool\n");
818 dev_err(dev, "No memory for fsl re_hw desc pool\n");