SPDX: Convert all of our single license tags to Linux Kernel style
[oweals/u-boot.git] / arch / x86 / cpu / cpu_x86.c
index 39004ee5f0f5f889362b440444abdc9a43171440..2b6cc9f22d5c82e13869d7ee6fe0b9da38bb0ceb 100644 (file)
@@ -1,7 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -17,7 +16,7 @@ int cpu_x86_bind(struct udevice *dev)
        struct cpu_platdata *plat = dev_get_parent_platdata(dev);
        struct cpuid_result res;
 
-       plat->cpu_id = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
+       plat->cpu_id = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
                                      "intel,apic-id", -1);
        plat->family = gd->arch.x86;
        res = cpuid(1);
@@ -27,12 +26,28 @@ int cpu_x86_bind(struct udevice *dev)
        return 0;
 }
 
+int cpu_x86_get_vendor(struct udevice *dev, char *buf, int size)
+{
+       const char *vendor = cpu_vendor_name(gd->arch.x86_vendor);
+
+       if (size < (strlen(vendor) + 1))
+               return -ENOSPC;
+
+       strcpy(buf, vendor);
+
+       return 0;
+}
+
 int cpu_x86_get_desc(struct udevice *dev, char *buf, int size)
 {
+       char *ptr;
+
        if (size < CPU_MAX_NAME_LEN)
                return -ENOSPC;
 
-       cpu_get_name(buf);
+       ptr = cpu_get_name(buf);
+       if (ptr != buf)
+               strcpy(buf, ptr);
 
        return 0;
 }
@@ -65,6 +80,7 @@ static int cpu_x86_get_count(struct udevice *dev)
 static const struct cpu_ops cpu_x86_ops = {
        .get_desc       = cpu_x86_get_desc,
        .get_count      = cpu_x86_get_count,
+       .get_vendor     = cpu_x86_get_vendor,
 };
 
 static const struct udevice_id cpu_x86_ids[] = {