[PATCH 3/5] thermal: rockchip: fixes invalid temperature case
From: Caesar Wang
Date: Tue Nov 22 2016 - 07:35:29 EST
The temp_to_code function will return 0 when we set the trip points value
or valid temperature.
This patch will prevent this case happening.
Signed-off-by: Caesar Wang <wxt@xxxxxxxxxxxxxx>
---
drivers/thermal/rockchip_thermal.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockchip_thermal.c
index 766486f..535f1fa 100644
--- a/drivers/thermal/rockchip_thermal.c
+++ b/drivers/thermal/rockchip_thermal.c
@@ -401,17 +401,15 @@ static u32 rk_tsadcv2_temp_to_code(const struct chip_tsadc_table *table,
int temp)
{
int high, low, mid;
- u32 error = 0;
+ u32 error = table->data_mask;
low = 0;
high = table->length - 1;
mid = (high + low) / 2;
/* Return mask code data when the temp is over table range */
- if (temp < table->id[low].temp || temp > table->id[high].temp) {
- error = table->data_mask;
+ if (temp < table->id[low].temp || temp > table->id[high].temp)
goto exit;
- }
while (low <= high) {
if (temp == table->id[mid].temp)
--
2.7.4