static void msm_gic_unmask_irq(struct irq_data *d) { unsigned int index = GIC_IRQ_INDEX(d->irq); uint32_t mask; int smsm_irq = msm_gic_irq_to_smsm[d->irq]; mask = GIC_IRQ_MASK(d->irq); /* check whether irq to be bypassed are not */ if (msm_mpm_bypass_apps_irq(d->irq)) return; if (smsm_irq == 0) { msm_gic_irq_idle_disable[index] |= mask; } else { mask = GIC_IRQ_MASK(smsm_irq - 1); msm_gic_irq_smsm_wake_enable[0] |= mask; } }
static void msm_gic_mask_irq(struct irq_data *d) { unsigned int index = GIC_IRQ_INDEX(d->irq); uint32_t mask; int smsm_irq = msm_gic_irq_to_smsm[d->irq]; mask = GIC_IRQ_MASK(d->irq); if (msm_mpm_bypass_apps_irq(d->irq)) return; if (smsm_irq == 0) { msm_gic_irq_idle_disable[index] &= ~mask; } else { mask = GIC_IRQ_MASK(smsm_irq - 1); msm_gic_irq_smsm_wake_enable[0] &= ~mask; } }