According to the binding, the edp_irq is not available on tegra124/132 This commit moves the initialization of tegra->edp_irq after the introduced SoCs condition. This will have the following effects: - soctherm_interrupts_init will not return prematurely with unfinished thermal_irq initialization on tegra124 and tegra132 - edp_irq initialization will be bypassed when not relevant As a result, this will clear the following error when loading the driver: kernel: tegra_soctherm 700e2000.thermal-sensor: IRQ index 1 not found Fixes: 4a04beb1bf2e (thermal: tegra: add support for EDP IRQ) Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Nicolas Chauvet <kwizart@xxxxxxxxx> --- drivers/thermal/tegra/soctherm.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/thermal/tegra/soctherm.c b/drivers/thermal/tegra/soctherm.c index 66e0639da4bf..0a7dc988f25f 100644 --- a/drivers/thermal/tegra/soctherm.c +++ b/drivers/thermal/tegra/soctherm.c @@ -2025,12 +2025,6 @@ static int soctherm_interrupts_init(struct platform_device *pdev, return 0; } - tegra->edp_irq = platform_get_irq(pdev, 1); - if (tegra->edp_irq < 0) { - dev_dbg(&pdev->dev, "get 'edp_irq' failed.\n"); - return 0; - } - ret = devm_request_threaded_irq(&pdev->dev, tegra->thermal_irq, soctherm_thermal_isr, @@ -2043,6 +2037,17 @@ static int soctherm_interrupts_init(struct platform_device *pdev, return ret; } + /* None of the tegra124 and tegra132 SoCs have edp_irq */ + if (of_machine_is_compatible("nvidia,tegra124") || + of_machine_is_compatible("nvidia,tegra132")) + return 0; + + tegra->edp_irq = platform_get_irq(pdev, 1); + if (tegra->edp_irq < 0) { + dev_dbg(&pdev->dev, "get 'edp_irq' failed.\n"); + return 0; + } + ret = devm_request_threaded_irq(&pdev->dev, tegra->edp_irq, soctherm_edp_isr, -- 2.25.4