Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

thermal: max77620: fix pinmux conflict on reprobe

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>

authored by

Johan Hovold and committed by
Greg Kroah-Hartman
ce046e5d c592fafb

+3 -5
+3 -5
drivers/thermal/max77620_thermal.c
··· 112 112 } 113 113 114 114 /* 115 - * Drop any current reference to a device-tree node and get a 116 - * reference to the parent's node which will be balanced on reprobe or 117 - * on platform-device release. 115 + * The reference taken to the parent's node which will be balanced on 116 + * reprobe or on platform-device release. 118 117 */ 119 - of_node_put(pdev->dev.of_node); 120 - pdev->dev.of_node = of_node_get(pdev->dev.parent->of_node); 118 + device_set_of_node_from_dev(&pdev->dev, pdev->dev.parent); 121 119 122 120 mtherm->tz_device = devm_thermal_zone_of_sensor_register(&pdev->dev, 0, 123 121 mtherm, &max77620_thermal_ops);