On Mon, 24 Jan 2011 23:47:22 +0200 Felix Radensky <fe...@embedded-sol.com> wrote:
> static int dma_transfer(struct dma_chan *chan, void *dst, void *src, > size_t len) > { > int rc = 0; > dma_addr_t dma_src; > dma_addr_t dma_dst; > dma_cookie_t cookie; > struct completion cmp; > enum dma_status status; > enum dma_ctrl_flags flags = 0; > struct dma_device *dev = chan->device; > struct dma_async_tx_descriptor *tx = NULL; > unsigned long tmo = msecs_to_jiffies(FPGA_DMA_TIMEOUT_MS); > > dma_src = dma_map_single(dev->dev, src, len, DMA_TO_DEVICE); > if (dma_mapping_error(dev->dev, dma_src)) { > printk(KERN_ERR "Failed to map src for DMA\n"); > return -EIO; > } > > dma_dst = (dma_addr_t)dst; Why are you casting a virtual address to dma_addr_t? > The destination address is PCI memory address returned by > pci_ioremap_bar(). You need the physical address. -Scott _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev