summaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/coretemp.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2010-01-25 14:52:48 +0000
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-01-25 14:52:48 +0000
commitf1487fcbe47cd2bc0c71e8598bf9eb6a82dec544 (patch)
tree4c7abed6047538c13dd024a8ecffd15f31b4609a /drivers/hwmon/coretemp.c
parent84549d239ab9bb2e3a85c6efcf0e6478a38b4260 (diff)
parent40aa7030e5213a43e9e0554fd7f95534ea310bf3 (diff)
downloadkernel-crypto-f1487fcbe47cd2bc0c71e8598bf9eb6a82dec544.tar.gz
kernel-crypto-f1487fcbe47cd2bc0c71e8598bf9eb6a82dec544.tar.xz
kernel-crypto-f1487fcbe47cd2bc0c71e8598bf9eb6a82dec544.zip
Merge branch 'for-2.6.33' into for-2.6.34
Diffstat (limited to 'drivers/hwmon/coretemp.c')
-rw-r--r--drivers/hwmon/coretemp.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
index caef39cda8c..2d7bceeed0b 100644
--- a/drivers/hwmon/coretemp.c
+++ b/drivers/hwmon/coretemp.c
@@ -33,6 +33,7 @@
#include <linux/list.h>
#include <linux/platform_device.h>
#include <linux/cpu.h>
+#include <linux/pci.h>
#include <asm/msr.h>
#include <asm/processor.h>
@@ -161,6 +162,7 @@ static int __devinit adjust_tjmax(struct cpuinfo_x86 *c, u32 id, struct device *
int usemsr_ee = 1;
int err;
u32 eax, edx;
+ struct pci_dev *host_bridge;
/* Early chips have no MSR for TjMax */
@@ -168,11 +170,21 @@ static int __devinit adjust_tjmax(struct cpuinfo_x86 *c, u32 id, struct device *
usemsr_ee = 0;
}
- /* Atoms seems to have TjMax at 90C */
+ /* Atom CPUs */
if (c->x86_model == 0x1c) {
usemsr_ee = 0;
- tjmax = 90000;
+
+ host_bridge = pci_get_bus_and_slot(0, PCI_DEVFN(0, 0));
+
+ if (host_bridge && host_bridge->vendor == PCI_VENDOR_ID_INTEL
+ && (host_bridge->device == 0xa000 /* NM10 based nettop */
+ || host_bridge->device == 0xa010)) /* NM10 based netbook */
+ tjmax = 100000;
+ else
+ tjmax = 90000;
+
+ pci_dev_put(host_bridge);
}
if ((c->x86_model > 0xe) && (usemsr_ee)) {