[PATCH] ARM:DMI: Add dmi driver support on arm

From: Yi Li
Date: Fri Sep 06 2013 - 12:03:22 EST


From: liyi <yi.li@xxxxxxxxxx>

Add dmi driver support on arm, it depends on efi runtime service
enabled.

Signed-off-by: liyi <yi.li@xxxxxxxxxx>
---
arch/arm/Kconfig | 9 +++++++++
arch/arm/include/asm/dmi.h | 12 ++++++++++++
arch/arm/kernel/setup.c | 7 ++++++-
3 files changed, 27 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/include/asm/dmi.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e8daccd..02abb1d 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1946,6 +1946,15 @@ config EFI_STUB
executed directly by EFI firmware.
See Documentation/efi-stub.txt for more information.

+config DMI
+ default y
+ bool "Enable DMI scanning" if EXPERT
+ ---help---
+ Enabled scanning of DMI to identify machine quirks. Say Y
+ here unless you have verified that your setup is not
+ affected by entries in the DMI blacklist. Required by EFI
+ support.
+
config SECCOMP
bool
prompt "Enable seccomp to safely compute untrusted bytecode"
diff --git a/arch/arm/include/asm/dmi.h b/arch/arm/include/asm/dmi.h
new file mode 100644
index 0000000..84baf0e
--- /dev/null
+++ b/arch/arm/include/asm/dmi.h
@@ -0,0 +1,12 @@
+#ifndef _ASM_DMI_H
+#define _ASM_DMI_H 1
+
+#include <linux/slab.h>
+#include <asm/io.h>
+#include <asm/mach/map.h>
+/* Use normal IO mappings for DMI */
+#define dmi_ioremap(x, l) __arm_ioremap((x), (l), MT_MEMORY)
+#define dmi_iounmap(x, l) __arm_iounmap((x))
+#define dmi_alloc(l) kmalloc(l, GFP_ATOMIC)
+
+#endif
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index a440211..2194554 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -34,13 +34,15 @@
#ifdef CONFIG_ACPI
#include <linux/acpi.h>
#endif
+#ifdef CONFIG_DMI
+#include <linux/dmi.h>
+#endif

#include <asm/unified.h>
#include <asm/cp15.h>
#include <asm/cpu.h>
#include <asm/cputype.h>
#include <asm/elf.h>
-#include <asm/io.h>
#include <asm/procinfo.h>
#include <asm/psci.h>
#include <asm/sections.h>
@@ -1073,3 +1075,6 @@ const struct seq_operations cpuinfo_op = {
.stop = c_stop,
.show = c_show
};
+#ifdef CONFIG_DMI
+ core_initcall(dmi_scan_machine);
+#endif
--
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/