[PATCH v6 05/24] thermal/drivers/tegra: convert to use devm_request*_irq_probe()

From: Pan Chuang
Date: Mon Jun 23 2025 - 08:38:56 EST


From: Yangtao Li <frank.li@xxxxxxxx>

The new devm_request_*irq_probe API prints an error message by default
when the request fails, and consumers can provide custom error messages.

Converting drivers to use this API has the following benefits:

1.More than 2,000 lines of code can be saved by removing redundant error
messages in drivers.

2.Upper-layer functions can directly return error codes without missing
debugging information.

3.Having proper and consistent information about why the device cannot
be used is useful.

Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
Cc: "Uwe Kleine-König" <u.kleine-koenig@xxxxxxxxxxxxxx>
Cc: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
Cc: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
Signed-off-by: Yangtao Li <frank.li@xxxxxxxx>
Acked-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Pan Chuang <panchuang@xxxxxxxx>
---
drivers/thermal/tegra/soctherm.c | 38 ++++++++++++-------------
drivers/thermal/tegra/tegra30-tsensor.c | 9 +++---
2 files changed, 22 insertions(+), 25 deletions(-)

diff --git a/drivers/thermal/tegra/soctherm.c b/drivers/thermal/tegra/soctherm.c
index 926f1052e6de..aea9931175e8 100644
--- a/drivers/thermal/tegra/soctherm.c
+++ b/drivers/thermal/tegra/soctherm.c
@@ -1989,29 +1989,27 @@ static int soctherm_interrupts_init(struct platform_device *pdev,
return 0;
}

- ret = devm_request_threaded_irq(&pdev->dev,
- tegra->thermal_irq,
- soctherm_thermal_isr,
- soctherm_thermal_isr_thread,
- IRQF_ONESHOT,
- dev_name(&pdev->dev),
- tegra);
- if (ret < 0) {
- dev_err(&pdev->dev, "request_irq 'thermal_irq' failed.\n");
+ ret = devm_request_threaded_irq_probe(&pdev->dev,
+ tegra->thermal_irq,
+ soctherm_thermal_isr,
+ soctherm_thermal_isr_thread,
+ IRQF_ONESHOT,
+ dev_name(&pdev->dev),
+ tegra,
+ "thermal_irq");
+ if (ret < 0)
return ret;
- }

- ret = devm_request_threaded_irq(&pdev->dev,
- tegra->edp_irq,
- soctherm_edp_isr,
- soctherm_edp_isr_thread,
- IRQF_ONESHOT,
- "soctherm_edp",
- tegra);
- if (ret < 0) {
- dev_err(&pdev->dev, "request_irq 'edp_irq' failed.\n");
+ ret = devm_request_threaded_irq_probe(&pdev->dev,
+ tegra->edp_irq,
+ soctherm_edp_isr,
+ soctherm_edp_isr_thread,
+ IRQF_ONESHOT,
+ "soctherm_edp",
+ tegra,
+ "edp_irq");
+ if (ret < 0)
return ret;
- }

return 0;
}
diff --git a/drivers/thermal/tegra/tegra30-tsensor.c b/drivers/thermal/tegra/tegra30-tsensor.c
index 6245f6b97f43..807e568e5b25 100644
--- a/drivers/thermal/tegra/tegra30-tsensor.c
+++ b/drivers/thermal/tegra/tegra30-tsensor.c
@@ -598,12 +598,11 @@ static int tegra_tsensor_probe(struct platform_device *pdev)
return err;
}

- err = devm_request_threaded_irq(&pdev->dev, irq, NULL,
- tegra_tsensor_isr, IRQF_ONESHOT,
- "tegra_tsensor", ts);
+ err = devm_request_threaded_irq_probe(&pdev->dev, irq, NULL,
+ tegra_tsensor_isr, IRQF_ONESHOT,
+ "tegra_tsensor", ts, NULL);
if (err)
- return dev_err_probe(&pdev->dev, err,
- "failed to request interrupt\n");
+ return err;

return 0;
}
--
2.39.0