Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Variables
celleb_scc_pciex.c File Reference
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/bootmem.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/iommu.h>
#include <asm/byteorder.h>
#include "celleb_scc.h"
#include "celleb_pci.h"

Go to the source code of this file.

Macros

#define PEX_IN(base, off)   in_be32((void __iomem *)(base) + (off))
 
#define PEX_OUT(base, off, data)   out_be32((void __iomem *)(base) + (off), (data))
 
#define PCIEX_MMIO_READ(name, ret)
 
#define PCIEX_MMIO_READ_STR(name)
 
#define PCIEX_PIO_FUNC(size, name)
 
#define __le8   u8
 
#define cpu_to_le8(x)   (x)
 
#define le8_to_cpu(x)   (x)
 
#define MK_PEXDADRS(bus_no, dev_no, func_no, addr)
 
#define MK_PEXDCMND_BYTE_EN(addr, size)   ((((0x1 << (size))-1) << ((addr) & 0x3)) << PEXDCMND_BYTE_EN_SHIFT)
 
#define MK_PEXDCMND(cmd, addr, size)   ((cmd) | MK_PEXDCMND_BYTE_EN(addr, size))
 
#define MK_PEXCADRS_BYTE_EN(off, len)   ((((0x1 << (len)) - 1) << ((off) & 0x3)) << PEXCADRS_BYTE_EN_SHIFT)
 
#define MK_PEXCADRS(cmd, addr, size)   ((cmd) | MK_PEXCADRS_BYTE_EN(addr, size) | ((addr) & ~0x3))
 

Variables

struct celleb_phb_spec
celleb_pciex_spec 
__initdata
 

Macro Definition Documentation

#define __le8   u8

Definition at line 239 of file celleb_scc_pciex.c.

#define cpu_to_le8 (   x)    (x)

Definition at line 240 of file celleb_scc_pciex.c.

#define le8_to_cpu (   x)    (x)

Definition at line 241 of file celleb_scc_pciex.c.

#define MK_PEXCADRS (   cmd,
  addr,
  size 
)    ((cmd) | MK_PEXCADRS_BYTE_EN(addr, size) | ((addr) & ~0x3))

Definition at line 341 of file celleb_scc_pciex.c.

#define MK_PEXCADRS_BYTE_EN (   off,
  len 
)    ((((0x1 << (len)) - 1) << ((off) & 0x3)) << PEXCADRS_BYTE_EN_SHIFT)

Definition at line 339 of file celleb_scc_pciex.c.

#define MK_PEXDADRS (   bus_no,
  dev_no,
  func_no,
  addr 
)
Value:
((uint32_t)(((addr) & ~0x3UL) | \
((bus_no) << PEXDADRS_BUSNO_SHIFT) | \
((dev_no) << PEXDADRS_DEVNO_SHIFT) | \
((func_no) << PEXDADRS_FUNCNO_SHIFT)))

Definition at line 299 of file celleb_scc_pciex.c.

#define MK_PEXDCMND (   cmd,
  addr,
  size 
)    ((cmd) | MK_PEXDCMND_BYTE_EN(addr, size))

Definition at line 307 of file celleb_scc_pciex.c.

#define MK_PEXDCMND_BYTE_EN (   addr,
  size 
)    ((((0x1 << (size))-1) << ((addr) & 0x3)) << PEXDCMND_BYTE_EN_SHIFT)

Definition at line 305 of file celleb_scc_pciex.c.

#define PCIEX_MMIO_READ (   name,
  ret 
)
Value:
static ret scc_pciex_##name(const PCI_IO_ADDR addr) \
{ \
ret val = __do_##name(addr); \
scc_pciex_io_flush(iowa_mem_find_bus(addr)); \
return val; \
}

Definition at line 51 of file celleb_scc_pciex.c.

#define PCIEX_MMIO_READ_STR (   name)
Value:
static void scc_pciex_##name(const PCI_IO_ADDR addr, void *buf, \
unsigned long count) \
{ \
__do_##name(addr, buf, count); \
scc_pciex_io_flush(iowa_mem_find_bus(addr)); \
}

Definition at line 59 of file celleb_scc_pciex.c.

#define PCIEX_PIO_FUNC (   size,
  name 
)
Value:
static u##size scc_pciex_in##name(unsigned long port) \
{ \
u##size data = __scc_pciex_in##name(bus->phb, port); \
scc_pciex_io_flush(bus); \
return data; \
} \
static void scc_pciex_ins##name(unsigned long p, void *b, unsigned long c) \
{ \
__le##size *dst = b; \
for (; c != 0; c--, dst++) \
*dst = cpu_to_le##size(__scc_pciex_in##name(bus->phb, p)); \
scc_pciex_io_flush(bus); \
} \
static void scc_pciex_out##name(u##size val, unsigned long port) \
{ \
__scc_pciex_out##name(bus->phb, val, port); \
} \
static void scc_pciex_outs##name(unsigned long p, const void *b, \
unsigned long c) \
{ \
const __le##size *src = b; \
for (; c != 0; c--, src++) \
__scc_pciex_out##name(bus->phb, le##size##_to_cpu(*src), p); \
}

Definition at line 210 of file celleb_scc_pciex.c.

#define PEX_IN (   base,
  off 
)    in_be32((void __iomem *)(base) + (off))

Definition at line 40 of file celleb_scc_pciex.c.

#define PEX_OUT (   base,
  off,
  data 
)    out_be32((void __iomem *)(base) + (off), (data))

Definition at line 41 of file celleb_scc_pciex.c.

Variable Documentation

Initial value:
= {
.setup = celleb_setup_pciex,
.ops = &scc_pciex_ops,
.iowa_init = &scc_pciex_iowa_init,
}

Definition at line 537 of file celleb_scc_pciex.c.