Quoting Maulik Shah (2020-05-23 10:11:12)
Add irqchip specific flags for msmgpio irqchip to mask non wakeirqsWhy do we need to mask before setting irq type? Does something go wrong?
during suspend and mask before setting irq type.
Can you explain in the commit text?
Thanks i will add.
Signed-off-by: Maulik Shah <mkshah@xxxxxxxxxxxxxx>Does this need a Fixes tag?
During suspend, suspend_device_irq() will check this flag in msmgpio irqchip and then call it to mask if its not marked for wakeup.
---This is sort of sad. We have to set the IRQCHIP_MASK_ON_SUSPEND flag
drivers/pinctrl/qcom/pinctrl-msm.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
index 2419023..b909ffe 100644
--- a/drivers/pinctrl/qcom/pinctrl-msm.c
+++ b/drivers/pinctrl/qcom/pinctrl-msm.c
@@ -1143,6 +1143,8 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl)
pctrl->irq_chip.irq_release_resources = msm_gpio_irq_relres;
pctrl->irq_chip.irq_set_affinity = msm_gpio_irq_set_affinity;
pctrl->irq_chip.irq_set_vcpu_affinity = msm_gpio_irq_set_vcpu_affinity;
+ pctrl->irq_chip.flags = IRQCHIP_MASK_ON_SUSPEND
here so that genirq can call the mask op during suspend for the parent
irqchip (pdc)?
Is there some way to not need to do that and instead let
genirq do mask on suspend at the chip level instead of the irq level?
+ | IRQCHIP_SET_TYPE_MASKED;
np = of_parse_phandle(pctrl->dev->of_node, "wakeup-parent", 0);
if (np) {