diff options
Diffstat (limited to 'include/linux/sh_dma.h')
| -rw-r--r-- | include/linux/sh_dma.h | 41 | 
1 files changed, 16 insertions, 25 deletions
diff --git a/include/linux/sh_dma.h b/include/linux/sh_dma.h index 425450b980b..b64d6bec6f9 100644 --- a/include/linux/sh_dma.h +++ b/include/linux/sh_dma.h @@ -10,38 +10,27 @@  #ifndef SH_DMA_H  #define SH_DMA_H -#include <linux/list.h>  #include <linux/dmaengine.h> +#include <linux/list.h> +#include <linux/shdma-base.h> +#include <linux/types.h> + +struct device;  /* Used by slave DMA clients to request DMA to/from a specific peripheral */  struct sh_dmae_slave { -	unsigned int			slave_id; /* Set by the platform */ -	struct device			*dma_dev; /* Set by the platform */ -	const struct sh_dmae_slave_config	*config;  /* Set by the driver */ -}; - -struct sh_dmae_regs { -	u32 sar; /* SAR / source address */ -	u32 dar; /* DAR / destination address */ -	u32 tcr; /* TCR / transfer count */ -}; - -struct sh_desc { -	struct sh_dmae_regs hw; -	struct list_head node; -	struct dma_async_tx_descriptor async_tx; -	enum dma_transfer_direction direction; -	dma_cookie_t cookie; -	size_t partial; -	int chunks; -	int mark; +	struct shdma_slave		shdma_slave;	/* Set by the platform */  }; +/* + * Supplied by platforms to specify, how a DMA channel has to be configured for + * a certain peripheral + */  struct sh_dmae_slave_config { -	unsigned int			slave_id; -	dma_addr_t			addr; -	u32				chcr; -	char				mid_rid; +	int		slave_id; +	dma_addr_t	addr; +	u32		chcr; +	char		mid_rid;  };  struct sh_dmae_channel { @@ -110,4 +99,6 @@ struct sh_dmae_pdata {  #define CHCR_TE	0x00000002  #define CHCR_IE	0x00000004 +bool shdma_chan_filter(struct dma_chan *chan, void *arg); +  #endif  |