@@ -40,15 +40,9 @@ int dma_get_device(u32 transfer_type, struct udevice **devp)
return ret;
}
-int dma_memcpy(void *dst, void *src, size_t len)
+int dma_memcpy(struct udevice *dev, void *dst, void *src, size_t len)
{
- struct udevice *dev;
const struct dma_ops *ops;
- int ret;
-
- ret = dma_get_device(DMA_SUPPORTS_MEM_TO_MEM, &dev);
- if (ret < 0)
- return ret;
ops = device_get_ops(dev);
if (!ops->transfer)
@@ -457,7 +457,14 @@ int spi_flash_read_common(struct spi_flash *flash, const u8 *cmd,
void __weak spi_flash_copy_mmap(void *data, void *offset, size_t len)
{
#ifdef CONFIG_DMA
- if (!dma_memcpy(data, offset, len))
+ struct udevice *dev;
+ int ret;
+
+ ret = dma_get_device(DMA_SUPPORTS_MEM_TO_MEM, &dev);
+ if (ret < 0)
+ return;
+
+ if (!dma_memcpy(dev, data, offset, len))
return;
#endif
memcpy(data, offset, len);
@@ -75,13 +75,14 @@ int dma_get_device(u32 transfer_type, struct udevice **devp);
* dma_memcpy - try to use DMA to do a mem copy which will be
* much faster than CPU mem copy
*
+ * @dev - The DMA device
* @dst - destination pointer
* @src - souce pointer
* @len - data length to be copied
* @return - on successful transfer returns no of bytes
transferred and on failure return error code.
*/
-int dma_memcpy(void *dst, void *src, size_t len);
+int dma_memcpy(struct udevice *dev, void *dst, void *src, size_t len);
/*
* dma_memcpy_zeroes - Fill up destination with zeros through DMA.