diff options
author | Vladimir Serbinenko <phcoder@gmail.com> | 2014-11-05 21:29:45 +0100 |
---|---|---|
committer | Vladimir Serbinenko <phcoder@gmail.com> | 2014-11-19 19:51:30 +0100 |
commit | 663be6e9f2773c98c9850b7e2797490b5f6caf8b (patch) | |
tree | 0c78c96ba01931a91518e48a9845c1f6558d5c2b /src/arch | |
parent | 80fb8edaea44483ed9fa28bfe060734d771150aa (diff) |
acpigen: Add and use acpigen_write_device.
The sequence of bytes to create a method is used several times in codebase.
Put it into a function with logical arguments rather than duplicating magic
bytes everywhere.
Change-Id: I2c33fa403832eb1cfadfbf8d9adef5b63fb9cb24
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: http://review.coreboot.org/7348
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Tested-by: build bot (Jenkins)
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/x86/boot/acpigen.c | 13 | ||||
-rw-r--r-- | src/arch/x86/include/arch/acpigen.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/arch/x86/boot/acpigen.c b/src/arch/x86/boot/acpigen.c index 0eee78a141..f714d5985b 100644 --- a/src/arch/x86/boot/acpigen.c +++ b/src/arch/x86/boot/acpigen.c @@ -408,6 +408,19 @@ int acpigen_write_method(const char *name, int nargs) return len; } +int acpigen_write_device(const char *name) +{ + int len; + + /* method op */ + len = acpigen_emit_byte(0x5b); + len += acpigen_emit_byte(0x82); + len += acpigen_write_len_f(); + len += acpigen_emit_namestring(name); + + return len; +} + /* * Generates a func with max supported P-states. */ diff --git a/src/arch/x86/include/arch/acpigen.h b/src/arch/x86/include/arch/acpigen.h index babfb4014b..e07a0f5c22 100644 --- a/src/arch/x86/include/arch/acpigen.h +++ b/src/arch/x86/include/arch/acpigen.h @@ -44,6 +44,7 @@ int acpigen_write_name_qword(const char *name, uint64_t val); int acpigen_write_name_byte(const char *name, uint8_t val); int acpigen_write_scope(const char *name); int acpigen_write_method(const char *name, int nargs); +int acpigen_write_device(const char *name); int acpigen_write_PPC(u8 nr); int acpigen_write_PPC_NVS(void); int acpigen_write_empty_PCT(void); |