10 #include <linux/sched.h>
21 static unsigned long cached_irq_mask;
24 pyxis_update_irq_hw(
unsigned long mask)
34 pyxis_update_irq_hw(cached_irq_mask |= 1
UL << (d->
irq - 16));
38 pyxis_disable_irq(
struct irq_data *d)
40 pyxis_update_irq_hw(cached_irq_mask &= ~(1
UL << (d->
irq - 16)));
44 pyxis_mask_and_ack_irq(
struct irq_data *d)
46 unsigned long bit = 1
UL << (d->
irq - 16);
47 unsigned long mask = cached_irq_mask &= ~bit;
59 static struct irq_chip pyxis_irq_type = {
61 .irq_mask_ack = pyxis_mask_and_ack_irq,
62 .irq_mask = pyxis_disable_irq,
63 .irq_unmask = pyxis_enable_irq,
74 pld &= cached_irq_mask;
102 for (i = 16; i < 48; ++
i) {
103 if ((ignore_mask >> i) & 1)