Advertisement
arter97

Untitled

Jan 1st, 2018
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.27 KB | None | 0 0
  1. diff --git a/drivers/thermal/msm-tsens.c b/drivers/thermal/msm-tsens.c
  2. index 5b5b466bb650..4976b86bad6b 100755
  3. --- a/drivers/thermal/msm-tsens.c
  4. +++ b/drivers/thermal/msm-tsens.c
  5. @@ -296,7 +296,6 @@ struct tsens_tm_device {
  6.     u64             qtimer_val_last_detection_interrupt;
  7.     u64             qtimer_val_last_polling_check;
  8.     bool                tsens_critical_poll;
  9. -   bool                tsens_critical_poll_state;
  10.     struct tsens_tm_device_sensor   sensor[0];
  11.  };
  12.  
  13. @@ -1359,7 +1358,7 @@ static void tsens_poll(struct work_struct *work)
  14.     unsigned int debug_id = 0, cntrl_id = 0;
  15.     uint32_t r1, r2, r3, r4, offset = 0, idx = 0;
  16.     unsigned long temp, flags;
  17. -   unsigned int status, int_mask, int_mask_val, resched_ms;
  18. +   unsigned int status, int_mask, int_mask_val;
  19.     void __iomem *srot_addr;
  20.     void __iomem *controller_id_addr;
  21.     void __iomem *debug_id_addr;
  22. @@ -1383,10 +1382,6 @@ static void tsens_poll(struct work_struct *work)
  23.     /* Sensor 0 on either of the controllers */
  24.     mask = 0;
  25.  
  26. -   if (tmdev->tsens_critical_poll_state) {
  27. -       goto critical_poll;
  28. -   }
  29. -
  30.     reinit_completion(&tmdev->tsens_rslt_completion);
  31.  
  32.     temp &= TSENS_TM_SN_CRITICAL_THRESHOLD_MASK;
  33. @@ -1422,12 +1417,8 @@ static void tsens_poll(struct work_struct *work)
  34.     }
  35.     spin_unlock_irqrestore(&tmdev->tsens_crit_lock, flags);
  36.  
  37. -critical_poll:
  38. -   if (tmdev->tsens_critical_poll && !tmdev->tsens_critical_poll_state) {
  39. -       tmdev->tsens_critical_poll_state = true;
  40. -       goto re_schedule;
  41. -   } else if (tmdev->tsens_critical_poll) {
  42. -       tmdev->tsens_critical_poll_state = false;
  43. +   if (tmdev->tsens_critical_poll) {
  44. +       msleep(TSENS_DEBUG_POLL_MS);
  45.         sensor_status_addr = TSENS_TM_SN_STATUS(tmdev->tsens_addr);
  46.  
  47.         spin_lock_irqsave(&tmdev->tsens_crit_lock, flags);
  48. @@ -1587,11 +1578,9 @@ debug_start:
  49.     }
  50.  
  51.  re_schedule:
  52. -   resched_ms = tmdev->tsens_critical_poll_state
  53. -       ? TSENS_DEBUG_POLL_MS : tsens_sec_to_msec_value;
  54. -   queue_delayed_work(tmdev->tsens_critical_wq,
  55. -       &tmdev->tsens_critical_poll_test,
  56. -       msecs_to_jiffies(resched_ms));
  57. +
  58. +   schedule_delayed_work(&tmdev->tsens_critical_poll_test,
  59. +           msecs_to_jiffies(tsens_sec_to_msec_value));
  60.  }
  61.  
  62.  int tsens_mtc_reset_history_counter(unsigned int zone)
  63. @@ -2425,8 +2414,8 @@ static int tsens_tm_probe(struct platform_device *pdev)
  64.  
  65.     tmdev->pdev = pdev;
  66.  
  67. -   tmdev->tsens_critical_wq = create_singlethread_workqueue("tsens_critical_wq");
  68. -
  69. +   tmdev->tsens_critical_wq = alloc_workqueue("tsens_critical_wq",
  70. +                           WQ_HIGHPRI, 0);
  71.     if (!tmdev->tsens_critical_wq) {
  72.         rc = -ENOMEM;
  73.         goto fail;
  74. @@ -2443,8 +2432,6 @@ static int tsens_tm_probe(struct platform_device *pdev)
  75.  
  76.     spin_lock_init(&tmdev->tsens_crit_lock);
  77.     spin_lock_init(&tmdev->tsens_upp_low_lock);
  78. -
  79. -   tmdev->tsens_critical_poll_state = false;
  80.     tmdev->is_ready = true;
  81.  
  82.     list_add_tail(&tmdev->list, &tsens_device_list);
  83. @@ -2587,8 +2574,7 @@ static int tsens_thermal_zone_register(struct tsens_tm_device *tmdev)
  84.         if (tsens_poll_check) {
  85.             INIT_DEFERRABLE_WORK(&tmdev->tsens_critical_poll_test,
  86.                                 tsens_poll);
  87. -           queue_delayed_work(tmdev->tsens_critical_wq,
  88. -               &tmdev->tsens_critical_poll_test,
  89. +           schedule_delayed_work(&tmdev->tsens_critical_poll_test,
  90.                 msecs_to_jiffies(tsens_sec_to_msec_value));
  91.             init_completion(&tmdev->tsens_rslt_completion);
  92.             tmdev->tsens_critical_poll = true;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement