forked from mirrors/linux
		
	hwmon: (coretemp) Refine TjMax detection
Intel's turbostat code uses only 7 bits from MSR_IA32_TEMPERATURE_TARGET to read TjMax, and also only accepts it if the reported temperature is at least 85 degrees C. Play safe and do the same. Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
		
							parent
							
								
									347c16cfde
								
							
						
					
					
						commit
						9fb6c9c73b
					
				
					 1 changed files with 2 additions and 2 deletions
				
			
		|  | @ -368,12 +368,12 @@ static int get_tjmax(struct cpuinfo_x86 *c, u32 id, struct device *dev) | ||||||
| 		if (cpu_has_tjmax(c)) | 		if (cpu_has_tjmax(c)) | ||||||
| 			dev_warn(dev, "Unable to read TjMax from CPU %u\n", id); | 			dev_warn(dev, "Unable to read TjMax from CPU %u\n", id); | ||||||
| 	} else { | 	} else { | ||||||
| 		val = (eax >> 16) & 0xff; | 		val = (eax >> 16) & 0x7f; | ||||||
| 		/*
 | 		/*
 | ||||||
| 		 * If the TjMax is not plausible, an assumption | 		 * If the TjMax is not plausible, an assumption | ||||||
| 		 * will be used | 		 * will be used | ||||||
| 		 */ | 		 */ | ||||||
| 		if (val) { | 		if (val >= 85) { | ||||||
| 			dev_dbg(dev, "TjMax is %d degrees C\n", val); | 			dev_dbg(dev, "TjMax is %d degrees C\n", val); | ||||||
| 			return val * 1000; | 			return val * 1000; | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Guenter Roeck
						Guenter Roeck