blob: 24990e546da3b60cc55bce0b297063b2fbc3e701 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef __ASM_MACH_MPPARSE_H
2#define __ASM_MACH_MPPARSE_H
3
Natalie.Protasevich@unisys.com56f1d5d2005-09-03 15:56:34 -07004#include <linux/acpi.h>
5
Alexey Starikovskiy15a58ed2007-02-02 19:48:22 +03006static inline void mpc_oem_bus_info(struct mpc_config_bus *m, char *name,
Linus Torvalds1da177e2005-04-16 15:20:36 -07007 struct mpc_config_translation *translation)
8{
9 Dprintk("Bus #%d is %s\n", m->mpc_busid, name);
10}
11
Alexey Starikovskiy15a58ed2007-02-02 19:48:22 +030012static inline void mpc_oem_pci_bus(struct mpc_config_bus *m,
Linus Torvalds1da177e2005-04-16 15:20:36 -070013 struct mpc_config_translation *translation)
14{
15}
16
Natalie.Protasevich@unisys.com56f1d5d2005-09-03 15:56:34 -070017extern int parse_unisys_oem (char *oemptr);
18extern int find_unisys_acpi_oem_table(unsigned long *oem_addr);
Natalie.Protasevich@unisys.com93383162005-10-30 14:59:38 -080019extern void setup_unisys(void);
Linus Torvalds1da177e2005-04-16 15:20:36 -070020
21static inline int mps_oem_check(struct mp_config_table *mpc, char *oem,
22 char *productid)
23{
24 if (mpc->mpc_oemptr) {
Alexey Starikovskiy15a58ed2007-02-02 19:48:22 +030025 struct mp_config_oemtable *oem_table =
Linus Torvalds1da177e2005-04-16 15:20:36 -070026 (struct mp_config_oemtable *)mpc->mpc_oemptr;
27 if (!strncmp(oem, "UNISYS", 6))
Natalie.Protasevich@unisys.com56f1d5d2005-09-03 15:56:34 -070028 return parse_unisys_oem((char *)oem_table);
Linus Torvalds1da177e2005-04-16 15:20:36 -070029 }
30 return 0;
31}
32
Natalie.Protasevich@unisys.come5428ed2006-03-23 02:59:36 -080033#ifdef CONFIG_ACPI
Alexey Starikovskiy15a58ed2007-02-02 19:48:22 +030034
Natalie.Protasevich@unisys.come5428ed2006-03-23 02:59:36 -080035static inline int es7000_check_dsdt(void)
Natalie.Protasevich@unisys.com56f1d5d2005-09-03 15:56:34 -070036{
Alexey Starikovskiy15a58ed2007-02-02 19:48:22 +030037 struct acpi_table_header header;
38 memcpy(&header, 0, sizeof(struct acpi_table_header));
39 acpi_get_table_header(ACPI_SIG_DSDT, 0, &header);
40 if (!strncmp(header.oem_id, "UNISYS", 6))
Natalie.Protasevich@unisys.com56f1d5d2005-09-03 15:56:34 -070041 return 1;
42 return 0;
43}
44
Linus Torvalds1da177e2005-04-16 15:20:36 -070045/* Hook from generic ACPI tables.c */
46static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
47{
Alexey Starikovskiy15a58ed2007-02-02 19:48:22 +030048 unsigned long oem_addr;
Natalie.Protasevich@unisys.com56f1d5d2005-09-03 15:56:34 -070049 if (!find_unisys_acpi_oem_table(&oem_addr)) {
50 if (es7000_check_dsdt())
51 return parse_unisys_oem((char *)oem_addr);
52 else {
53 setup_unisys();
54 return 1;
55 }
56 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070057 return 0;
58}
Natalie.Protasevich@unisys.come5428ed2006-03-23 02:59:36 -080059#else
60static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
61{
62 return 0;
63}
64#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070065
66#endif /* __ASM_MACH_MPPARSE_H */