thermal: max77620: fix pinmux conflict on reprobe
authorJohan Hovold <johan@kernel.org>
Tue, 6 Jun 2017 15:59:04 +0000 (17:59 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Jun 2017 09:07:32 +0000 (11:07 +0200)
Use the new helper for reusing a device-tree node of another device
instead of managing the node references explicitly.

This also makes sure that the new of_node_reuse flag is set if the
device is ever reprobed, something which specifically now avoids driver
core from attempting to claim any pinmux resources already claimed by
the parent device.

Fixes: ec4664b3fd6d ("thermal: max77620: Add thermal driver for reporting junction temp")
Cc: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/thermal/max77620_thermal.c

index 71d35f3c9215033dd5f0e7a39e7a33dee9d16414..159bbcee882155250149e165c603bc68cd26a715 100644 (file)
@@ -112,12 +112,10 @@ static int max77620_thermal_probe(struct platform_device *pdev)
        }
 
        /*
-        * Drop any current reference to a device-tree node and get a
-        * reference to the parent's node which will be balanced on reprobe or
-        * on platform-device release.
+        * The reference taken to the parent's node which will be balanced on
+        * reprobe or on platform-device release.
         */
-       of_node_put(pdev->dev.of_node);
-       pdev->dev.of_node = of_node_get(pdev->dev.parent->of_node);
+       device_set_of_node_from_dev(&pdev->dev, pdev->dev.parent);
 
        mtherm->tz_device = devm_thermal_zone_of_sensor_register(&pdev->dev, 0,
                                mtherm, &max77620_thermal_ops);