static void sun4m_clear_ipi(int cpu, int level) { unsigned long mask; mask = sun4m_get_irqmask(level); sun4m_interrupts->cpu_intregs[cpu].clear = mask; }
static void sun4m_disable_irq(unsigned int irq_nr) { unsigned long mask, flags; int cpu = smp_processor_id(); mask = sun4m_get_irqmask(irq_nr); local_irq_save(flags); if (irq_nr > 15) sun4m_interrupts->set = mask; else sun4m_interrupts->cpu_intregs[cpu].set = mask; local_irq_restore(flags); }
static void sun4m_disable_irq(unsigned int irq_nr) { unsigned long mask, flags; int cpu = smp_processor_id(); mask = sun4m_get_irqmask(irq_nr); local_irq_save(flags); if (irq_nr > 15) sbus_writel(mask, &sun4m_irq_global->mask_set); else sbus_writel(mask, &sun4m_irq_percpu[cpu]->set); local_irq_restore(flags); }
static void sun4m_enable_irq(unsigned int irq_nr) { unsigned long mask, flags; int cpu = smp_processor_id(); /* Dreadful floppy hack. When we use 0x2b instead of * 0x0b the system blows (it starts to whistle!). * So we continue to use 0x0b. Fixme ASAP. --P3 */ if (irq_nr != 0x0b) { mask = sun4m_get_irqmask(irq_nr); local_irq_save(flags); if (irq_nr > 15) sun4m_interrupts->clear = mask; else sun4m_interrupts->cpu_intregs[cpu].clear = mask; local_irq_restore(flags); } else { local_irq_save(flags); sun4m_interrupts->clear = SUN4M_INT_FLOPPY; local_irq_restore(flags); } }
static void sun4m_enable_irq(unsigned int irq_nr) { unsigned long mask, flags; int cpu = smp_processor_id(); /* Dreadful floppy hack. When we use 0x2b instead of * 0x0b the system blows (it starts to whistle!). * So we continue to use 0x0b. Fixme ASAP. --P3 */ if (irq_nr != 0x0b) { mask = sun4m_get_irqmask(irq_nr); local_irq_save(flags); if (irq_nr > 15) sbus_writel(mask, &sun4m_irq_global->mask_clear); else sbus_writel(mask, &sun4m_irq_percpu[cpu]->clear); local_irq_restore(flags); } else { local_irq_save(flags); sbus_writel(SUN4M_INT_FLOPPY, &sun4m_irq_global->mask_clear); local_irq_restore(flags); } }
static void sun4m_clear_ipi(int cpu, int level) { unsigned long mask = sun4m_get_irqmask(level); sbus_writel(mask, &sun4m_irq_percpu[cpu]->clear); }