Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
tioce_provider.c File Reference
#include <linux/types.h>
#include <linux/interrupt.h>
#include <linux/slab.h>
#include <linux/pci.h>
#include <asm/sn/sn_sal.h>
#include <asm/sn/addrs.h>
#include <asm/sn/io.h>
#include <asm/sn/pcidev.h>
#include <asm/sn/pcibus_provider_defs.h>
#include <asm/sn/tioce_provider.h>

Go to the source code of this file.

Macros

#define tioce_mmr_load(kern, mmrp, varp)
 
#define tioce_mmr_store(kern, mmrp, varp)
 
#define tioce_mmr_storei(kern, mmrp, val)
 
#define tioce_mmr_seti(kern, mmrp, bits)
 
#define tioce_mmr_clri(kern, mmrp, bits)
 
#define TIOCE_D64_MIN   0x8000000000000000UL
 
#define TIOCE_D64_MAX   0xffffffffffffffffUL
 
#define TIOCE_D64_ADDR(a)   ((a) >= TIOCE_D64_MIN)
 
#define TIOCE_D32_MIN   0x0000000080000000UL
 
#define TIOCE_D32_MAX   0x00000000ffffffffUL
 
#define TIOCE_D32_ADDR(a)   ((a) >= TIOCE_D32_MIN && (a) <= TIOCE_D32_MAX)
 
#define TIOCE_M32_MIN   0x0000000000000000UL
 
#define TIOCE_M32_MAX   0x000000007fffffffUL
 
#define TIOCE_M32_ADDR(a)   ((a) >= TIOCE_M32_MIN && (a) <= TIOCE_M32_MAX)
 
#define TIOCE_M40_MIN   0x0000004000000000UL
 
#define TIOCE_M40_MAX   0x0000007fffffffffUL
 
#define TIOCE_M40_ADDR(a)   ((a) >= TIOCE_M40_MIN && (a) <= TIOCE_M40_MAX)
 
#define TIOCE_M40S_MIN   0x0000008000000000UL
 
#define TIOCE_M40S_MAX   0x000000ffffffffffUL
 
#define TIOCE_M40S_ADDR(a)   ((a) >= TIOCE_M40S_MIN && (a) <= TIOCE_M40S_MAX)
 
#define ATE_PAGESHIFT(ps)   (__ffs(ps))
 
#define ATE_PAGEMASK(ps)   ((ps)-1)
 
#define ATE_PAGE(x, ps)   ((x) >> ATE_PAGESHIFT(ps))
 
#define ATE_NPAGES(start, len, pagesize)   (ATE_PAGE((start)+(len)-1, pagesize) - ATE_PAGE(start, pagesize) + 1)
 
#define ATE_VALID(ate)   ((ate) & (1UL << 63))
 
#define ATE_MAKE(addr, ps, msi)   (((addr) & ~ATE_PAGEMASK(ps)) | (1UL << 63) | ((msi)?(1UL << 62):0))
 
#define TIOCE_ATE_M32   1
 
#define TIOCE_ATE_M40   2
 
#define TIOCE_ATE_M40S   3
 
#define KB(x)   ((u64)(x) << 10)
 
#define MB(x)   ((u64)(x) << 20)
 
#define GB(x)   ((u64)(x) << 30)
 

Functions

void tioce_dma_unmap (struct pci_dev *pdev, dma_addr_t bus_addr, int dir)
 
int tioce_init_provider (void)
 

Macro Definition Documentation

#define ATE_MAKE (   addr,
  ps,
  msi 
)    (((addr) & ~ATE_PAGEMASK(ps)) | (1UL << 63) | ((msi)?(1UL << 62):0))

Definition at line 173 of file tioce_provider.c.

#define ATE_NPAGES (   start,
  len,
  pagesize 
)    (ATE_PAGE((start)+(len)-1, pagesize) - ATE_PAGE(start, pagesize) + 1)

Definition at line 169 of file tioce_provider.c.

#define ATE_PAGE (   x,
  ps 
)    ((x) >> ATE_PAGESHIFT(ps))

Definition at line 168 of file tioce_provider.c.

#define ATE_PAGEMASK (   ps)    ((ps)-1)

Definition at line 166 of file tioce_provider.c.

#define ATE_PAGESHIFT (   ps)    (__ffs(ps))

Definition at line 165 of file tioce_provider.c.

#define ATE_VALID (   ate)    ((ate) & (1UL << 63))

Definition at line 172 of file tioce_provider.c.

#define GB (   x)    ((u64)(x) << 30)

Definition at line 186 of file tioce_provider.c.

#define KB (   x)    ((u64)(x) << 10)

Definition at line 184 of file tioce_provider.c.

#define MB (   x)    ((u64)(x) << 20)

Definition at line 185 of file tioce_provider.c.

#define TIOCE_ATE_M32   1

Definition at line 180 of file tioce_provider.c.

#define TIOCE_ATE_M40   2

Definition at line 181 of file tioce_provider.c.

#define TIOCE_ATE_M40S   3

Definition at line 182 of file tioce_provider.c.

#define TIOCE_D32_ADDR (   a)    ((a) >= TIOCE_D32_MIN && (a) <= TIOCE_D32_MAX)

Definition at line 147 of file tioce_provider.c.

#define TIOCE_D32_MAX   0x00000000ffffffffUL

Definition at line 146 of file tioce_provider.c.

#define TIOCE_D32_MIN   0x0000000080000000UL

Definition at line 145 of file tioce_provider.c.

#define TIOCE_D64_ADDR (   a)    ((a) >= TIOCE_D64_MIN)

Definition at line 143 of file tioce_provider.c.

#define TIOCE_D64_MAX   0xffffffffffffffffUL

Definition at line 142 of file tioce_provider.c.

#define TIOCE_D64_MIN   0x8000000000000000UL

Bus address ranges for the 5 flavors of TIOCE DMA

Definition at line 141 of file tioce_provider.c.

#define TIOCE_M32_ADDR (   a)    ((a) >= TIOCE_M32_MIN && (a) <= TIOCE_M32_MAX)

Definition at line 151 of file tioce_provider.c.

#define TIOCE_M32_MAX   0x000000007fffffffUL

Definition at line 150 of file tioce_provider.c.

#define TIOCE_M32_MIN   0x0000000000000000UL

Definition at line 149 of file tioce_provider.c.

#define TIOCE_M40_ADDR (   a)    ((a) >= TIOCE_M40_MIN && (a) <= TIOCE_M40_MAX)

Definition at line 155 of file tioce_provider.c.

#define TIOCE_M40_MAX   0x0000007fffffffffUL

Definition at line 154 of file tioce_provider.c.

#define TIOCE_M40_MIN   0x0000004000000000UL

Definition at line 153 of file tioce_provider.c.

#define TIOCE_M40S_ADDR (   a)    ((a) >= TIOCE_M40S_MIN && (a) <= TIOCE_M40S_MAX)

Definition at line 159 of file tioce_provider.c.

#define TIOCE_M40S_MAX   0x000000ffffffffffUL

Definition at line 158 of file tioce_provider.c.

#define TIOCE_M40S_MIN   0x0000008000000000UL

Definition at line 157 of file tioce_provider.c.

#define tioce_mmr_clri (   kern,
  mmrp,
  bits 
)
Value:
do { \
tioce_mmr_load(kern, mmrp, &tmp); \
tmp &= ~(bits); \
tioce_mmr_store(kern, mmrp, &tmp); \
} while (0)

Definition at line 130 of file tioce_provider.c.

#define tioce_mmr_load (   kern,
  mmrp,
  varp 
)
Value:
do {\
tioce_mmr_war_pre(kern, mmrp); \
*(varp) = readq_relaxed(mmrp); \
tioce_mmr_war_post(kern, mmrp); \
} while (0)

Definition at line 101 of file tioce_provider.c.

#define tioce_mmr_seti (   kern,
  mmrp,
  bits 
)
Value:
do {\
tioce_mmr_load(kern, mmrp, &tmp); \
tmp |= (bits); \
tioce_mmr_store(kern, mmrp, &tmp); \
} while (0)

Definition at line 122 of file tioce_provider.c.

#define tioce_mmr_store (   kern,
  mmrp,
  varp 
)
Value:
do {\
tioce_mmr_war_pre(kern, mmrp); \
writeq(*varp, mmrp); \
tioce_mmr_war_post(kern, mmrp); \
} while (0)

Definition at line 108 of file tioce_provider.c.

#define tioce_mmr_storei (   kern,
  mmrp,
  val 
)
Value:
do {\
tioce_mmr_war_pre(kern, mmrp); \
writeq(val, mmrp); \
tioce_mmr_war_post(kern, mmrp); \
} while (0)

Definition at line 115 of file tioce_provider.c.

Function Documentation

void tioce_dma_unmap ( struct pci_dev pdev,
dma_addr_t  bus_addr,
int  dir 
)

Definition at line 459 of file tioce_provider.c.

int tioce_init_provider ( void  )

tioce_init_provider - init SN PCI provider ops for TIO CE

Definition at line 1058 of file tioce_provider.c.