static void titan_set_irq_affinity(unsigned int irq, cpumask_t affinity) { spin_lock(&titan_irq_lock); titan_cpu_set_irq_affinity(irq - 16, affinity); titan_update_irq_hw(titan_cached_irq_mask); spin_unlock(&titan_irq_lock); }
static inline void titan_disable_irq(unsigned int irq) { spin_lock(&titan_irq_lock); titan_cached_irq_mask &= ~(1UL << (irq - 16)); titan_update_irq_hw(titan_cached_irq_mask); spin_unlock(&titan_irq_lock); }
static inline void titan_disable_irq(struct irq_data *d) { unsigned int irq = d->irq; spin_lock(&titan_irq_lock); titan_cached_irq_mask &= ~(1UL << (irq - 16)); titan_update_irq_hw(titan_cached_irq_mask); spin_unlock(&titan_irq_lock); }
static int titan_set_irq_affinity(unsigned int irq, const struct cpumask *affinity) { spin_lock(&titan_irq_lock); titan_cpu_set_irq_affinity(irq - 16, *affinity); titan_update_irq_hw(titan_cached_irq_mask); spin_unlock(&titan_irq_lock); return 0; }
static void __init titan_init_irq(void) { if (alpha_using_srm && !alpha_mv.device_interrupt) alpha_mv.device_interrupt = titan_srm_device_interrupt; if (!alpha_mv.device_interrupt) alpha_mv.device_interrupt = titan_device_interrupt; titan_update_irq_hw(0); init_titan_irqs(&titan_irq_type, 16, 63 + 16); }
static int titan_set_irq_affinity(struct irq_data *d, const struct cpumask *affinity, bool force) { unsigned int irq = d->irq; spin_lock(&titan_irq_lock); titan_cpu_set_irq_affinity(irq - 16, *affinity); titan_update_irq_hw(titan_cached_irq_mask); spin_unlock(&titan_irq_lock); return 0; }