@@ -574,7 +574,24 @@ EXPORT_SYMBOL_GPL(of_devfreq_cooling_register);
*/
struct thermal_cooling_device *devfreq_cooling_register(struct devfreq *df)
{
- return of_devfreq_cooling_register(NULL, df);
+ struct thermal_cooling_device *dfc;
+ struct device_node *np = NULL;
+ struct device *dev;
+
+ if (IS_ERR_OR_NULL(df))
+ return ERR_PTR(-EINVAL);
+
+ dev = df->dev.parent;
+
+ if (dev && dev->of_node)
+ np = of_node_get(dev->of_node);
+
+ dfc = of_devfreq_cooling_register(np, df);
+
+ if (np)
+ of_node_put(np);
+
+ return dfc;
}
EXPORT_SYMBOL_GPL(devfreq_cooling_register);
@@ -586,7 +603,7 @@ void devfreq_cooling_unregister(struct thermal_cooling_device *cdev)
{
struct devfreq_cooling_device *dfc;
- if (!cdev)
+ if (IS_ERR_OR_NULL(cdev))
return;
dfc = cdev->devdata;