diff options
-rw-r--r-- | drivers/thermal/samsung/exynos_tmu.c | 28 |
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 | } |
101 | out: | 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 | } |
135 | out: | 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); | ||
344 | out: | ||
351 | clk_disable(data->clk); | 345 | clk_disable(data->clk); |
352 | mutex_unlock(&data->lock); | 346 | mutex_unlock(&data->lock); |
353 | 347 | ||