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

visws_apic.c File Reference

#include <linux/ptrace.h>
#include <linux/errno.h>
#include <linux/kernel_stat.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/ioport.h>
#include <linux/interrupt.h>
#include <linux/timex.h>
#include <linux/malloc.h>
#include <linux/random.h>
#include <linux/smp.h>
#include <linux/tasks.h>
#include <linux/smp_lock.h>
#include <linux/init.h>
#include <asm/system.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/bitops.h>
#include <asm/smp.h>
#include <asm/pgtable.h>
#include <asm/delay.h>
#include <asm/desc.h>
#include <asm/cobalt.h>
#include "irq.h"

Include dependency graph for visws_apic.c:

Go to the source code of this file.

Defines

#define CO_IRQ_BASE   0x20
#define enable_piix4_master_irq   startup_piix4_master_irq
#define disable_piix4_master_irq   shutdown_piix4_master_irq
#define startup_piix4_virtual_irq   enable_piix4_virtual_irq
#define shutdown_piix4_virtual_irq   disable_piix4_virtual_irq
#define shutdown_cobalt_irq   disable_cobalt_irq

Functions

static void startup_piix4_master_irq (unsigned int irq)
static void shutdown_piix4_master_irq (unsigned int irq)
static void do_piix4_master_IRQ (unsigned int irq, struct pt_regs *regs)
static void enable_piix4_virtual_irq (unsigned int irq)
static void disable_piix4_virtual_irq (unsigned int irq)
static void do_cobalt_IRQ (unsigned int irq, struct pt_regs *regs)
static void enable_cobalt_irq (unsigned int irq)
static void disable_cobalt_irq (unsigned int irq)
static void startup_cobalt_irq (unsigned int irq)
void init_pic_mode (void)
static void co_apic_set (int entry, int idtvec)
void init_VISWS_APIC_irqs (void)

Variables

static struct hw_interrupt_type piix4_master_irq_type
static struct hw_interrupt_type piix4_virtual_irq_type
static struct hw_interrupt_type cobalt_irq_type
static struct irqaction master_action


Define Documentation

#define CO_IRQ_BASE   0x20
 

Definition at line 54 of file visws_apic.c.

Referenced by co_apic_set().

#define disable_piix4_master_irq   shutdown_piix4_master_irq
 

Definition at line 60 of file visws_apic.c.

#define enable_piix4_master_irq   startup_piix4_master_irq
 

Definition at line 59 of file visws_apic.c.

#define shutdown_cobalt_irq   disable_cobalt_irq
 

Definition at line 93 of file visws_apic.c.

Referenced by shutdown_piix4_master_irq().

#define shutdown_piix4_virtual_irq   disable_piix4_virtual_irq
 

Definition at line 74 of file visws_apic.c.

#define startup_piix4_virtual_irq   enable_piix4_virtual_irq
 

Definition at line 73 of file visws_apic.c.


Function Documentation

static void co_apic_set int  entry,
int  idtvec
[static]
 

Definition at line 135 of file visws_apic.c.

References CO_APIC_HI, CO_APIC_LEVEL, CO_APIC_LO, CO_IRQ_BASE, and printk.

Referenced by startup_cobalt_irq().

static void disable_cobalt_irq unsigned int  irq  )  [static]
 

Definition at line 117 of file visws_apic.c.

Referenced by disable_piix4_virtual_irq().

static void disable_piix4_virtual_irq unsigned int  irq  )  [static]
 

Definition at line 359 of file visws_apic.c.

References disable_cobalt_irq(), inb, mask, and outb.

Here is the call graph for this function:

static void do_cobalt_IRQ unsigned int  irq,
struct pt_regs regs
[static]
 

Definition at line 195 of file visws_apic.c.

References irq_desc_t::action, APIC_EIO_ACK, APIC_EOI, apic_write(), CO_CPU_REV, enable_cobalt_irq(), handle_IRQ_event(), irq_controller_lock, irq_desc, IRQ_DISABLED, IRQ_INPROGRESS, IRQ_REPLAY, IRQ_WAITING, NULL, spin_lock, spin_unlock, irq_desc_t::status, and status.

Referenced by do_piix4_master_IRQ().

Here is the call graph for this function:

static void do_piix4_master_IRQ unsigned int  irq,
struct pt_regs regs
[static]
 

Definition at line 287 of file visws_apic.c.

References do_cobalt_IRQ(), enable_piix4_virtual_irq(), inb, irq_controller_lock, irq_desc, IRQ_DISABLED, kernel_stat::irqs, kstat, mask, outb, smp_processor_id, spin_lock, spin_unlock, irq_desc_t::status, x01, x0c(), x20, and x80.

Here is the call graph for this function:

static void enable_cobalt_irq unsigned int  irq  )  [static]
 

Definition at line 127 of file visws_apic.c.

Referenced by do_cobalt_IRQ(), and enable_piix4_virtual_irq().

static void enable_piix4_virtual_irq unsigned int  irq  )  [static]
 

Definition at line 344 of file visws_apic.c.

References enable_cobalt_irq(), inb, mask, and outb.

Referenced by do_piix4_master_IRQ().

Here is the call graph for this function:

void init_pic_mode void   ) 
 

Definition at line 108 of file visws_apic.c.

References clear_IO_APIC(), outb_p, printk, x00, and x70.

Here is the call graph for this function:

void init_VISWS_APIC_irqs void   ) 
 

Definition at line 373 of file visws_apic.c.

References irqdesc::action, CO_IRQ_8259, CO_IRQ_FLOPPY, CO_IRQ_PARLL, i, irq_desc, IRQ_DISABLED, and setup_x86_irq().

Referenced by init_IRQ().

Here is the call graph for this function:

static void shutdown_piix4_master_irq unsigned int  irq  )  [static]
 

Definition at line 278 of file visws_apic.c.

References shutdown_cobalt_irq.

static void startup_cobalt_irq unsigned int  irq  )  [static]
 

Definition at line 148 of file visws_apic.c.

References CO_APIC_0_5_IDE0, CO_APIC_0_5_IDE1, CO_APIC_0_6_IDE0, CO_APIC_0_6_IDE1, CO_APIC_1_2_IDE0, CO_APIC_8259, CO_APIC_CPU, CO_APIC_ENET, co_apic_set(), CO_IRQ_8259, CO_IRQ_ENET, CO_IRQ_IDE, CO_IRQ_SERIAL, CO_IRQ_TIMER, panic(), VISWS_320, VISWS_540, visws_board_rev, and visws_board_type.

Referenced by startup_piix4_master_irq().

Here is the call graph for this function:

static void startup_piix4_master_irq unsigned int  irq  )  [static]
 

Definition at line 253 of file visws_apic.c.

References outb, startup_cobalt_irq(), x01, x02, x04, x08, x11, x20, x70, and xff.

Here is the call graph for this function:


Variable Documentation

struct hw_interrupt_type cobalt_irq_type [static]
 

Initial value:

Definition at line 95 of file visws_apic.c.

struct irqaction master_action [static]
 

Initial value:

                { no_action, 0, 0, "PIIX4-8259", NULL, NULL }

Definition at line 370 of file visws_apic.c.

struct hw_interrupt_type piix4_master_irq_type [static]
 

Initial value:

Definition at line 62 of file visws_apic.c.

struct hw_interrupt_type piix4_virtual_irq_type [static]
 

Initial value:

Definition at line 76 of file visws_apic.c.