make intel_ips work
This commit is contained in:
parent
b990650569
commit
a1ae900880
105
fix-intel_ips-to-work-properly.patch
Normal file
105
fix-intel_ips-to-work-properly.patch
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
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:
|
@ -51,7 +51,7 @@ Summary: The Linux kernel
|
|||||||
# For non-released -rc kernels, this will be prepended with "0.", so
|
# For non-released -rc kernels, this will be prepended with "0.", so
|
||||||
# for example a 3 here will become 0.3
|
# for example a 3 here will become 0.3
|
||||||
#
|
#
|
||||||
%global baserelease 28
|
%global baserelease 30
|
||||||
%global fedora_build %{baserelease}
|
%global fedora_build %{baserelease}
|
||||||
|
|
||||||
# base_sublevel is the kernel version we're starting with and patching
|
# base_sublevel is the kernel version we're starting with and patching
|
||||||
@ -723,6 +723,8 @@ Patch12224: pci-v2-4-4-PCI-allocate-bus-resources-from-the-top-down.patch
|
|||||||
Patch12300: btusb-macbookpro-7-1.patch
|
Patch12300: btusb-macbookpro-7-1.patch
|
||||||
Patch12301: btusb-macbookpro-6-2.patch
|
Patch12301: btusb-macbookpro-6-2.patch
|
||||||
|
|
||||||
|
Patch12310: fix-intel_ips-to-work-properly.patch
|
||||||
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
|
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
|
||||||
@ -1328,6 +1330,8 @@ ApplyPatch pci-v2-4-4-PCI-allocate-bus-resources-from-the-top-down.patch
|
|||||||
ApplyPatch btusb-macbookpro-7-1.patch
|
ApplyPatch btusb-macbookpro-7-1.patch
|
||||||
ApplyPatch btusb-macbookpro-6-2.patch
|
ApplyPatch btusb-macbookpro-6-2.patch
|
||||||
|
|
||||||
|
ApplyPatch fix-intel_ips-to-work-properly.patch
|
||||||
|
|
||||||
# END OF PATCH APPLICATIONS
|
# END OF PATCH APPLICATIONS
|
||||||
|
|
||||||
%endif
|
%endif
|
||||||
@ -1935,6 +1939,9 @@ fi
|
|||||||
# || ||
|
# || ||
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Sep 30 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.30.rc6
|
||||||
|
- Collection of patches to make intel_ips work properly.
|
||||||
|
|
||||||
* Wed Sep 29 2010 Dave Jones <davej@redhat.com>
|
* Wed Sep 29 2010 Dave Jones <davej@redhat.com>
|
||||||
- Add back an old hack to make an SDV e1000e variant work.
|
- Add back an old hack to make an SDV e1000e variant work.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user