mcf_edma 543 arch/m68k/coldfire/device.c static struct platform_device mcf_edma = { mcf_edma 587 arch/m68k/coldfire/device.c &mcf_edma, mcf_edma 19 drivers/dma/mcf-edma.c struct fsl_edma_engine *mcf_edma = dev_id; mcf_edma 20 drivers/dma/mcf-edma.c struct edma_regs *regs = &mcf_edma->regs; mcf_edma 31 drivers/dma/mcf-edma.c for (ch = 0; ch < mcf_edma->n_chans; ch++) { mcf_edma 35 drivers/dma/mcf-edma.c mcf_chan = &mcf_edma->chans[ch]; mcf_edma 60 drivers/dma/mcf-edma.c struct fsl_edma_engine *mcf_edma = dev_id; mcf_edma 61 drivers/dma/mcf-edma.c struct edma_regs *regs = &mcf_edma->regs; mcf_edma 70 drivers/dma/mcf-edma.c fsl_edma_disable_request(&mcf_edma->chans[ch]); mcf_edma 72 drivers/dma/mcf-edma.c mcf_edma->chans[ch].status = DMA_ERROR; mcf_edma 73 drivers/dma/mcf-edma.c mcf_edma->chans[ch].idle = true; mcf_edma 83 drivers/dma/mcf-edma.c fsl_edma_disable_request(&mcf_edma->chans[ch]); mcf_edma 85 drivers/dma/mcf-edma.c mcf_edma->chans[ch].status = DMA_ERROR; mcf_edma 86 drivers/dma/mcf-edma.c mcf_edma->chans[ch].idle = true; mcf_edma 94 drivers/dma/mcf-edma.c struct fsl_edma_engine *mcf_edma) mcf_edma 105 drivers/dma/mcf-edma.c ret |= request_irq(i, mcf_edma_tx_handler, 0, "eDMA", mcf_edma); mcf_edma 115 drivers/dma/mcf-edma.c ret |= request_irq(i, mcf_edma_tx_handler, 0, "eDMA", mcf_edma); mcf_edma 122 drivers/dma/mcf-edma.c 0, "eDMA", mcf_edma); mcf_edma 130 drivers/dma/mcf-edma.c 0, "eDMA", mcf_edma); mcf_edma 139 drivers/dma/mcf-edma.c struct fsl_edma_engine *mcf_edma) mcf_edma 148 drivers/dma/mcf-edma.c free_irq(irq, mcf_edma); mcf_edma 155 drivers/dma/mcf-edma.c free_irq(irq, mcf_edma); mcf_edma 160 drivers/dma/mcf-edma.c free_irq(irq, mcf_edma); mcf_edma 164 drivers/dma/mcf-edma.c free_irq(irq, mcf_edma); mcf_edma 175 drivers/dma/mcf-edma.c struct fsl_edma_engine *mcf_edma; mcf_edma 188 drivers/dma/mcf-edma.c len = sizeof(*mcf_edma) + sizeof(*mcf_chan) * chans; mcf_edma 189 drivers/dma/mcf-edma.c mcf_edma = devm_kzalloc(&pdev->dev, len, GFP_KERNEL); mcf_edma 190 drivers/dma/mcf-edma.c if (!mcf_edma) mcf_edma 193 drivers/dma/mcf-edma.c mcf_edma->n_chans = chans; mcf_edma 196 drivers/dma/mcf-edma.c mcf_edma->drvdata = &mcf_data; mcf_edma 197 drivers/dma/mcf-edma.c mcf_edma->big_endian = 1; mcf_edma 199 drivers/dma/mcf-edma.c if (!mcf_edma->n_chans) { mcf_edma 201 drivers/dma/mcf-edma.c mcf_edma->n_chans = 64; mcf_edma 204 drivers/dma/mcf-edma.c mutex_init(&mcf_edma->fsl_edma_mutex); mcf_edma 208 drivers/dma/mcf-edma.c mcf_edma->membase = devm_ioremap_resource(&pdev->dev, res); mcf_edma 209 drivers/dma/mcf-edma.c if (IS_ERR(mcf_edma->membase)) mcf_edma 210 drivers/dma/mcf-edma.c return PTR_ERR(mcf_edma->membase); mcf_edma 212 drivers/dma/mcf-edma.c fsl_edma_setup_regs(mcf_edma); mcf_edma 213 drivers/dma/mcf-edma.c regs = &mcf_edma->regs; mcf_edma 215 drivers/dma/mcf-edma.c INIT_LIST_HEAD(&mcf_edma->dma_dev.channels); mcf_edma 216 drivers/dma/mcf-edma.c for (i = 0; i < mcf_edma->n_chans; i++) { mcf_edma 217 drivers/dma/mcf-edma.c struct fsl_edma_chan *mcf_chan = &mcf_edma->chans[i]; mcf_edma 219 drivers/dma/mcf-edma.c mcf_chan->edma = mcf_edma; mcf_edma 224 drivers/dma/mcf-edma.c vchan_init(&mcf_chan->vchan, &mcf_edma->dma_dev); mcf_edma 231 drivers/dma/mcf-edma.c ret = mcf_edma->drvdata->setup_irq(pdev, mcf_edma); mcf_edma 235 drivers/dma/mcf-edma.c dma_cap_set(DMA_PRIVATE, mcf_edma->dma_dev.cap_mask); mcf_edma 236 drivers/dma/mcf-edma.c dma_cap_set(DMA_SLAVE, mcf_edma->dma_dev.cap_mask); mcf_edma 237 drivers/dma/mcf-edma.c dma_cap_set(DMA_CYCLIC, mcf_edma->dma_dev.cap_mask); mcf_edma 239 drivers/dma/mcf-edma.c mcf_edma->dma_dev.dev = &pdev->dev; mcf_edma 240 drivers/dma/mcf-edma.c mcf_edma->dma_dev.device_alloc_chan_resources = mcf_edma 242 drivers/dma/mcf-edma.c mcf_edma->dma_dev.device_free_chan_resources = mcf_edma 244 drivers/dma/mcf-edma.c mcf_edma->dma_dev.device_config = fsl_edma_slave_config; mcf_edma 245 drivers/dma/mcf-edma.c mcf_edma->dma_dev.device_prep_dma_cyclic = mcf_edma 247 drivers/dma/mcf-edma.c mcf_edma->dma_dev.device_prep_slave_sg = fsl_edma_prep_slave_sg; mcf_edma 248 drivers/dma/mcf-edma.c mcf_edma->dma_dev.device_tx_status = fsl_edma_tx_status; mcf_edma 249 drivers/dma/mcf-edma.c mcf_edma->dma_dev.device_pause = fsl_edma_pause; mcf_edma 250 drivers/dma/mcf-edma.c mcf_edma->dma_dev.device_resume = fsl_edma_resume; mcf_edma 251 drivers/dma/mcf-edma.c mcf_edma->dma_dev.device_terminate_all = fsl_edma_terminate_all; mcf_edma 252 drivers/dma/mcf-edma.c mcf_edma->dma_dev.device_issue_pending = fsl_edma_issue_pending; mcf_edma 254 drivers/dma/mcf-edma.c mcf_edma->dma_dev.src_addr_widths = FSL_EDMA_BUSWIDTHS; mcf_edma 255 drivers/dma/mcf-edma.c mcf_edma->dma_dev.dst_addr_widths = FSL_EDMA_BUSWIDTHS; mcf_edma 256 drivers/dma/mcf-edma.c mcf_edma->dma_dev.directions = mcf_edma 259 drivers/dma/mcf-edma.c mcf_edma->dma_dev.filter.fn = mcf_edma_filter_fn; mcf_edma 260 drivers/dma/mcf-edma.c mcf_edma->dma_dev.filter.map = pdata->slave_map; mcf_edma 261 drivers/dma/mcf-edma.c mcf_edma->dma_dev.filter.mapcnt = pdata->slavecnt; mcf_edma 263 drivers/dma/mcf-edma.c platform_set_drvdata(pdev, mcf_edma); mcf_edma 265 drivers/dma/mcf-edma.c ret = dma_async_device_register(&mcf_edma->dma_dev); mcf_edma 280 drivers/dma/mcf-edma.c struct fsl_edma_engine *mcf_edma = platform_get_drvdata(pdev); mcf_edma 282 drivers/dma/mcf-edma.c mcf_edma_irq_free(pdev, mcf_edma); mcf_edma 283 drivers/dma/mcf-edma.c fsl_edma_cleanup_vchan(&mcf_edma->dma_dev); mcf_edma 284 drivers/dma/mcf-edma.c dma_async_device_unregister(&mcf_edma->dma_dev);