Skip to content

Commit e093580

Browse files
authored
Merge pull request #2084 from drutsan/fix/darwin-temperature-sp78
fix(sensors/darwin): parse sp78 temperatures instead of returning 0.0
2 parents d781152 + 28add59 commit e093580

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

sensors/sensors_darwin.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,14 @@ func getTemperature(smc *common.SMC, key string) float64 {
106106
}
107107

108108
if result.dataSize == 2 && result.dataType == toUint32(dataTypeSp78) {
109-
return 0.0
109+
// sp78: signed 7.8 fixed-point — high byte is signed integer degrees,
110+
// low byte is fractional part in 1/256 increments.
111+
// Previously this branch incorrectly returned 0.0, causing all SMC
112+
// temperature sensors on Intel Macs to report 0°C.
113+
return float64(int8(result.data[0])) + float64(result.data[1])/256.0
110114
}
111115

116+
// Non-sp78 single-byte readings (legacy/unknown formats)
112117
return float64(result.data[0])
113118
}
114119

0 commit comments

Comments
 (0)