diff options
author | Andi Kleen <ak@suse.de> | 2006-01-11 16:43:33 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-11 22:04:51 -0500 |
commit | e99286744599a66195de4cd975d7ef4d643c2789 (patch) | |
tree | d231b075c9bdb0bd7fa48d0eb00551a529e4586a /include | |
parent | b347d25fbc4616f4f37895e9afbe25b2bbc7e11f (diff) |
[PATCH] x86_64: Generalize DMI and enable for x86-64
Some people need it now on 64bit so reuse the i386 code for
x86-64. This will be also useful for future bug workarounds.
It is a bit simplified there because there is no need
to do it very early on x86-64. This means it doesn't need
early ioremap et.al. We run it as a core initcall right now.
I hope it's not needed for early setup.
I added a general CONFIG_DMI symbol in case IA64 or someone
else wants to reuse the code later too.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-i386/io.h | 5 | ||||
-rw-r--r-- | include/asm-x86_64/io.h | 5 | ||||
-rw-r--r-- | include/linux/dmi.h | 5 |
3 files changed, 14 insertions, 1 deletions
diff --git a/include/asm-i386/io.h b/include/asm-i386/io.h index 7babb97a02eb..03233c2ab820 100644 --- a/include/asm-i386/io.h +++ b/include/asm-i386/io.h | |||
@@ -131,6 +131,11 @@ extern void iounmap(volatile void __iomem *addr); | |||
131 | extern void *bt_ioremap(unsigned long offset, unsigned long size); | 131 | extern void *bt_ioremap(unsigned long offset, unsigned long size); |
132 | extern void bt_iounmap(void *addr, unsigned long size); | 132 | extern void bt_iounmap(void *addr, unsigned long size); |
133 | 133 | ||
134 | /* Use early IO mappings for DMI because it's initialized early */ | ||
135 | #define dmi_ioremap bt_ioremap | ||
136 | #define dmi_iounmap bt_iounmap | ||
137 | #define dmi_alloc alloc_bootmem | ||
138 | |||
134 | /* | 139 | /* |
135 | * ISA I/O bus memory addresses are 1:1 with the physical address. | 140 | * ISA I/O bus memory addresses are 1:1 with the physical address. |
136 | */ | 141 | */ |
diff --git a/include/asm-x86_64/io.h b/include/asm-x86_64/io.h index 52ff269fe054..9dac18db8291 100644 --- a/include/asm-x86_64/io.h +++ b/include/asm-x86_64/io.h | |||
@@ -143,6 +143,11 @@ static inline void __iomem * ioremap (unsigned long offset, unsigned long size) | |||
143 | extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size); | 143 | extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size); |
144 | extern void iounmap(volatile void __iomem *addr); | 144 | extern void iounmap(volatile void __iomem *addr); |
145 | 145 | ||
146 | /* Use normal IO mappings for DMI */ | ||
147 | #define dmi_ioremap ioremap | ||
148 | #define dmi_iounmap(x,l) iounmap(x) | ||
149 | #define dmi_alloc(l) kmalloc(l, GFP_ATOMIC) | ||
150 | |||
146 | /* | 151 | /* |
147 | * ISA I/O bus memory addresses are 1:1 with the physical address. | 152 | * ISA I/O bus memory addresses are 1:1 with the physical address. |
148 | */ | 153 | */ |
diff --git a/include/linux/dmi.h b/include/linux/dmi.h index 05f4132622fc..2e6bbe014157 100644 --- a/include/linux/dmi.h +++ b/include/linux/dmi.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define __DMI_H__ | 2 | #define __DMI_H__ |
3 | 3 | ||
4 | #include <linux/list.h> | 4 | #include <linux/list.h> |
5 | #include <linux/config.h> | ||
5 | 6 | ||
6 | enum dmi_field { | 7 | enum dmi_field { |
7 | DMI_NONE, | 8 | DMI_NONE, |
@@ -60,12 +61,14 @@ struct dmi_device { | |||
60 | void *device_data; /* Type specific data */ | 61 | void *device_data; /* Type specific data */ |
61 | }; | 62 | }; |
62 | 63 | ||
63 | #if defined(CONFIG_X86_32) | 64 | #ifdef CONFIG_DMI |
64 | 65 | ||
65 | extern int dmi_check_system(struct dmi_system_id *list); | 66 | extern int dmi_check_system(struct dmi_system_id *list); |
66 | extern char * dmi_get_system_info(int field); | 67 | extern char * dmi_get_system_info(int field); |
67 | extern struct dmi_device * dmi_find_device(int type, const char *name, | 68 | extern struct dmi_device * dmi_find_device(int type, const char *name, |
68 | struct dmi_device *from); | 69 | struct dmi_device *from); |
70 | extern void dmi_scan_machine(void); | ||
71 | |||
69 | #else | 72 | #else |
70 | 73 | ||
71 | static inline int dmi_check_system(struct dmi_system_id *list) { return 0; } | 74 | static inline int dmi_check_system(struct dmi_system_id *list) { return 0; } |