diff options
| -rw-r--r-- | drivers/irqchip/qcom-pdc.c | 16 | 
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/irqchip/qcom-pdc.c b/drivers/irqchip/qcom-pdc.c index 690cf108ce06..527c29e212bd 100644 --- a/drivers/irqchip/qcom-pdc.c +++ b/drivers/irqchip/qcom-pdc.c @@ -63,15 +63,25 @@ static void pdc_enable_intr(struct irq_data *d, bool on)  	raw_spin_unlock(&pdc_lock);  } -static void qcom_pdc_gic_mask(struct irq_data *d) +static void qcom_pdc_gic_disable(struct irq_data *d)  {  	pdc_enable_intr(d, false); +	irq_chip_disable_parent(d); +} + +static void qcom_pdc_gic_enable(struct irq_data *d) +{ +	pdc_enable_intr(d, true); +	irq_chip_enable_parent(d); +} + +static void qcom_pdc_gic_mask(struct irq_data *d) +{  	irq_chip_mask_parent(d);  }  static void qcom_pdc_gic_unmask(struct irq_data *d)  { -	pdc_enable_intr(d, true);  	irq_chip_unmask_parent(d);  } @@ -148,6 +158,8 @@ static struct irq_chip qcom_pdc_gic_chip = {  	.irq_eoi		= irq_chip_eoi_parent,  	.irq_mask		= qcom_pdc_gic_mask,  	.irq_unmask		= qcom_pdc_gic_unmask, +	.irq_disable		= qcom_pdc_gic_disable, +	.irq_enable		= qcom_pdc_gic_enable,  	.irq_retrigger		= irq_chip_retrigger_hierarchy,  	.irq_set_type		= qcom_pdc_gic_set_type,  	.flags			= IRQCHIP_MASK_ON_SUSPEND |  | 

