Loading drivers/pinctrl/qcom/pinctrl-msm.c +7 −0 Original line number Diff line number Diff line Loading @@ -629,6 +629,7 @@ static void msm_gpio_irq_enable(struct irq_data *d) static void msm_gpio_irq_unmask(struct irq_data *d) { struct gpio_chip *gc = irq_data_get_irq_chip_data(d); uint32_t irqtype = irqd_get_trigger_type(d); struct msm_pinctrl *pctrl = gpiochip_get_data(gc); const struct msm_pingroup *g; unsigned long flags; Loading @@ -638,6 +639,12 @@ static void msm_gpio_irq_unmask(struct irq_data *d) spin_lock_irqsave(&pctrl->lock, flags); if (irqtype & (IRQF_TRIGGER_HIGH | IRQF_TRIGGER_LOW)) { val = readl_relaxed(pctrl->regs + g->intr_status_reg); val &= ~BIT(g->intr_status_bit); writel_relaxed(val, pctrl->regs + g->intr_status_reg); } val = readl(pctrl->regs + g->intr_cfg_reg); val |= BIT(g->intr_enable_bit); writel(val, pctrl->regs + g->intr_cfg_reg); Loading Loading
drivers/pinctrl/qcom/pinctrl-msm.c +7 −0 Original line number Diff line number Diff line Loading @@ -629,6 +629,7 @@ static void msm_gpio_irq_enable(struct irq_data *d) static void msm_gpio_irq_unmask(struct irq_data *d) { struct gpio_chip *gc = irq_data_get_irq_chip_data(d); uint32_t irqtype = irqd_get_trigger_type(d); struct msm_pinctrl *pctrl = gpiochip_get_data(gc); const struct msm_pingroup *g; unsigned long flags; Loading @@ -638,6 +639,12 @@ static void msm_gpio_irq_unmask(struct irq_data *d) spin_lock_irqsave(&pctrl->lock, flags); if (irqtype & (IRQF_TRIGGER_HIGH | IRQF_TRIGGER_LOW)) { val = readl_relaxed(pctrl->regs + g->intr_status_reg); val &= ~BIT(g->intr_status_bit); writel_relaxed(val, pctrl->regs + g->intr_status_reg); } val = readl(pctrl->regs + g->intr_cfg_reg); val |= BIT(g->intr_enable_bit); writel(val, pctrl->regs + g->intr_cfg_reg); Loading