[PATCH 10/12] gpio: eic-sprd: use devm_atomic_notifier_chain_register()

From: Eliav Farber

Date: Thu Jul 23 2026 - 14:09:11 EST


Replace the atomic_notifier_chain_register() +
devm_add_action_or_reset() pattern with a single call to
devm_atomic_notifier_chain_register(), removing the
sprd_eic_unregister_notifier() callback.

Signed-off-by: Eliav Farber <farbere@xxxxxxxxxx>
---
drivers/gpio/gpio-eic-sprd.c | 17 ++---------------
1 file changed, 2 insertions(+), 15 deletions(-)

diff --git a/drivers/gpio/gpio-eic-sprd.c b/drivers/gpio/gpio-eic-sprd.c
index 3b7ebcf12fe7..86eb9624d38a 100644
--- a/drivers/gpio/gpio-eic-sprd.c
+++ b/drivers/gpio/gpio-eic-sprd.c
@@ -601,13 +601,6 @@ static const struct irq_chip sprd_eic_irq = {
GPIOCHIP_IRQ_RESOURCE_HELPERS,
};

-static void sprd_eic_unregister_notifier(void *data)
-{
- struct notifier_block *nb = data;
-
- atomic_notifier_chain_unregister(&sprd_eic_irq_notifier, nb);
-}
-
static int sprd_eic_probe(struct platform_device *pdev)
{
const struct sprd_eic_variant_data *pdata;
@@ -690,14 +683,8 @@ static int sprd_eic_probe(struct platform_device *pdev)
}

sprd_eic->irq_nb.notifier_call = sprd_eic_irq_notify;
- ret = atomic_notifier_chain_register(&sprd_eic_irq_notifier,
- &sprd_eic->irq_nb);
- if (ret)
- return dev_err_probe(dev, ret,
- "Failed to register with the interrupt notifier");
-
- return devm_add_action_or_reset(dev, sprd_eic_unregister_notifier,
- &sprd_eic->irq_nb);
+ return devm_atomic_notifier_chain_register(dev, &sprd_eic_irq_notifier,
+ &sprd_eic->irq_nb);
}

static const struct of_device_id sprd_eic_of_match[] = {
--
2.47.3