]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
pinctrl: qcom: Replace open coded eoi call with irq_chip_eoi_parent()
authorMaulik Shah <maulik.shah@oss.qualcomm.com>
Fri, 29 May 2026 08:09:11 +0000 (13:39 +0530)
committerLinus Walleij <linusw@kernel.org>
Fri, 29 May 2026 20:35:14 +0000 (22:35 +0200)
commit446fa334d186316e76cbdc4e94e42af7d040a79c
tree54402b942d333bd7ffd9e7c87886586a24861c3c
parente1147e8a002af4997bd90b8210e02bab9b50d4c0
pinctrl: qcom: Replace open coded eoi call with irq_chip_eoi_parent()

Before commit 14dbe186b9d4 ("pinctrl: msmgpio: Make the irqchip immutable")
msm gpio irqchip conditionally initialized pctrl->irq_chip.irq_eoi to
irq_chip_eoi_parent() only for the GPIO irqs having a wakeup capable irq.

In order to make gpio irqchip immutable pctrl->irq_chip.irq_eoi is
initialized to msm_gpio_irq_eoi() which now gets invoked for both wake up
and non-wakeup capable GPIO IRQs.

Replace open coded eoi call to parent irqchip with irq_chip_eoi_parent().

Since the irq_chip_*_parent() APIs internally do not check the valid parent
data is present to ensure irq_chip_eoi_parent() is only invoked for wakeup
capable GPIOs validate d->parent_data within msm_gpio_irq_eoi().

For non wakeup capable GPIOs d->parent_data will be NULL since parent
irqchip diconnects hierarchy using irq_domain_disconnect_hierarchy() and
later irq framework trims hierarchy using irq_domain_trim_hierarchy() which
makes d->parent_data as NULL.

No functional impact.

Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Maulik Shah <maulik.shah@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Linus Walleij <linusw@kernel.org>
drivers/pinctrl/qcom/pinctrl-msm.c