#include <linux/cpumask.h>
#include <linux/bsearch.h>
void _intc_enable(struct irq_data *data, unsigned long handle)
unsigned int irq = data->irq;
struct intc_desc_int *d = get_intc_desc(irq);
for (cpu = 0; cpu < SMP_NR(d, _INTC_ADDR_E(handle)); cpu++) {
if (!cpumask_test_cpu(cpu, irq_data_get_affinity_mask(data)))
addr = INTC_REG(d, _INTC_ADDR_E(handle), cpu);
intc_enable_fns[_INTC_MODE(handle)](addr, handle, intc_reg_fns\
[_INTC_FN(handle)], irq);
intc_balancing_enable(irq);
static void intc_enable(struct irq_data *data)
_intc_enable(data, (unsigned long)irq_data_get_irq_chip_data(data));
static void intc_disable(struct irq_data *data)
unsigned int irq = data->irq;
struct intc_desc_int *d = get_intc_desc(irq);
unsigned long handle = (unsigned long)irq_data_get_irq_chip_data(data);
intc_balancing_disable(irq);
for (cpu = 0; cpu < SMP_NR(d, _INTC_ADDR_D(handle)); cpu++) {
if (!cpumask_test_cpu(cpu, irq_data_get_affinity_mask(data)))
addr = INTC_REG(d, _INTC_ADDR_D(handle), cpu);
intc_disable_fns[_INTC_MODE(handle)](addr, handle,intc_reg_fns\
[_INTC_FN(handle)], irq);