--- zzzz-none-000/linux-2.6.39.4/drivers/hwmon/coretemp.c 2011-08-03 19:43:28.000000000 +0000 +++ puma6-arm-6490-729/linux-2.6.39.4/drivers/hwmon/coretemp.c 2021-11-10 13:23:10.000000000 +0000 @@ -263,7 +263,7 @@ * If the TjMax is not plausible, an assumption * will be used */ - if (val >= 70 && val <= 125) { + if ((val > 80) && (val < 120)) { dev_info(dev, "TjMax is %d C.\n", val); return val * 1000; } @@ -271,9 +271,24 @@ /* * An assumption is made for early CPUs and unreadable MSR. - * NOTE: the calculated value may not be correct. + * NOTE: the given value may not be correct. */ - return adjust_tjmax(c, id, dev); + + switch (c->x86_model) { + case 0xe: + case 0xf: + case 0x16: + case 0x1a: + dev_warn(dev, "TjMax is assumed as 100 C!\n"); + return 100000; + case 0x17: + case 0x1c: /* Atom CPUs */ + return adjust_tjmax(c, id, dev); + default: + dev_warn(dev, "CPU (model=0x%x) is not supported yet," + " using default TjMax of 100C.\n", c->x86_model); + return 100000; + } } static void __devinit get_ucode_rev_on_cpu(void *edx)