Skip to content

Commit fcbeecb

Browse files
committed
Temps: test & fix temp detection on Intel ( macOS )
1 parent b3c5015 commit fcbeecb

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

src/detection/gpu/gpu_apple.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ static double detectGpuTemp(const FFstrbuf* gpuName)
1515
ffDetectCoreTemps(FF_TEMP_GPU_M1X, &temps);
1616
else if(ffStrbufStartsWithS(gpuName, "Apple M2"))
1717
ffDetectCoreTemps(FF_TEMP_GPU_M2X, &temps);
18+
else if(ffStrbufStartsWithS(gpuName, "Intel"))
19+
ffDetectCoreTemps(FF_TEMP_GPU_INTEL, &temps);
1820
else if(ffStrbufStartsWithS(gpuName, "Radeon") || ffStrbufStartsWithS(gpuName, "AMD"))
1921
ffDetectCoreTemps(FF_TEMP_GPU_AMD, &temps);
2022
else

src/detection/temps/temps_apple.c

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,8 @@ static const char *smcReadValue(io_connect_t conn, const UInt32Char_t key, doubl
196196
const char* error = smcReadSmcVal(conn, key, &val);
197197
if (error != NULL)
198198
return error;
199+
if (val.dataSize == 0)
200+
return "Empty SMC result";
199201

200202
if (strcmp(val.dataType, kDataTypeUi8) == 0 ||
201203
strcmp(val.dataType, kDataTypeUi16) == 0 ||
@@ -211,11 +213,11 @@ static const char *smcReadValue(io_connect_t conn, const UInt32Char_t key, doubl
211213
{
212214
*value = *(float *)(val.bytes);
213215
}
214-
else if (strcmp(val.dataType, kDataTypeFp1f) && val.dataSize == 2)
216+
else if (strcmp(val.dataType, kDataTypeFp1f) == 0 && val.dataSize == 2)
215217
{
216218
*value = ntohs(*(uint16_t *)(val.bytes)) / 32768.0;
217219
}
218-
else if (strcmp(val.dataType, kDataTypeFp4c) && val.dataSize == 2)
220+
else if (strcmp(val.dataType, kDataTypeFp4c) == 0 && val.dataSize == 2)
219221
{
220222
*value = ntohs(*(uint16_t *)(val.bytes)) / 4096.0;
221223
}
@@ -337,7 +339,7 @@ const char *ffDetectCoreTemps(enum FFTempType type, FFlist *result)
337339
case FF_TEMP_CPU_X64:
338340
detectTemp(conn, "TC0D", "CPU diode", result);
339341
detectTemp(conn, "TC0E", "CPU diode virtual", result);
340-
detectTemp(conn, "TC0E", "CPU diode filtered", result);
342+
detectTemp(conn, "TC0F", "CPU diode filtered", result);
341343
detectTemp(conn, "TC0P", "CPU proximity", result);
342344
break;
343345

@@ -369,17 +371,14 @@ const char *ffDetectCoreTemps(enum FFTempType type, FFlist *result)
369371

370372
case FF_TEMP_GPU_INTEL:
371373
detectTemp(conn, "TCGC", "GPU Intel Graphics", result);
372-
detectTemp(conn, "TG0D", "GPU diode", result);
373-
detectTemp(conn, "TG0P", "GPU proximity", result);
374-
break;
374+
goto gpu_unknown;
375375

376376
case FF_TEMP_GPU_AMD:
377377
detectTemp(conn, "TGDD", "GPU AMD Radeon", result);
378-
detectTemp(conn, "TG0D", "GPU diode", result);
379-
detectTemp(conn, "TG0P", "GPU proximity", result);
380-
break;
378+
goto gpu_unknown;
381379

382380
case FF_TEMP_GPU_UNKNOWN: // Nvidia?
381+
gpu_unknown:
383382
detectTemp(conn, "TG0D", "GPU diode", result);
384383
detectTemp(conn, "TG0P", "GPU proximity", result);
385384
break;

0 commit comments

Comments
 (0)