diff options
author | Angel Pons <th3fanbus@gmail.com> | 2021-09-03 12:18:10 +0200 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2021-09-13 13:54:03 +0000 |
commit | 6a73b2466f388b34086a941572d0af7d0614da3f (patch) | |
tree | 9d1c91b8baf9dab33dd87db30ebe3eac9a093cf3 /src/drivers/ipmi | |
parent | 869e90a3d481951c61024be042f3bf06d2887b89 (diff) |
SMBIOS: Allow skipping default SMBIOS generation
The call to the `get_smbios_data` device operation is followed by
calls to unconditional default functions, which lacks flexibility.
Instead, have devices that implement `get_smbios_data` call these
default functions as needed.
Most `get_smbios_data` implementations are in mainboard code, and are
bound to the root device. The default functions only operate with PCI
devices because of the `dev->path.type != DEVICE_PATH_PCI` checks, so
calling these functions for non-PCI devices is unnecessary. QEMU also
implements `get_smbios_data` but binds it to the domain device, which
isn't PCI either.
Change-Id: Iefbf072b1203d04a98c9d26a30f22cfebe769eb4
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/57366
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Diffstat (limited to 'src/drivers/ipmi')
-rw-r--r-- | src/drivers/ipmi/ipmi_kcs_ops.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/drivers/ipmi/ipmi_kcs_ops.c b/src/drivers/ipmi/ipmi_kcs_ops.c index 9d1cac8715..ff187663c9 100644 --- a/src/drivers/ipmi/ipmi_kcs_ops.c +++ b/src/drivers/ipmi/ipmi_kcs_ops.c @@ -386,6 +386,8 @@ static int ipmi_smbios_data(struct device *dev, int *handle, register_spacing, 0); // no IRQ + len += get_smbios_data(dev, handle, current); + return len; } #endif |