Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
msi-octeon.c File Reference
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/msi.h>
#include <linux/spinlock.h>
#include <linux/interrupt.h>
#include <asm/octeon/octeon.h>
#include <asm/octeon/cvmx-npi-defs.h>
#include <asm/octeon/cvmx-pci-defs.h>
#include <asm/octeon/cvmx-npei-defs.h>
#include <asm/octeon/cvmx-pexp-defs.h>
#include <asm/octeon/pci-octeon.h>

Go to the source code of this file.

Macros

#define OCTEON_MSI_INT_HANDLER_X(x)
 
#define INVALID_GENERATE_ADE   0x8700000000000000ULL;
 

Functions

int arch_setup_msi_irq (struct pci_dev *dev, struct msi_desc *desc)
 
int arch_setup_msi_irqs (struct pci_dev *dev, int nvec, int type)
 
void arch_teardown_msi_irq (unsigned int irq)
 
 OCTEON_MSI_INT_HANDLER_X (0)
 
 OCTEON_MSI_INT_HANDLER_X (1)
 
 OCTEON_MSI_INT_HANDLER_X (2)
 
 OCTEON_MSI_INT_HANDLER_X (3)
 
int __init octeon_msi_initialize (void)
 
 subsys_initcall (octeon_msi_initialize)
 

Macro Definition Documentation

#define INVALID_GENERATE_ADE   0x8700000000000000ULL;
#define OCTEON_MSI_INT_HANDLER_X (   x)
Value:
static irqreturn_t octeon_msi_interrupt##x(int cpl, void *dev_id) \
{ \
u64 msi_bits = cvmx_read_csr(msi_rcv_reg[(x)]); \
return __octeon_msi_do_interrupt((x), msi_bits); \
}

Definition at line 344 of file msi-octeon.c.

Function Documentation

int arch_setup_msi_irq ( struct pci_dev dev,
struct msi_desc desc 
)

Called when a driver request MSI interrupts instead of the legacy INT A-D. This routine will allocate multiple interrupts for MSI devices that support them. A device can override this by programming the MSI control bits [6:4] before calling pci_enable_msi().

: Device requesting MSI interrupts : MSI descriptor

Returns 0 on success.

Definition at line 59 of file msi-octeon.c.

int arch_setup_msi_irqs ( struct pci_dev dev,
int  nvec,
int  type 
)

Definition at line 180 of file msi-octeon.c.

void arch_teardown_msi_irq ( unsigned int  irq)

Called when a device no longer needs its MSI interrupts. All MSI interrupts for the device are freed.

: The devices first irq number. There may be multple in sequence.

Definition at line 215 of file msi-octeon.c.

int __init octeon_msi_initialize ( void  )

Definition at line 362 of file msi-octeon.c.

OCTEON_MSI_INT_HANDLER_X ( )
OCTEON_MSI_INT_HANDLER_X ( )
OCTEON_MSI_INT_HANDLER_X ( )
OCTEON_MSI_INT_HANDLER_X ( )
subsys_initcall ( octeon_msi_initialize  )