Skip to content

Commit 0a792e4

Browse files
committed
CPU (Android): adds detection support for Samsung Exynos SoCs
1 parent 0510897 commit 0a792e4

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

src/detection/cpu/cpu_linux.c

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,45 @@ static void detectMediaTek(FFCPUResult* cpu)
221221
}
222222
}
223223

224+
static void detectExynos(FFCPUResult* cpu)
225+
{
226+
// https://en.wikipedia.org/wiki/Exynos
227+
228+
assert(cpu->name.length > 3);
229+
uint32_t code = (uint32_t) strtoul(cpu->name.chars + 3, NULL, 10);
230+
const char* name = NULL;
231+
232+
switch (code)
233+
{
234+
case 9955: name = "2500"; break;
235+
case 9945: name = "2400"; break;
236+
// No 2300
237+
case 9925: name = "2200"; break;
238+
case 9840: name = "2100"; break;
239+
240+
case 8855: name = "1580"; break;
241+
case 8845: name = "1480"; break;
242+
case 8835: name = "1380"; break;
243+
case 8535: name = "1330"; break;
244+
case 8825: name = "1280"; break;
245+
case 9815: name = "1080"; break;
246+
247+
case 9830: name = "990"; break;
248+
case 9630: name = "980"; break;
249+
250+
case 8805: name = "880"; break;
251+
case 3830: name = "850"; break;
252+
}
253+
254+
if (name)
255+
{
256+
char str[32];
257+
ffStrCopy(str, cpu->name.chars, sizeof(str));
258+
ffStrbufSetF(&cpu->name, "Samsung Exynos %s [%s]", name, str);
259+
return;
260+
}
261+
}
262+
224263
static void detectAndroid(FFCPUResult* cpu)
225264
{
226265
if (cpu->name.length == 0)
@@ -248,6 +287,12 @@ static void detectAndroid(FFCPUResult* cpu)
248287
detectQualcomm(cpu);
249288
else if (ffStrbufEqualS(&cpu->vendor, "MediaTek") && ffStrbufStartsWithS(&cpu->name, "MT"))
250289
detectMediaTek(cpu);
290+
else if (ffStrbufEqualS(&cpu->vendor, "Samsung") && ffStrbufStartsWithS(&cpu->name, "s5e"))
291+
{
292+
cpu->name.chars[0] = 'S';
293+
cpu->name.chars[2] = 'E';
294+
detectExynos(cpu);
295+
}
251296
}
252297
#endif
253298

0 commit comments

Comments
 (0)