Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
pci.c File Reference
#include <linux/ssb/ssb.h>
#include <linux/ssb/ssb_regs.h>
#include <linux/slab.h>
#include <linux/pci.h>
#include <linux/delay.h>
#include "ssb_private.h"

Go to the source code of this file.

Macros

#define SSB_VERBOSE_PCICORESWITCH_DEBUG   0
 
#define SPOFF(offset)   ((offset) / sizeof(u16))
 
#define SPEX16(_outvar, _offset, _mask, _shift)   out->_outvar = ((in[SPOFF(_offset)] & (_mask)) >> (_shift))
 
#define SPEX32(_outvar, _offset, _mask, _shift)
 
#define SPEX(_outvar, _offset, _mask, _shift)   SPEX16(_outvar, _offset, _mask, _shift)
 
#define SPEX_ARRAY8(_field, _offset, _mask, _shift)
 

Functions

int ssb_pci_switch_coreidx (struct ssb_bus *bus, u8 coreidx)
 
int ssb_pci_switch_core (struct ssb_bus *bus, struct ssb_device *dev)
 
int ssb_pci_xtal (struct ssb_bus *bus, u32 what, int turn_on)
 
int ssb_pci_get_invariants (struct ssb_bus *bus, struct ssb_init_invariants *iv)
 
void ssb_pci_exit (struct ssb_bus *bus)
 
int ssb_pci_init (struct ssb_bus *bus)
 

Variables

struct ssb_bus_ops ssb_pci_ops
 

Macro Definition Documentation

#define SPEX (   _outvar,
  _offset,
  _mask,
  _shift 
)    SPEX16(_outvar, _offset, _mask, _shift)

Definition at line 178 of file pci.c.

#define SPEX16 (   _outvar,
  _offset,
  _mask,
  _shift 
)    out->_outvar = ((in[SPOFF(_offset)] & (_mask)) >> (_shift))

Definition at line 173 of file pci.c.

#define SPEX32 (   _outvar,
  _offset,
  _mask,
  _shift 
)
Value:
out->_outvar = ((((u32)in[SPOFF((_offset)+2)] << 16 | \
in[SPOFF(_offset)]) & (_mask)) >> (_shift))

Definition at line 175 of file pci.c.

#define SPEX_ARRAY8 (   _field,
  _offset,
  _mask,
  _shift 
)
Value:
do { \
SPEX(_field[0], _offset + 0, _mask, _shift); \
SPEX(_field[1], _offset + 2, _mask, _shift); \
SPEX(_field[2], _offset + 4, _mask, _shift); \
SPEX(_field[3], _offset + 6, _mask, _shift); \
SPEX(_field[4], _offset + 8, _mask, _shift); \
SPEX(_field[5], _offset + 10, _mask, _shift); \
SPEX(_field[6], _offset + 12, _mask, _shift); \
SPEX(_field[7], _offset + 14, _mask, _shift); \
} while (0)

Definition at line 181 of file pci.c.

#define SPOFF (   offset)    ((offset) / sizeof(u16))

Definition at line 171 of file pci.c.

#define SSB_VERBOSE_PCICORESWITCH_DEBUG   0

Definition at line 28 of file pci.c.

Function Documentation

void ssb_pci_exit ( struct ssb_bus bus)

Definition at line 1093 of file pci.c.

int ssb_pci_get_invariants ( struct ssb_bus bus,
struct ssb_init_invariants iv 
)

Definition at line 866 of file pci.c.

int ssb_pci_init ( struct ssb_bus bus)

Definition at line 1104 of file pci.c.

int ssb_pci_switch_core ( struct ssb_bus bus,
struct ssb_device dev 
)

Definition at line 63 of file pci.c.

int ssb_pci_switch_coreidx ( struct ssb_bus bus,
u8  coreidx 
)

Definition at line 32 of file pci.c.

int ssb_pci_xtal ( struct ssb_bus bus,
u32  what,
int  turn_on 
)

Definition at line 86 of file pci.c.

Variable Documentation

struct ssb_bus_ops ssb_pci_ops
Initial value:
= {
.read8 = ssb_pci_read8,
.read16 = ssb_pci_read16,
.read32 = ssb_pci_read32,
.write8 = ssb_pci_write8,
.write16 = ssb_pci_write16,
.write32 = ssb_pci_write32,
}

Definition at line 1047 of file pci.c.