Lines Matching defs:ccp
16 #include <linux/ccp.h>
18 #include "ccp-dev.h"
43 static unsigned int ccp_get_dma_chan_attr(struct ccp_device *ccp)
47 return ccp->vdata->dma_chan_attr;
56 dev_info_once(ccp->dev, "Invalid value for dma_chan_attr: %d\n",
58 return ccp->vdata->dma_chan_attr;
62 static void ccp_free_cmd_resources(struct ccp_device *ccp,
69 kmem_cache_free(ccp->dma_cmd_cache, cmd);
73 static void ccp_free_desc_resources(struct ccp_device *ccp,
79 ccp_free_cmd_resources(ccp, &desc->active);
80 ccp_free_cmd_resources(ccp, &desc->pending);
83 kmem_cache_free(ccp->dma_desc_cache, desc);
93 dev_dbg(chan->ccp->dev, "%s - chan=%p\n", __func__, chan);
97 ccp_free_desc_resources(chan->ccp, &chan->complete);
98 ccp_free_desc_resources(chan->ccp, &chan->active);
99 ccp_free_desc_resources(chan->ccp, &chan->pending);
100 ccp_free_desc_resources(chan->ccp, &chan->created);
105 static void ccp_cleanup_desc_resources(struct ccp_device *ccp,
114 dev_dbg(ccp->dev, "%s - desc=%p\n", __func__, desc);
116 ccp_free_cmd_resources(ccp, &desc->active);
117 ccp_free_cmd_resources(ccp, &desc->pending);
120 kmem_cache_free(ccp->dma_desc_cache, desc);
129 dev_dbg(chan->ccp->dev, "%s - chan=%s\n", __func__,
134 ccp_cleanup_desc_resources(chan->ccp, &chan->complete);
147 dev_dbg(desc->ccp->dev, "%s - tx %d, cmd=%p\n", __func__,
154 dev_dbg(desc->ccp->dev, "%s - error: ret=%d, tx %d, cmd=%p\n", __func__,
169 dev_dbg(desc->ccp->dev, "%s - freeing tx %d cmd=%p\n",
173 kmem_cache_free(desc->ccp->dma_cmd_cache, cmd);
208 ccp_free_cmd_resources(desc->ccp,
223 dev_dbg(desc->ccp->dev,
273 dev_dbg(chan->ccp->dev, "%s - tx %d callback, err=%d\n",
315 dev_dbg(chan->ccp->dev, "%s - added tx descriptor %d to pending list\n",
325 cmd = kmem_cache_alloc(chan->ccp->dma_cmd_cache, GFP_NOWAIT);
337 desc = kmem_cache_zalloc(chan->ccp->dma_desc_cache, GFP_NOWAIT);
344 desc->ccp = chan->ccp;
362 struct ccp_device *ccp = chan->ccp;
427 ccp_cmd->ccp = chan->ccp;
443 dev_dbg(ccp->dev,
462 dev_dbg(ccp->dev, "%s - desc=%p\n", __func__, desc);
473 ccp_free_cmd_resources(ccp, &desc->pending);
474 kmem_cache_free(ccp->dma_desc_cache, desc);
488 dev_dbg(chan->ccp->dev,
528 dev_dbg(chan->ccp->dev, "%s\n", __func__);
573 dev_dbg(chan->ccp->dev, "%s - %u\n", __func__, ret);
620 dev_dbg(chan->ccp->dev, "%s\n", __func__);
627 ccp_free_desc_resources(chan->ccp, &chan->active);
628 ccp_free_desc_resources(chan->ccp, &chan->pending);
629 ccp_free_desc_resources(chan->ccp, &chan->created);
636 static void ccp_dma_release(struct ccp_device *ccp)
642 for (i = 0; i < ccp->cmd_q_count; i++) {
643 chan = ccp->ccp_dma_chan + i;
651 static void ccp_dma_release_channels(struct ccp_device *ccp)
657 for (i = 0; i < ccp->cmd_q_count; i++) {
658 chan = ccp->ccp_dma_chan + i;
666 int ccp_dmaengine_register(struct ccp_device *ccp)
669 struct dma_device *dma_dev = &ccp->dma_dev;
679 ccp->ccp_dma_chan = devm_kcalloc(ccp->dev, ccp->cmd_q_count,
680 sizeof(*(ccp->ccp_dma_chan)),
682 if (!ccp->ccp_dma_chan)
685 dma_cmd_cache_name = devm_kasprintf(ccp->dev, GFP_KERNEL,
687 ccp->name);
691 ccp->dma_cmd_cache = kmem_cache_create(dma_cmd_cache_name,
695 if (!ccp->dma_cmd_cache)
698 dma_desc_cache_name = devm_kasprintf(ccp->dev, GFP_KERNEL,
700 ccp->name);
706 ccp->dma_desc_cache = kmem_cache_create(dma_desc_cache_name,
710 if (!ccp->dma_desc_cache) {
715 dma_dev->dev = ccp->dev;
716 dma_dev->src_addr_widths = CCP_DMA_WIDTH(dma_get_mask(ccp->dev));
717 dma_dev->dst_addr_widths = CCP_DMA_WIDTH(dma_get_mask(ccp->dev));
729 if (ccp_get_dma_chan_attr(ccp) == DMA_PRIVATE)
733 for (i = 0; i < ccp->cmd_q_count; i++) {
734 chan = ccp->ccp_dma_chan + i;
737 chan->ccp = ccp;
770 ccp_dma_release(ccp);
771 kmem_cache_destroy(ccp->dma_desc_cache);
774 kmem_cache_destroy(ccp->dma_cmd_cache);
779 void ccp_dmaengine_unregister(struct ccp_device *ccp)
781 struct dma_device *dma_dev = &ccp->dma_dev;
786 ccp_dma_release_channels(ccp);
788 ccp_dma_release(ccp);
790 kmem_cache_destroy(ccp->dma_desc_cache);
791 kmem_cache_destroy(ccp->dma_cmd_cache);