106 lines
3.3 KiB
Diff
106 lines
3.3 KiB
Diff
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
|
|
index 9d67b48..c74e4e8 100644
|
|
--- a/drivers/gpu/drm/i915/i915_dma.c
|
|
+++ b/drivers/gpu/drm/i915/i915_dma.c
|
|
@@ -1787,9 +1787,9 @@ unsigned long i915_chipset_val(struct drm_i915_private *dev_priv)
|
|
}
|
|
}
|
|
|
|
- div_u64(diff, diff1);
|
|
+ diff = div_u64(diff, diff1);
|
|
ret = ((m * diff) + c);
|
|
- div_u64(ret, 10);
|
|
+ ret = div_u64(ret, 10);
|
|
|
|
dev_priv->last_count1 = total_count;
|
|
dev_priv->last_time1 = now;
|
|
@@ -1858,7 +1858,7 @@ void i915_update_gfx_val(struct drm_i915_private *dev_priv)
|
|
|
|
/* More magic constants... */
|
|
diff = diff * 1181;
|
|
- div_u64(diff, diffms * 10);
|
|
+ diff = div_u64(diff, diffms * 10);
|
|
dev_priv->gfx_power = diff;
|
|
}
|
|
|
|
diff --git a/drivers/platform/x86/intel_ips.c b/drivers/platform/x86/intel_ips.c
|
|
index 9024480..bfa9c72 100644
|
|
--- a/drivers/platform/x86/intel_ips.c
|
|
+++ b/drivers/platform/x86/intel_ips.c
|
|
@@ -230,7 +230,7 @@
|
|
#define THM_TC2 0xac
|
|
#define THM_DTV 0xb0
|
|
#define THM_ITV 0xd8
|
|
-#define ITV_ME_SEQNO_MASK 0x000f0000 /* ME should update every ~200ms */
|
|
+#define ITV_ME_SEQNO_MASK 0x00ff0000 /* ME should update every ~200ms */
|
|
#define ITV_ME_SEQNO_SHIFT (16)
|
|
#define ITV_MCH_TEMP_MASK 0x0000ff00
|
|
#define ITV_MCH_TEMP_SHIFT (8)
|
|
@@ -940,7 +940,6 @@ static int ips_monitor(void *data)
|
|
kfree(mch_samples);
|
|
kfree(cpu_samples);
|
|
kfree(mchp_samples);
|
|
- kthread_stop(ips->adjust);
|
|
return -ENOMEM;
|
|
}
|
|
|
|
@@ -948,7 +947,7 @@ static int ips_monitor(void *data)
|
|
ITV_ME_SEQNO_SHIFT;
|
|
seqno_timestamp = get_jiffies_64();
|
|
|
|
- old_cpu_power = thm_readl(THM_CEC) / 65535;
|
|
+ old_cpu_power = thm_readl(THM_CEC);
|
|
schedule_timeout_interruptible(msecs_to_jiffies(IPS_SAMPLE_PERIOD));
|
|
|
|
/* Collect an initial average */
|
|
@@ -1390,7 +1389,7 @@ static bool ips_get_i915_syms(struct ips_driver *ips)
|
|
return true;
|
|
|
|
out_put_busy:
|
|
- symbol_put(i915_gpu_turbo_disable);
|
|
+ symbol_put(i915_gpu_busy);
|
|
out_put_lower:
|
|
symbol_put(i915_gpu_lower);
|
|
out_put_raise:
|
|
@@ -1535,19 +1534,24 @@ static int ips_probe(struct pci_dev *dev, const struct pci_device_id *id)
|
|
ips_enable_cpu_turbo(ips);
|
|
ips->cpu_turbo_enabled = true;
|
|
|
|
- /* Set up the work queue and monitor/adjust threads */
|
|
- ips->monitor = kthread_run(ips_monitor, ips, "ips-monitor");
|
|
- if (IS_ERR(ips->monitor)) {
|
|
+ /* Create thermal adjust thread */
|
|
+ ips->adjust = kthread_create(ips_adjust, ips, "ips-adjust");
|
|
+ if (IS_ERR(ips->adjust)) {
|
|
dev_err(&dev->dev,
|
|
- "failed to create thermal monitor thread, aborting\n");
|
|
+ "failed to create thermal adjust thread, aborting\n");
|
|
ret = -ENOMEM;
|
|
goto error_free_irq;
|
|
+
|
|
}
|
|
|
|
- ips->adjust = kthread_create(ips_adjust, ips, "ips-adjust");
|
|
- if (IS_ERR(ips->adjust)) {
|
|
+ /*
|
|
+ * Set up the work queue and monitor thread. The monitor thread
|
|
+ * will wake up ips_adjust thread.
|
|
+ */
|
|
+ ips->monitor = kthread_run(ips_monitor, ips, "ips-monitor");
|
|
+ if (IS_ERR(ips->monitor)) {
|
|
dev_err(&dev->dev,
|
|
- "failed to create thermal adjust thread, aborting\n");
|
|
+ "failed to create thermal monitor thread, aborting\n");
|
|
ret = -ENOMEM;
|
|
goto error_thread_cleanup;
|
|
}
|
|
@@ -1566,7 +1570,7 @@ static int ips_probe(struct pci_dev *dev, const struct pci_device_id *id)
|
|
return ret;
|
|
|
|
error_thread_cleanup:
|
|
- kthread_stop(ips->monitor);
|
|
+ kthread_stop(ips->adjust);
|
|
error_free_irq:
|
|
free_irq(ips->dev->irq, ips);
|
|
error_unmap:
|