]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
thermal: rcar_gen3_thermal: disable interrupt in .remove
authorJiada Wang <jiada_wang@mentor.com>
Wed, 24 Apr 2019 05:11:45 +0000 (14:11 +0900)
committerEduardo Valentin <edubezval@gmail.com>
Tue, 14 May 2019 14:00:32 +0000 (07:00 -0700)
Currently IRQ remains enabled after .remove, later if device is probed,
IRQ is requested before .thermal_init, this may cause IRQ function be
called before device is initialized.

this patch disables interrupt in .remove, to ensure irq function
only be called after device is fully initialized.

Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
drivers/thermal/rcar_gen3_thermal.c

index cf5ae8f6e8ed072053b7d448010d1215d37d6623..e6727bd09f867c08ab20a0b2918fcf6f84fe2bd6 100644 (file)
@@ -307,6 +307,9 @@ MODULE_DEVICE_TABLE(of, rcar_gen3_thermal_dt_ids);
 static int rcar_gen3_thermal_remove(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
+       struct rcar_gen3_thermal_priv *priv = dev_get_drvdata(dev);
+
+       rcar_thermal_irq_set(priv, false);
 
        pm_runtime_put(dev);
        pm_runtime_disable(dev);