void disable_brcm_irqsave(struct irq_data *data, unsigned long stateSaveArray[]) { #if 0 int cpu; unsigned long flags; unsigned int irq = data->irq; /* test for valid interrupt */ if ((irq >= INTERNAL_ISR_TABLE_OFFSET) && (irq <= INTERRUPT_ID_LAST)) { /* Disable this processor's interrupts and acquire spinlock */ spin_lock_irqsave(&brcm_irqlock, flags); /* loop thru each processor */ for_each_cpu_mask(cpu, AFFINITY_OF(data)) { /* save original interrupt's enable state */ stateSaveArray[cpu] = brcm_irq_ctrl[cpu]->IrqMask & (((IRQ_TYPE)1) << (irq - INTERNAL_ISR_TABLE_OFFSET)); /* clear each cpu's selected interrupt enable */ brcm_irq_ctrl[cpu]->IrqMask &= ~(((IRQ_TYPE)1) << (irq - INTERNAL_ISR_TABLE_OFFSET)); }
// bill void disable_brcm_irqsave(unsigned int irq, unsigned long stateSaveArray[]) { int cpu; struct irq_desc *desc = irq_desc + irq; unsigned long flags; // Test for valid interrupt. if ((irq >= INTERNAL_ISR_TABLE_OFFSET ) && (irq <= INTERRUPT_ID_LAST)) { // Disable this processor's interrupts and acquire spinlock. spin_lock_irqsave(&brcm_irqlock, flags); // Loop thru each processor. for_each_cpu_mask(cpu, AFFINITY_OF(desc)) { // Save original interrupt's enable state. stateSaveArray[cpu] = brcm_irq_ctrl[cpu]->IrqMask & (((IRQ_TYPE)1) << (irq - INTERNAL_ISR_TABLE_OFFSET)); // Clear each cpu's selected interrupt enable. brcm_irq_ctrl[cpu]->IrqMask &= ~(((IRQ_TYPE)1) << (irq - INTERNAL_ISR_TABLE_OFFSET)); }