From 1d7e57ca563219d47b66d09fdfbfd4d6b4a0a4ec Mon Sep 17 00:00:00 2001 From: Prateek Sood Date: Mon, 15 Feb 2021 09:39:31 +0530 Subject: [PATCH] pinctrl: qcom: enable/disable mpm wakeup bit when using gpio as IRQ Enable/Disable mpm wakeup bit when using GPIO as IRQ. Change-Id: Ia1c6fbdf9d6e45dd031a647fb14a9ffa662ba42c Signed-off-by: Prateek Sood --- drivers/pinctrl/qcom/pinctrl-msm.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c index 304307e41f4a..73971fcd6003 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm.c +++ b/drivers/pinctrl/qcom/pinctrl-msm.c @@ -894,6 +894,9 @@ static void msm_gpio_irq_enable(struct irq_data *d) irq_chip_enable_parent(d); } + if (pctrl->mpm_wake_ctl) + msm_gpio_mpm_wake_set(d->hwirq, true); + if (test_bit(d->hwirq, pctrl->skip_wake_irqs)) return; @@ -918,6 +921,9 @@ static void msm_gpio_irq_disable(struct irq_data *d) irq_chip_disable_parent(d); } + if (pctrl->mpm_wake_ctl) + msm_gpio_mpm_wake_set(d->hwirq, false); + if (test_bit(d->hwirq, pctrl->skip_wake_irqs)) return; @@ -1194,9 +1200,6 @@ static int msm_gpio_irq_set_wake(struct irq_data *d, unsigned int on) struct msm_pinctrl *pctrl = gpiochip_get_data(gc); unsigned long flags; - if (pctrl->mpm_wake_ctl) - msm_gpio_mpm_wake_set(d->hwirq, on); - if (d->parent_data) irq_chip_set_wake_parent(d, on);