bool msm_mpm_gpio_irqs_detectable(bool from_idle) { unsigned long *apps_irq_bitmap = from_idle ? msm_mpm_enabled_apps_irqs : msm_mpm_wake_apps_irqs; return !__bitmap_intersects(msm_mpm_gpio_irqs_mask, apps_irq_bitmap, MSM_MPM_NR_APPS_IRQS); }
bool msm_mpm_gpio_irq_enabled(bool from_idle) { unsigned long *apps_irq_bitmap = from_idle ? msm_mpm_enabled_apps_irqs : msm_mpm_wake_apps_irqs; int gpio_irq_enabled = 0; gpio_irq_enabled = __bitmap_intersects(msm_mpm_gpio_irqs_mask, apps_irq_bitmap, MSM_MPM_NR_APPS_IRQS); if (gpio_irq_enabled && (!from_idle || (MSM_MPM_DEBUG_ILDE_BLOCK & msm_mpm_debug_mask))) { char buf[DIV_ROUND_UP(MSM_MPM_NR_APPS_IRQS, 32)*9+1]; DECLARE_BITMAP(msm_mpm_chk_gpio_irqs, MSM_MPM_NR_APPS_IRQS); __bitmap_and(msm_mpm_chk_gpio_irqs, msm_mpm_gic_irqs_mask, apps_irq_bitmap, MSM_MPM_NR_APPS_IRQS); bitmap_scnprintf(buf, sizeof(buf), apps_irq_bitmap, MSM_MPM_NR_APPS_IRQS); buf[sizeof(buf) - 1] = '\0'; pr_info("%s: cannot monitor %s", __func__, buf); } return gpio_irq_enabled; }