/* * 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 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #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)