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>
This commit is contained in:
parent
00296ea96f
commit
0f6e652f39
|
@ -23,6 +23,7 @@ struct drivers_ipmi_config {
|
||||||
* Will be used if wait_for_bmc is true.
|
* Will be used if wait_for_bmc is true.
|
||||||
*/
|
*/
|
||||||
u16 bmc_boot_timeout;
|
u16 bmc_boot_timeout;
|
||||||
|
unsigned int uid; /* Auto-filled by ipmi_ssdt() */
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _IMPI_CHIP_H_ */
|
#endif /* _IMPI_CHIP_H_ */
|
||||||
|
|
|
@ -212,7 +212,7 @@ ipmi_write_acpi_tables(const struct device *dev, unsigned long current,
|
||||||
acpi_create_ipmi(dev, spmi, (ipmi_revision_major << 8) |
|
acpi_create_ipmi(dev, spmi, (ipmi_revision_major << 8) |
|
||||||
(ipmi_revision_minor << 4), &addr,
|
(ipmi_revision_minor << 4), &addr,
|
||||||
IPMI_INTERFACE_KCS, gpe_interrupt, apic_interrupt,
|
IPMI_INTERFACE_KCS, gpe_interrupt, apic_interrupt,
|
||||||
dev->command);
|
conf->uid);
|
||||||
|
|
||||||
acpi_add_table(rsdp, spmi);
|
acpi_add_table(rsdp, spmi);
|
||||||
|
|
||||||
|
@ -236,14 +236,14 @@ static void ipmi_ssdt(struct device *dev)
|
||||||
conf = dev->chip_info;
|
conf = dev->chip_info;
|
||||||
|
|
||||||
/* Use command to pass UID to ipmi_write_acpi_tables */
|
/* Use command to pass UID to ipmi_write_acpi_tables */
|
||||||
dev->command = uid_cnt++;
|
conf->uid = uid_cnt++;
|
||||||
|
|
||||||
/* write SPMI device */
|
/* write SPMI device */
|
||||||
acpigen_write_scope(scope);
|
acpigen_write_scope(scope);
|
||||||
acpigen_write_device("SPMI");
|
acpigen_write_device("SPMI");
|
||||||
acpigen_write_name_string("_HID", "IPI0001");
|
acpigen_write_name_string("_HID", "IPI0001");
|
||||||
acpigen_write_name_unicode("_STR", "IPMI_KCS");
|
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_STA(0xf);
|
||||||
acpigen_write_name("_CRS");
|
acpigen_write_name("_CRS");
|
||||||
acpigen_write_resourcetemplate_header();
|
acpigen_write_resourcetemplate_header();
|
||||||
|
|
Loading…
Reference in New Issue