]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
thermal: rcar_gen3_thermal: Register hwmon sysfs interface
authorMarek Vasut <marek.vasut+renesas@gmail.com>
Mon, 11 Feb 2019 19:56:20 +0000 (20:56 +0100)
committerEduardo Valentin <edubezval@gmail.com>
Thu, 21 Feb 2019 01:23:40 +0000 (17:23 -0800)
Register the hwmon sysfs interface on R-Car Gen3 thermal driver to
align it with Gen2 driver. Use devm_add_action() to unregister the
hwmon interface automatically.

Cc: Eduardo Valentin <edubezval@gmail.com>
Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
Cc: linux-renesas-soc@vger.kernel.org
To: linux-pm@vger.kernel.org
From: Marek Vasut <marek.vasut+renesas@gmail.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
drivers/thermal/rcar_gen3_thermal.c

index 75786cc8e2f9195d2a3f8120f26eb787918f881f..88fa41cf16e83e67f670295988897542e90bb7d9 100644 (file)
@@ -19,6 +19,7 @@
 #include <linux/thermal.h>
 
 #include "thermal_core.h"
+#include "thermal_hwmon.h"
 
 /* Register offsets */
 #define REG_GEN3_IRQSTR                0x04
@@ -337,6 +338,13 @@ static int rcar_gen3_thermal_remove(struct platform_device *pdev)
        return 0;
 }
 
+static void rcar_gen3_hwmon_action(void *data)
+{
+       struct thermal_zone_device *zone = data;
+
+       thermal_remove_hwmon_sysfs(zone);
+}
+
 static int rcar_gen3_thermal_probe(struct platform_device *pdev)
 {
        struct rcar_gen3_thermal_priv *priv;
@@ -429,6 +437,17 @@ static int rcar_gen3_thermal_probe(struct platform_device *pdev)
                if (ret < 0)
                        goto error_unregister;
 
+               tsc->zone->tzp->no_hwmon = false;
+               ret = thermal_add_hwmon_sysfs(tsc->zone);
+               if (ret)
+                       goto error_unregister;
+
+               ret = devm_add_action(dev, rcar_gen3_hwmon_action, zone);
+               if (ret) {
+                       rcar_gen3_hwmon_action(zone);
+                       goto error_unregister;
+               }
+
                dev_info(dev, "TSC%d: Loaded %d trip points\n", i, ret);
        }