summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorJinyoung Park <jinyoungp@nvidia.com>2012-11-26 14:40:28 -0800
committerSimone Willett <swillett@nvidia.com>2012-11-30 10:53:49 -0800
commitb28b658d3f3d337b7013ab3bf71c9ae94ddbb623 (patch)
treecb17981fc3785eae796fa723f664820c0eff3345 /Documentation
parente26d24c61858f049d217fb2e94c4574fb3c340fb (diff)
Thermal: Merge thermal framwork changes from Linux-next
There are some massive changes for thermal in Linux-next. They will be released in Linux kernel-3.7. But several of them are needed for new thermal management. So merged them from Linux-next to android-tegra-nv-3.4. This is change list from Linux-next. - thermal: Fix potential NULL pointer accesses - thermal, cpufreq: Fix build when CPU_FREQ_TABLE isn't configured - Thermal: Refactor thermal.h file - Thermal: Move thermal_instance to thermal_core.h - Thermal: Add get trend, get instance API's to thermal_sys - Thermal: Add platform level information to thermal.h - Thermal: Pass zone parameters as argument to tzd_register - Thermal: Add thermal governor registration APIs - Thermal: Add a policy sysfs attribute - Thermal: Update binding logic based on platform data - Thermal: Make thermal_cdev_update as a global function - Thermal: Introduce fair_share thermal governor - Thermal: Introduce a step_wise thermal governor - Thermal: Add a thermal notifier for user space - Thermal: Remove throttling logic out of thermal_sys.c - Thermal: Add a notification API - Thermal: Add documentation for platform layer data - Thermal: Provide option to choose default thermal governor - Thermal: Fix oops and unlocking in thermal_sys.c - thermal: step_wise: Add missing static storage class specifiers - thermal: fair_share: Add missing static storage class specifiers - thermal: user_space: Add missing static storage class specifiers - Thermal: add indent for code alignment. - Thermal: fix bug of counting cpu frequencies. - Thermal: Remove the cooling_cpufreq_list. Bug 1059470 Change-Id: I9fc9d1ee6c1b99da21cad309f740a3762512f11c Signed-off-by: Jinyoung Park <jinyoungp@nvidia.com> Reviewed-on: http://git-master/r/166320 Reviewed-by: Diwakar Tundlam <dtundlam@nvidia.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/thermal/sysfs-api.txt64
1 files changed, 64 insertions, 0 deletions
diff --git a/Documentation/thermal/sysfs-api.txt b/Documentation/thermal/sysfs-api.txt
index ca1a1a34970e..88c02334e356 100644
--- a/Documentation/thermal/sysfs-api.txt
+++ b/Documentation/thermal/sysfs-api.txt
@@ -112,6 +112,29 @@ temperature) and throttle appropriate devices.
trip: indicates which trip point the cooling devices is associated with
in this thermal zone.
+1.4 Thermal Zone Parameters
+1.4.1 struct thermal_bind_params
+ This structure defines the following parameters that are used to bind
+ a zone with a cooling device for a particular trip point.
+ .cdev: The cooling device pointer
+ .weight: The 'influence' of a particular cooling device on this zone.
+ This is on a percentage scale. The sum of all these weights
+ (for a particular zone) cannot exceed 100.
+ .trip_mask:This is a bit mask that gives the binding relation between
+ this thermal zone and cdev, for a particular trip point.
+ If nth bit is set, then the cdev and thermal zone are bound
+ for trip point n.
+ .match: This call back returns success(0) if the 'tz and cdev' need to
+ be bound, as per platform data.
+1.4.2 struct thermal_zone_params
+ This structure defines the platform level parameters for a thermal zone.
+ This data, for each thermal zone should come from the platform layer.
+ This is an optional feature where some platforms can choose not to
+ provide this data.
+ .governor_name: Name of the thermal governor used for this zone
+ .num_tbps: Number of thermal_bind_params entries for this zone
+ .tbp: thermal_bind_params entries
+
2. sysfs attributes structure
RO read only value
@@ -126,6 +149,7 @@ Thermal zone device sys I/F, created once it's registered:
|---type: Type of the thermal zone
|---temp: Current temperature
|---mode: Working mode of the thermal zone
+ |---policy: Thermal governor used for this zone
|---trip_point_[0-*]_temp: Trip point temperature
|---trip_point_[0-*]_type: Trip point type
|---trip_point_[0-*]_hyst: Hysteresis value for this trip point
@@ -187,6 +211,10 @@ mode
charge of the thermal management.
RW, Optional
+policy
+ One of the various thermal governors used for a particular zone.
+ RW, Required
+
trip_point_[0-*]_temp
The temperature above which trip point will be fired.
Unit: millidegree Celsius
@@ -264,6 +292,7 @@ method, the sys I/F structure will be built like this:
|---type: acpitz
|---temp: 37000
|---mode: enabled
+ |---policy: step_wise
|---trip_point_0_temp: 100000
|---trip_point_0_type: critical
|---trip_point_1_temp: 80000
@@ -305,3 +334,38 @@ to a thermal_zone_device when it registers itself with the framework. The
event will be one of:{THERMAL_AUX0, THERMAL_AUX1, THERMAL_CRITICAL,
THERMAL_DEV_FAULT}. Notification can be sent when the current temperature
crosses any of the configured thresholds.
+
+5. Export Symbol APIs:
+
+5.1: get_tz_trend:
+This function returns the trend of a thermal zone, i.e the rate of change
+of temperature of the thermal zone. Ideally, the thermal sensor drivers
+are supposed to implement the callback. If they don't, the thermal
+framework calculated the trend by comparing the previous and the current
+temperature values.
+
+5.2:get_thermal_instance:
+This function returns the thermal_instance corresponding to a given
+{thermal_zone, cooling_device, trip_point} combination. Returns NULL
+if such an instance does not exist.
+
+5.3:notify_thermal_framework:
+This function handles the trip events from sensor drivers. It starts
+throttling the cooling devices according to the policy configured.
+For CRITICAL and HOT trip points, this notifies the respective drivers,
+and does actual throttling for other trip points i.e ACTIVE and PASSIVE.
+The throttling policy is based on the configured platform data; if no
+platform data is provided, this uses the step_wise throttling policy.
+
+5.4:thermal_cdev_update:
+This function serves as an arbitrator to set the state of a cooling
+device. It sets the cooling device to the deepest cooling state if
+possible.
+
+5.5:thermal_register_governor:
+This function lets the various thermal governors to register themselves
+with the Thermal framework. At run time, depending on a zone's platform
+data, a particular governor is used for throttling.
+
+5.6:thermal_unregister_governor:
+This function unregisters a governor from the thermal framework.