Lines Matching refs:xdev
211 struct xilinx_vdma_device *xdev; member
261 return ioread32(chan->xdev->regs + reg); in vdma_read()
266 iowrite32(value, chan->xdev->regs + reg); in vdma_write()
1114 static int xilinx_vdma_chan_probe(struct xilinx_vdma_device *xdev, in xilinx_vdma_chan_probe() argument
1123 chan = devm_kzalloc(xdev->dev, sizeof(*chan), GFP_KERNEL); in xilinx_vdma_chan_probe()
1127 chan->dev = xdev->dev; in xilinx_vdma_chan_probe()
1128 chan->xdev = xdev; in xilinx_vdma_chan_probe()
1129 chan->has_sg = xdev->has_sg; in xilinx_vdma_chan_probe()
1142 dev_err(xdev->dev, "missing xlnx,datawidth property\n"); in xilinx_vdma_chan_probe()
1152 xdev->common.copy_align = fls(width - 1); in xilinx_vdma_chan_probe()
1161 if (xdev->flush_on_fsync == XILINX_VDMA_FLUSH_BOTH || in xilinx_vdma_chan_probe()
1162 xdev->flush_on_fsync == XILINX_VDMA_FLUSH_MM2S) in xilinx_vdma_chan_probe()
1172 if (xdev->flush_on_fsync == XILINX_VDMA_FLUSH_BOTH || in xilinx_vdma_chan_probe()
1173 xdev->flush_on_fsync == XILINX_VDMA_FLUSH_S2MM) in xilinx_vdma_chan_probe()
1176 dev_err(xdev->dev, "Invalid channel compatible node\n"); in xilinx_vdma_chan_probe()
1185 dev_err(xdev->dev, "unable to request IRQ %d\n", chan->irq); in xilinx_vdma_chan_probe()
1197 chan->common.device = &xdev->common; in xilinx_vdma_chan_probe()
1199 list_add_tail(&chan->common.device_node, &xdev->common.channels); in xilinx_vdma_chan_probe()
1200 xdev->chan[chan->id] = chan; in xilinx_vdma_chan_probe()
1205 dev_err(xdev->dev, "Reset channel failed\n"); in xilinx_vdma_chan_probe()
1222 struct xilinx_vdma_device *xdev = ofdma->of_dma_data; in of_dma_xilinx_xlate() local
1228 return dma_get_slave_channel(&xdev->chan[chan_id]->common); in of_dma_xilinx_xlate()
1240 struct xilinx_vdma_device *xdev; in xilinx_vdma_probe() local
1247 xdev = devm_kzalloc(&pdev->dev, sizeof(*xdev), GFP_KERNEL); in xilinx_vdma_probe()
1248 if (!xdev) in xilinx_vdma_probe()
1251 xdev->dev = &pdev->dev; in xilinx_vdma_probe()
1255 xdev->regs = devm_ioremap_resource(&pdev->dev, io); in xilinx_vdma_probe()
1256 if (IS_ERR(xdev->regs)) in xilinx_vdma_probe()
1257 return PTR_ERR(xdev->regs); in xilinx_vdma_probe()
1260 xdev->has_sg = of_property_read_bool(node, "xlnx,include-sg"); in xilinx_vdma_probe()
1264 dev_err(xdev->dev, "missing xlnx,num-fstores property\n"); in xilinx_vdma_probe()
1269 &xdev->flush_on_fsync); in xilinx_vdma_probe()
1271 dev_warn(xdev->dev, "missing xlnx,flush-fsync property\n"); in xilinx_vdma_probe()
1274 xdev->common.dev = &pdev->dev; in xilinx_vdma_probe()
1276 INIT_LIST_HEAD(&xdev->common.channels); in xilinx_vdma_probe()
1277 dma_cap_set(DMA_SLAVE, xdev->common.cap_mask); in xilinx_vdma_probe()
1278 dma_cap_set(DMA_PRIVATE, xdev->common.cap_mask); in xilinx_vdma_probe()
1280 xdev->common.device_alloc_chan_resources = in xilinx_vdma_probe()
1282 xdev->common.device_free_chan_resources = in xilinx_vdma_probe()
1284 xdev->common.device_prep_interleaved_dma = in xilinx_vdma_probe()
1286 xdev->common.device_terminate_all = xilinx_vdma_terminate_all; in xilinx_vdma_probe()
1287 xdev->common.device_tx_status = xilinx_vdma_tx_status; in xilinx_vdma_probe()
1288 xdev->common.device_issue_pending = xilinx_vdma_issue_pending; in xilinx_vdma_probe()
1290 platform_set_drvdata(pdev, xdev); in xilinx_vdma_probe()
1294 err = xilinx_vdma_chan_probe(xdev, child); in xilinx_vdma_probe()
1300 if (xdev->chan[i]) in xilinx_vdma_probe()
1301 xdev->chan[i]->num_frms = num_frames; in xilinx_vdma_probe()
1304 dma_async_device_register(&xdev->common); in xilinx_vdma_probe()
1307 xdev); in xilinx_vdma_probe()
1310 dma_async_device_unregister(&xdev->common); in xilinx_vdma_probe()
1320 if (xdev->chan[i]) in xilinx_vdma_probe()
1321 xilinx_vdma_chan_remove(xdev->chan[i]); in xilinx_vdma_probe()
1334 struct xilinx_vdma_device *xdev = platform_get_drvdata(pdev); in xilinx_vdma_remove() local
1339 dma_async_device_unregister(&xdev->common); in xilinx_vdma_remove()
1342 if (xdev->chan[i]) in xilinx_vdma_remove()
1343 xilinx_vdma_chan_remove(xdev->chan[i]); in xilinx_vdma_remove()