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 | |
Alexey Starikovskiy | 15a58ed | 2007-02-02 19:48:22 +0300 | [diff] [blame^] | 6 | static inline void mpc_oem_bus_info(struct mpc_config_bus *m, char *name, |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 7 | struct mpc_config_translation *translation) |
| 8 | { |
| 9 | Dprintk("Bus #%d is %s\n", m->mpc_busid, name); |
| 10 | } |
| 11 | |
Alexey Starikovskiy | 15a58ed | 2007-02-02 19:48:22 +0300 | [diff] [blame^] | 12 | static inline void mpc_oem_pci_bus(struct mpc_config_bus *m, |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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); |
Natalie.Protasevich@unisys.com | 9338316 | 2005-10-30 14:59:38 -0800 | [diff] [blame] | 19 | extern void setup_unisys(void); |
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) { |
Alexey Starikovskiy | 15a58ed | 2007-02-02 19:48:22 +0300 | [diff] [blame^] | 25 | struct mp_config_oemtable *oem_table = |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 | e5428ed | 2006-03-23 02:59:36 -0800 | [diff] [blame] | 33 | #ifdef CONFIG_ACPI |
Alexey Starikovskiy | 15a58ed | 2007-02-02 19:48:22 +0300 | [diff] [blame^] | 34 | |
Natalie.Protasevich@unisys.com | e5428ed | 2006-03-23 02:59:36 -0800 | [diff] [blame] | 35 | static inline int es7000_check_dsdt(void) |
Natalie.Protasevich@unisys.com | 56f1d5d | 2005-09-03 15:56:34 -0700 | [diff] [blame] | 36 | { |
Alexey Starikovskiy | 15a58ed | 2007-02-02 19:48:22 +0300 | [diff] [blame^] | 37 | 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.com | 56f1d5d | 2005-09-03 15:56:34 -0700 | [diff] [blame] | 41 | return 1; |
| 42 | return 0; |
| 43 | } |
| 44 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 45 | /* Hook from generic ACPI tables.c */ |
| 46 | static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
| 47 | { |
Alexey Starikovskiy | 15a58ed | 2007-02-02 19:48:22 +0300 | [diff] [blame^] | 48 | unsigned long oem_addr; |
Natalie.Protasevich@unisys.com | 56f1d5d | 2005-09-03 15:56:34 -0700 | [diff] [blame] | 49 | 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 Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 57 | return 0; |
| 58 | } |
Natalie.Protasevich@unisys.com | e5428ed | 2006-03-23 02:59:36 -0800 | [diff] [blame] | 59 | #else |
| 60 | static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
| 61 | { |
| 62 | return 0; |
| 63 | } |
| 64 | #endif |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 65 | |
| 66 | #endif /* __ASM_MACH_MPPARSE_H */ |