soc/intel/denverton_ns: Refactor `detect_num_cpus_via_cpuid()`

Rewrite level type check and use unsigned types. In addition, also use
unsigned types in the `get_cpu_count()` function.

Change-Id: I63f236f0f94f9412ec03ae25781befe619cf7c1f
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/58913
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
diff --git a/src/soc/intel/denverton_ns/cpu.c b/src/soc/intel/denverton_ns/cpu.c
index 44cb297..126a1c6 100644
--- a/src/soc/intel/denverton_ns/cpu.c
+++ b/src/soc/intel/denverton_ns/cpu.c
@@ -162,21 +162,20 @@
 	*smm_save_state_size = sizeof(em64t100_smm_state_save_area_t);
 }
 
-static int detect_num_cpus_via_cpuid(void)
+static unsigned int detect_num_cpus_via_cpuid(void)
 {
-	register int ecx = 0;
-	struct cpuid_result leaf_b;
+	unsigned int ecx = 0;
 
 	while (1) {
-		leaf_b = cpuid_ext(0xb, ecx);
+		const struct cpuid_result leaf_b = cpuid_ext(0xb, ecx);
 
 		/* Processor doesn't have hyperthreading so just determine the
-		* number of cores by from level type (ecx[15:8] == * 2). */
-		if ((leaf_b.ecx & 0xff00) == 0x0200)
-			break;
+		   number of cores from level type (ecx[15:8] == 2). */
+		if ((leaf_b.ecx >> 8 & 0xff) == 2)
+			return leaf_b.ebx & 0xffff;
+
 		ecx++;
 	}
-	return (leaf_b.ebx & 0xffff);
 }
 
 static int detect_num_cpus_via_mch(void)
@@ -209,11 +208,11 @@
 /* Find CPU topology */
 int get_cpu_count(void)
 {
-	int num_cpus = detect_num_cpus_via_mch();
+	unsigned int num_cpus = detect_num_cpus_via_mch();
 
-	if (num_cpus <= 0 || num_cpus > CONFIG_MAX_CPUS) {
+	if (num_cpus == 0 || num_cpus > CONFIG_MAX_CPUS) {
 		num_cpus = detect_num_cpus_via_cpuid();
-		printk(BIOS_DEBUG, "Number of Cores (CPUID): %d.\n", num_cpus);
+		printk(BIOS_DEBUG, "Number of Cores (CPUID): %u.\n", num_cpus);
 	}
 	return num_cpus;
 }