2005-04-16 15:20:36 -07:00
# ifndef _M68K_DMA_MAPPING_H
# define _M68K_DMA_MAPPING_H
2006-06-25 05:46:57 -07:00
# include <asm/cache.h>
2006-06-25 05:46:56 -07:00
struct scatterlist ;
2005-04-16 15:20:36 -07:00
2006-10-09 02:11:47 +01:00
# ifndef CONFIG_MMU_SUN3
2006-06-25 05:46:56 -07:00
static inline int dma_supported ( struct device * dev , u64 mask )
{
return 1 ;
}
static inline int dma_set_mask ( struct device * dev , u64 mask )
{
return 0 ;
}
2006-06-25 05:46:57 -07:00
static inline int dma_get_cache_alignment ( void )
{
return 1 < < L1_CACHE_SHIFT ;
}
2006-12-06 20:38:54 -08:00
static inline int dma_is_consistent ( struct device * dev , dma_addr_t dma_addr )
2006-06-25 05:46:57 -07:00
{
return 0 ;
}
2006-06-25 05:46:56 -07:00
extern void * dma_alloc_coherent ( struct device * , size_t ,
2006-10-06 00:43:58 -07:00
dma_addr_t * , gfp_t ) ;
2006-06-25 05:46:56 -07:00
extern void dma_free_coherent ( struct device * , size_t ,
void * , dma_addr_t ) ;
2006-06-25 05:46:57 -07:00
static inline void * dma_alloc_noncoherent ( struct device * dev , size_t size ,
2007-03-14 09:20:40 +00:00
dma_addr_t * handle , gfp_t flag )
2006-06-25 05:46:57 -07:00
{
return dma_alloc_coherent ( dev , size , handle , flag ) ;
}
static inline void dma_free_noncoherent ( struct device * dev , size_t size ,
void * addr , dma_addr_t handle )
{
dma_free_coherent ( dev , size , addr , handle ) ;
}
2006-12-06 20:38:56 -08:00
static inline void dma_cache_sync ( struct device * dev , void * vaddr , size_t size ,
2006-06-25 05:46:57 -07:00
enum dma_data_direction dir )
{
/* we use coherent allocation, so not much to do here. */
}
2006-06-25 05:46:56 -07:00
extern dma_addr_t dma_map_single ( struct device * , void * , size_t ,
enum dma_data_direction ) ;
static inline void dma_unmap_single ( struct device * dev , dma_addr_t addr ,
size_t size , enum dma_data_direction dir )
{
}
extern dma_addr_t dma_map_page ( struct device * , struct page * ,
unsigned long , size_t size ,
enum dma_data_direction ) ;
static inline void dma_unmap_page ( struct device * dev , dma_addr_t address ,
size_t size , enum dma_data_direction dir )
{
}
extern int dma_map_sg ( struct device * , struct scatterlist * , int ,
enum dma_data_direction ) ;
static inline void dma_unmap_sg ( struct device * dev , struct scatterlist * sg ,
int nhwentries , enum dma_data_direction dir )
{
}
extern void dma_sync_single_for_device ( struct device * , dma_addr_t , size_t ,
enum dma_data_direction ) ;
extern void dma_sync_sg_for_device ( struct device * , struct scatterlist * , int ,
enum dma_data_direction ) ;
static inline void dma_sync_single_for_cpu ( struct device * dev , dma_addr_t handle ,
size_t size , enum dma_data_direction dir )
{
}
static inline void dma_sync_sg_for_cpu ( struct device * dev , struct scatterlist * sg ,
int nents , enum dma_data_direction dir )
{
}
static inline int dma_mapping_error ( dma_addr_t handle )
{
return 0 ;
}
2005-04-16 15:20:36 -07:00
2006-10-09 02:11:47 +01:00
# else
# include <asm-generic/dma-mapping-broken.h>
# endif
2005-04-16 15:20:36 -07:00
# endif /* _M68K_DMA_MAPPING_H */