summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2026-04-15 00:10:44 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2026-04-15 00:10:44 +0300
commit0972ba5605a0a0cd8a9e74558b97a9c9626adfb5 (patch)
treec67bb420d15fde0c8c9086038176502f44b2d82c /drivers
parentac633ba77c84fa5be1ec081967be081d6e25577e (diff)
parentbc91133e260c8113c1119073c03b93c12aa41738 (diff)
downloadlinux-0972ba5605a0a0cd8a9e74558b97a9c9626adfb5.tar.xz
Merge tag 'x86-platform-2026-04-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 platform updates from Ingo Molnar: - Remove M486/M486SX/ELAN support, first minimal step (Ingo Molnar) - Print AGESA string from DMI additional information entry (Yazen Ghannam, Mario Limonciello) - Improve and fix the DMI code (Mario Limonciello): - Correct an indexing error in <linux/dmi.h> - Adjust dmi_decode() to use enums <linux/dmi.h> - Add pr_fmt() for dmi_scan.c to fix & standardize the log prefixes * tag 'x86-platform-2026-04-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/CPU/AMD: Print AGESA string from DMI additional information entry firmware: dmi: Add pr_fmt() for dmi_scan.c firmware: dmi: Adjust dmi_decode() to use enums firmware: dmi: Correct an indexing error in dmi.h x86/cpu: Remove M486/M486SX/ELAN support
Diffstat (limited to 'drivers')
-rw-r--r--drivers/firmware/dmi_scan.c34
1 files changed, 19 insertions, 15 deletions
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index 70d39adf50dc..a3f7dabd4955 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -1,4 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-only
+
+#define pr_fmt(fmt) "DMI: " fmt
+
#include <linux/types.h>
#include <linux/string.h>
#include <linux/init.h>
@@ -44,7 +47,7 @@ static struct dmi_memdev_info {
static int dmi_memdev_nr;
static int dmi_memdev_populated_nr __initdata;
-static const char * __init dmi_string_nosave(const struct dmi_header *dm, u8 s)
+const char *dmi_string_nosave(const struct dmi_header *dm, u8 s)
{
const u8 *bp = ((u8 *) dm) + dm->length;
const u8 *nsp;
@@ -63,6 +66,7 @@ static const char * __init dmi_string_nosave(const struct dmi_header *dm, u8 s)
return dmi_empty_string;
}
+EXPORT_SYMBOL_GPL(dmi_string_nosave);
static const char * __init dmi_string(const struct dmi_header *dm, u8 s)
{
@@ -484,14 +488,14 @@ static void __init dmi_memdev_walk(void)
static void __init dmi_decode(const struct dmi_header *dm, void *dummy)
{
switch (dm->type) {
- case 0: /* BIOS Information */
+ case DMI_ENTRY_BIOS:
dmi_save_ident(dm, DMI_BIOS_VENDOR, 4);
dmi_save_ident(dm, DMI_BIOS_VERSION, 5);
dmi_save_ident(dm, DMI_BIOS_DATE, 8);
dmi_save_release(dm, DMI_BIOS_RELEASE, 21);
dmi_save_release(dm, DMI_EC_FIRMWARE_RELEASE, 23);
break;
- case 1: /* System Information */
+ case DMI_ENTRY_SYSTEM:
dmi_save_ident(dm, DMI_SYS_VENDOR, 4);
dmi_save_ident(dm, DMI_PRODUCT_NAME, 5);
dmi_save_ident(dm, DMI_PRODUCT_VERSION, 6);
@@ -500,33 +504,33 @@ static void __init dmi_decode(const struct dmi_header *dm, void *dummy)
dmi_save_ident(dm, DMI_PRODUCT_SKU, 25);
dmi_save_ident(dm, DMI_PRODUCT_FAMILY, 26);
break;
- case 2: /* Base Board Information */
+ case DMI_ENTRY_BASEBOARD:
dmi_save_ident(dm, DMI_BOARD_VENDOR, 4);
dmi_save_ident(dm, DMI_BOARD_NAME, 5);
dmi_save_ident(dm, DMI_BOARD_VERSION, 6);
dmi_save_ident(dm, DMI_BOARD_SERIAL, 7);
dmi_save_ident(dm, DMI_BOARD_ASSET_TAG, 8);
break;
- case 3: /* Chassis Information */
+ case DMI_ENTRY_CHASSIS:
dmi_save_ident(dm, DMI_CHASSIS_VENDOR, 4);
dmi_save_type(dm, DMI_CHASSIS_TYPE, 5);
dmi_save_ident(dm, DMI_CHASSIS_VERSION, 6);
dmi_save_ident(dm, DMI_CHASSIS_SERIAL, 7);
dmi_save_ident(dm, DMI_CHASSIS_ASSET_TAG, 8);
break;
- case 9: /* System Slots */
+ case DMI_ENTRY_SYSTEM_SLOT:
dmi_save_system_slot(dm);
break;
- case 10: /* Onboard Devices Information */
+ case DMI_ENTRY_ONBOARD_DEVICE:
dmi_save_devices(dm);
break;
- case 11: /* OEM Strings */
+ case DMI_ENTRY_OEMSTRINGS:
dmi_save_oem_strings_devices(dm);
break;
- case 38: /* IPMI Device Information */
+ case DMI_ENTRY_IPMI_DEV:
dmi_save_ipmi_device(dm);
break;
- case 41: /* Onboard Devices Extended Information */
+ case DMI_ENTRY_ONBOARD_DEV_EXT:
dmi_save_extended_devices(dm);
}
}
@@ -634,7 +638,7 @@ static int __init dmi_present(const u8 *buf)
dmi_ver >> 16, (dmi_ver >> 8) & 0xFF);
}
dmi_format_ids(dmi_ids_string, sizeof(dmi_ids_string));
- pr_info("DMI: %s\n", dmi_ids_string);
+ pr_info("%s\n", dmi_ids_string);
return 0;
}
}
@@ -663,7 +667,7 @@ static int __init dmi_smbios3_present(const u8 *buf)
dmi_ver >> 16, (dmi_ver >> 8) & 0xFF,
dmi_ver & 0xFF);
dmi_format_ids(dmi_ids_string, sizeof(dmi_ids_string));
- pr_info("DMI: %s\n", dmi_ids_string);
+ pr_info("%s\n", dmi_ids_string);
return 0;
}
}
@@ -758,7 +762,7 @@ static void __init dmi_scan_machine(void)
dmi_early_unmap(p, 0x10000);
}
error:
- pr_info("DMI not present or invalid.\n");
+ pr_info("not present or invalid.\n");
}
static __ro_after_init BIN_ATTR_SIMPLE_ADMIN_RO(smbios_entry_point);
@@ -810,7 +814,7 @@ static int __init dmi_init(void)
kobject_del(tables_kobj);
kobject_put(tables_kobj);
err:
- pr_err("dmi: Firmware registration failed.\n");
+ pr_err("Firmware registration failed.\n");
return ret;
}
@@ -831,7 +835,7 @@ void __init dmi_setup(void)
return;
dmi_memdev_walk();
- pr_info("DMI: Memory slots populated: %d/%d\n",
+ pr_info("Memory slots populated: %d/%d\n",
dmi_memdev_populated_nr, dmi_memdev_nr);
dump_stack_set_arch_desc("%s", dmi_ids_string);
}