diff options
author | Furquan Shaikh <furquan@google.com> | 2020-04-24 21:35:23 -0700 |
---|---|---|
committer | Furquan Shaikh <furquan@google.com> | 2020-04-28 19:49:41 +0000 |
commit | 0f6e652f397672efcb920cf97a77f488bd82ad97 (patch) | |
tree | 068be8c31e1a04f939ea1a10ac505c7d2c5a1c04 | |
parent | 00296ea96f469c0ed35b813a9810272b7530df58 (diff) |
drivers/ipmi: Add uid parameter to struct drivers_ipmi_config
This change adds uid parameter to drivers_ipmi_config that can be used
by ipmi_ssdt() to store the uid value to be used by
ipmi_write_acpi_tables. This allows to remove the requirement in
ipmi_ssdt() to update dev->command. This is being done in preparation
to make the struct device * parameter to fill_ssdt as const.
Change-Id: Ieb41771c75aae902191bba5d220796e6c343f8e0
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/40705
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r-- | src/drivers/ipmi/chip.h | 1 | ||||
-rw-r--r-- | src/drivers/ipmi/ipmi_kcs_ops.c | 6 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/drivers/ipmi/chip.h b/src/drivers/ipmi/chip.h index 4e9641b7e5..ede9af693e 100644 --- a/src/drivers/ipmi/chip.h +++ b/src/drivers/ipmi/chip.h @@ -23,6 +23,7 @@ struct drivers_ipmi_config { * Will be used if wait_for_bmc is true. */ u16 bmc_boot_timeout; + unsigned int uid; /* Auto-filled by ipmi_ssdt() */ }; #endif /* _IMPI_CHIP_H_ */ diff --git a/src/drivers/ipmi/ipmi_kcs_ops.c b/src/drivers/ipmi/ipmi_kcs_ops.c index 043616afae..349abbce3f 100644 --- a/src/drivers/ipmi/ipmi_kcs_ops.c +++ b/src/drivers/ipmi/ipmi_kcs_ops.c @@ -212,7 +212,7 @@ ipmi_write_acpi_tables(const struct device *dev, unsigned long current, acpi_create_ipmi(dev, spmi, (ipmi_revision_major << 8) | (ipmi_revision_minor << 4), &addr, IPMI_INTERFACE_KCS, gpe_interrupt, apic_interrupt, - dev->command); + conf->uid); acpi_add_table(rsdp, spmi); @@ -236,14 +236,14 @@ static void ipmi_ssdt(struct device *dev) conf = dev->chip_info; /* Use command to pass UID to ipmi_write_acpi_tables */ - dev->command = uid_cnt++; + conf->uid = uid_cnt++; /* write SPMI device */ acpigen_write_scope(scope); acpigen_write_device("SPMI"); acpigen_write_name_string("_HID", "IPI0001"); acpigen_write_name_unicode("_STR", "IPMI_KCS"); - acpigen_write_name_byte("_UID", dev->command); + acpigen_write_name_byte("_UID", conf->uid); acpigen_write_STA(0xf); acpigen_write_name("_CRS"); acpigen_write_resourcetemplate_header(); |