Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c3b229b5 authored by Maulik Shah's avatar Maulik Shah
Browse files

drivers: irqchip: qcom-pdc: Add irqchip set/get state calls



Add irqchip calls to set/get interrupt status at parent GIC.

Change-Id: Ibd551f84d8f6ae15b8d9702faeb585a69f283f6e
Signed-off-by: default avatarMaulik Shah <mkshah@codeaurora.org>
parent d9233146
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@

#include <linux/err.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/ipc_logging.h>
#include <linux/irq.h>
#include <linux/irqchip.h>
@@ -81,6 +82,24 @@ static void qcom_pdc_gic_disable(struct irq_data *d)
	irq_chip_disable_parent(d);
}

static int qcom_pdc_gic_get_irqchip_state(struct irq_data *d,
		enum irqchip_irq_state which, bool *state)
{
	if (d->hwirq == GPIO_NO_WAKE_IRQ)
		return 0;

	return irq_chip_get_parent_state(d, which, state);
}

static int qcom_pdc_gic_set_irqchip_state(struct irq_data *d,
		enum irqchip_irq_state which, bool value)
{
	if (d->hwirq == GPIO_NO_WAKE_IRQ)
		return 0;

	return irq_chip_set_parent_state(d, which, value);
}

static void qcom_pdc_gic_enable(struct irq_data *d)
{
	if (d->hwirq == GPIO_NO_WAKE_IRQ)
@@ -224,6 +243,8 @@ static struct irq_chip qcom_pdc_gic_chip = {
	.irq_unmask		= qcom_pdc_gic_unmask,
	.irq_disable		= qcom_pdc_gic_disable,
	.irq_enable		= qcom_pdc_gic_enable,
	.irq_get_irqchip_state	= qcom_pdc_gic_get_irqchip_state,
	.irq_set_irqchip_state	= qcom_pdc_gic_set_irqchip_state,
	.irq_retrigger		= irq_chip_retrigger_hierarchy,
	.irq_set_type		= qcom_pdc_gic_set_type,
	.flags			= IRQCHIP_MASK_ON_SUSPEND |