static void clipper_set_affinity(unsigned int irq, cpumask_t affinity) { spin_lock(&dp264_irq_lock); cpu_set_irq_affinity(irq - 16, affinity); tsunami_update_irq_hw(cached_irq_mask); spin_unlock(&dp264_irq_lock); }
static void dp264_enable_irq(unsigned int irq) { spin_lock(&dp264_irq_lock); cached_irq_mask |= 1UL << irq; tsunami_update_irq_hw(cached_irq_mask); spin_unlock(&dp264_irq_lock); }
static void clipper_disable_irq(unsigned int irq) { spin_lock(&dp264_irq_lock); cached_irq_mask &= ~(1UL << (irq - 16)); tsunami_update_irq_hw(cached_irq_mask); spin_unlock(&dp264_irq_lock); }
static void dp264_enable_irq(struct irq_data *d) { spin_lock(&dp264_irq_lock); cached_irq_mask |= 1UL << d->irq; tsunami_update_irq_hw(cached_irq_mask); spin_unlock(&dp264_irq_lock); }
static void clipper_disable_irq(struct irq_data *d) { spin_lock(&dp264_irq_lock); cached_irq_mask &= ~(1UL << (d->irq - 16)); tsunami_update_irq_hw(cached_irq_mask); spin_unlock(&dp264_irq_lock); }
static void dp264_set_affinity(unsigned int irq, unsigned long affinity) { spin_lock(&dp264_irq_lock); cpu_set_irq_affinity(irq, affinity); tsunami_update_irq_hw(cached_irq_mask); spin_unlock(&dp264_irq_lock); }
static int clipper_set_affinity(unsigned int irq, const struct cpumask *affinity) { spin_lock(&dp264_irq_lock); cpu_set_irq_affinity(irq - 16, *affinity); tsunami_update_irq_hw(cached_irq_mask); spin_unlock(&dp264_irq_lock); return 0; }
static int clipper_set_affinity(struct irq_data *d, const struct cpumask *affinity, bool force) { spin_lock(&dp264_irq_lock); cpu_set_irq_affinity(d->irq - 16, *affinity); tsunami_update_irq_hw(cached_irq_mask); spin_unlock(&dp264_irq_lock); return 0; }
static void __init clipper_init_irq(void) { outb(0, DMA1_RESET_REG); outb(0, DMA2_RESET_REG); outb(DMA_MODE_CASCADE, DMA2_MODE_REG); outb(0, DMA2_MASK_REG); if (alpha_using_srm) alpha_mv.device_interrupt = clipper_srm_device_interrupt; tsunami_update_irq_hw(0); init_i8259a_irqs(); init_tsunami_irqs(&clipper_irq_type, 24, 63); }