123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /*
- * linux/arch/alpha/kernel/sys_cabriolet.c
- *
- * Copyright (C) 1995 David A Rusling
- * Copyright (C) 1996 Jay A Estabrook
- * Copyright (C) 1998, 1999, 2000 Richard Henderson
- *
- * Code supporting the Cabriolet (AlphaPC64), EB66+, and EB164,
- * PC164 and LX164.
- */
- #include <linux/kernel.h>
- #include <linux/types.h>
- #include <linux/mm.h>
- #include <linux/sched.h>
- #include <linux/pci.h>
- #include <linux/init.h>
- #include <linux/bitops.h>
- #include <asm/ptrace.h>
- #include <asm/dma.h>
- #include <asm/irq.h>
- #include <asm/mmu_context.h>
- #include <asm/io.h>
- #include <asm/pgtable.h>
- #include <asm/core_apecs.h>
- #include <asm/core_cia.h>
- #include <asm/core_lca.h>
- #include <asm/tlbflush.h>
- #include "proto.h"
- #include "irq_impl.h"
- #include "pci_impl.h"
- #include "machvec_impl.h"
- #include "pc873xx.h"
- /* Note mask bit is true for DISABLED irqs. */
- static unsigned long cached_irq_mask = ~0UL;
- static inline void
- cabriolet_update_irq_hw(unsigned int irq, unsigned long mask)
- {
- int ofs = (irq - 16) / 8;
- outb(mask >> (16 + ofs * 8), 0x804 + ofs);
- }
- static inline void
- cabriolet_enable_irq(struct irq_data *d)
- {
- cabriolet_update_irq_hw(d->irq, cached_irq_mask &= ~(1UL << d->irq));
- }
- static void
- cabriolet_disable_irq(struct irq_data *d)
|