aboutsummaryrefslogtreecommitdiff
path: root/arch/arm64/kernel/setup.c
diff options
context:
space:
mode:
authorRongrongZou <zourongrong@huawei.com>2016-10-18 12:52:56 +0800
committerGraeme Gregory <graeme.gregory@linaro.org>2017-06-06 10:00:41 +0100
commit3b9a01f7cd2eb37e6fc74e172b53394ba8460fcc (patch)
tree571de7750cf63ab60e4ac0f91ad5bc25d8749ff3 /arch/arm64/kernel/setup.c
parent3c2993b8c6143d8a5793746a54eba8f86f95240f (diff)
downloadleg-kernel-3b9a01f7cd2eb37e6fc74e172b53394ba8460fcc.tar.gz
ARM64 LPC: indirect ISA PORT IO introduced
Indirect ISA port I/O accessing introduced, vendors can hook their own in/out function to general inb/outb. Drivers can access legacy ISA I/O port by inb/outb as it is done in x86 platform. Signed-off-by: RongrongZou <zourongrong@huawei.com> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org> Conflicts: arch/arm64/include/asm/io.h
Diffstat (limited to 'arch/arm64/kernel/setup.c')
-rw-r--r--arch/arm64/kernel/setup.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 2c822ef94f34..3f9efe4d9f9d 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -237,6 +237,24 @@ static void __init request_standard_resources(void)
}
}
+#if defined(CONFIG_ARM64_INDIRECT_PIO)
+arm64_isa_io arm64_isa_pio;
+EXPORT_SYMBOL_GPL(arm64_isa_pio);
+
+int arm64_set_isa_pio(arm64_isa_io _arm64_isa_pio)
+{
+ if (arm64_isa_pio) {
+ pr_err("arm64 indirect port io have been hooked by others!\n");
+ return -EINVAL;
+ }
+
+ arm64_isa_pio = _arm64_isa_pio;
+
+ return 0;
+}
+
+#endif
+
u64 __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = INVALID_HWID };
void __init setup_arch(char **cmdline_p)