Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

mips/baget/irq.c File Reference

#include <linux/errno.h>
#include <linux/init.h>
#include <linux/kernel_stat.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/types.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/timex.h>
#include <linux/malloc.h>
#include <linux/random.h>
#include <linux/delay.h>
#include <asm/bitops.h>
#include <asm/bootinfo.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/mipsregs.h>
#include <asm/system.h>
#include <asm/baget/baget.h>

Include dependency graph for mips/baget/irq.c:

Go to the source code of this file.

Defines

#define MAX_STATIC_ALLOC   4
#define BAGET_INT_FPU   {(unsigned long)&baget_fpu_irq, 1}

Functions

static int irq_to_pil (int irq_nr)
static void modify_cp0_intmask (unsigned clr_mask, unsigned set_mask)
static void mask_irq (unsigned int irq_nr)
static void unmask_irq (unsigned int irq_nr)
void mask_irq_count (int irq_nr)
void unmask_irq_count (int irq_nr)
void disable_irq (unsigned int irq_nr)
void enable_irq (unsigned int irq_nr)
int get_irq_list (char *buf)
static void do_IRQ (int irq, struct pt_regs *regs)
static void vic_reg_error (unsigned long address, unsigned char active_pils)
asmlinkage void baget_interrupt (struct pt_regs *regs)
int setup_baget_irq (int irq, struct irqaction *new)
int request_irq (unsigned int irq, void(*handler)(int, void *, struct pt_regs *), unsigned long irqflags, const char *devname, void *dev_id)
void free_irq (unsigned int irq, void *dev_id)
static int baget_irq_canonicalize (int irq)
unsigned long probe_irq_on (void)
int probe_irq_off (unsigned long irqs)
static void write_err_interrupt (int irq, void *dev_id, struct pt_regs *regs)
 __initfunc (void init_IRQ(void))

Variables

unsigned int local_bh_count [NR_CPUS]
unsigned int local_irq_count [NR_CPUS]
unsigned long spurious_count = 0
atomic_t __mips_bh_counter
static int irq_to_pil_map [BAGET_IRQ_NR]
static volatile unsigned int pil_in_use [BAGET_PIL_NR] = { 0, }
irqaction static_irqaction [MAX_STATIC_ALLOC]
int static_irq_count = 0
static struct irqactionirq_action [BAGET_IRQ_NR] = { NULL, }
static char baget_fpu_irq = BAGET_FPU_IRQ
int(* irq_cannonicalize )(int irq) = baget_irq_canonicalize


Define Documentation

#define BAGET_INT_FPU   {(unsigned long)&baget_fpu_irq, 1}
 

Definition at line 236 of file mips/baget/irq.c.

Referenced by baget_interrupt().

#define MAX_STATIC_ALLOC   4
 

Definition at line 149 of file mips/baget/irq.c.


Function Documentation

__initfunc void   init_IRQ(void)  ) 
 

Definition at line 425 of file mips/baget/irq.c.

References irq_setup, modify_cp0_intmask(), NULL, printk, request_irq(), SA_INTERRUPT, vac_outw, VAC_PIO_FUNC, and write_err_interrupt().

Here is the call graph for this function:

asmlinkage void baget_interrupt struct pt_regs regs  ) 
 

Definition at line 241 of file mips/baget/irq.c.

References baget_int_reg::address, BAGET_INT0_ACK, BAGET_INT1_ACK, BAGET_INT5_ACK, BAGET_INT_FPU, BAGET_INT_NONE, BAGET_IRQ_MASK, CP0_CAUSE, do_IRQ, irq, printk, read_32bit_cp0_register, reg, baget_int_reg::size, and vic_reg_error().

Here is the call graph for this function:

static int baget_irq_canonicalize int  irq  )  [static]
 

Definition at line 400 of file mips/baget/irq.c.

void disable_irq unsigned int  irq_nr  ) 
 

Definition at line 126 of file mips/baget/irq.c.

References mask_irq, restore_flags, and save_and_cli.

static void do_IRQ int  irq,
struct pt_regs regs
[static]
 

Definition at line 190 of file mips/baget/irq.c.

References __cli, __sti, add_interrupt_randomness(), cpu, irqaction::dev_id, irqaction::flags, irqaction::handler, hardirq_enter, hardirq_exit, kernel_stat::irqs, kstat, mask_irq, irqaction::next, printk, SA_INTERRUPT, smp_processor_id, and unmask_irq.

Here is the call graph for this function:

void enable_irq unsigned int  irq_nr  ) 
 

Definition at line 135 of file mips/baget/irq.c.

References restore_flags, save_and_cli, and unmask_irq.

void free_irq unsigned int  irq,
void *  dev_id
 

Definition at line 365 of file mips/baget/irq.c.

References BAGET_IRQ_NR, irqaction::dev_id, irqaction::flags, kfree(), irqaction::name, irqaction::next, NULL, p, printk, restore_flags, save_and_cli, and unmask_irq_count().

Here is the call graph for this function:

int get_irq_list char *  buf  ) 
 

Definition at line 159 of file mips/baget/irq.c.

References BAGET_IRQ_NR, irqaction::flags, i, kernel_stat::irqs, kstat, len, irqaction::name, irqaction::next, SA_INTERRUPT, and sprintf().

Here is the call graph for this function:

static int irq_to_pil int  irq_nr  )  [inline, static]
 

Definition at line 49 of file mips/baget/irq.c.

References BAGET_IRQ_NR, baget_printk(), and irq_to_pil_map.

Referenced by mask_irq(), mask_irq_count(), unmask_irq(), and unmask_irq_count().

Here is the call graph for this function:

static void mask_irq unsigned int  irq_nr  )  [inline, static]
 

Definition at line 79 of file mips/baget/irq.c.

References irq_to_pil(), and modify_cp0_intmask().

Here is the call graph for this function:

void mask_irq_count int  irq_nr  ) 
 

Definition at line 100 of file mips/baget/irq.c.

References irq_to_pil(), mask_irq, pil_in_use, restore_flags, and save_and_cli.

Here is the call graph for this function:

static void modify_cp0_intmask unsigned  clr_mask,
unsigned  set_mask
[inline, static]
 

Definition at line 66 of file mips/baget/irq.c.

References CP0_STATUS, read_32bit_cp0_register, status, and write_32bit_cp0_register.

Referenced by __initfunc(), mask_irq(), and unmask_irq().

int probe_irq_off unsigned long  irqs  ) 
 

Definition at line 413 of file mips/baget/irq.c.

unsigned long probe_irq_on void   ) 
 

Definition at line 407 of file mips/baget/irq.c.

int request_irq unsigned int  irq,
void(*)(int, void *, struct pt_regs *)  handler,
unsigned long  irqflags,
const char *  devname,
void *  dev_id
 

Definition at line 315 of file mips/baget/irq.c.

References BAGET_IRQ_NR, irqaction::dev_id, EINVAL, ENOMEM, irqaction::flags, irqaction::handler, irq_to_pil_map, kfree(), kmalloc(), irqaction::mask, irqaction::name, irqaction::next, NULL, printk, restore_flags, save_and_cli, setup_baget_irq(), and static_irq_count.

Here is the call graph for this function:

int setup_baget_irq int  irq,
struct irqaction new
 

Definition at line 277 of file mips/baget/irq.c.

References EBUSY, irqaction::flags, irqaction::next, NULL, p, rand_initialize_irq(), restore_flags, SA_INTERRUPT, SA_SHIRQ, save_and_cli, and unmask_irq_count().

Referenced by request_irq().

Here is the call graph for this function:

static void unmask_irq unsigned int  irq_nr  )  [inline, static]
 

Definition at line 84 of file mips/baget/irq.c.

References irq_to_pil(), and modify_cp0_intmask().

Here is the call graph for this function:

void unmask_irq_count int  irq_nr  ) 
 

Definition at line 111 of file mips/baget/irq.c.

References irq_to_pil(), pil_in_use, restore_flags, save_and_cli, and unmask_irq.

Referenced by free_irq(), and setup_baget_irq().

Here is the call graph for this function:

static void vic_reg_error unsigned long  address,
unsigned char  active_pils
[static]
 

Definition at line 226 of file mips/baget/irq.c.

References CP0_CAUSE, i, printk, read_32bit_cp0_register, udelay, and xff.

Referenced by baget_interrupt().

static void write_err_interrupt int  irq,
void *  dev_id,
struct pt_regs regs
[static]
 

Definition at line 420 of file mips/baget/irq.c.

References BAGET_WRERR_ACK.

Referenced by __initfunc().


Variable Documentation

atomic_t __mips_bh_counter
 

Definition at line 36 of file mips/baget/irq.c.

char baget_fpu_irq = BAGET_FPU_IRQ [static]
 

Definition at line 235 of file mips/baget/irq.c.

struct irqaction* irq_action[BAGET_IRQ_NR] = { NULL, } [static]
 

Definition at line 157 of file mips/baget/irq.c.

int(* irq_cannonicalize)(int irq) = baget_irq_canonicalize
 

Definition at line 405 of file mips/baget/irq.c.

int irq_to_pil_map[BAGET_IRQ_NR] [static]
 

Initial value:

 { 
        7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 
        -1,-1,-1,-1, 3,-1,-1,-1, 2, 2, 2,-1, 3,-1,-1,3, 
        -1,-1,-1,-1,-1,-1, 5,-1,-1,-1,-1,-1, 7,-1,-1,-1, 
        -1, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3  
}

Definition at line 42 of file mips/baget/irq.c.

Referenced by irq_to_pil(), and request_irq().

unsigned int local_bh_count[NR_CPUS]
 

Definition at line 32 of file mips/baget/irq.c.

unsigned int local_irq_count[NR_CPUS]
 

Definition at line 33 of file mips/baget/irq.c.

volatile unsigned int pil_in_use[BAGET_PIL_NR] = { 0, } [static]
 

Definition at line 98 of file mips/baget/irq.c.

Referenced by mask_irq_count(), and unmask_irq_count().

unsigned long spurious_count = 0
 

Definition at line 34 of file mips/baget/irq.c.

int static_irq_count = 0
 

Definition at line 151 of file mips/baget/irq.c.

Referenced by request_fast_irq(), request_irq(), and sun4d_request_irq().

struct irqaction static_irqaction[MAX_STATIC_ALLOC]
 

Definition at line 150 of file mips/baget/irq.c.