aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/thermal/samsung/exynos_tmu.c28
1 files changed, 11 insertions, 17 deletions
diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
index 15574ccede3d..aa4d4fd2b3f9 100644
--- a/drivers/thermal/samsung/exynos_tmu.c
+++ b/drivers/thermal/samsung/exynos_tmu.c
@@ -77,13 +77,6 @@ static int temp_to_code(struct exynos_tmu_data *data, u8 temp)
77 struct exynos_tmu_platform_data *pdata = data->pdata; 77 struct exynos_tmu_platform_data *pdata = data->pdata;
78 int temp_code; 78 int temp_code;
79 79
80 if (data->soc == SOC_ARCH_EXYNOS4210)
81 /* temp should range between 25 and 125 */
82 if (temp < 25 || temp > 125) {
83 temp_code = -EINVAL;
84 goto out;
85 }
86
87 switch (pdata->cal_type) { 80 switch (pdata->cal_type) {
88 case TYPE_TWO_POINT_TRIMMING: 81 case TYPE_TWO_POINT_TRIMMING:
89 temp_code = (temp - pdata->first_point_trim) * 82 temp_code = (temp - pdata->first_point_trim) *
@@ -98,7 +91,7 @@ static int temp_to_code(struct exynos_tmu_data *data, u8 temp)
98 temp_code = temp + pdata->default_temp_offset; 91 temp_code = temp + pdata->default_temp_offset;
99 break; 92 break;
100 } 93 }
101out: 94
102 return temp_code; 95 return temp_code;
103} 96}
104 97
@@ -111,13 +104,6 @@ static int code_to_temp(struct exynos_tmu_data *data, u8 temp_code)
111 struct exynos_tmu_platform_data *pdata = data->pdata; 104 struct exynos_tmu_platform_data *pdata = data->pdata;
112 int temp; 105 int temp;
113 106
114 if (data->soc == SOC_ARCH_EXYNOS4210)
115 /* temp_code should range between 75 and 175 */
116 if (temp_code < 75 || temp_code > 175) {
117 temp = -ENODATA;
118 goto out;
119 }
120
121 switch (pdata->cal_type) { 107 switch (pdata->cal_type) {
122 case TYPE_TWO_POINT_TRIMMING: 108 case TYPE_TWO_POINT_TRIMMING:
123 temp = (temp_code - data->temp_error1) * 109 temp = (temp_code - data->temp_error1) *
@@ -132,7 +118,7 @@ static int code_to_temp(struct exynos_tmu_data *data, u8 temp_code)
132 temp = temp_code - pdata->default_temp_offset; 118 temp = temp_code - pdata->default_temp_offset;
133 break; 119 break;
134 } 120 }
135out: 121
136 return temp; 122 return temp;
137} 123}
138 124
@@ -346,8 +332,16 @@ static int exynos_tmu_read(struct exynos_tmu_data *data)
346 clk_enable(data->clk); 332 clk_enable(data->clk);
347 333
348 temp_code = readb(data->base + reg->tmu_cur_temp); 334 temp_code = readb(data->base + reg->tmu_cur_temp);
349 temp = code_to_temp(data, temp_code);
350 335
336 if (data->soc == SOC_ARCH_EXYNOS4210)
337 /* temp_code should range between 75 and 175 */
338 if (temp_code < 75 || temp_code > 175) {
339 temp = -ENODATA;
340 goto out;
341 }
342
343 temp = code_to_temp(data, temp_code);
344out:
351 clk_disable(data->clk); 345 clk_disable(data->clk);
352 mutex_unlock(&data->lock); 346 mutex_unlock(&data->lock);
353 347