2007-06-06 10:52:38 +04:00
/*
* This file is subject to the terms and conditions of the GNU General Public
* License . See the file " COPYING " in the main directory of this archive
* for more details .
*
* Copyright ( C ) 2006 , 07 Ralf Baechle < ralf @ linux - mips . org >
* Copyright ( C ) 2007 Lemote , Inc . & Institute of Computing Technology
* Author : Fuxin Zhang , zhangfx @ lemote . com
*
*/
2009-07-02 19:26:08 +04:00
# ifndef __ASM_MACH_LOONGSON_DMA_COHERENCE_H
# define __ASM_MACH_LOONGSON_DMA_COHERENCE_H
2007-06-06 10:52:38 +04:00
struct device ;
static inline dma_addr_t plat_map_dma_mem ( struct device * dev , void * addr ,
size_t size )
{
return virt_to_phys ( addr ) | 0x80000000 ;
}
static inline dma_addr_t plat_map_dma_mem_page ( struct device * dev ,
struct page * page )
{
return page_to_phys ( page ) | 0x80000000 ;
}
2009-04-24 04:25:12 +04:00
static inline unsigned long plat_dma_addr_to_phys ( struct device * dev ,
dma_addr_t dma_addr )
2007-06-06 10:52:38 +04:00
{
2009-11-06 13:45:05 +03:00
# if defined(CONFIG_CPU_LOONGSON2F) && defined(CONFIG_64BIT)
return ( dma_addr > 0x8fffffff ) ? dma_addr : ( dma_addr & 0x0fffffff ) ;
# else
2007-06-06 10:52:38 +04:00
return dma_addr & 0x7fffffff ;
2009-11-06 13:45:05 +03:00
# endif
2007-06-06 10:52:38 +04:00
}
2009-04-24 04:03:43 +04:00
static inline void plat_unmap_dma_mem ( struct device * dev , dma_addr_t dma_addr ,
size_t size , enum dma_data_direction direction )
2007-06-06 10:52:38 +04:00
{
}
2008-12-12 02:33:36 +03:00
static inline int plat_dma_supported ( struct device * dev , u64 mask )
{
/*
* we fall back to GFP_DMA when the mask isn ' t all 1 s ,
* so we can ' t guarantee allocations that must be
* within a tighter range than GFP_DMA . .
*/
if ( mask < DMA_BIT_MASK ( 24 ) )
return 0 ;
return 1 ;
}
static inline void plat_extra_sync_for_device ( struct device * dev )
{
return ;
}
static inline int plat_dma_mapping_error ( struct device * dev ,
dma_addr_t dma_addr )
{
return 0 ;
}
2007-06-06 10:52:38 +04:00
static inline int plat_device_is_coherent ( struct device * dev )
{
return 0 ;
}
2009-07-02 19:26:08 +04:00
# endif /* __ASM_MACH_LOONGSON_DMA_COHERENCE_H */