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));

		}
示例#2
0
// 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));
        }