[PATCHv2 05/14] Thermal: Obtain platform data for thermal zone
From: Durgadoss R <hidden>
Date: 2012-08-27 04:29:14
Subsystem:
the rest, thermal · Maintainers:
Linus Torvalds, Rafael J. Wysocki, Daniel Lezcano
From: Durgadoss R <hidden>
Date: 2012-08-27 04:29:14
Subsystem:
the rest, thermal · Maintainers:
Linus Torvalds, Rafael J. Wysocki, Daniel Lezcano
This patch retrieves the platform level data for a zone during its registration. It is not an error to not have any platform data. Signed-off-by: Durgadoss R <redacted> --- drivers/thermal/thermal_sys.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c
index 92a187c..6adda39 100644
--- a/drivers/thermal/thermal_sys.c
+++ b/drivers/thermal/thermal_sys.c@@ -1339,6 +1339,22 @@ static void remove_trip_attrs(struct thermal_zone_device *tz) kfree(tz->trip_hyst_attrs); } +static int retrieve_zone_params(struct thermal_zone_device *tz) +{ + int ret; + + /* Check whether the platform data pointer is defined */ + if (!get_platform_thermal_params) + return 0; + + /* It is not an error to not have any platform data */ + ret = get_platform_thermal_params(tz); + if (ret) + tz->tzp = NULL; + + return 0; +} + /** * thermal_zone_device_register - register a new thermal zone device * @type: the thermal zone device type
@@ -1443,6 +1459,11 @@ struct thermal_zone_device *thermal_zone_device_register(const char *type, if (result) goto unregister; + /* Retrieve platform level parameters for this zone */ + result = retrieve_zone_params(tz); + if (result) + goto unregister; + mutex_lock(&thermal_list_lock); list_add_tail(&tz->node, &thermal_tz_list); if (ops->bind)
--
1.7.9.5