Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
omap-iovmm.c File Reference
#include <linux/module.h>
#include <linux/err.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/device.h>
#include <linux/scatterlist.h>
#include <linux/iommu.h>
#include <asm/cacheflush.h>
#include <asm/mach/map.h>
#include <plat/iommu.h>
#include <plat/iovmm.h>
#include <plat/iopgtable.h>

Go to the source code of this file.

Macros

#define sgtable_ok(x)   (!!sgtable_len(x))
 

Functions

struct iovm_structomap_find_iovm_area (struct device *dev, u32 da)
 
 EXPORT_SYMBOL_GPL (omap_find_iovm_area)
 
voidomap_da_to_va (struct device *dev, u32 da)
 
 EXPORT_SYMBOL_GPL (omap_da_to_va)
 
u32 omap_iommu_vmap (struct iommu_domain *domain, struct device *dev, u32 da, const struct sg_table *sgt, u32 flags)
 
 EXPORT_SYMBOL_GPL (omap_iommu_vmap)
 
struct sg_tableomap_iommu_vunmap (struct iommu_domain *domain, struct device *dev, u32 da)
 
 EXPORT_SYMBOL_GPL (omap_iommu_vunmap)
 
u32 omap_iommu_vmalloc (struct iommu_domain *domain, struct device *dev, u32 da, size_t bytes, u32 flags)
 
 EXPORT_SYMBOL_GPL (omap_iommu_vmalloc)
 
void omap_iommu_vfree (struct iommu_domain *domain, struct device *dev, const u32 da)
 
 EXPORT_SYMBOL_GPL (omap_iommu_vfree)
 
 module_init (iovmm_init)
 
 module_exit (iovmm_exit)
 
 MODULE_DESCRIPTION ("omap iommu: simple virtual address space management")
 
 MODULE_AUTHOR ("Hiroshi DOYU <[email protected]>")
 
 MODULE_LICENSE ("GPL v2")
 

Macro Definition Documentation

#define sgtable_ok (   x)    (!!sgtable_len(x))

Definition at line 71 of file omap-iovmm.c.

Function Documentation

EXPORT_SYMBOL_GPL ( omap_find_iovm_area  )
EXPORT_SYMBOL_GPL ( omap_da_to_va  )
EXPORT_SYMBOL_GPL ( omap_iommu_vmap  )
EXPORT_SYMBOL_GPL ( omap_iommu_vunmap  )
EXPORT_SYMBOL_GPL ( omap_iommu_vmalloc  )
EXPORT_SYMBOL_GPL ( omap_iommu_vfree  )
MODULE_AUTHOR ( "Hiroshi DOYU <[email protected]>"  )
MODULE_DESCRIPTION ( "omap iommu: simple virtual address space management"  )
module_exit ( iovmm_exit  )
module_init ( iovmm_init  )
MODULE_LICENSE ( "GPL v2 )
void* omap_da_to_va ( struct device dev,
u32  da 
)

omap_da_to_va - convert (d) to (v) : client device : iommu device virtual address : mpu virtual address

Returns mpu virtual addr which corresponds to a given device virtual addr

Definition at line 354 of file omap-iovmm.c.

struct iovm_struct* omap_find_iovm_area ( struct device dev,
u32  da 
)
read

omap_find_iovm_area - find iovma which includes : client device : iommu device virtual address

Find the existing iovma starting at

Definition at line 239 of file omap-iovmm.c.

void omap_iommu_vfree ( struct iommu_domain domain,
struct device dev,
const u32  da 
)

omap_iommu_vfree - release memory allocated by 'omap_iommu_vmalloc()' : client device : iommu device virtual address

Frees the iommu virtually continuous memory area starting at , as obtained from 'omap_iommu_vmalloc()'.

Definition at line 710 of file omap-iovmm.c.

u32 omap_iommu_vmalloc ( struct iommu_domain domain,
struct device dev,
u32  da,
size_t  bytes,
u32  flags 
)

omap_iommu_vmalloc - (d)-(p)-(v) address allocator and mapper : client device : contiguous iommu virtual memory : allocation size : iovma and page property

Allocate linearly and creates 1-n-1 mapping and returns again, which might be adjusted if 'IOVMF_DA_FIXED' is not set.

Definition at line 661 of file omap-iovmm.c.

u32 omap_iommu_vmap ( struct iommu_domain domain,
struct device dev,
u32  da,
const struct sg_table sgt,
u32  flags 
)

omap_iommu_vmap - (d)-(p)-(v) address mapper : iommu domain : client device : address of scatter gather table : iovma and page property

Creates 1-n-1 mapping with given and returns . All element must be io page size aligned.

Definition at line 591 of file omap-iovmm.c.

struct sg_table* omap_iommu_vunmap ( struct iommu_domain domain,
struct device dev,
u32  da 
)
read

omap_iommu_vunmap - release virtual mapping obtained by 'omap_iommu_vmap()' : iommu domain : client device : iommu device virtual address

Free the iommu virtually contiguous memory area starting at , which was returned by 'omap_iommu_vmap()'.

Definition at line 633 of file omap-iovmm.c.