arch/x86/acpigen: refactor calls to acpigen_write_register
All of the callers to acpigen_write_register() also make calls to
acpigen_write_resourcetemplate_[header|footer](). This change introduces
acpigen_write_register_resource() to unify all of those trio of calls
into one. I also made the input parameter const.
Change-Id: I10b336acf9f03c423bee9dc38955b1617e11c025
Signed-off-by: Matt Delco <delco@chromium.org>
Reviewed-on: https://review.coreboot.org/27672
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/arch/x86/acpigen.c b/src/arch/x86/acpigen.c
index 732f749..a614efb 100644
--- a/src/arch/x86/acpigen.c
+++ b/src/arch/x86/acpigen.c
@@ -578,14 +578,10 @@
acpigen_write_package(2);
/* ControlRegister */
- acpigen_write_resourcetemplate_header();
- acpigen_write_register(&addr);
- acpigen_write_resourcetemplate_footer();
+ acpigen_write_register_resource(&addr);
/* StatusRegister */
- acpigen_write_resourcetemplate_header();
- acpigen_write_register(&addr);
- acpigen_write_resourcetemplate_footer();
+ acpigen_write_register_resource(&addr);
acpigen_pop_len();
}
@@ -725,9 +721,7 @@
void acpigen_write_CST_package_entry(acpi_cstate_t *cstate)
{
acpigen_write_package(4);
- acpigen_write_resourcetemplate_header();
- acpigen_write_register(&cstate->resource);
- acpigen_write_resourcetemplate_footer();
+ acpigen_write_register_resource(&cstate->resource);
acpigen_write_dword(cstate->ctype);
acpigen_write_dword(cstate->latency);
acpigen_write_dword(cstate->power);
@@ -827,7 +821,7 @@
acpigen_emit_dword(size);
}
-void acpigen_write_register(acpi_addr_t *addr)
+static void acpigen_write_register(const acpi_addr_t *addr)
{
acpigen_emit_byte(0x82); /* Register Descriptor */
acpigen_emit_byte(0x0c); /* Register Length 7:0 */
@@ -840,6 +834,13 @@
acpigen_emit_dword(addr->addrh); /* Register Address High */
}
+void acpigen_write_register_resource(const acpi_addr_t *addr)
+{
+ acpigen_write_resourcetemplate_header();
+ acpigen_write_register(addr);
+ acpigen_write_resourcetemplate_footer();
+}
+
void acpigen_write_irq(u16 mask)
{
/*