Loading drivers/irqchip/qcom-pdc.c +23 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ #include <linux/err.h> #include <linux/init.h> #include <linux/interrupt.h> #include <linux/irq.h> #include <linux/irqchip.h> #include <linux/irqdomain.h> Loading Loading @@ -50,6 +51,26 @@ static u32 pdc_reg_read(int reg, u32 i) return readl_relaxed(pdc_base + reg + i * sizeof(u32)); } 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 pdc_enable_intr(struct irq_data *d, bool on) { int pin_out = d->hwirq; Loading Loading @@ -178,6 +199,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 | Loading Loading
drivers/irqchip/qcom-pdc.c +23 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ #include <linux/err.h> #include <linux/init.h> #include <linux/interrupt.h> #include <linux/irq.h> #include <linux/irqchip.h> #include <linux/irqdomain.h> Loading Loading @@ -50,6 +51,26 @@ static u32 pdc_reg_read(int reg, u32 i) return readl_relaxed(pdc_base + reg + i * sizeof(u32)); } 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 pdc_enable_intr(struct irq_data *d, bool on) { int pin_out = d->hwirq; Loading Loading @@ -178,6 +199,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 | Loading