watchdog: qcom: Propagate errors from optional IRQ lookup
Subsystems (2)
PATCH v3 1/1 watchdog: qcom: Propagate errors from optional IRQ lookup
From: bui duc phuc <[email protected]>
platform_get_irq_optional() returns a positive IRQ number on success or a negative error code on failure. For an optional IRQ, -ENXIO indicates that no IRQ is available, while other errors should be propagated.
Instead of only checking for -EPROBE_DEFER, propagate all error codes returned by platform_get_irq_optional() other than -ENXIO, so that failures are properly reported to the caller.
---
Link v1 :
https://lore.kernel.org/all/[email protected]/
Changes in v2 :
- Update pretimeout handling based on Guenter's review.
Link v2 :
https://lore.kernel.org/all/[email protected]/
Changes in v3:
- Update the handling of wdt->wdd.info based on Sashiko's review.
drivers/watchdog/qcom-wdt.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-)
drivers/watchdog/qcom-wdt.c +14 -13
@@ -287,21 +287,22 @@ static int qcom_wdt_probe(struct platform_device *pdev)return -EINVAL ; } + wdt->wdd.info = &qcom_wdt_info; +/* check if there is pretimeout support */ - irq =platform_get_irq_optional (pdev,0 ); -if (data->pretimeout && irq >0 ) { - ret =devm_request_irq (dev, irq, qcom_wdt_isr,0 , -"wdt_bark" , &wdt->wdd); -if (ret) -return ret; +if (data->pretimeout) { + irq =platform_get_irq_optional (pdev,0 ); +if (irq <0 && irq != -ENXIO ) +return irq; +if (irq >0 ) { + ret =devm_request_irq (dev, irq, qcom_wdt_isr,0 , +"wdt_bark" , &wdt->wdd); +if (ret) +return ret; - wdt->wdd.info = &qcom_wdt_pt_info; - wdt->wdd.pretimeout =1 ; - }else { -if (irq == -EPROBE_DEFER ) -return -EPROBE_DEFER ; - - wdt->wdd.info = &qcom_wdt_info; + wdt->wdd.info = &qcom_wdt_pt_info; + wdt->wdd.pretimeout =1 ; + } } wdt->wdd.ops = &qcom_wdt_ops;
Signature · 1 line
2.43.0
Quoted 11 lines · On Mon, Aug 10, 2026 at 05:51:01PM +0700, [email protected] wrote:
From: bui duc phuc <[email protected]>
platform_get_irq_optional()returns a positive IRQ number on success or a negative error code on failure. For an optional IRQ,-ENXIOindicates that no IRQ is available, while other errors should be propagated.Instead of only checking for -EPROBE_DEFER, propagate all error codes returned by
platform_get_irq_optional()other than-ENXIO, so that failures are properly reported to the caller.Signed-off-by bui duc phuc <[email protected]>
Applied.
Thanks,
Guenter