X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fdma.h;h=a64580a61ff70aa12c7bcae9b1c48d9deaf39d23;hb=64cfeda8ae2e95751c5d2dfa4dc4a906478ae2f6;hp=d1c3d0df7d91552dfe985a280f35aa3e02eee092;hpb=c49aff3e66b930aa06936afee401cf5e19377958;p=platform%2Fkernel%2Fu-boot.git diff --git a/include/dma.h b/include/dma.h index d1c3d0d..a64580a 100644 --- a/include/dma.h +++ b/include/dma.h @@ -9,9 +9,12 @@ #ifndef _DMA_H_ #define _DMA_H_ +#include #include #include +struct udevice; + /* * enum dma_direction - dma transfer direction indicator * @DMA_MEM_TO_MEM: Memcpy mode @@ -290,8 +293,21 @@ int dma_receive(struct dma *dma, void **dst, void *metadata); * @return zero on success, or -ve error code. */ int dma_send(struct dma *dma, void *src, size_t len, void *metadata); + +/** + * dma_get_cfg() - Get DMA channel configuration for client's use + * + * @dma: The DMA Channel to manipulate + * @cfg_id: DMA provider specific ID to identify what + * configuration data client needs + * @cfg_data: Pointer to store pointer to DMA driver specific + * configuration data for the given cfg_id (output param) + * @return zero on success, or -ve error code. + */ +int dma_get_cfg(struct dma *dma, u32 cfg_id, void **cfg_data); #endif /* CONFIG_DMA_CHANNELS */ +#if CONFIG_IS_ENABLED(DMA) /* * dma_get_device - get a DMA device which supports transfer * type of transfer_type @@ -315,5 +331,15 @@ int dma_get_device(u32 transfer_type, struct udevice **devp); transferred and on failure return error code. */ int dma_memcpy(void *dst, void *src, size_t len); +#else +static inline int dma_get_device(u32 transfer_type, struct udevice **devp) +{ + return -ENOSYS; +} +static inline int dma_memcpy(void *dst, void *src, size_t len) +{ + return -ENOSYS; +} +#endif /* CONFIG_DMA */ #endif /* _DMA_H_ */