Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
tegra-gart.c File Reference
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/spinlock.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/mm.h>
#include <linux/list.h>
#include <linux/device.h>
#include <linux/io.h>
#include <linux/iommu.h>
#include <linux/of.h>
#include <asm/cacheflush.h>

Go to the source code of this file.

Data Structures

struct  gart_client
 
struct  gart_device
 

Macros

#define pr_fmt(fmt)   "%s(): " fmt, __func__
 
#define GART_IOMMU_PGSIZES   (SZ_4K)
 
#define GART_REG_BASE   0x24
 
#define GART_CONFIG   (0x24 - GART_REG_BASE)
 
#define GART_ENTRY_ADDR   (0x28 - GART_REG_BASE)
 
#define GART_ENTRY_DATA   (0x2c - GART_REG_BASE)
 
#define GART_ENTRY_PHYS_ADDR_VALID   (1 << 31)
 
#define GART_PAGE_SHIFT   12
 
#define GART_PAGE_SIZE   (1 << GART_PAGE_SHIFT)
 
#define GART_PAGE_MASK   (~(GART_PAGE_SIZE - 1) & ~GART_ENTRY_PHYS_ADDR_VALID)
 
#define GART_PTE(_pfn)   (GART_ENTRY_PHYS_ADDR_VALID | ((_pfn) << PAGE_SHIFT))
 
#define FLUSH_GART_REGS(gart)   ((void)readl((gart)->regs + GART_CONFIG))
 
#define for_each_gart_pte(gart, iova)
 

Functions

 subsys_initcall (tegra_gart_init)
 
 module_exit (tegra_gart_exit)
 
 MODULE_DESCRIPTION ("IOMMU API for GART in Tegra20")
 
 MODULE_AUTHOR ("Hiroshi DOYU <[email protected]>")
 
 MODULE_ALIAS ("platform:tegra-gart")
 
 MODULE_LICENSE ("GPL v2")
 

Variables

struct dev_pm_ops tegra_gart_pm_ops
 

Macro Definition Documentation

#define FLUSH_GART_REGS (   gart)    ((void)readl((gart)->regs + GART_CONFIG))

Definition at line 76 of file tegra-gart.c.

#define for_each_gart_pte (   gart,
  iova 
)
Value:
for (iova = gart->iovmm_base; \
iova < gart->iovmm_base + GART_PAGE_SIZE * gart->page_count; \

Definition at line 78 of file tegra-gart.c.

#define GART_CONFIG   (0x24 - GART_REG_BASE)

Definition at line 40 of file tegra-gart.c.

#define GART_ENTRY_ADDR   (0x28 - GART_REG_BASE)

Definition at line 41 of file tegra-gart.c.

#define GART_ENTRY_DATA   (0x2c - GART_REG_BASE)

Definition at line 42 of file tegra-gart.c.

#define GART_ENTRY_PHYS_ADDR_VALID   (1 << 31)

Definition at line 43 of file tegra-gart.c.

#define GART_IOMMU_PGSIZES   (SZ_4K)

Definition at line 37 of file tegra-gart.c.

#define GART_PAGE_MASK   (~(GART_PAGE_SIZE - 1) & ~GART_ENTRY_PHYS_ADDR_VALID)

Definition at line 47 of file tegra-gart.c.

#define GART_PAGE_SHIFT   12

Definition at line 45 of file tegra-gart.c.

#define GART_PAGE_SIZE   (1 << GART_PAGE_SHIFT)

Definition at line 46 of file tegra-gart.c.

#define GART_PTE (   _pfn)    (GART_ENTRY_PHYS_ADDR_VALID | ((_pfn) << PAGE_SHIFT))

Definition at line 68 of file tegra-gart.c.

#define GART_REG_BASE   0x24

Definition at line 39 of file tegra-gart.c.

#define pr_fmt (   fmt)    "%s(): " fmt, __func__

Definition at line 20 of file tegra-gart.c.

Function Documentation

MODULE_ALIAS ( "platform:tegra-gart"  )
MODULE_AUTHOR ( "Hiroshi DOYU <[email protected]>"  )
MODULE_DESCRIPTION ( "IOMMU API for GART in Tegra20"  )
module_exit ( tegra_gart_exit  )
MODULE_LICENSE ( "GPL v2 )
subsys_initcall ( tegra_gart_init  )

Variable Documentation

struct dev_pm_ops tegra_gart_pm_ops
Initial value:
= {
.suspend = tegra_gart_suspend,
.resume = tegra_gart_resume,
}

Definition at line 427 of file tegra-gart.c.