blob: 99f66be240be66e517e93b14fe0b9fda52e65752 [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
Linus Torvalds1da177e2005-04-16 15:20:36 -07006static inline void mpc_oem_bus_info(struct mpc_config_bus *m, char *name,
7 struct mpc_config_translation *translation)
8{
9 Dprintk("Bus #%d is %s\n", m->mpc_busid, name);
10}
11
12static inline void mpc_oem_pci_bus(struct mpc_config_bus *m,
13 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) {
25 struct mp_config_oemtable *oem_table =
26 (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
34static inline int es7000_check_dsdt(void)
Natalie.Protasevich@unisys.com56f1d5d2005-09-03 15:56:34 -070035{
36 struct acpi_table_header *header = NULL;
37 if(!acpi_get_table_header_early(ACPI_DSDT, &header))
38 acpi_table_print(header, 0);
39 if (!strncmp(header->oem_id, "UNISYS", 6))
40 return 1;
41 return 0;
42}
43
Linus Torvalds1da177e2005-04-16 15:20:36 -070044/* Hook from generic ACPI tables.c */
45static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
46{
47 unsigned long oem_addr;
Natalie.Protasevich@unisys.com56f1d5d2005-09-03 15:56:34 -070048 if (!find_unisys_acpi_oem_table(&oem_addr)) {
49 if (es7000_check_dsdt())
50 return parse_unisys_oem((char *)oem_addr);
51 else {
52 setup_unisys();
53 return 1;
54 }
55 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070056 return 0;
57}
Natalie.Protasevich@unisys.come5428ed2006-03-23 02:59:36 -080058#else
59static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
60{
61 return 0;
62}
63#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070064
65#endif /* __ASM_MACH_MPPARSE_H */