#define TMU_PATH_PREFIX "/sys/class/thermal/"
#define TMU_TEMP_PATH_SUFFIX "/temp"
#define TMU_POLICY_PATH_SUFFIX "/policy"
+#define TMU_MAX_TEMP_MASK 0xFFFFF
static int standard_dvfs_get_curr_governor(char *res_name, char *governor)
{
if (ret < 0)
return ret;
- return temp;
+ /*
+ * Thermal framework provides the current temperature
+ * as five digits interger like 54430 when temperature is 54.430
+ * degrees centigrade. But, Thermal Monitor in Tizen usually
+ * use two digits interger without decimal point.
+ * So that round temperature value. It constraints the maximume
+ * temperature as 1048 degrees centigrade for preventing integer
+ * overflow. Usually, the embedded device never over 1000 degrees
+ * centigrade.
+ */
+ return (((temp & TMU_MAX_TEMP_MASK) + 500) / 1000);
}
static int standard_tmu_get_policy(char *res_thermal_name, char *policy)
#define TMU_PATH_PREFIX "/sys/class/thermal/"
#define TMU_TEMP_PATH_SUFFIX "/temp"
#define TMU_POLICY_PATH_SUFFIX "/policy"
+#define TMU_MAX_TEMP_MASK 0xFFFFF
static int standard_dvfs_get_curr_governor(char *res_name, char *governor)
{
if (ret < 0)
return ret;
- return temp;
+ /*
+ * Thermal framework provides the current temperature
+ * as five digits interger like 54430 when temperature is 54.430
+ * degrees centigrade. But, Thermal Monitor in Tizen usually
+ * use two digits interger without decimal point.
+ * So that round temperature value. It constraints the maximume
+ * temperature as 1048 degrees centigrade for preventing integer
+ * overflow. Usually, the embedded device never over 1000 degrees
+ * centigrade.
+ */
+ return (((temp & TMU_MAX_TEMP_MASK) + 500) / 1000);
}
static int standard_tmu_get_policy(char *res_thermal_name, char *policy)