Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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;
}