summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiddartha Mohanadoss <smohanad@codeaurora.org>2017-01-04 18:25:54 -0800
committerSiddartha Mohanadoss <smohanad@codeaurora.org>2017-01-06 16:04:55 -0800
commitc5fd9dbe9d42b1f51f153ae410f086b79ece5e09 (patch)
tree04a3399b80656e088727768b40519130e96f9014
parent2116b44bd37e0245ac3442be3dd094397ce017c9 (diff)
thermal: tsens: Switch from usleep_range() to msleep
On certain cases we have seen usleep_range() return before the intended minimum time parameter passed to this function. There is no protection against wakeups and we may return early. msleep() already has code to handle this cases since it loops as long as there is still time. Change-Id: I3cf1e2d7f61f5a6d42d66afb86ae3b3fe141a9e7 Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
-rw-r--r--drivers/thermal/msm-tsens.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/thermal/msm-tsens.c b/drivers/thermal/msm-tsens.c
index 4585313772ff..b7733e90fc8b 100644
--- a/drivers/thermal/msm-tsens.c
+++ b/drivers/thermal/msm-tsens.c
@@ -170,10 +170,8 @@
#define TSENS_DEBUG_OFFSET_WORD3 0xc
#define TSENS_DEBUG_OFFSET_ROW 0x10
#define TSENS_DEBUG_DECIDEGC -950
-#define TSENS_DEBUG_MIN_CYCLE 63000
-#define TSENS_DEBUG_MAX_CYCLE 64000
-#define TSENS_DEBUG_POLL_MIN 200000
-#define TSENS_DEBUG_POLL_MAX 210000
+#define TSENS_DEBUG_CYCLE_MS 64
+#define TSENS_DEBUG_POLL_MS 200
#define TSENS_DEBUG_BUS_ID2_MIN_CYCLE 50
#define TSENS_DEBUG_BUS_ID2_MAX_CYCLE 51
#define TSENS_DEBUG_ID_MASK_1_4 0xffffffe1
@@ -1412,8 +1410,7 @@ static void tsens_poll(struct work_struct *work)
spin_unlock_irqrestore(&tmdev->tsens_crit_lock, flags);
if (tmdev->tsens_critical_poll) {
- usleep_range(TSENS_DEBUG_POLL_MIN,
- TSENS_DEBUG_POLL_MAX);
+ msleep(TSENS_DEBUG_POLL_MS);
sensor_status_addr = TSENS_TM_SN_STATUS(tmdev->tsens_addr);
spin_lock_irqsave(&tmdev->tsens_crit_lock, flags);
@@ -1567,8 +1564,7 @@ debug_start:
offset += TSENS_DEBUG_OFFSET_ROW;
}
loop++;
- usleep_range(TSENS_DEBUG_MIN_CYCLE,
- TSENS_DEBUG_MAX_CYCLE);
+ msleep(TSENS_DEBUG_CYCLE_MS);
}
BUG();
}