Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef __ASM_MACH_MPPARSE_H |
| 2 | #define __ASM_MACH_MPPARSE_H |
| 3 | |
Natalie.Protasevich@unisys.com | 56f1d5d | 2005-09-03 15:56:34 -0700 | [diff] [blame^] | 4 | #include <linux/acpi.h> |
| 5 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 6 | static 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 | |
| 12 | static inline void mpc_oem_pci_bus(struct mpc_config_bus *m, |
| 13 | struct mpc_config_translation *translation) |
| 14 | { |
| 15 | } |
| 16 | |
Natalie.Protasevich@unisys.com | 56f1d5d | 2005-09-03 15:56:34 -0700 | [diff] [blame^] | 17 | extern int parse_unisys_oem (char *oemptr); |
| 18 | extern int find_unisys_acpi_oem_table(unsigned long *oem_addr); |
| 19 | extern void setup_unisys(); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 20 | |
| 21 | static 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.com | 56f1d5d | 2005-09-03 15:56:34 -0700 | [diff] [blame^] | 28 | return parse_unisys_oem((char *)oem_table); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 29 | } |
| 30 | return 0; |
| 31 | } |
| 32 | |
Natalie.Protasevich@unisys.com | 56f1d5d | 2005-09-03 15:56:34 -0700 | [diff] [blame^] | 33 | static inline int es7000_check_dsdt() |
| 34 | { |
| 35 | struct acpi_table_header *header = NULL; |
| 36 | if(!acpi_get_table_header_early(ACPI_DSDT, &header)) |
| 37 | acpi_table_print(header, 0); |
| 38 | if (!strncmp(header->oem_id, "UNISYS", 6)) |
| 39 | return 1; |
| 40 | return 0; |
| 41 | } |
| 42 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 43 | /* Hook from generic ACPI tables.c */ |
| 44 | static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
| 45 | { |
| 46 | unsigned long oem_addr; |
Natalie.Protasevich@unisys.com | 56f1d5d | 2005-09-03 15:56:34 -0700 | [diff] [blame^] | 47 | if (!find_unisys_acpi_oem_table(&oem_addr)) { |
| 48 | if (es7000_check_dsdt()) |
| 49 | return parse_unisys_oem((char *)oem_addr); |
| 50 | else { |
| 51 | setup_unisys(); |
| 52 | return 1; |
| 53 | } |
| 54 | } |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 55 | return 0; |
| 56 | } |
| 57 | |
| 58 | |
| 59 | #endif /* __ASM_MACH_MPPARSE_H */ |