Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/drivers/thermal/msm-tsens.c b/drivers/thermal/msm-tsens.c
- index 5b5b466bb650..4976b86bad6b 100755
- --- a/drivers/thermal/msm-tsens.c
- +++ b/drivers/thermal/msm-tsens.c
- @@ -296,7 +296,6 @@ struct tsens_tm_device {
- u64 qtimer_val_last_detection_interrupt;
- u64 qtimer_val_last_polling_check;
- bool tsens_critical_poll;
- - bool tsens_critical_poll_state;
- struct tsens_tm_device_sensor sensor[0];
- };
- @@ -1359,7 +1358,7 @@ static void tsens_poll(struct work_struct *work)
- unsigned int debug_id = 0, cntrl_id = 0;
- uint32_t r1, r2, r3, r4, offset = 0, idx = 0;
- unsigned long temp, flags;
- - unsigned int status, int_mask, int_mask_val, resched_ms;
- + unsigned int status, int_mask, int_mask_val;
- void __iomem *srot_addr;
- void __iomem *controller_id_addr;
- void __iomem *debug_id_addr;
- @@ -1383,10 +1382,6 @@ static void tsens_poll(struct work_struct *work)
- /* Sensor 0 on either of the controllers */
- mask = 0;
- - if (tmdev->tsens_critical_poll_state) {
- - goto critical_poll;
- - }
- -
- reinit_completion(&tmdev->tsens_rslt_completion);
- temp &= TSENS_TM_SN_CRITICAL_THRESHOLD_MASK;
- @@ -1422,12 +1417,8 @@ static void tsens_poll(struct work_struct *work)
- }
- spin_unlock_irqrestore(&tmdev->tsens_crit_lock, flags);
- -critical_poll:
- - if (tmdev->tsens_critical_poll && !tmdev->tsens_critical_poll_state) {
- - tmdev->tsens_critical_poll_state = true;
- - goto re_schedule;
- - } else if (tmdev->tsens_critical_poll) {
- - tmdev->tsens_critical_poll_state = false;
- + if (tmdev->tsens_critical_poll) {
- + msleep(TSENS_DEBUG_POLL_MS);
- sensor_status_addr = TSENS_TM_SN_STATUS(tmdev->tsens_addr);
- spin_lock_irqsave(&tmdev->tsens_crit_lock, flags);
- @@ -1587,11 +1578,9 @@ debug_start:
- }
- re_schedule:
- - resched_ms = tmdev->tsens_critical_poll_state
- - ? TSENS_DEBUG_POLL_MS : tsens_sec_to_msec_value;
- - queue_delayed_work(tmdev->tsens_critical_wq,
- - &tmdev->tsens_critical_poll_test,
- - msecs_to_jiffies(resched_ms));
- +
- + schedule_delayed_work(&tmdev->tsens_critical_poll_test,
- + msecs_to_jiffies(tsens_sec_to_msec_value));
- }
- int tsens_mtc_reset_history_counter(unsigned int zone)
- @@ -2425,8 +2414,8 @@ static int tsens_tm_probe(struct platform_device *pdev)
- tmdev->pdev = pdev;
- - tmdev->tsens_critical_wq = create_singlethread_workqueue("tsens_critical_wq");
- -
- + tmdev->tsens_critical_wq = alloc_workqueue("tsens_critical_wq",
- + WQ_HIGHPRI, 0);
- if (!tmdev->tsens_critical_wq) {
- rc = -ENOMEM;
- goto fail;
- @@ -2443,8 +2432,6 @@ static int tsens_tm_probe(struct platform_device *pdev)
- spin_lock_init(&tmdev->tsens_crit_lock);
- spin_lock_init(&tmdev->tsens_upp_low_lock);
- -
- - tmdev->tsens_critical_poll_state = false;
- tmdev->is_ready = true;
- list_add_tail(&tmdev->list, &tsens_device_list);
- @@ -2587,8 +2574,7 @@ static int tsens_thermal_zone_register(struct tsens_tm_device *tmdev)
- if (tsens_poll_check) {
- INIT_DEFERRABLE_WORK(&tmdev->tsens_critical_poll_test,
- tsens_poll);
- - queue_delayed_work(tmdev->tsens_critical_wq,
- - &tmdev->tsens_critical_poll_test,
- + schedule_delayed_work(&tmdev->tsens_critical_poll_test,
- msecs_to_jiffies(tsens_sec_to_msec_value));
- init_completion(&tmdev->tsens_rslt_completion);
- tmdev->tsens_critical_poll = true;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement